:root{--ink:#f3f1ed;--paper:#090a0e;--red:#ff5365;--line:#30313c;--muted:#b4b3bd}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;font-size:15px;line-height:1.55}button,input,select{font:inherit}a{color:inherit;text-decoration:none}button,a,input,select{outline-offset:5px}button{cursor:pointer}header{padding:24px 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);gap:20px}.brand{font-size:20px;font-weight:900;letter-spacing:2px}.brand span{font-size:10px;display:inline-block;color:var(--red);letter-spacing:3px}.edition,.eyebrow{font-size:10px;letter-spacing:2px;font-weight:700}.edition{color:var(--muted)}.hero{display:grid;grid-template-columns:.9fr 1.1fr;gap:6%;padding:72px 5% 60px;align-items:center}.eyebrow{color:var(--red);margin:0 0 24px}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(58px,6.7vw,100px);font-weight:500;letter-spacing:-6px;line-height:1.03;margin-bottom:28px}h1 em{font-family:Georgia,serif;font-weight:400;color:var(--red);letter-spacing:-5px}.intro{font-size:17px;max-width:440px;color:var(--muted);margin-bottom:30px}.button{display:inline-flex;gap:35px;background:var(--red);color:white;align-items:center;padding:15px 23px;border:1px solid var(--red);font-size:13px;font-weight:700}.button:hover{background:#e84155}.button:disabled{opacity:.5;cursor:wait}.hero figure{position:relative;margin:0;height:570px;background:#15161e;overflow:hidden}.hero figure img{width:100%;height:100%;object-fit:cover;object-position:62% center}.hero figcaption{position:absolute;bottom:0;left:0;background:linear-gradient(transparent,#0009);width:100%;padding:45px 24px 20px;color:white;font-size:10px}.photo-number{position:absolute;top:24px;right:24px;color:white;font-size:11px;letter-spacing:2px}.hero-foot{margin-top:60px;display:flex;justify-content:space-between;border-top:1px solid var(--line);padding-top:18px;font-size:10px;color:var(--muted)}.laboratory,.three-section,.method{padding:65px 5%;border-top:1px solid var(--line)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px;margin-bottom:35px}.section-heading>p{color:var(--muted);max-width:390px;font-size:14px}h2{font-weight:500;font-size:50px;line-height:1.1;letter-spacing:-2px;margin-bottom:0}.building-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:45px}.building{border:1px solid transparent;background:none;text-align:left;padding:0 0 18px;position:relative}.building.active{border-bottom:2px solid var(--red)}.building img{width:100%;height:190px;object-fit:cover;filter:saturate(.8)}.building .label{display:flex;justify-content:space-between;gap:10px;padding-top:14px;align-items:center}.building strong{font-size:20px;font-weight:500}.building small{display:block;color:var(--muted);font-size:11px}.building.active .arrow{background:var(--red);color:#fff}.arrow{border:1px solid var(--line);width:32px;height:32px;border-radius:50%;display:grid;place-items:center}.workspace{background:#15161e;border:1px solid var(--line);padding:30px}.workspace-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:25px;gap:10px}.workspace-top .eyebrow{margin-bottom:5px}h3{font-size:29px;line-height:1.15;font-weight:500;letter-spacing:-.7px;margin-bottom:0}.pill{border:1px solid var(--line);padding:7px 10px;font-size:10px;letter-spacing:.6px;white-space:nowrap}.photo-controls{display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px;margin-bottom:20px}label{display:block;color:var(--muted);font-size:11px}select,input[type=file]{display:block;width:100%;min-width:0;border:1px solid var(--line);background:transparent;padding:9px;color:var(--ink);margin-top:6px;font-size:12px}.pair{display:grid;grid-template-columns:1fr 1fr;gap:18px}.pair figure{margin:0;min-width:0}.pair img{width:100%;height:300px;object-fit:contain;background:#0c0d12}.pair figcaption{font-size:10px;color:var(--muted);padding-top:7px;overflow-wrap:anywhere;min-height:48px}.action-row{display:flex;align-items:center;gap:25px;flex-wrap:wrap;margin-top:20px}.threshold-label{display:flex;gap:10px;align-items:center}.threshold-label input{max-width:130px}input[type=range]{accent-color:var(--red)}.quiet-button,.text-button{border:0;background:none;font-size:12px;padding:10px 0;text-decoration:underline;text-underline-offset:4px;color:var(--ink)}.quiet-button{margin-left:auto}.status{margin:18px 0 0;color:var(--muted);font-size:12px}.status.error{color:#ff8493}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-top:25px}.metric{padding:18px 12px;border-right:1px solid var(--line)}.metric:last-child{border:0}.metric strong{font-weight:500;font-size:29px;display:block}.metric span{font-size:10px;color:var(--muted)}.tabs{display:flex;gap:8px;margin:20px 0;flex-wrap:wrap}.tabs button{border:1px solid var(--line);padding:9px 14px;background:none;font-size:12px}.tabs button.active{background:var(--ink);color:white;border-color:var(--ink)}.analysis-view{background:#0b0c10;padding:10px}.analysis-view canvas,.analysis-view img{display:block;width:100%;height:auto;max-height:650px;object-fit:contain}.analysis-view [hidden]{display:none}.blend-control{display:flex;align-items:center;gap:15px;margin:15px 0}.note{font-size:12px;color:var(--muted);line-height:1.65}.sources{font-size:12px;margin-top:25px;border-top:1px solid var(--line);padding-top:18px}.sources summary{cursor:pointer}.sources #sources{max-height:260px;overflow:auto;margin-top:18px}.sources p{font-size:10px;color:var(--muted)}.sources a{color:var(--red);text-decoration:underline}.cloud-layout{display:grid;grid-template-columns:2.2fr 1fr;gap:40px}.cloud-panel{background:#0b0c10;position:relative;min-height:510px}.cloud-panel canvas{display:block;width:100%;height:510px;touch-action:none}.cloud-buttons{position:absolute;top:20px;left:20px;display:flex;gap:5px}.cloud-buttons button{background:#20212b;color:#eef3ec;border:1px solid #424450;padding:7px 12px;font-size:12px}.legend{position:absolute;bottom:20px;left:20px;color:#c5c3ce;font-size:10px;display:flex;gap:20px}.red{color:#ff7466}.cloud-layout aside{padding:10px 0}.cloud-layout aside h3{font-size:35px;margin:28px 0}.cloud-layout aside .metric{padding:10px 0;border:0;border-bottom:1px solid var(--line)}.cloud-layout aside .metric strong{font-size:25px}.cloud-layout aside .text-button{display:block}.method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;margin-top:45px}.method-grid article{border-top:1px solid var(--line);padding-top:17px}.method-grid article>span{font-size:10px;color:var(--red)}.method-grid h3{font-size:20px;margin:20px 0 13px}.method-grid p{font-size:13px;color:var(--muted)}.downloads{display:flex;gap:30px;flex-wrap:wrap;margin-top:30px;padding-top:24px;border-top:1px solid var(--line);font-size:12px}.downloads a{text-decoration:underline;text-underline-offset:4px}.contact{background:#101116;color:#f4f2ec;padding:65px 5%}.contact .eyebrow{color:#ff7a89}.contact p:not(.eyebrow){color:#b4b3bd;max-width:580px;margin:25px 0}.contact h2{font-size:48px}.contact .button{background:#f4f2ec;color:#19211d;border-color:#f4f2ec}footer{padding:24px 5%;display:flex;justify-content:space-between;gap:20px;font-size:10px;color:var(--muted)}[hidden]{display:none!important}@media(max-width:800px){.edition{display:none}.hero{padding-top:40px;gap:30px}h1{font-size:62px;letter-spacing:-3px}h1 em{letter-spacing:-3px}.hero figure{height:460px}.hero-foot{flex-direction:column;gap:7px}.section-heading{align-items:start}.section-heading>p{max-width:260px}h2{font-size:39px}.building img{height:145px}.building strong{font-size:18px}.photo-controls{grid-template-columns:1fr 1fr}.photo-controls label:last-child{grid-column:1/-1}.pair img{height:230px}.cloud-layout{grid-template-columns:1fr}.cloud-layout aside{display:grid;grid-template-columns:1fr 1fr;gap:15px}.cloud-layout aside h3{margin:0}.cloud-layout aside .note{grid-column:1/-1}.method-grid{grid-template-columns:1fr 1fr}}@media(max-width:560px){header{padding:18px 5%;font-size:11px}.brand{font-size:16px}.brand span{font-size:8px}.hero{grid-template-columns:1fr;padding-top:35px}.hero figure{height:350px}.hero-foot{margin-top:30px;flex-direction:row;font-size:9px}.hero .intro{font-size:15px}h1{font-size:65px}.laboratory,.three-section,.method{padding:40px 5%}.section-heading{display:block;margin-bottom:24px}.section-heading>p{max-width:none;margin-top:20px}.building-grid{gap:10px;margin-bottom:25px}.building img{height:100px}.building strong{font-size:14px}.building small{font-size:9px}.arrow{display:none}.workspace{padding:15px}.workspace-top h3{font-size:24px}.pill{font-size:8px}.photo-controls{gap:10px}.photo-controls select{font-size:10px}.pair{gap:10px}.pair img{height:150px}.pair figcaption{font-size:9px}.action-row{gap:15px}.action-row .button{width:100%;justify-content:center}.quiet-button{margin-left:0}.metric strong{font-size:22px}.metric{padding:12px 5px}.metric span{font-size:9px}.cloud-panel,.cloud-panel canvas{height:360px;min-height:360px}.cloud-layout aside{display:block}.cloud-layout aside h3{margin:20px 0}.method-grid{gap:20px}.contact{padding:40px 5%}.contact h2{font-size:36px}.downloads{gap:15px}footer{flex-wrap:wrap}.tabs button{padding:8px;font-size:10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

#local-reconstruction{border:1px solid var(--line);padding:25px;margin-bottom:30px}#reconstruction-files{margin:15px 0;max-width:600px}#reconstruction-downloads a{display:inline-block;margin-right:20px;text-decoration:underline;font-size:12px}#reconstruction-status{margin-top:15px;font-size:12px;color:var(--muted)}

html[lang=en] h1 em{font-size:.8em;letter-spacing:-4px}

.brand{display:flex;align-items:center;gap:10px}.brand img{width:30px;height:30px}.interactive-demo-link{margin-bottom:20px}

.cloud-options{display:flex;gap:20px;flex-wrap:wrap;padding:14px 18px;border-top:1px solid #30313c;font-size:12px;color:#eceaf0}.cloud-options label{display:flex;align-items:center;gap:9px}.cloud-options input[type=range]{width:110px}.gallery-heading{display:flex;justify-content:space-between;align-items:baseline;gap:25px;margin-top:35px}.gallery-heading h3{font-size:23px}.gallery-heading p{font-size:13px}.reconstruction-gallery{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:12px;margin:20px 0}.reconstruction-photo{padding:0;border:2px solid transparent;background:#191a23;position:relative;overflow:hidden;cursor:pointer}.reconstruction-photo[aria-pressed=true]{border-color:#ff5365}.reconstruction-photo img{width:100%;height:110px;object-fit:cover}.reconstruction-photo span{position:absolute;bottom:5px;left:5px;background:#090a0eee;color:white;font:11px monospace;padding:4px 6px}.reconstruction-photo:focus-visible{outline:3px solid #ff5365;outline-offset:3px}#cloud-canvas{touch-action:none}#cloud-title{margin-bottom:18px}#pair-note{margin-top:18px;margin-bottom:20px}@media(max-width:760px){.reconstruction-gallery{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.reconstruction-photo img{height:90px}.gallery-heading{display:block}.gallery-heading p{margin-top:12px}.cloud-options{gap:14px;font-size:11px}.cloud-options input[type=range]{width:85px}}

:root{color-scheme:dark}button{color:inherit}select{background:#11121a}select option{background:#15161e;color:#f3f1ed}.button{color:#090a0e}.tabs button.active{background:var(--red);color:#090a0e;border-color:var(--red)}.building:hover img{filter:saturate(1)}.building:focus-visible,.reconstruction-photo:focus-visible,a:focus-visible,button:focus-visible{outline:2px solid var(--red);outline-offset:5px}.workspace,.hero figure,.cloud-panel{border-radius:10px;overflow:hidden}.contact .button{background:var(--red);color:#090a0e;border-color:var(--red)}.pair img{border-radius:6px}.cloud-options label{color:#b4b3bd}.contact{border-top:1px solid var(--line)}
