.m3d{margin:clamp(24px,2.6vw,36px) 0 0}.m3d__stage{aspect-ratio:16/9;border-radius:var(--pm-radius,24px);cursor:grab;touch-action:pan-y;-webkit-user-select:none;user-select:none;background:radial-gradient(90% 80% at 50% 30%,#fff 0%,#eef1f5 55%,#dfe4eb 100%);outline:none;position:relative;overflow:hidden}.m3d__stage:active{cursor:grabbing}.m3d__stage:focus-visible{box-shadow:inset 0 0 0 2px var(--color-accent)}.m3d__canvas{opacity:0;width:100%;height:100%;transition:opacity .6s;display:block;position:absolute;inset:0}.m3d__poster{object-fit:contain;pointer-events:none;-webkit-user-drag:none;user-select:none;width:100%;height:100%;transition:opacity .6s,visibility 0s linear .6s;position:absolute;inset:0}.m3d__canvas{-webkit-user-drag:none}.m3d[data-state=ready] .m3d__canvas{opacity:1}.m3d[data-state=ready] .m3d__poster{opacity:0;visibility:hidden}.m3d[data-state=loading] .m3d__stage:after{content:"";background:linear-gradient(90deg, transparent, var(--color-accent), transparent);background-repeat:no-repeat;background-size:40% 100%;height:2px;animation:1.2s linear infinite m3d-load;position:absolute;bottom:0;left:0;right:0}@keyframes m3d-load{0%{background-position:-40% 0}to{background-position:140% 0}}.m3d__tags{pointer-events:none;position:absolute;inset:0}.m3d__tag{transition:opacity .2s;position:absolute;top:0;left:0}.m3d[data-state=ready] .m3d__tag:not(.is-hidden){opacity:1}.m3d__tag,.m3d__tag.is-hidden{opacity:0}.m3d__tag i{background:var(--color-accent);color:#0000;border-radius:50%;width:10px;height:10px;font-size:0;font-style:normal;position:absolute;top:-5px;left:-5px;overflow:hidden;box-shadow:0 0 0 3px #ffffffd9,0 2px 6px #0f25504d}.m3d__tag b{color:var(--color-ink);white-space:nowrap;backdrop-filter:blur(6px);background:#ffffffeb;border-radius:999px;padding:4px 10px;font-size:12px;font-weight:600;position:absolute;bottom:8px;left:10px;box-shadow:0 4px 14px -6px #0f255059}.m3d__tag b:before{content:"";background:var(--color-accent);transform-origin:0;width:10px;height:1px;position:absolute;bottom:-4px;left:-6px;transform:rotate(-40deg)}.m3d__hint{color:var(--color-ink-muted);opacity:0;pointer-events:none;backdrop-filter:blur(6px);background:#ffffffd1;border-radius:999px;align-items:center;gap:6px;padding:6px 12px;font-size:12px;transition:opacity .3s;display:inline-flex;position:absolute;bottom:14px;left:16px}.m3d[data-state=ready] .m3d__hint{opacity:1}.m3d[data-touched] .m3d__hint{opacity:0}.m3d__reset{width:34px;height:34px;color:var(--color-ink);cursor:pointer;opacity:0;pointer-events:none;transition:opacity .3s ease, transform .3s var(--pm-ease,ease);background:#ffffffdb;border:0;border-radius:50%;place-items:center;display:grid;position:absolute;bottom:12px;right:14px;box-shadow:0 2px 10px -4px #0f255059}.m3d[data-touched][data-state=ready] .m3d__reset{opacity:1;pointer-events:auto}.m3d__reset:hover{transform:rotate(-30deg)}.m3d__cap{color:var(--color-ink-muted);flex-wrap:wrap;align-items:center;gap:6px 18px;margin-top:12px;font-size:13px;display:flex}.m3d__title{color:var(--color-ink)}.m3d__legend{gap:14px;display:inline-flex}.m3d__legend span{align-items:center;gap:6px;display:inline-flex}.m3d__legend i{border-radius:2px;width:14px;height:4px}.m3d__note{margin-left:auto;font-size:12px}.m3d__keys{display:none}@media (width<=760px){.m3d__stage{aspect-ratio:4/3;border-radius:20px}.m3d__note{margin-left:0}.m3d__tag b{display:none}.m3d__tag i{color:#fff;font-variant-numeric:tabular-nums;place-items:center;width:20px;height:20px;font-size:11px;font-weight:600;display:grid;top:-10px;left:-10px}.m3d__keys{counter-reset:m3d;width:100%;color:var(--color-ink);flex-wrap:wrap;gap:6px 14px;margin:2px 0 0;padding:0;list-style:none;display:flex}.m3d__keys li{counter-increment:m3d;align-items:center;gap:6px;display:inline-flex}.m3d__keys li:before{content:counter(m3d);background:var(--color-accent);color:#fff;border-radius:50%;place-items:center;width:18px;height:18px;font-size:11px;font-weight:600;display:grid}.m3d__hint{padding:5px 10px;bottom:10px;left:12px}}@media (prefers-reduced-motion:reduce){.m3d[data-state=loading] .m3d__stage:after{animation:none}}.pm-structure .m3d__cap{color:#ffffff9e}.pm-structure .m3d__title,.pm-structure .m3d__keys{color:#ffffffe6}
