#tiny-baby-3d-viewer{position:relative;width:100%;height:500px;min-height:400px;border-radius:20px;overflow:hidden;background:linear-gradient(160deg,#1f2924,#111a15);box-shadow:0 8px 30px #0003;border:1px solid rgba(255,255,255,.05);transition:box-shadow .3s ease}#tiny-baby-3d-viewer canvas{display:block;border-radius:20px}.viewer-loading{position:absolute;top:0;left:0;right:0;bottom:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:linear-gradient(160deg,#1f2924f2,#111a15f2);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);z-index:10}.viewer-loading .loading-spinner{width:48px;height:48px;border:3px solid rgba(255,255,255,.15);border-top-color:#c8952e;border-radius:50%;animation:spin .8s linear infinite;margin-bottom:1rem}.viewer-loading .loading-text{font-family:"Source Sans 3",sans-serif;font-size:.95rem;color:#fdf6ee;font-weight:600}.viewer-loading .loading-subtext{font-family:"Source Sans 3",sans-serif;font-size:.8rem;color:#9ca3af;margin-top:.25rem}.progress-track{width:180px;height:4px;background:#ffffff1a;border-radius:4px;margin-top:1rem;overflow:hidden}.progress-bar{height:100%;background:linear-gradient(90deg,#1a5632,#c8952e);border-radius:4px;transition:width .3s ease;width:0%}.viewer-controls{position:absolute;top:16px;right:16px;display:flex;flex-direction:column;gap:8px;z-index:20;opacity:0;transform:translate(10px);transition:all .3s ease}#tiny-baby-3d-viewer:hover .viewer-controls{opacity:1;transform:translate(0)}.viewer-controls button{width:42px;height:42px;border:none;border-radius:12px;background:#ffffff1a;color:#e5e7eb;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 2px 8px #0003;transition:all .2s ease;border:1px solid rgba(255,255,255,.1)}.viewer-controls button:hover{transform:scale(1.1);box-shadow:0 4px 12px #0000004d;background:#fff3}.viewer-controls button.active{background:#c8952ee6!important;color:#1a1a1a!important;border-color:#c8952e}#viewer-instructions{position:absolute;bottom:16px;left:16px;right:16px;text-align:center;font-family:"Source Sans 3",sans-serif;font-size:.8rem;color:#d1d5db;background:#0009;transform:translateY(10px);transition:all .3s ease;z-index:20;display:none}#tiny-baby-3d-viewer:hover #viewer-instructions{opacity:1;transform:translateY(0)}#tiny-baby-3d-viewer:fullscreen{background:#111a15;padding:20px;height:100vh}#tiny-baby-3d-viewer:fullscreen canvas{border-radius:0}#tiny-baby-3d-viewer:fullscreen .viewer-controls{opacity:1;top:30px;right:30px}#tiny-baby-3d-viewer:fullscreen #viewer-instructions{opacity:1;bottom:30px;left:30px;right:30px}@media (max-width: 768px){#tiny-baby-3d-viewer{height:380px;min-height:300px;border-radius:16px}.viewer-controls{opacity:1;transform:translate(0)}.viewer-controls button{width:36px;height:36px;font-size:.875rem}#viewer-instructions{opacity:1;transform:translateY(0);font-size:.7rem;padding:8px 12px}}.webgl-not-supported{display:flex;align-items:center;justify-content:center;height:100%;background:linear-gradient(160deg,#1a56320f,#c8952e0f);border-radius:20px}.webgl-not-supported .fallback-content{text-align:center;padding:2rem}.webgl-not-supported .fallback-content i{font-size:4rem;color:#1a5632;margin-bottom:1rem}.webgl-not-supported .fallback-content h4{font-family:"DM Serif Display",serif;font-size:1.25rem;font-weight:400;color:#1a1a1a;margin-bottom:.5rem}.webgl-not-supported .fallback-content p{color:#6b7280;margin-bottom:1rem}.webgl-not-supported .fallback-content .upgrade-notice{font-size:.875rem;color:#9ca3af;background:#fffc;padding:.75rem;border-radius:8px;margin-top:1rem}@keyframes modelFadeIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.model-loaded{animation:modelFadeIn .5s ease-out}#tiny-baby-3d-viewer:hover{box-shadow:0 12px 40px #1a56321f}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.viewer-section-wrapper{max-width:800px;margin:0 auto}.viewer-section-wrapper h2{text-align:center;margin-bottom:.5rem}.viewer-section-wrapper .viewer-subtitle{text-align:center;color:#6b7280;font-size:1.05rem;margin-bottom:var(--space-xl, 2rem)}
