/* Scenes travel with their DOM boxes, including compositor-only sticky scroll. */
.glb-canvas.glb-canvas-local{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none;display:block}
.glb-canvas.glb-canvas-overlay{position:fixed;inset:0;width:100%;height:100%;z-index:35;pointer-events:none;display:block}
#composition-view,#result-view{isolation:isolate}.composition-caption{position:absolute;left:18px;right:18px;bottom:0;z-index:2}
.number-reveal{font-variant-numeric:tabular-nums;overflow:clip;display:block}.number-reveal .number-char{display:inline-block;white-space:pre;transform-origin:center bottom}.number-reveal small{font-size:.47em;font-weight:400}
.value-lab{margin-top:28px;padding:30px;border:1px solid #87aef44d;border-radius:14px;background:linear-gradient(135deg,#142e51ed,#0a1636f5);position:relative;overflow:hidden}
.value-lab header{border-bottom:1px solid #9cbaf42b;padding-bottom:23px;margin-bottom:24px}.value-lab .eyebrow{font-size:9px!important;margin-bottom:16px!important}.value-lab h3{font-size:clamp(28px,3vw,39px);font-weight:300;line-height:1.1;letter-spacing:-.04em;margin:0 0 16px;color:#f2f6ff}.value-lab p{font-size:12px;line-height:1.85;color:#b7c9e3;margin:0}.value-lab .value-intro{max-width:58ch}
.value-fields{display:grid;grid-template-columns:1fr 1fr;gap:18px 16px}.value-field{display:flex;flex-direction:column;gap:9px;font-size:11px;color:#c5d7f3;line-height:1.5;min-width:0}.value-input{display:flex;align-items:center;gap:10px;background:#081529;border:1px solid #7fa5e450;border-radius:6px;min-height:52px;padding:0 13px;transition:border-color 160ms,background 160ms}.value-input:focus-within{outline:2px solid #88b6ff;outline-offset:3px;background:#11294c}.value-input input{font:400 21px Mulish,sans-serif;color:#f1f5ff;background:transparent;border:0;outline:0;width:100%;min-width:0;height:48px;padding:0;font-variant-numeric:tabular-nums;box-shadow:none}.value-input>span{font-size:10px;color:#9ab7e1;white-space:nowrap}.value-lab .value-sample{font-size:10px;color:#a8bee1;margin:-8px 0 21px}.value-opportunity{margin-top:24px;border-top:1px solid #9cbaf42b;padding-top:22px}.value-toggle{display:flex;gap:12px;align-items:flex-start;cursor:pointer;font-size:12px;color:#dae6fb;line-height:1.7}.value-toggle input{width:19px;height:19px;accent-color:#4877ff;flex:none;margin-top:2px}.value-opportunity .value-fields{margin-top:20px}.value-opportunity>p{margin:9px 0 0 31px;font-size:10px}
.value-results{margin:27px -30px 0;padding:26px 30px;background:#eaf1fd;color:#142748;display:grid;grid-template-columns:1fr 1fr;gap:24px 20px}.value-metric>span{font-size:10px;line-height:1.7;display:block;color:#4b6285;max-width:25ch}.value-metric>strong{font-size:clamp(23px,2.3vw,32px);font-weight:300;letter-spacing:-.035em;display:block;margin:8px 0;font-variant-numeric:tabular-nums;line-height:1.25}.value-metric>small{font-size:9px;color:#526885;line-height:1.7;display:block}.value-metric.is-net{grid-column:1/-1;border-top:1px solid #6b8abb35;padding-top:19px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.value-metric.is-net>strong{margin:0;text-align:right}.value-metric.is-net>small{grid-column:1/-1}.value-lab .value-payback{padding:21px 0 0;font-size:12px;color:#e1edff}.value-method{margin-top:14px}.value-method>summary{font-size:10px;color:#adc7ec;cursor:pointer;min-height:34px;line-height:1.8}.value-method p{font-size:10px;color:#a0b5d5;line-height:1.9}.value-method p+p{margin-top:10px}.value-recap{margin-top:30px;padding:24px;border:1px solid #8bb4f94d;background:#13325866;border-radius:10px}.value-recap h3{font-weight:300;font-size:24px;margin:0 0 15px}.value-recap p{color:#bed1ed!important;font-size:13px!important;line-height:1.8}.value-error{color:#ffccbd!important;margin-top:14px!important}.value-error:empty{display:none}
@media(max-width:760px){.value-lab{padding:23px 20px;margin-top:24px}.value-lab h3{font-size:31px}.value-fields{gap:17px 12px}.value-field{font-size:10px}.value-input{padding:0 10px}.value-input input{font-size:19px}.value-results{margin:24px -20px 0;padding:24px 20px;gap:22px 14px}.value-metric>strong{font-size:25px}.value-metric.is-net{grid-template-columns:1fr}.value-metric.is-net>strong{text-align:left}.value-recap{padding:22px}.value-recap h3{font-size:24px}}
@media(max-width:350px){.value-fields{grid-template-columns:1fr}.value-metric>strong{font-size:22px}}
@media(prefers-reduced-motion:reduce){.value-input{transition:none}}
@media print{.value-lab,.value-recap{display:none!important}}

.number-fit{white-space:nowrap}
