.m3d-main{position:relative;height:calc(100vh - 67px);height:calc(100dvh - 67px);min-height:420px}.m3d{color-scheme:dark;--text:#f3f1ec;--text-2:#c9c5bd;--text-3:#a7a29a;--line:rgba(243,241,236,0.1);--line-2:rgba(243,241,236,0.3);--green-text:#7fd87f;--glass:linear-gradient(155deg,rgba(62,59,56,0.72),rgba(24,23,22,0.8));--glass-edge:rgba(255,255,255,0.13);--glass-shadow:inset 0 1px 0 rgba(255,255,255,0.13),0 10px 30px rgba(0,0,0,0.32);position:absolute;inset:0;overflow:hidden;background:#1a1918;color:var(--text)}.m3d-loading{background:radial-gradient(120% 90% at 50% 30%,#3a3633,#1a1918)}.m3d-canvas{position:absolute;inset:0}.m3d-glass{background:var(--glass);-webkit-backdrop-filter:var(--blur);backdrop-filter:var(--blur);border:1px solid var(--glass-edge);box-shadow:var(--glass-shadow)}.m3d-controls{position:absolute;top:12px;left:12px;right:60px;z-index:2;display:flex;flex-wrap:wrap;gap:8px;align-items:flex-start;pointer-events:none}.m3d-controls>*{pointer-events:auto}.m3d-seg{display:inline-flex;padding:3px;border-radius:14px}.m3d-chip,.m3d-seg button{min-height:38px;padding:0 12px;border:0;border-radius:11px;background:transparent;color:var(--text-2);font-size:13.5px;font-weight:700;cursor:pointer;white-space:nowrap}.m3d-chip:hover,.m3d-seg button:hover{color:var(--text)}.m3d-seg button[aria-pressed=true]{background:rgba(243,241,236,.92);color:#1a1918}.m3d-chip{display:inline-flex;align-items:center;gap:8px;min-height:44px;border-radius:14px;padding:0 14px}.m3d-chip[aria-pressed=true]{color:var(--text);border-color:rgba(243,241,236,.55)}.m3d-slope-swatch{width:14px;height:14px;border-radius:4px;background:linear-gradient(135deg,var(--slope-27),var(--slope-30) 30%,var(--slope-35) 55%,var(--slope-40) 78%,var(--slope-45))}.m3d-legend{position:absolute;left:12px;bottom:44px;z-index:2;max-width:260px;padding:10px 12px;border-radius:14px;font-size:12.5px}.m3d-legend ul{display:flex;flex-wrap:wrap;gap:6px 10px;margin:0;padding:0;list-style:none}.m3d-legend li{display:flex;align-items:center;gap:5px}.m3d-legend i{width:12px;height:12px;border-radius:3px}.m3d-legend p{margin:8px 0 0;color:var(--text-2)}.m3d-status{position:absolute;left:50%;bottom:44px;z-index:2;transform:translateX(-50%);margin:0;padding:7px 12px;border-radius:999px;font-size:12.5px;color:var(--text-2);white-space:nowrap}.m3d-panel{position:absolute;z-index:3;left:8px;right:8px;bottom:8px;max-height:58%;overflow:auto;padding:18px 18px 16px;border-radius:var(--r-sheet)}@media (min-width:860px){.m3d-panel{left:auto;right:60px;top:12px;bottom:auto;width:360px;max-height:calc(100% - 60px)}}.m3d-panel h2{margin:4px 36px 12px 0;font-size:22px;font-weight:800;font-stretch:115%;letter-spacing:-.01em;line-height:1.15}.m3d-panel h3{margin:0 0 8px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-3)}.m3d-panel p{margin:8px 0 0;font-size:14px;line-height:1.5;color:var(--text-2)}.m3d-kicker{font-family:var(--mono);font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-2)}.m3d-close{position:absolute;top:10px;right:10px;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:12px;background:transparent;color:var(--text-2);cursor:pointer}.m3d-close:hover{background:rgba(243,241,236,.08);color:var(--text)}.m3d-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(90px,1fr));grid-gap:10px;gap:10px;margin:0}.m3d-stats div{padding:10px 12px;border-radius:12px;background:rgba(0,0,0,.22)}.m3d-stats dt{font-size:11.5px;color:var(--text-3)}.m3d-stats dd{margin:2px 0 0;font-size:16px;font-weight:700}.m3d-terrain{margin-top:16px}.m3d-ates{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:3px;gap:3px;padding:3px;border-radius:12px;background:rgba(0,0,0,.25)}.m3d-ates span{padding:7px 4px;border-radius:9px;text-align:center;font-size:12.5px;font-weight:700;color:var(--text-3)}.m3d-ates span.on{background:var(--text);color:#1a1918}.m3d-panel .m3d-fine{font-size:12.5px;color:var(--text-3)}.m3d-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.m3d .btn{border-color:var(--line-2);color:var(--text)}.m3d .btn-primary{color:var(--on-green)}.m3d-fallback{display:grid;place-items:center;padding:20px;background:radial-gradient(120% 90% at 50% 20%,#3a3633,#1a1918) 50% /cover,url(/img/concept-slope-3d.webp) 50% /cover}.m3d-fallback-card{max-width:460px;padding:24px;border-radius:var(--r-sheet)}.m3d-fallback-card h2{margin:0;font-size:22px;font-weight:800}.m3d-fallback-card p{margin:10px 0 0;color:var(--text-2)}.m3d .mapboxgl-ctrl-top-right{top:4px;right:4px}.m3d .mapboxgl-ctrl-attrib.mapboxgl-compact{font-size:11px}.m3d .mapboxgl-user-location-dot,.m3d .mapboxgl-user-location-dot:before{background-color:var(--violet)}.m3d .mapboxgl-user-location-accuracy-circle{background-color:rgba(138,77,255,.18)}.m3d .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.m3d .mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-bottom-color:var(--violet)}@media (max-width:560px){.m3d-controls{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;padding-bottom:4px}.m3d-controls::-webkit-scrollbar{display:none}.m3d-legend,.m3d-status{bottom:40px}}.m3d-locked{display:grid;place-items:center;padding:20px;overflow:auto}.m3d-teaser{position:absolute;inset:-24px;background:url(/img/concept-slope-3d.webp) 50%/cover no-repeat,#1a1918;filter:blur(10px) saturate(115%) brightness(.7);transform:scale(1.04)}.m3d-concept{position:absolute;right:12px;bottom:10px;z-index:1;font-family:var(--mono);font-size:11px;color:rgba(243,241,236,.7)}.m3d-locked .m3d-fallback-card{position:relative;z-index:1;width:100%}.m3d-locked .m3d-fallback-card h2{margin-top:6px}.m3d-pro{color:var(--violet-text,#b08cff)}.m3d-fallback-card .m3d-fine{font-size:13px;color:var(--text-3)}.m3d-fallback-card .m3d-fine a{color:var(--text)}.m3d-form{display:grid;grid-gap:10px;gap:10px;margin-top:14px}.m3d-form label{display:grid;grid-gap:4px;gap:4px;font-size:13px;color:var(--text-2)}.m3d-form input{min-height:46px;padding:0 14px;border-radius:var(--r-control);border:1px solid var(--line-2);background:rgba(0,0,0,.3);color:var(--text);font-size:16px}.m3d-form .btn{justify-self:start}.m3d-error{margin:0;font-size:13.5px;color:var(--text);font-weight:600}.m3d-link{min-height:44px;padding:0 4px;border:0;background:none;color:var(--text);font-size:13px;text-decoration:underline;cursor:pointer}