.project-image>img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s}
.project-card:hover .project-image>img{transform:scale(1.035)}
.project-card[data-product="profile"] .project-image{background:#14252a}
.project-card[data-product="profile"] .project-image>img{object-fit:contain}
.project-card:focus-visible{outline:2px solid var(--accent);outline-offset:6px}
.project-meta{font-size:11px;letter-spacing:.5px;gap:12px}
.project-badge{font-size:11px}
.project-card>p{font-size:15px}
.product-viewer-open{overflow:hidden}
#product-viewer{inset:0;margin:auto;width:calc(100% - 64px);max-width:1320px;height:min(840px,88dvh);max-height:94dvh;padding:0;background:var(--bg);color:var(--ink);border:1px solid var(--line);overflow:hidden}
#product-viewer[open]{display:flex;flex-direction:column}
.viewer-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:19px 24px;border-bottom:1px solid var(--line);flex-shrink:0}
#product-viewer h2{font-size:25px;letter-spacing:-.7px;margin:0}
.viewer-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.viewer-actions button{background:var(--panel);border:1px solid var(--line);color:var(--ink);padding:10px 12px;font-size:14px;min-height:44px}
.viewer-actions button:hover{border-color:var(--accent)}
#viewer-close{font-size:25px;padding:3px 13px}
.viewer-body{display:flex;flex:1;min-height:0;background:var(--bg)}
.viewer-map-column{display:flex;flex:1;flex-direction:column;min-height:0;min-width:0}
.viewer-map-stage{position:relative;flex:1;min-height:0}
#product-viewport{position:absolute;inset:0;background-color:#14252a;background-image:linear-gradient(#31404740 1px,transparent 1px),linear-gradient(90deg,#31404740 1px,transparent 1px);background-size:40px 40px}
#product-viewport.leaflet-container{font:14px var(--font);background-color:#17272e}
.leaflet-container .leaflet-control-attribution{font-size:11px;max-width:100%}
.leaflet-container .leaflet-control-scale-line{font-size:12px}
.leaflet-container .leaflet-control-zoom a{color:#173038;background:#f6f8fa}
#product-readout{margin:0;padding:11px 17px;font-size:13px;line-height:1.5;min-height:43px;border-top:1px solid var(--line);color:var(--muted);flex-shrink:0}
.viewer-control{display:flex;flex-direction:column;gap:4px;margin:0;font-size:14px;color:var(--ink)}
.viewer-control input[type=range]{padding:0;border:0;accent-color:var(--accent);width:100%;cursor:pointer;min-height:26px}
.viewer-control select{width:100%;padding:9px 8px;background:var(--panel);color:var(--ink);border:1px solid var(--line);font:14px var(--font)}
.viewer-overlays{position:absolute;bottom:36px;right:16px;z-index:1000;max-width:calc(100% - 92px);width:220px;pointer-events:none}
.viewer-overlays:empty{display:none}
.product-legend,.cloud-class-legend{margin:0;padding:12px 14px;background:var(--bg);border:1px solid var(--line);box-shadow:0 2px 12px #0002}
.cloud-class-legend{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 10px}
.cloud-class-legend h3{grid-column:1/-1}
#product-viewer .product-legend h3,#product-viewer .cloud-class-legend h3{font-size:14px;margin:0 0 10px;font-weight:500}
.legend-bar{height:13px}.legend-ends{display:flex;justify-content:space-between;font-size:12px;color:var(--muted);margin-top:7px}
.class-key{display:flex;align-items:center;gap:9px;margin-top:7px;font-size:13px}.class-key i{display:inline-block;width:12px;height:12px}
.viewer-error{position:absolute;inset:0;display:grid;place-items:center;padding:30px;color:#e9eeee!important;text-align:center}
.cesium-viewer,.cesium-viewer-cesiumWidgetContainer,.cesium-widget,.cesium-widget canvas{width:100%;height:100%}
#product-viewport .cesium-viewer-bottom{bottom:3px}
@media(max-width:900px){.viewer-header{padding:16px}.viewer-actions{gap:5px}.viewer-actions button{padding:8px}#product-viewer h2{font-size:22px}}
@media(max-width:600px){#product-viewer{width:calc(100% - 16px);height:92dvh}.viewer-header{align-items:flex-start;gap:10px;padding:13px}.viewer-actions{flex-wrap:wrap;justify-content:flex-end;max-width:155px}.viewer-actions button{font-size:12px;min-height:36px}#product-viewer h2{font-size:20px;max-width:210px}.viewer-body{display:flex;flex-direction:column}.viewer-map-column{flex:1;min-height:240px}#product-readout{font-size:12px;padding:8px 12px}.project-image{height:260px}}
.viewer-toolbar{display:flex;align-items:center;gap:24px;flex-wrap:wrap;padding:10px 24px;border-bottom:1px solid var(--line);background:var(--bg);flex-shrink:0}
.viewer-toolbar[hidden]{display:none}
.profile-panel{flex-shrink:0;padding:8px 18px 5px;border-top:1px solid var(--line);background:var(--bg)}
.profile-panel[hidden]{display:none}
.profile-summary{font-size:13px;margin:0 0 2px;color:var(--ink)}
.profile-chart{width:100%;outline-offset:2px}
.profile-chart svg{display:block;width:100%;height:150px;overflow:visible}
.profile-chart text{font:13px var(--font);fill:var(--muted)}
.profile-grid{stroke:var(--line);stroke-width:1}
.profile-line{stroke:var(--accent);stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round}
.profile-guide{stroke:var(--muted);stroke-dasharray:3 4;stroke-width:1}
.profile-point{fill:var(--accent);stroke:var(--bg);stroke-width:2}
.profile-hint{font-size:11px;line-height:1.4;color:var(--muted);margin:0}
.profile-button{font:13px var(--font);padding:7px 12px;min-height:36px;border:1px solid var(--line);color:var(--ink);background:var(--panel)}
.profile-button:hover,.profile-button:focus-visible{border-color:var(--accent)}
.profile-button:disabled{opacity:.5;cursor:default}
@media(max-width:600px){.profile-panel{padding:6px 10px}.profile-summary{font-size:11px}.profile-chart svg{height:125px}.profile-hint{font-size:10px}.profile-button{font-size:12px;padding:6px 9px}.profile-chart text{font-size:16px}}
.viewer-toolbar .viewer-control{width:180px;font-size:12px}
.viewer-toolbar .viewer-control select{padding:5px 8px;min-height:34px}
@media(max-width:600px){.viewer-toolbar{padding:8px 13px;gap:12px;flex-wrap:nowrap}.viewer-toolbar .viewer-control{width:auto;flex:1;min-width:0}.viewer-overlays{width:180px;right:10px;bottom:32px}.product-legend,.cloud-class-legend{padding:8px 10px}#product-viewer .product-legend h3,#product-viewer .cloud-class-legend h3{font-size:12px;margin-bottom:7px}.legend-bar{height:10px}.legend-ends{font-size:11px}.class-key{font-size:11px;margin-top:3px}}

.terrain-status { position: absolute; top: 14px; left: 14px; z-index: 5; max-width: calc(100% - 28px); padding: 8px 12px; background: var(--bg); border: 1px solid var(--line); color: var(--muted); font-size: 12px; line-height: 1.5; pointer-events: none; }

.ortho-gallery > .ortho-thumbnail-second { position: absolute; inset: 0; opacity: 0; animation: ortho-preview 10s ease-in-out infinite; }
.ortho-count { position: absolute; left: 16px; bottom: 16px; min-width: 58px; padding: 7px 10px; border: 1px solid #97ada780; background: #0b141bd9; color: #d7e5dd; font-size: 13px; line-height: 1.2; text-align: center; }
.ortho-count-first { animation: ortho-count-first 10s step-end infinite; }
.ortho-count-second { position: absolute; inset: 7px 10px; opacity: 0; animation: ortho-count-second 10s step-end infinite; }
.project-card:hover .ortho-gallery *, .project-card:focus-visible .ortho-gallery * { animation-play-state: paused; }
.ortho-switch { display: flex; gap: 8px; flex-wrap: wrap; }
.ortho-choice { min-height: 40px; padding: 9px 14px; border: 1px solid var(--line); color: var(--ink); background: var(--panel); font: 14px var(--font); }
.ortho-choice[aria-pressed="true"] { border-color: var(--accent); background: var(--accent); color: #152015; }
@keyframes ortho-preview { 0%, 42%, 100% { opacity: 0; } 50%, 92% { opacity: 1; } }
@keyframes ortho-count-first { 0%, 100% { opacity: 1; } 50% { opacity: 0; } }
@keyframes ortho-count-second { 0%, 100% { opacity: 0; } 50% { opacity: 1; } }
@media (prefers-reduced-motion: reduce) { .ortho-gallery > .ortho-thumbnail-second, .ortho-count-second { opacity: 0; } .ortho-count-first { opacity: 1; } }

/* Volume examples: one image and its measurements, with no map sidebar. */
.volume-card-preview{display:grid;grid-template-columns:1fr 1fr;gap:2px}
.volume-card-preview>img{min-width:0;object-fit:cover;object-position:50% 50%}
.volume-card-count{position:absolute;bottom:16px;left:16px;background:#0b141be6;color:#eef3ed;padding:7px 11px;font-size:13px}
#product-viewer[data-viewer="volume"] #viewer-reset,#product-viewer[data-viewer="volume"] #product-readout{display:none}
#product-viewer[data-viewer="volume"] #product-viewport{background:var(--bg);overflow:auto;overscroll-behavior:contain}
.volume-switch{display:flex;gap:10px;flex-wrap:wrap}
.volume-choice{display:inline-flex;align-items:center;gap:10px;min-height:42px;padding:9px 16px;background:var(--panel);border:1px solid var(--line);color:var(--ink);font-size:14px}
.volume-choice:before{content:'';width:9px;height:9px;background:var(--volume-accent);border-radius:50%}
.volume-choice[aria-pressed="true"]{border-color:var(--volume-accent);box-shadow:inset 0 -2px var(--volume-accent)}
.volume-choice:hover{border-color:var(--volume-accent)}
.volume-figure{margin:0;background:#111}
.volume-figure img{display:block;width:100%;height:clamp(220px,43dvh,420px);object-fit:contain}
.volume-results{padding:22px 26px 26px}
.volume-total{display:flex;align-items:baseline;justify-content:space-between;gap:18px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:20px}
.volume-total>span{font-size:16px;color:var(--muted)}
.volume-total strong{font-family:var(--heading);font-size:clamp(26px,3.3vw,38px);font-weight:500;color:var(--volume-accent);letter-spacing:-.6px;white-space:nowrap}
.volume-total small,.volume-metrics small{font:inherit;font-size:.65em;margin-left:8px;color:var(--muted)}
.volume-metrics{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px;margin:0}
.volume-metrics dt{font-size:13px;color:var(--muted);margin-bottom:7px}
.volume-metrics dd{margin:0;font-size:18px;font-variant-numeric:tabular-nums;white-space:nowrap}
@media(max-width:900px){.volume-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:600px){.volume-results{padding:18px 16px 22px}.volume-figure img{height:auto;aspect-ratio:16/9}.volume-total{display:block}.volume-total strong{display:block;margin-top:10px;font-size:30px}.volume-metrics{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.volume-metrics dd{font-size:17px}}

[data-theme="light"] #product-viewport[data-volume="01"] .volume-total strong{color:#ae275a}
[data-theme="light"] #product-viewport[data-volume="03"] .volume-total strong{color:#906015}

[data-theme="light"] #product-viewport[data-volume="02"] .volume-total strong{color:#906015}

.cloud-class-legend[hidden]{display:none}
@media(max-width:600px){#product-viewer[data-viewer=cesium] .viewer-toolbar{flex-wrap:wrap}#product-viewer[data-viewer=cesium] .viewer-toolbar .viewer-control{flex:1 1 120px}}

.classified-card-preview>svg{display:block;width:100%;height:100%;transition:transform .5s}
.project-card:hover .classified-card-preview>svg{transform:scale(1.035)}
.thumbnail-credit{position:absolute;left:16px;bottom:12px;padding:4px 6px;background:#0b141bd9;color:#d7e5dd;font-size:11px;line-height:1.2;pointer-events:none}
