.spatial-diagram{width:100%;min-width:0;margin:0}.scene-frame{isolation:isolate;background:radial-gradient(at 38% 30%,#fff 0%,#f5f7f0 49%,#e6ece0 100%);border:1px solid #dbe2d3;border-radius:3px;position:relative;overflow:hidden}.scene-heading{z-index:2;pointer-events:none;letter-spacing:.13em;color:#53664f;justify-content:space-between;align-items:center;gap:15px;font-size:9px;font-weight:600;line-height:1.5;display:flex;position:absolute;inset:18px 20px auto}.scene-heading i{color:#a0ad96;padding:0 6px;font-style:normal}.scene-heading-note{letter-spacing:.02em;color:#73806c;font-weight:400}.scene-viewport{aspect-ratio:720/440;width:100%;min-height:240px;position:relative}.scene-canvas,.scene-fallback{width:100%;height:100%;position:absolute;inset:0}.module-diagram .scene-fallback{object-fit:contain;height:100%;padding:0;transition:opacity .3s}.scene-canvas{cursor:default}.scene-canvas canvas{opacity:0;width:100%;height:100%;transition:opacity .35s;display:block}.scene-transfer-bubble{z-index:3;pointer-events:none;opacity:0;will-change:transform;background:#fafaf5f5;border:1px solid #d2dace;border-radius:4px;align-items:center;gap:8px;min-width:125px;max-width:185px;padding:9px 11px;display:flex;position:absolute;top:0;left:0;box-shadow:0 4px 12px #20392b12}[data-state=ready] .scene-transfer-bubble{opacity:1}.scene-transfer-bubble:after{content:"";background:#b8c5ac;width:1px;height:14px;position:absolute;top:100%;left:50%}.scene-transfer-bubble strong{color:#355443;font:600 10px/1.4 var(--body);display:block}.scene-transfer-bubble small{color:#839078;font:400 8px/1.35 var(--body);margin-top:3px;display:block}.transfer-paper-symbol{background:#fff;border:1px solid #899b78;border-radius:2px;flex-shrink:0;width:16px;height:21px;position:relative}.transfer-paper-symbol:before{content:"";background:#d18a4b;width:8px;height:2px;position:absolute;top:5px;left:3px;box-shadow:0 4px #becbb5,0 8px #becbb5}.scene-transfer-readout{border-bottom:1px solid var(--line);padding:17px 0 13px}.scene-transfer-path{grid-template-columns:minmax(0,1fr) 12px minmax(0,1.65fr) 12px minmax(0,1fr);align-items:center;gap:9px;display:grid}.transfer-endpoint b{font:500 9px/1.3 var(--body);color:#9f7b51;margin-bottom:4px;display:block}.transfer-endpoint>span{color:#617259;font:400 10px/1.45 var(--body);display:block}.transfer-endpoint:last-child{text-align:right}.transfer-direction{color:#9baf8d;text-align:center;font-size:12px}.transfer-record{text-align:center;background:#f1f5ec;border:1px solid #d4decc;border-radius:3px;padding:9px 10px}.transfer-record>span{font:400 7px/1.4 var(--body);color:#87977b;letter-spacing:.1em;margin-bottom:4px;display:block}.transfer-record strong{color:#355443;font:550 11px/1.45 var(--body);display:block}.scene-transfer-meta{font:400 9px/1.6 var(--body);color:#829175;justify-content:space-between;align-items:flex-start;gap:14px;margin-top:12px;display:flex}.scene-transfer-meta>[data-transfer-fields]{flex:1;min-width:0}.transfer-status{white-space:nowrap;color:#a28155;flex-shrink:0}[data-transfer-status=received] .transfer-status{color:#355443}.transfer-next{cursor:pointer;color:#617259;font:500 9px var(--body);background:0 0;border:0;align-items:center;gap:10px;margin:10px 0 0 auto;padding:4px 0;display:none}[data-state=ready] .transfer-next{display:flex}.transfer-next:hover{color:#20392b}.spatial-diagram-detailed .transfer-record strong{font-size:12px}.spatial-diagram-detailed .transfer-endpoint>span{font-size:11px}.transfer-ledger{border-top:1px solid var(--line);margin-top:18px;padding:14px 0 0}.transfer-ledger summary{cursor:pointer;color:#53664f;font:500 11px/1.6 var(--body)}.transfer-ledger ol{margin:15px 0 0;padding:0;list-style:none}.transfer-ledger li{border-top:1px solid #e4eadf;grid-template-columns:65px 1fr;gap:15px;padding:12px 0;display:grid}.transfer-ledger li>span{color:#a28155;font-size:9px}.transfer-ledger strong{color:#355443;font-size:12px;font-weight:550}.module-diagram .transfer-ledger p{color:#839078;font:400 11px/1.6 var(--body);margin:3px 0 0}[data-state=ready] .scene-canvas canvas{opacity:1}[data-state=ready] .scene-fallback{opacity:0}.scene-bottom{z-index:2;letter-spacing:.025em;color:#6b7a62;justify-content:space-between;align-items:center;gap:10px;font-size:9px;display:flex;position:absolute;inset:auto 20px 14px}.scene-bottom>span{align-items:center;gap:7px;display:flex}.scene-bottom>span>i{background:#b38b59;border-radius:50%;width:4px;height:4px;display:block}.scene-play{color:#355443;font:500 10px var(--body);cursor:pointer;opacity:0;visibility:hidden;background:#fafaf5b8;border:0;border-radius:3px;align-items:center;gap:7px;padding:8px 9px;transition:background .2s;display:flex}[data-state=ready] .scene-play{opacity:1;visibility:visible}.scene-play:hover{background:#fff}.scene-play svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round}.scene-play .play-symbol{display:none}.scene-play[aria-pressed=true] .play-symbol{display:block}.scene-play[aria-pressed=true] .pause-symbol{display:none}.scene-choices{border-bottom:1px solid #d2dace;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:0;display:grid}.scene-choices button{text-align:left;color:#53654e;font:500 11px/1.5 var(--body);cursor:pointer;background:0 0;border:0;border-right:1px solid #d2dace;align-items:flex-start;gap:9px;min-height:61px;padding:15px 10px;display:flex;position:relative}.scene-choices button:first-child{padding-left:0}.scene-choices button:last-child{border-right:0}.scene-choices button:after{content:"";transform-origin:0;background:#355443;height:2px;transition:transform .2s;position:absolute;bottom:-1px;left:0;right:0;transform:scaleX(0)}.scene-choices button[aria-pressed=true]{color:#20392b}.scene-choices button[aria-pressed=true]:after{transform:scaleX(1)}.scene-choice-number{color:#a77945;letter-spacing:.04em;flex-shrink:0;padding-top:2px;font-size:9px}.scene-choices button:hover{background:#f1f4ec}.scene-choices button small{color:#78866e;margin-top:3px;font-size:10px;font-weight:400;display:block}.scene-choices-interfaces{grid-template-columns:repeat(2,minmax(0,1fr))}.scene-choices-interfaces button:nth-child(2n){border-right:0}.scene-choices-interfaces button:nth-child(3){padding-left:0}.module-diagram .spatial-caption{font:400 13px/1.8 var(--body);border:0;margin:0;padding:18px 0 0;display:block}.spatial-caption p{color:#355443;min-height:3.6em;margin:0 0 9px}.module-diagram .spatial-caption>span{letter-spacing:0;text-transform:none;color:#77826e;font-size:11px;line-height:1.7;display:block}.spatial-diagram-detailed .scene-heading{font-size:10px}.spatial-diagram-detailed .scene-choices button{padding-top:19px;padding-bottom:19px;font-size:12px}.spatial-diagram-detailed .scene-viewport{aspect-ratio:720/440}.interface-intro{color:var(--muted);margin:0 0 25px;font-size:15px;line-height:1.8}.interface-contracts{border-top:1px solid var(--line);margin-top:30px}.interface-contract{border-bottom:1px solid var(--line);padding:23px 0}.interface-contract-heading{justify-content:space-between;align-items:baseline;gap:18px;margin-bottom:10px;display:flex}.interface-contract-heading a{color:var(--forest);align-items:baseline;gap:12px;font-size:14px;font-weight:600;line-height:1.5;display:flex}.interface-contract-heading a>span{font:400 10px var(--body);color:var(--muted);white-space:nowrap}.interface-contract-heading>span{color:var(--muted);white-space:nowrap;font-size:10px}.interface-contract-heading>strong{color:var(--forest);font-size:14px;line-height:1.5}.interface-contract dl{grid-template-columns:90px 1fr;gap:7px 15px;margin:0;font-size:12px;line-height:1.8;display:grid}.interface-contract dt{color:var(--muted)}.interface-contract dd{color:var(--forest);margin:0}.interface-source{color:var(--muted);margin-top:18px;font-size:11px;line-height:1.8}.module-exhibit .exhibit-heading>a,.featured-module h3 a{color:inherit}.scene-choices button:focus-visible,.scene-play:focus-visible{outline-offset:3px;outline:2px solid #355443}@media (width<=700px){.scene-transfer-bubble{gap:6px;min-width:112px;max-width:145px;padding:7px 8px}.scene-transfer-bubble strong{font-size:9px}.scene-transfer-bubble small{font-size:7px}.scene-transfer-readout{padding-top:14px}.scene-transfer-path{grid-template-columns:minmax(0,1fr) 8px minmax(0,1.5fr) 8px minmax(0,1fr);gap:6px}.transfer-record{padding:8px 5px}.transfer-record strong,.spatial-diagram-detailed .transfer-record strong{font-size:10px}.transfer-endpoint>span,.spatial-diagram-detailed .transfer-endpoint>span{font-size:9px}.scene-transfer-meta{gap:10px;font-size:8px}.transfer-status{white-space:normal;text-align:right;max-width:70px}.scene-heading{font-size:8px;inset:15px 14px auto}.scene-heading-note{font-size:8px}.scene-viewport{aspect-ratio:1.12;min-height:260px}.scene-bottom{font-size:8px;inset:auto 14px 12px}.scene-choices button{gap:5px;min-height:64px;padding:12px 6px;font-size:10px}.scene-choice-number{font-size:8px}.spatial-diagram-detailed .scene-viewport{aspect-ratio:1.12}.spatial-diagram-detailed .scene-choices button{padding-top:14px;padding-bottom:14px;font-size:11px}.spatial-diagram-detailed .scene-heading{font-size:8px}.interface-contract-heading{align-items:flex-start;gap:10px}.interface-contract-heading a{gap:8px;font-size:13px}.interface-contract dl{grid-template-columns:1fr;gap:2px}.interface-contract dd{margin-bottom:8px}}@media (prefers-reduced-motion:reduce){.scene-canvas canvas,.scene-fallback,.scene-choices button:after{transition:none}}
