.oa3d-viewer{--oa3d-accent: #e8590c;--oa3d-accent-deep: #c2410c;--oa3d-on-accent: #ffffff;--oa3d-surface: #ffffff;--oa3d-surface-sunken: #f3f1ee;--oa3d-border: #e2ded8;--oa3d-text: #1f1d1a;--oa3d-text-muted: #6b665f;--oa3d-shadow: rgb(31 29 26 / .18);--oa3d-radius: 16px;--oa3d-font: inherit;display:flex;flex-direction:column;align-items:center;gap:8px;width:100%;font-family:var(--oa3d-font);color:var(--oa3d-text)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .oa3d-viewer{--oa3d-surface: #1f1f23;--oa3d-surface-sunken: #141417;--oa3d-border: #34343b;--oa3d-text: #f2f0ed;--oa3d-text-muted: #a5a29d;--oa3d-shadow: rgb(0 0 0 / .5)}}[data-theme=dark] .oa3d-viewer{--oa3d-surface: #1f1f23;--oa3d-surface-sunken: #141417;--oa3d-border: #34343b;--oa3d-text: #f2f0ed;--oa3d-text-muted: #a5a29d;--oa3d-shadow: rgb(0 0 0 / .5)}.oa3d-viewer button{font-family:inherit}.oa3d-viewer :focus-visible{outline:2px solid var(--oa3d-accent);outline-offset:2px}.oa3d-sex-toggle{position:relative;display:inline-grid;grid-template-columns:1fr 1fr;padding:3px;border-radius:999px;background:var(--oa3d-surface-sunken);border:1px solid var(--oa3d-border)}.oa3d-sex-option{position:relative;z-index:1;min-width:84px;height:30px;padding:0 14px;border:none;border-radius:999px;background:transparent;color:var(--oa3d-text-muted);font-size:13px;font-weight:600;cursor:pointer;transition:color .2s}.oa3d-sex-option-on{color:var(--oa3d-on-accent)}.oa3d-sex-thumb{position:absolute;top:3px;bottom:3px;left:3px;width:calc(50% - 3px);border-radius:999px;background:var(--oa3d-accent);box-shadow:0 2px 6px color-mix(in srgb,var(--oa3d-accent-deep) 35%,transparent);transition:transform .22s cubic-bezier(.4,0,.2,1)}.oa3d-sex-thumb-right{transform:translate(100%)}.oa3d-layers{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}.oa3d-layer{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:999px;border:1px solid var(--oa3d-border);background:var(--oa3d-surface);color:var(--oa3d-text-muted);font-size:12px;font-weight:600;cursor:pointer;transition:background-color .15s,color .15s,border-color .15s}.oa3d-layer:hover{border-color:var(--oa3d-accent)}.oa3d-layer-on{color:var(--oa3d-text);border-color:color-mix(in srgb,var(--oa3d-accent) 50%,transparent);background:color-mix(in srgb,var(--oa3d-accent) 12%,var(--oa3d-surface))}.oa3d-swatch{width:10px;height:10px;border-radius:50%;opacity:.35}.oa3d-layer-on .oa3d-swatch{opacity:1}.oa3d-swatch-skin{background:#e9b596}.oa3d-swatch-muscles{background:#b5463d}.oa3d-swatch-skeleton{background:#d9ccb0}.oa3d-swatch-joints{background:#ff9a3c}.oa3d-swatch-organs{background:#c96f5d}.oa3d-swatch-vessels{background:linear-gradient(90deg,#c0392b 50%,#2e6db4 50%)}.oa3d-swatch-nerves{background:#f2c14e}.oa3d-canvas{position:relative;width:100%;aspect-ratio:1 / 1.08;min-height:460px;border-radius:var(--oa3d-radius);overflow:hidden;background:radial-gradient(ellipse at 50% 42%,var(--oa3d-surface) 0%,var(--oa3d-surface-sunken) 100%)}.oa3d-canvas canvas{cursor:grab;touch-action:none}.oa3d-canvas canvas:active{cursor:grabbing}.oa3d-canvas-pointer canvas{cursor:pointer}.oa3d-callout-layer{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.oa3d-callout-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;overflow:visible}.oa3d-callout-svg polyline,.oa3d-callout-svg circle{transition:opacity .15s}.oa3d-callout-line-active polyline{stroke-width:2.5}.oa3d-callout-card{position:absolute;left:0;top:0;display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:9px 12px;border-radius:12px;border:1px solid var(--oa3d-border);border-left-width:4px;background:var(--oa3d-surface);box-shadow:0 8px 22px -8px var(--oa3d-shadow);cursor:pointer;text-align:left;pointer-events:auto;transition:opacity .15s,box-shadow .15s;will-change:transform}.oa3d-callout-title{font-size:12px;font-weight:700}.oa3d-callout-subtitle{font-size:11px;font-weight:600;color:var(--oa3d-text-muted)}.oa3d-callout-items{font-size:12.5px;line-height:1.35;color:var(--oa3d-text)}.oa3d-hover-tag{position:absolute;top:12px;left:50%;transform:translate(-50%);display:flex;flex-direction:column;align-items:center;padding:6px 14px;border-radius:10px;background:color-mix(in srgb,var(--oa3d-text) 88%,transparent);color:var(--oa3d-surface);pointer-events:none;white-space:nowrap}.oa3d-hover-name{font-size:13px;font-weight:700}.oa3d-hover-hint{font-size:11px;opacity:.75}.oa3d-zoom,.oa3d-reset{position:absolute;bottom:14px;height:34px;border-radius:999px;border:none;background:var(--oa3d-surface);box-shadow:0 2px 8px var(--oa3d-shadow);color:var(--oa3d-text);font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center}.oa3d-zoom{width:34px;font-size:18px}.oa3d-zoom-out{left:50%;margin-left:-80px}.oa3d-zoom-in{left:50%;margin-left:46px}.oa3d-reset{left:50%;transform:translate(-50%);padding:0 14px;font-size:12px}.oa3d-zoom:hover,.oa3d-reset:hover{background:var(--oa3d-surface-sunken)}.oa3d-rotate{position:relative;width:220px;height:40px}.oa3d-rotate-svg{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;pointer-events:none;stroke:var(--oa3d-border)}.oa3d-rotate-handle{position:absolute;transform:translate(-50%,-50%);width:34px;height:34px;border-radius:50%;border:none;background:var(--oa3d-accent);color:var(--oa3d-on-accent);display:flex;align-items:center;justify-content:center;cursor:ew-resize;touch-action:none;box-shadow:0 2px 8px color-mix(in srgb,var(--oa3d-accent-deep) 35%,transparent)}.oa3d-rotate-handle:hover,.oa3d-rotate-handle-active{background:var(--oa3d-accent-deep)}.oa3d-rotate-icon{width:16px;height:16px}.oa3d-loading{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;pointer-events:none}.oa3d-loading-bar{width:160px;height:4px;border-radius:999px;background:var(--oa3d-border);overflow:hidden}.oa3d-loading-bar>span{display:block;height:100%;background:var(--oa3d-accent);transition:width .2s}.oa3d-loading-text{font-size:13px;color:var(--oa3d-text-muted)}:root{--bg: #f6f4f1;--surface: #ffffff;--sunken: #f1eeea;--border: #e6e1da;--text: #1f1d1a;--muted: #6b665f;--accent: #e8590c;--accent-deep: #c2410c;--accent-tint: #fdeee4;--code-bg: #1f1d1a;--code-text: #f4efe8;color-scheme:light}@media (prefers-color-scheme: dark){:root{--bg: #111113;--surface: #1b1b1f;--sunken: #141417;--border: #2e2e35;--text: #f2f0ed;--muted: #a5a29d;--accent-tint: #3a2216;--code-bg: #0b0b0d;color-scheme:dark}}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:Plus Jakarta Sans,system-ui,sans-serif;-webkit-font-smoothing:antialiased}code,pre{font-family:JetBrains Mono,ui-monospace,monospace;font-variant-ligatures:none}.page{max-width:1240px;margin:0 auto;padding:20px 24px 40px}.top{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.brand{display:flex;align-items:center;gap:12px}.logo{width:42px;height:42px;border-radius:13px;background:var(--accent-tint);display:grid;place-items:center;align-content:center;gap:2px}.logo span:first-child{width:10px;height:10px;border-radius:50%;background:var(--accent)}.logo span:last-child{width:14px;height:16px;border-radius:7px;background:var(--accent)}.brand h1{margin:0;font-size:20px;font-weight:800;letter-spacing:-.02em}.brand p{margin:2px 0 0;font-size:13px;color:var(--muted)}.links{display:flex;gap:8px}.links a{height:38px;padding:0 16px;display:inline-flex;align-items:center;border-radius:10px;border:1px solid var(--border);background:var(--surface);color:var(--text);font-size:14px;font-weight:600;text-decoration:none}.links a:hover{border-color:var(--accent)}.links a.primary{background:var(--accent);border-color:var(--accent);color:#fff}.links a.primary:hover{background:var(--accent-deep)}.layout{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:20px;align-items:start}.stage{padding:18px;border-radius:22px;background:var(--surface);border:1px solid var(--border)}.hint{margin:6px 0 0;text-align:center;font-size:12px;color:var(--muted)}.side{display:flex;flex-direction:column;gap:14px;position:sticky;top:16px}.card{padding:16px 18px;border-radius:18px;background:var(--surface);border:1px solid var(--border)}.stats{display:grid;grid-template-columns:repeat(3,1fr);text-align:center}.stats div+div{border-left:1px solid var(--border)}.stats strong{display:block;font-size:22px;font-weight:800}.stats span{font-size:12px;color:var(--muted)}.selected .eyebrow{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.selected h2{margin:2px 0 10px;font-size:20px;font-weight:800;letter-spacing:-.01em}.selected dl{margin:0 0 14px;display:grid;gap:6px}.selected dl div{display:flex;justify-content:space-between;font-size:13px}.selected dt{color:var(--muted)}.selected dd{margin:0;font-weight:600;text-transform:capitalize}.selected code{font-size:12px;padding:1px 6px;border-radius:6px;background:var(--sunken);text-transform:none}.btn{width:100%;height:38px;border:none;border-radius:10px;background:var(--accent-tint);color:var(--accent-deep);font:inherit;font-size:14px;font-weight:700;cursor:pointer}.btn:hover{background:var(--accent);color:#fff}@media (prefers-color-scheme: dark){.btn{color:#ffb68a}}.browseHead{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.browseHead h3{margin:0;font-size:15px}.link{border:none;background:none;padding:0;color:var(--accent);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.search{width:100%;height:38px;padding:0 12px;border-radius:10px;border:1px solid var(--border);background:var(--sunken);color:var(--text);font:inherit;font-size:14px}.search:focus{outline:2px solid var(--accent);outline-offset:1px}.list{margin-top:10px;max-height:46vh;overflow-y:auto;padding-right:4px}.list h4{position:sticky;top:0;margin:10px 0 4px;padding:4px 0;background:var(--surface);font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.list h4 span{font-weight:600;opacity:.7}.list ul{list-style:none;margin:0;padding:0}.list li button{width:100%;display:flex;align-items:center;gap:8px;padding:6px 8px;border:none;border-radius:8px;background:none;color:var(--text);font:inherit;font-size:13.5px;text-align:left;cursor:pointer}.list li button:hover{background:var(--sunken)}.list li button.on{background:var(--accent-tint);font-weight:700}.dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;box-shadow:inset 0 0 0 1px #0000001f}.empty{font-size:13px;color:var(--muted)}.install{margin-top:20px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.3fr);gap:24px;align-items:center;padding:24px;border-radius:22px;background:var(--surface);border:1px solid var(--border)}.install h3{margin:0 0 8px;font-size:20px;font-weight:800}.install p{margin:0;font-size:14px;line-height:1.6;color:var(--muted)}.install p code{font-size:12.5px;color:var(--text);background:var(--sunken);padding:1px 6px;border-radius:6px}.install>*{min-width:0}.code{position:relative;border-radius:14px;background:var(--code-bg);overflow:hidden}.code pre{margin:0;padding:18px 20px;overflow-x:auto;font-size:12.5px;line-height:1.6;color:var(--code-text)}.copy{position:absolute;top:10px;right:10px;height:28px;padding:0 12px;border:1px solid rgb(255 255 255 / .2);border-radius:8px;background:#ffffff14;color:#fff;font:inherit;font-size:12px;font-weight:600;cursor:pointer}.foot{margin-top:22px;text-align:center;font-size:12px;color:var(--muted);line-height:1.6}.foot p{margin:0}@media (max-width: 900px){.layout,.install{grid-template-columns:1fr}.side{position:static}}@media (max-width: 520px){.page{padding:16px 16px 32px}.links a:not(.primary){display:none}.stage{padding:10px}.code pre{padding-top:46px}.brand p{display:none}.oa3d-canvas{min-height:380px}}
