:root{--ink:#0e192a;--navy:#152843;--slate:#617084;--paper:#f3f2ee;--line:#cbd0d4;--orange:#d17e41;--white:#fcfcfa}*{box-sizing:border-box}html{background:var(--paper)}body{margin:0;color:var(--ink);background:linear-gradient(135deg,#f7f6f2,#e9ebeb);font-family:Inter,"Segoe UI",Arial,sans-serif;letter-spacing:.01em}.site-header{min-height:72px;padding:0 clamp(18px,5vw,72px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #d5d9d9;background:#f8f8f5}.wordmark{color:var(--ink);font-weight:750;font-size:18px;text-decoration:none;letter-spacing:-.04em}.wordmark span{margin-left:9px;color:var(--slate);font-size:9px;letter-spacing:.13em;font-weight:700}.site-header nav{display:flex;gap:clamp(14px,3vw,34px)}a{color:inherit}.site-header nav a{font-size:12px;color:#314259;text-decoration:none}.site-header nav a:hover,.wordmark:hover{color:var(--orange)}main{max-width:1280px;margin:auto;padding:32px clamp(18px,5vw,72px) 64px}.intro{display:grid;grid-template-columns:minmax(270px,.9fr) minmax(0,1.1fr);align-items:end;column-gap:clamp(25px,5vw,76px);margin-bottom:24px}.kicker{grid-column:1/-1;margin:0 0 7px;color:#667589;font-size:10px;font-weight:800;letter-spacing:.15em}.intro h1{margin:0;font-size:clamp(36px,4.1vw,48px);line-height:.98;letter-spacing:-.06em;font-weight:800;white-space:nowrap}.lede{max-width:530px;margin:0 0 8px;font-size:16px;line-height:1.45;color:#3d4d62}.notice{grid-column:2;justify-self:start;display:inline-block;margin:0;padding:5px 8px;border:1px solid #c5cbd1;border-radius:3px;color:#4b5b6e;font-size:10px}.workbench{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(275px,.8fr);border:1px solid #aeb6bd;background:var(--white);box-shadow:0 14px 40px #16263b13}.scene-shell{min-width:0;border-right:1px solid #aeb6bd}.scene-topline{padding:12px 15px;display:flex;justify-content:space-between;border-bottom:1px solid #cbd0d4;color:#5f6d7e;font:700 9px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.13em}.scene{position:relative;min-height:475px;background:radial-gradient(circle at 48% 38%,#e9edf0 0,#d9dfe2 38%,#bdc8ce 100%);overflow:hidden;touch-action:none}.scene canvas{display:block;width:100%;height:100%;cursor:grab}.scene canvas:active{cursor:grabbing}.scene-fallback{position:absolute;inset:0;display:none;place-content:center;text-align:center;padding:24px;color:#34465c;font-size:14px;line-height:1.7}.scene-fallback p{margin:2px}.scene.is-fallback .scene-fallback{display:grid}.scene-help{margin:0;padding:11px 15px;border-top:1px solid #cbd0d4;color:#667587;font-size:11px}.control-panel{display:flex;flex-direction:column;background:#162842;color:#ecf1f3}.panel-head{display:flex;align-items:center;gap:8px;padding:16px 17px 12px;border-bottom:1px solid #496077;font:700 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.16em}.status-dot{width:7px;height:7px;background:#d17e41;border-radius:50%;box-shadow:0 0 0 3px #d17e4133}.selector{padding:11px 12px}.select-button{width:100%;display:flex;gap:9px;align-items:baseline;padding:12px 8px;border:0;border-left:2px solid transparent;background:transparent;color:#aebdca;cursor:pointer;text-align:left;font:700 10px/1.1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em}.select-button span{font-family:Inter,"Segoe UI",sans-serif;font-size:12px;letter-spacing:0}.select-button:hover,.select-button:focus-visible{color:#fff;background:#ffffff12;outline:none}.select-button.is-active{border-left-color:var(--orange);color:#fff;background:#ffffff10}.control-strip{display:grid;grid-template-columns:44px 44px 1fr;gap:6px;padding:0 15px 16px;border-bottom:1px solid #496077}.turn-button,.animate-button{border:1px solid #597087;color:#ecf1f3;background:#203753;cursor:pointer;min-height:39px;font-weight:700}.turn-button{font-size:19px}.turn-button:hover,.turn-button:focus-visible,.animate-button:hover,.animate-button:focus-visible{border-color:#d8e3e9;background:#2c4869;outline:2px solid #b9d2df;outline-offset:1px}.animate-button{font-size:9px;letter-spacing:.04em}.animate-button span{display:block;color:#9db1c1;font-size:8px;margin-top:2px}.animate-button[aria-pressed="true"] span{color:#e6a372}.project-readout{padding:20px 17px 24px}.project-readout p{margin:0}.project-readout #part-index{color:#9bb0c0;font:700 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.16em}.project-readout h2{margin:9px 0 12px;color:#fff;font-size:23px;line-height:1;letter-spacing:-.04em}.project-readout #part-copy{color:#d6e0e7;font-size:13px;line-height:1.65}.project-readout .scope{margin-top:13px;padding-top:12px;border-top:1px solid #496077;color:#aebdca;font-size:11px;line-height:1.55}.project-link{display:inline-flex;gap:7px;align-items:center;margin-top:18px;color:#fff;font-size:12px;font-weight:700;text-underline-offset:4px}.project-link:hover{color:#edb283}.project-links{display:grid;grid-template-columns:.7fr 1.3fr;gap:36px;padding:clamp(35px,6vw,70px) 0 0}.project-links h2{margin:0;font-size:26px;letter-spacing:-.05em}.record-list{border-top:1px solid #aeb6bd}.record-list a{min-height:55px;display:grid;grid-template-columns:40px minmax(105px,.8fr) 1.7fr;align-items:center;gap:6px;border-bottom:1px solid #c7cccf;color:#203149;text-decoration:none;font-size:12px}.record-list a:hover{color:#b15e25;background:#ffffff70}.record-list span{color:#778493;font:700 10px ui-monospace,SFMono-Regular,Consolas,monospace}.record-list b{font-size:12px}.record-list small{color:#667587;font-size:11px}footer{padding:23px clamp(18px,5vw,72px);display:flex;justify-content:space-between;border-top:1px solid #c8ced1;color:#637184;font:700 10px ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.1em}footer a{color:#33485f;font-family:Inter,"Segoe UI",sans-serif;font-size:12px;letter-spacing:0}@media (max-width:960px){.site-header{min-height:63px}.wordmark span{display:none}.site-header nav{gap:13px}.site-header nav a{font-size:11px}main{padding-top:30px}.intro{display:block;margin-bottom:24px}.intro h1{font-size:42px;white-space:normal}.lede{margin:13px 0 10px}.notice{display:inline-block}.workbench{grid-template-columns:1fr}.scene-shell{border-right:0;border-bottom:1px solid #aeb6bd}.scene{min-height:355px}.control-panel{min-height:auto}.project-links{grid-template-columns:1fr;gap:24px}.record-list a{grid-template-columns:32px 1fr;gap:5px;padding:9px 0}.record-list small{grid-column:2;grid-row:2}.project-readout{padding-bottom:22px}}@media (max-width:360px){.site-header{padding:0 12px}.site-header nav{gap:8px}.site-header nav a{font-size:10px}.scene{min-height:300px}.scene-topline{font-size:8px;padding:10px}.scene-help{font-size:10px}.control-strip{grid-template-columns:38px 38px 1fr;padding-inline:12px}.project-readout{padding-inline:14px}.intro h1{font-size:37px}footer{padding-inline:12px;gap:12px;font-size:8px}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}
.scene{height:520px;min-height:0;background:#e9eef0}
.model-status{position:absolute;bottom:12px;left:12px;right:12px;z-index:2;margin:0;padding:6px 9px;color:#415364;background:#f8faf8dd;border:1px solid #ced8dc;border-radius:3px;font-size:10px;pointer-events:none}
.model-sources{margin-top:30px;padding-top:18px;border-top:1px solid #cbd0d4;font-size:12px;line-height:1.75;color:#56677b}
.model-sources summary{cursor:pointer;font-weight:700;color:#243d57;padding:7px 0}
.model-sources a{text-underline-offset:3px}
.readout-facts{margin:0;display:grid;gap:5px}.readout-facts dt{margin-top:8px;color:#b8cddd;font-size:10px;font-weight:800}.readout-facts dd{margin:0;color:#d6e0e7;font-size:12px;line-height:1.6}.readout-links{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-top:17px}.readout-links .project-link{margin-top:0;line-height:1.5}.public-case-link{grid-column:1/-1;margin:0;font-size:13px;line-height:1.6;text-underline-offset:4px}
.readout-languages{display:flex;gap:4px;margin-left:auto}.readout-languages button{min-width:32px;min-height:30px;border:1px solid #597087;background:#203753;color:#ecf1f3;cursor:pointer}.readout-languages button[aria-pressed="true"]{background:#ecf1f3;color:#162842}.project-readout h2{word-break:keep-all;overflow-wrap:anywhere;line-height:1.25}
@media(max-width:960px){.scene{height:445px}.control-panel{display:grid;grid-template-columns:1fr 1.2fr;grid-template-rows:auto auto 1fr}.panel-head{grid-column:1/-1}.project-readout{grid-column:2;grid-row:2/4}}
@media(min-width:561px) and (max-width:960px){.control-strip{align-self:start}}
@media(max-width:560px){.scene{height:365px}.control-panel{display:flex}.model-sources{font-size:11px}.intro h1{font-size:36px}}
.intro h1{white-space:normal;line-height:1.12}
.is-embedded body{background:var(--white)}
.is-embedded .site-header,.is-embedded .intro,.is-embedded .project-links,.is-embedded .model-sources,.is-embedded footer,.is-embedded .project-readout{display:none}
.is-embedded main{max-width:none;padding:0}
.is-embedded .workbench{display:flex;flex-direction:column;border:0;box-shadow:none}
.is-embedded .scene-shell{border-right:0;border-bottom:1px solid var(--line)}
.is-embedded .scene{height:360px}
.is-embedded .control-panel{display:flex}
.is-embedded .selector{display:grid;grid-template-columns:1fr 1fr;gap:3px}
.is-embedded .select-button{min-height:44px;line-height:1.3}
.is-embedded .select-button span{overflow-wrap:anywhere}
@media(max-width:560px){.is-embedded .scene{height:300px}}
.is-capture body{background:#e9eef0}
.is-capture .site-header,.is-capture .intro,.is-capture .project-links,.is-capture .model-sources,.is-capture footer,.is-capture .control-panel,.is-capture .scene-topline,.is-capture .scene-help,.is-capture .model-status{display:none}
.is-capture main{max-width:none;padding:0}
.is-capture .workbench{display:block;border:0;box-shadow:none}
.is-capture .scene-shell{border:0}
.is-capture .scene{width:100vw;height:100vh}
.scene-export{padding:0 15px 12px;background:var(--white)}
.scene-export button{border:1px solid #cbd0d4;background:#f8faf8;color:#314259;padding:9px 12px;font-size:11px;cursor:pointer}
.scene-export button:hover,.scene-export button:focus-visible{border-color:#314259}
.is-capture .scene-export{display:none}
