/* Source viewers: real mesh rotation, with identity and rights visible beside it. */
.milestone-model-library{
 --model-ink:#273f38;
 --model-accent:#335e52;
 --model-rule:#d6ddd0;
 margin:30px 0 42px;
 padding:28px 0 32px;
 border-top:1px solid var(--rule,#d8dccf);
 border-bottom:1px solid var(--rule,#d8dccf);
 color:var(--model-ink);
}
.model-library-heading-row{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.milestone-model-library h2{font:clamp(29px,3.1vw,42px)/1.12 Georgia,serif;margin:0;color:var(--model-ink);letter-spacing:-.025em}
.model-library-count{padding:7px 11px;border:1px solid var(--model-rule);border-radius:20px;font-size:11px;white-space:nowrap;color:#526557;background:#f8f8ef}
.model-intro{font-size:13px;line-height:1.75;color:var(--muted,#617064);max-width:830px;margin:14px 0 0}
.model-source-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:24px;margin-top:24px}
.model-source-card{border:1px solid var(--model-rule);border-radius:15px;padding:25px;background:#faf9f2;min-width:0;overflow:hidden}
.model-card-heading{position:static;display:block;padding:0 0 20px;margin:0;border:0;background:transparent;height:auto;box-shadow:none}
.model-source-card .model-source-label{font-size:10px;line-height:1.6;letter-spacing:1.35px;color:#72664c;font-weight:650;margin:0 0 8px}
.model-source-card h3{font:clamp(23px,2.4vw,31px)/1.2 Georgia,serif;margin:0 0 10px;color:var(--model-ink);overflow-wrap:anywhere}
.model-source-card a,.model-method-note a{color:var(--model-accent);text-underline-offset:3px;overflow-wrap:anywhere}
.model-source-card .model-source-credit{font-size:11px;line-height:1.8;color:#465e50;margin:0}
.model-source-card .model-upload-date{font-size:10px;line-height:1.6;color:var(--muted,#647164);margin:5px 0 0}
.model-card-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(220px,.75fr);gap:25px;align-items:start}
.model-presentation,.model-card-context{min-width:0}
.model-viewer-type{display:flex;align-items:center;gap:8px;margin:0 0 9px;font-size:11px;font-weight:600;color:#486151}
.model-viewer-icon{display:block;width:21px;height:21px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linejoin:round;stroke-linecap:round}
.model-local-stage,.model-external-stage{margin:0;border:1px solid #d5dccb;background:radial-gradient(ellipse at center,#f4f3e8,#e4e9dc);border-radius:10px;overflow:hidden}
.model-local-stage[hidden],.model-camera-controls[hidden],.model-external-placeholder[hidden],.model-embed-stage[hidden],.model-source-actions [hidden]{display:none!important}
.model-local-stage model-viewer{display:block;width:100%;height:430px;min-width:0;background:transparent}
.model-source-poster{display:block;width:100%;height:430px;object-fit:contain}
.model-source-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:14px}
.model-source-actions button{min-height:44px;cursor:pointer;padding:11px 17px;border:1px solid var(--model-accent);border-radius:7px;background:var(--model-accent);color:#fff;font-size:12px;font-weight:600;line-height:1.45;max-width:100%;overflow-wrap:anywhere}
.model-source-actions button:hover{background:#264c41;border-color:#264c41}
.model-source-actions button:disabled{opacity:.65;cursor:wait}
.model-source-actions a{font-size:11px;line-height:1.7}
.model-source-card button:focus-visible,.model-source-card summary:focus-visible,.model-source-card a:focus-visible{outline:3px solid #9d6d3b;outline-offset:4px}
.model-camera-controls{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}
.model-camera-controls button{border:1px solid #bdcbb8;padding:8px 11px;min-height:44px;background:#f7f8ed;border-radius:6px;color:#3b5c46;cursor:pointer;font-size:11px;line-height:1.4;max-width:100%}
.model-camera-controls button:hover{background:#e9efdf}
.model-source-card .model-embed-status{font-size:11px;line-height:1.75;color:#61705d;margin:10px 0 0;overflow-wrap:anywhere;min-height:20px}
.model-source-card[data-model-state="error"] .model-embed-status{color:#8a452e}
.model-identity-state{margin:30px 0 0;padding:18px 18px 17px;border:1px solid #dce1d3;border-radius:10px;background:#eff2e8}
.model-status-badge{display:inline-block;margin:0 0 12px;padding:5px 8px;border:1px solid #b4c5b1;border-radius:4px;background:#f8faf2;color:#496149;font-size:10px;font-weight:650;line-height:1.4}
.model-identity-state h4{font-size:14px;line-height:1.4;margin:0 0 9px;color:var(--model-ink)}
.model-identity-state p{font-size:12px;line-height:1.75;color:#5a6859;margin:0}
.model-identity-state .model-scale-note{font-size:11px;margin-top:10px}
.model-source-notes{border-top:1px solid #d9e0d1;margin-top:18px;padding-top:15px;font-size:11px;color:var(--muted,#617064);line-height:1.8;overflow-wrap:anywhere}
.model-source-notes summary{cursor:pointer;color:#415e49;min-height:32px;font-weight:600}
.model-source-notes p{margin:10px 0 0}
.model-external-placeholder{min-height:330px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:35px 24px;color:#45634f;background:linear-gradient(145deg,#edf1e6,#f7f6eb)}
.model-external-placeholder>.model-viewer-icon{width:58px;height:58px;margin-bottom:20px;stroke-width:1.25}
.model-external-title{font:24px/1.2 Georgia,serif;color:#36513f}
.model-external-placeholder p{font-size:12px;line-height:1.7;max-width:260px;margin:11px 0 0;color:#667360}
.model-embed-stage{margin:0;overflow:hidden;background:#e8eade}
.model-embed-stage iframe{display:block;width:100%;height:430px;border:0}
.model-method-note{margin:24px 0;padding:22px 25px;border:1px solid #d5dcc9;border-radius:10px;background:#f1f3e9}
.model-method-note h3{font:23px/1.3 Georgia,serif;margin:0 0 12px}
.model-method-note p{font-size:12px;line-height:1.8;color:var(--muted,#617064)}
.model-method-note>a{font-size:12px}
@media(max-width:960px){
 .model-card-layout{grid-template-columns:minmax(0,1.2fr) minmax(190px,.8fr);gap:20px}
 .model-source-card{padding:21px}
 .model-local-stage model-viewer,.model-source-poster,.model-embed-stage iframe{height:380px}
}
@media(max-width:760px){
 .milestone-model-library{margin:23px 0 32px;padding:23px 0}
 .model-library-heading-row{align-items:start}
 .milestone-model-library h2{font-size:32px}
 .model-library-count{font-size:10px;padding:6px 9px}
 .model-source-grid{gap:18px;margin-top:20px}
 .model-source-card{padding:17px;border-radius:11px}
 .model-card-heading{padding-bottom:17px}
 .model-source-card h3{font-size:25px}
 .model-card-layout{grid-template-columns:minmax(0,1fr);gap:17px}
 .model-local-stage model-viewer,.model-source-poster{height:350px}
 .model-embed-stage iframe{height:350px}
 .model-external-placeholder{min-height:270px;padding:25px 18px}
 .model-identity-state{margin-top:0;padding:15px}
 .model-source-actions{gap:9px}
 .model-source-actions button{font-size:12px}
 .model-camera-controls button{flex:1 1 calc(50% - 8px);font-size:11px}
 .model-method-note{padding:18px}
}
@media(max-width:380px){
 .model-library-heading-row{gap:9px}
 .model-library-count{white-space:normal}
 .model-local-stage model-viewer,.model-source-poster{height:300px}
 .model-source-actions button{width:100%}
}
