:root{font-family:DM Mono,Courier New,monospace;line-height:1.5;font-weight:400;--forge-gold: #e8a849;--forge-amber: #d4912a;--forge-ember: #c27820;--forge-cyan: #5ce0d8;--forge-surface: rgba(12, 11, 15, .92);--forge-surface-light: rgba(30, 28, 36, .85);--forge-border: rgba(232, 168, 73, .18);--forge-border-hover: rgba(232, 168, 73, .45);--forge-text: rgba(255, 248, 235, .87);--forge-text-dim: rgba(255, 248, 235, .45);--forge-text-muted: rgba(255, 248, 235, .28);--forge-glow: rgba(232, 168, 73, .15);--forge-glow-strong: rgba(232, 168, 73, .35);color-scheme:dark;color:var(--forge-text);background-color:#0a090d;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;overflow:hidden}#root{width:100vw;height:100vh}h1,h2,h3{line-height:1.2}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;cursor:pointer;transition:border-color .25s}.crosshair-container{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:2;pointer-events:none}.crosshair{position:absolute;top:50%;left:50%;width:2px;height:2px;transform:translate(-50%,-50%);background:transparent}.crosshair:before,.crosshair:after{content:"";position:absolute;background:#fff;opacity:.85}.crosshair:before{width:16px;height:1px;top:50%;left:50%;transform:translate(-50%,-50%)}.crosshair:after{width:1px;height:16px;top:50%;left:50%;transform:translate(-50%,-50%)}.hold-ring{position:absolute;top:50%;left:50%;width:52px;height:52px;transform:translate(-50%,-50%);filter:drop-shadow(0 0 6px rgba(255,255,255,.4));animation:hold-ring-fade-in .3s ease-out}@keyframes hold-ring-fade-in{0%{opacity:0;transform:translate(-50%,-50%) scale(.85)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}.hold-ring circle:first-child{stroke:#ffffff4d}.hold-ring circle:last-child{stroke:#fff}.floating-panel{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:10;width:92%;max-width:580px;max-height:88vh;overflow-y:auto;background:var(--forge-surface);-webkit-backdrop-filter:blur(40px) saturate(1.2);backdrop-filter:blur(40px) saturate(1.2);border:1px solid var(--forge-border);border-radius:2px;padding:0;box-shadow:0 0 0 1px #e8a8490f,0 1px 80px #000000b3,0 0 120px -20px var(--forge-glow),inset 0 1px #fff8eb0a;animation:panel-materialize .4s cubic-bezier(.16,1,.3,1)}@keyframes panel-materialize{0%{opacity:0;transform:translate(-50%,-50%) scale(.96);filter:blur(8px)}to{opacity:1;transform:translate(-50%,-50%) scale(1);filter:blur(0)}}.floating-panel:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,var(--forge-amber) 20%,var(--forge-gold) 50%,var(--forge-amber) 80%,transparent 100%);opacity:.6}.panel-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem 1rem;border-bottom:1px solid rgba(232,168,73,.08)}.panel-header h1{font-family:Syne,sans-serif;font-size:1.1rem;font-weight:700;margin:0;letter-spacing:.06em;text-transform:uppercase;color:var(--forge-gold);text-shadow:0 0 20px var(--forge-glow)}.panel-header-badge{display:inline-flex;align-items:center;gap:.4rem}.panel-header-badge:before{content:"";display:inline-block;width:6px;height:6px;background:var(--forge-gold);border-radius:1px;transform:rotate(45deg);box-shadow:0 0 8px var(--forge-glow-strong);animation:badge-pulse 3s ease-in-out infinite}@keyframes badge-pulse{0%,to{opacity:.6;box-shadow:0 0 6px var(--forge-glow)}50%{opacity:1;box-shadow:0 0 14px var(--forge-glow-strong)}}.panel-close{background:transparent;border:1px solid var(--forge-border);color:var(--forge-text-dim);font-size:1.2rem;width:32px;height:32px;border-radius:2px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:all .2s}.panel-close:hover{background:#e8a84914;border-color:var(--forge-border-hover);color:var(--forge-gold)}.panel-form{display:flex;flex-direction:column;gap:.75rem;padding:1.25rem 1.5rem}.panel-form-label{font-family:Syne,sans-serif;font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.14em;color:var(--forge-text-muted);margin-bottom:-.25rem}.panel-form textarea{background:#fff8eb08;border:1px solid var(--forge-border);border-radius:2px;color:var(--forge-text);padding:.85rem 1rem;font-family:DM Mono,monospace;font-size:.85rem;line-height:1.6;resize:vertical;transition:border-color .25s,box-shadow .25s}.panel-form textarea::placeholder{color:var(--forge-text-muted);font-style:italic}.panel-form textarea:focus{outline:none;border-color:var(--forge-border-hover);box-shadow:0 0 0 3px var(--forge-glow),inset 0 0 20px #e8a84908}.prompt-char-count{font-size:.65rem;color:var(--forge-text-muted);text-align:right;margin-top:-.4rem;font-variant-numeric:tabular-nums}.magenta-toggle{display:flex;align-items:center;gap:.5rem;font-size:.85rem;color:#fffc;cursor:pointer;margin-bottom:.5rem}.magenta-toggle input[type=checkbox]{accent-color:#ff00ff;width:16px;height:16px;cursor:pointer}.magenta-toggle-hint{color:#fff6;font-size:.75rem}.generate-btn{position:relative;background:transparent;border:1px solid var(--forge-gold);color:var(--forge-gold);padding:.75rem 1.5rem;border-radius:2px;font-family:Syne,sans-serif;font-size:.8rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:all .3s;overflow:hidden}.generate-btn:before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,var(--forge-gold),var(--forge-ember));opacity:0;transition:opacity .3s}.generate-btn:hover:not(:disabled){box-shadow:0 0 30px var(--forge-glow),0 0 60px #e8a84914}.generate-btn:hover:not(:disabled):before{opacity:1}.generate-btn:hover:not(:disabled) .generate-btn-text{color:#0a090d}.generate-btn-text{position:relative;z-index:1;transition:color .3s}.generate-btn:disabled{opacity:.35;cursor:not-allowed}.generate-btn:active:not(:disabled){transform:scale(.98)}.ref-images-section{margin-top:-.25rem}.ref-images-grid{display:flex;gap:.5rem;flex-wrap:wrap}.ref-image-thumb{position:relative;width:64px;height:64px;border-radius:3px;overflow:hidden;border:1px solid var(--forge-border)}.ref-image-thumb img{width:100%;height:100%;object-fit:cover;display:block}.ref-image-remove{position:absolute;top:2px;right:2px;width:18px;height:18px;border:none;border-radius:50%;background:#000000b3;color:#fff;font-size:12px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;transition:background .2s}.ref-image-remove:hover{background:#c83232e6}.ref-image-add{width:64px;height:64px;border:1px dashed var(--forge-border);border-radius:3px;background:transparent;color:var(--forge-text-muted);font-size:1.5rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s,color .2s}.ref-image-add:hover{border-color:var(--forge-border-hover);color:var(--forge-text)}.loading-canvas{position:relative;width:calc(100% - 3rem);margin:0 1.5rem 1rem;aspect-ratio:4 / 3;border-radius:2px;overflow:hidden;background:#0c0b0ffa;border:1px solid var(--forge-border);display:flex;flex-direction:column;align-items:center;justify-content:center;animation:canvas-fadein .5s cubic-bezier(.16,1,.3,1)}@keyframes canvas-fadein{0%{opacity:0;transform:scale(.97)}to{opacity:1;transform:scale(1)}}.loading-aurora{position:absolute;inset:-30%;background:radial-gradient(ellipse 70% 50% at 25% 40%,rgba(232,168,73,.2),transparent),radial-gradient(ellipse 50% 70% at 75% 30%,rgba(92,224,216,.12),transparent),radial-gradient(ellipse 60% 40% at 50% 80%,rgba(210,145,42,.08),transparent);animation:aurora-drift 8s ease-in-out infinite alternate;pointer-events:none}@keyframes aurora-drift{0%{transform:translate(0) scale(1) rotate(0);opacity:.4}50%{transform:translate(4%,-2%) scale(1.06) rotate(1.5deg);opacity:.9}to{transform:translate(-2%,3%) scale(1.01) rotate(-1deg);opacity:.5}}.loading-scan{position:absolute;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(232,168,73,.25) 15%,var(--forge-gold) 50%,rgba(232,168,73,.25) 85%,transparent 100%);box-shadow:0 0 12px 2px #e8a84933,0 0 40px 4px #e8a8490f;animation:scan-sweep 3.2s ease-in-out infinite;pointer-events:none}@keyframes scan-sweep{0%{top:-2px;opacity:0}5%{opacity:1}92%{opacity:1}to{top:100%;opacity:0}}.loading-corner{position:absolute;width:20px;height:20px;pointer-events:none;opacity:.35;animation:corner-pulse 4s ease-in-out infinite}.loading-corner:before,.loading-corner:after{content:"";position:absolute;background:var(--forge-gold)}.loading-corner-tl{top:12px;left:12px}.loading-corner-tl:before{top:0;left:0;width:20px;height:1px}.loading-corner-tl:after{top:0;left:0;width:1px;height:20px}.loading-corner-tr{top:12px;right:12px}.loading-corner-tr:before{top:0;right:0;width:20px;height:1px}.loading-corner-tr:after{top:0;right:0;width:1px;height:20px}.loading-corner-bl{bottom:12px;left:12px}.loading-corner-bl:before{bottom:0;left:0;width:20px;height:1px}.loading-corner-bl:after{bottom:0;left:0;width:1px;height:20px}.loading-corner-br{bottom:12px;right:12px}.loading-corner-br:before{bottom:0;right:0;width:20px;height:1px}.loading-corner-br:after{bottom:0;right:0;width:1px;height:20px}@keyframes corner-pulse{0%,to{opacity:.2}50%{opacity:.6}}.loading-center{position:relative;width:64px;height:64px;z-index:1}.loading-ring{position:absolute;inset:0;border:1px solid transparent;border-top-color:var(--forge-gold);border-right-color:#e8a84926;border-radius:50%;animation:ring-orbit 2.8s cubic-bezier(.4,0,.2,1) infinite}.loading-ring-inner{inset:14px;border-top-color:var(--forge-cyan);border-right-color:#5ce0d81a;animation-duration:3.8s;animation-direction:reverse}@keyframes ring-orbit{to{transform:rotate(360deg)}}.loading-pulse{position:absolute;inset:22px;border-radius:50%;background:radial-gradient(circle,rgba(232,168,73,.4) 0%,rgba(232,168,73,.08) 70%,transparent 100%);animation:core-breathe 2.8s ease-in-out infinite}@keyframes core-breathe{0%,to{transform:scale(.65);opacity:.3;box-shadow:0 0 10px var(--forge-glow)}50%{transform:scale(1.2);opacity:1;box-shadow:0 0 24px var(--forge-glow-strong),0 0 50px var(--forge-glow)}}.loading-text{position:relative;z-index:1;margin-top:1.5rem;font-family:Syne,sans-serif;font-size:.7rem;font-weight:600;color:var(--forge-text-dim);letter-spacing:.25em;text-transform:uppercase}.loading-dot{opacity:0;animation:dot-blink 1.5s ease-in-out infinite;color:var(--forge-gold)}@keyframes dot-blink{0%,to{opacity:0}30%,70%{opacity:1}}.panel-error{color:#e87461;background:#e874610f;border:1px solid rgba(232,116,97,.15);border-left:2px solid #e87461;border-radius:2px;padding:.6rem 1rem;margin:0 1.5rem 1rem;font-size:.82rem}.panel-result{padding:0 1.5rem 1.5rem}.panel-result h2{font-family:Syne,sans-serif;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;margin-bottom:.75rem;color:var(--forge-text-dim)}.panel-result img{max-width:100%;height:auto;border-radius:2px;border:1px solid var(--forge-border);display:block;transition:box-shadow .3s}.panel-result img:hover{box-shadow:0 0 40px var(--forge-glow)}.result-actions{display:flex;gap:.5rem;margin-top:.85rem}.accept-btn{flex:1;background:transparent;border:1px solid var(--forge-cyan);color:var(--forge-cyan);padding:.65rem 1rem;border-radius:2px;font-family:Syne,sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .25s}.accept-btn:hover{background:#5ce0d81a;box-shadow:0 0 24px #5ce0d826}.recycle-btn{flex:1;background:transparent;border:1px solid var(--forge-border);color:var(--forge-text-dim);padding:.65rem 1rem;border-radius:2px;font-family:Syne,sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .25s}.recycle-btn:hover:not(:disabled){border-color:var(--forge-border-hover);color:var(--forge-text)}.recycle-btn:disabled{opacity:.3;cursor:not-allowed}.panel-gallery{border-top:1px solid rgba(232,168,73,.08);padding:1.25rem 1.5rem 1.5rem}.panel-gallery-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}.panel-gallery h2{font-family:Syne,sans-serif;font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.12em;color:var(--forge-text-dim);margin:0}.gallery-count{font-size:.6rem;color:var(--forge-text-muted);font-variant-numeric:tabular-nums}.gallery-search{width:100%;background:#fff8eb08;border:1px solid var(--forge-border);border-radius:2px;color:var(--forge-text);padding:.55rem .75rem;font-family:DM Mono,monospace;font-size:.8rem;margin:.6rem 0 .75rem;transition:border-color .25s,box-shadow .25s;box-sizing:border-box}.gallery-search::placeholder{color:var(--forge-text-muted);font-style:italic}.gallery-search:focus{outline:none;border-color:var(--forge-border-hover);box-shadow:0 0 0 3px var(--forge-glow),inset 0 0 20px #e8a84908}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:.6rem}.gallery-item{position:relative;background:#fff8eb05;border:1px solid rgba(232,168,73,.08);border-radius:2px;padding:.4rem;transition:all .3s cubic-bezier(.16,1,.3,1);overflow:hidden}.gallery-item:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 50%,rgba(12,11,15,.85) 100%);opacity:0;transition:opacity .3s;pointer-events:none}.gallery-item-clickable{cursor:pointer}.gallery-item-clickable:hover{border-color:var(--forge-border-hover);background:#e8a8490a;box-shadow:0 0 20px var(--forge-glow);transform:translateY(-2px)}.gallery-item-clickable:hover:after{opacity:1}.gallery-item-clickable:active{transform:translateY(-1px) scale(.98)}.gallery-item img{width:100%;height:auto;display:block;border-radius:1px}.gallery-item p{font-size:.6rem;color:var(--forge-text-muted);margin:.35rem 0 0}.gallery-item-title{font-size:.65rem!important;color:var(--forge-text-dim)!important;margin:.35rem 0 0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.4}.gallery-item-img-wrapper{position:relative}.gallery-remix-btn{position:absolute;bottom:6px;right:6px;width:28px;height:28px;border:1px solid var(--forge-border);border-radius:3px;background:#0c0b0fd9;color:var(--forge-gold);font-size:.85rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .2s,width .2s,background .2s;overflow:hidden;white-space:nowrap;z-index:2}.gallery-item:hover .gallery-remix-btn{opacity:1}.gallery-remix-label{display:none;font-family:Syne,sans-serif;font-size:.6rem;letter-spacing:.08em;text-transform:uppercase;margin-left:2px}.gallery-remix-btn:hover{width:64px;background:#e8a84926;border-color:var(--forge-gold)}.gallery-remix-btn:hover .gallery-remix-label{display:inline}.gallery-remix-btn:active{transform:scale(.95)}.floating-panel::-webkit-scrollbar{width:4px}.floating-panel::-webkit-scrollbar-track{background:transparent}.floating-panel::-webkit-scrollbar-thumb{background:#e8a8491f;border-radius:2px}.floating-panel::-webkit-scrollbar-thumb:hover{background:#e8a84940}.controls-guide{position:fixed;bottom:1.5rem;right:1.5rem;z-index:5;background:var(--forge-surface);-webkit-backdrop-filter:blur(20px) saturate(1.1);backdrop-filter:blur(20px) saturate(1.1);border:1px solid var(--forge-border);border-radius:2px;padding:0;pointer-events:none;display:flex;flex-direction:column;overflow:hidden;animation:hud-appear .6s cubic-bezier(.16,1,.3,1) .3s both;box-shadow:0 0 40px #0006,0 0 80px -10px var(--forge-glow)}@keyframes hud-appear{0%{opacity:0;transform:translateY(12px);filter:blur(4px)}to{opacity:1;transform:translateY(0);filter:blur(0)}}.controls-guide:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent,var(--forge-gold) 30%,var(--forge-gold) 70%,transparent);opacity:.5}.controls-guide-title{font-family:Syne,sans-serif;font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--forge-gold);padding:.6rem 1rem .4rem;text-shadow:0 0 12px var(--forge-glow);display:flex;align-items:center;gap:.4rem}.controls-guide-title:before{content:"";display:inline-block;width:4px;height:4px;background:var(--forge-gold);border-radius:1px;transform:rotate(45deg);box-shadow:0 0 6px var(--forge-glow-strong)}.controls-guide-body{display:flex;flex-direction:column;gap:0;padding:.1rem 0 .3rem}.controls-guide-row{display:flex;align-items:center;gap:.35rem;font-size:.72rem;color:var(--forge-text-dim);padding:.3rem 1rem;transition:background .15s}.controls-guide-row:hover{background:#e8a84908}.controls-guide-row-label{margin-left:.15rem;font-size:.7rem}.controls-guide kbd{display:inline-flex;align-items:center;justify-content:center;min-width:1.4rem;height:1.35rem;background:#e8a8490f;border:1px solid rgba(232,168,73,.12);border-bottom-width:2px;border-radius:3px;padding:0 .3rem;font-family:DM Mono,monospace;font-size:.65rem;font-weight:500;color:var(--forge-text-dim);line-height:1}.controls-guide-divider{height:1px;background:var(--forge-border);margin:.2rem 1rem}.controls-guide-action{color:var(--forge-gold)!important;padding-top:.35rem;padding-bottom:.45rem}.controls-guide-action .controls-guide-row-label{font-weight:600;font-family:Syne,sans-serif;letter-spacing:.04em}.kbd-highlight{background:#e8a84933!important;border-color:#e8a84966!important;color:var(--forge-gold)!important;font-weight:700;box-shadow:0 0 8px var(--forge-glow)}.debug-overlay{position:fixed;top:1rem;left:1rem;z-index:20;background:#000000bf;border:1px solid rgba(232,168,73,.3);border-radius:6px;padding:.5rem .75rem;font-family:JetBrains Mono,Fira Code,monospace;font-size:.75rem;color:var(--forge-text);pointer-events:none;min-width:140px}.debug-overlay-title{font-family:Syne,sans-serif;font-size:.55rem;font-weight:700;text-transform:uppercase;letter-spacing:.2em;color:var(--forge-gold);margin-bottom:.35rem}.debug-overlay-row{display:flex;justify-content:space-between;padding:.1rem 0}.debug-overlay-label{color:var(--forge-text-dim)}.debug-overlay-value{color:var(--forge-text);font-weight:600}.selection-mode-overlay{position:fixed;bottom:2rem;left:50%;transform:translate(-50%);z-index:10;display:flex;flex-direction:column;align-items:center;gap:.65rem;animation:hud-appear .4s cubic-bezier(.16,1,.3,1)}.transform-mode-buttons{display:flex;gap:.35rem}.transform-btn{background:var(--forge-surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--forge-border);color:var(--forge-text-dim);padding:.5rem 1rem;border-radius:2px;font-family:Syne,sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:all .25s;display:flex;align-items:center;gap:.4rem}.transform-btn kbd{display:inline-flex;align-items:center;justify-content:center;min-width:1.2rem;height:1.15rem;background:#e8a8490d;border:1px solid rgba(232,168,73,.1);border-radius:2px;padding:0 .25rem;font-family:DM Mono,monospace;font-size:.6rem;color:var(--forge-text-muted);line-height:1}.transform-btn:hover{border-color:var(--forge-border-hover);color:var(--forge-text)}.transform-btn.active{background:#e8a8491f;border-color:var(--forge-gold);color:var(--forge-gold);box-shadow:0 0 20px var(--forge-glow)}.transform-btn.active kbd{background:#e8a84926;border-color:#e8a84959;color:var(--forge-gold)}.action-buttons-row{display:flex;gap:.35rem}.snap-ground-btn,.billboard-btn{background:var(--forge-surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--forge-border);color:var(--forge-text-dim);padding:.5rem 1.25rem;border-radius:2px;font-family:Syne,sans-serif;font-size:.75rem;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:all .25s}.snap-ground-btn:hover,.billboard-btn:hover{border-color:var(--forge-border-hover);color:var(--forge-text)}.snap-ground-btn:active{transform:scale(.97)}.billboard-btn.active{background:#5ce0d81a;border-color:var(--forge-cyan);color:var(--forge-cyan);box-shadow:0 0 16px #5ce0d81f}.snap-rotation-row{display:flex;align-items:center;gap:.3rem}.snap-rotation-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.08em;color:var(--forge-text-dim);margin-right:.15rem}.snap-rotation-btn{background:var(--forge-surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--forge-border);color:var(--forge-text-dim);padding:.3rem .55rem;border-radius:6px;font-size:.7rem;cursor:pointer;transition:all .25s}.snap-rotation-btn:hover{border-color:var(--forge-border-hover);color:var(--forge-text)}.snap-rotation-btn:active{transform:scale(.95)}.accept-placement-btn{background:transparent;border:1px solid var(--forge-cyan);color:var(--forge-cyan);padding:.65rem 2.5rem;border-radius:2px;font-family:Syne,sans-serif;font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .3s;box-shadow:0 0 20px #5ce0d81a}.accept-placement-btn:hover{background:#5ce0d81a;box-shadow:0 0 30px #5ce0d833}.accept-placement-btn:active{transform:scale(.97)}.duplicate-object-btn{background:transparent;border:1px solid #a78bfa;color:#a78bfa;padding:.5rem 2rem;border-radius:2px;font-family:Syne,sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .3s;box-shadow:0 0 20px #a78bfa1a}.duplicate-object-btn:hover{background:#a78bfa26;box-shadow:0 0 30px #a78bfa40}.duplicate-object-btn:active{transform:scale(.97)}.remove-object-btn{background:transparent;border:1px solid #ff4d6a;color:#ff4d6a;padding:.5rem 2rem;border-radius:2px;font-family:Syne,sans-serif;font-size:.7rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:all .3s;box-shadow:0 0 20px #ff4d6a1a}.remove-object-btn:hover{background:#ff4d6a26;box-shadow:0 0 30px #ff4d6a40}.remove-object-btn:active{transform:scale(.97)}.selection-hint{font-family:DM Mono,monospace;font-size:.65rem;color:var(--forge-text-muted);display:flex;align-items:center;gap:.3rem}.selection-hint kbd{display:inline-flex;align-items:center;justify-content:center;min-width:1.2rem;height:1.15rem;background:#e8a8490d;border:1px solid rgba(232,168,73,.1);border-radius:2px;padding:0 .25rem;font-family:DM Mono,monospace;font-size:.6rem;color:var(--forge-text-muted);line-height:1}.panel-toggle{position:fixed;bottom:2rem;right:2rem;z-index:10;background:var(--forge-surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--forge-border);color:var(--forge-gold);padding:.7rem 1.4rem;border-radius:2px;font-family:Syne,sans-serif;font-size:.8rem;font-weight:600;letter-spacing:.06em;cursor:pointer;box-shadow:0 0 30px var(--forge-glow);transition:all .25s}.panel-toggle:hover{border-color:var(--forge-border-hover);box-shadow:0 0 40px var(--forge-glow-strong)}.dialog-editor{background:var(--forge-surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--forge-border);border-radius:4px;padding:.75rem;width:340px;max-height:320px;display:flex;flex-direction:column;gap:.5rem;animation:hud-appear .3s cubic-bezier(.16,1,.3,1)}.dialog-editor-header{display:flex;justify-content:space-between;align-items:center}.dialog-editor-title{font-family:Syne,sans-serif;font-size:.75rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--forge-gold)}.dialog-editor-count{font-family:DM Mono,monospace;font-size:.65rem;color:var(--forge-text-muted)}.dialog-editor-entries{display:flex;flex-direction:column;gap:.4rem;overflow-y:auto;max-height:200px;scrollbar-width:thin;scrollbar-color:rgba(232,168,73,.2) transparent}.dialog-entry{display:flex;align-items:flex-start;gap:.4rem}.dialog-entry-number{font-family:DM Mono,monospace;font-size:.65rem;color:var(--forge-text-muted);min-width:1.2rem;text-align:right;padding-top:.45rem;flex-shrink:0}.dialog-entry-text{flex:1;background:#ffffff0a;border:1px solid var(--forge-border);border-radius:2px;color:var(--forge-text);font-family:DM Sans,sans-serif;font-size:.78rem;padding:.35rem .5rem;resize:vertical;min-height:2.2rem;line-height:1.4;transition:border-color .2s}.dialog-entry-text:focus{outline:none;border-color:var(--forge-border-hover);box-shadow:0 0 0 2px var(--forge-glow)}.dialog-entry-text::placeholder{color:var(--forge-text-muted)}.dialog-entry-content{flex:1;display:flex;flex-direction:column;gap:.25rem}.dialog-entry-content .dialog-entry-text{width:100%}.dialog-set-camera-btn{background:#ffffff0a;border:1px solid var(--forge-border);border-radius:2px;color:var(--forge-text-muted);font-family:DM Mono,monospace;font-size:.6rem;padding:.2rem .4rem;cursor:pointer;transition:all .2s;align-self:flex-start}.dialog-set-camera-btn:hover{border-color:var(--forge-border-hover);color:var(--forge-text)}.dialog-set-camera-btn.has-camera{background:#5ce0d814;border-color:var(--forge-cyan);color:var(--forge-cyan)}.dialog-clear-camera-btn{background:none;border:none;color:var(--forge-text-muted);font-size:.7rem;cursor:pointer;padding:.1rem .3rem;align-self:flex-start;transition:color .2s}.dialog-clear-camera-btn:hover{color:#ff6b6b}.dialog-entry-remove{background:none;border:1px solid transparent;color:var(--forge-text-muted);font-size:1rem;cursor:pointer;padding:.2rem .35rem;border-radius:2px;line-height:1;flex-shrink:0;transition:all .2s}.dialog-entry-remove:hover:not(:disabled){color:#ff6b6b;border-color:#ff6b6b4d;background:#ff6b6b14}.dialog-entry-remove:disabled{opacity:.2;cursor:default}.dialog-editor-actions{display:flex;gap:.35rem}.dialog-end-sound{display:flex;align-items:center;gap:.5rem;padding:.35rem 0}.dialog-end-sound select{flex:1;background:var(--forge-surface);border:1px solid var(--forge-border);color:var(--forge-text-dim);padding:.3rem .5rem;border-radius:2px;font-family:Syne,sans-serif;font-size:.7rem;cursor:pointer}.dialog-add-btn,.dialog-save-btn{flex:1;background:var(--forge-surface);border:1px solid var(--forge-border);color:var(--forge-text-dim);padding:.4rem .75rem;border-radius:2px;font-family:Syne,sans-serif;font-size:.7rem;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:all .25s}.dialog-add-btn:hover,.dialog-save-btn:hover{border-color:var(--forge-border-hover);color:var(--forge-text)}.dialog-save-btn{background:#e8a84914;border-color:#e8a8494d;color:var(--forge-gold)}.dialog-save-btn:hover{background:#e8a84926;border-color:var(--forge-gold);box-shadow:0 0 12px var(--forge-glow)}.character-radius-row{display:flex;align-items:center;gap:.5rem}.radius-slider{flex:1;-webkit-appearance:none;appearance:none;height:4px;background:var(--forge-border);border-radius:2px;outline:none;cursor:pointer}.radius-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--forge-gold);cursor:pointer;box-shadow:0 0 8px var(--forge-glow)}.radius-slider::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--forge-gold);border:none;cursor:pointer;box-shadow:0 0 8px var(--forge-glow)}.radius-value{font-family:DM Mono,monospace;font-size:.7rem;color:var(--forge-text-dim);min-width:2rem;text-align:right}.dialog-playback-overlay{position:fixed;bottom:0;left:0;right:0;z-index:20;display:flex;justify-content:center;padding:2rem;pointer-events:none;animation:hud-appear .35s cubic-bezier(.16,1,.3,1)}.dialog-card{background:var(--forge-surface);-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);border:1px solid var(--forge-border);border-radius:6px;padding:1.25rem 1.5rem;max-width:600px;width:100%;pointer-events:auto;box-shadow:0 8px 32px #00000080,0 0 60px -10px var(--forge-glow),inset 0 1px #fff8eb0a}.dialog-card-text{font-family:DM Sans,sans-serif;font-size:1.05rem;line-height:1.6;color:var(--forge-text);margin-bottom:.75rem}.dialog-card-footer{display:flex;justify-content:space-between;align-items:center}.dialog-card-progress{font-family:DM Mono,monospace;font-size:.7rem;color:var(--forge-gold);letter-spacing:.05em}.dialog-card-hint{font-family:Syne,sans-serif;font-size:.68rem;color:var(--forge-text-muted);letter-spacing:.04em;animation:dialog-hint-pulse 2s ease-in-out infinite}@keyframes dialog-hint-pulse{0%,to{opacity:.4}50%{opacity:.8}}.speaking-gallery{background:var(--forge-surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--forge-border);border-radius:4px;padding:.75rem;width:340px;max-height:320px;display:flex;flex-direction:column;gap:.5rem;animation:hud-appear .3s cubic-bezier(.16,1,.3,1)}.speaking-preview{display:flex;justify-content:center;padding:.25rem}.speaking-preview img{max-width:80px;max-height:80px;border-radius:3px;border:1px solid var(--forge-gold);object-fit:contain}.speaking-gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(60px,1fr));gap:.35rem;overflow-y:auto;max-height:180px;scrollbar-width:thin;scrollbar-color:rgba(232,168,73,.2) transparent}.speaking-gallery-item{cursor:pointer;border-radius:3px;border:2px solid transparent;overflow:hidden;transition:border-color .15s;aspect-ratio:1}.speaking-gallery-item:hover{border-color:var(--forge-border-hover)}.speaking-gallery-item.selected{border-color:var(--forge-gold)}.speaking-gallery-item img{width:100%;height:100%;object-fit:cover;display:block}.scene-loading-overlay{position:fixed;inset:0;z-index:9999;background:#faf9f7;display:flex;align-items:center;justify-content:center;transition:opacity 2.5s cubic-bezier(.4,0,.2,1),visibility 0s linear 2.5s}.scene-loading-overlay.fade-out{opacity:0;visibility:hidden;pointer-events:none}.scene-loading-content{display:flex;flex-direction:column;align-items:center;gap:0}.scene-loading-logo{width:240px;height:240px;object-fit:contain;margin-bottom:-10px;opacity:0;animation:sl-fade-up .8s cubic-bezier(.16,1,.3,1) .1s forwards}.scene-loading-title{font-family:"Instrument Serif",Georgia,serif;font-size:1.6rem;font-weight:400;font-style:italic;color:#2a2926;letter-spacing:.01em;opacity:0;animation:sl-fade-up .7s cubic-bezier(.16,1,.3,1) .5s forwards}.scene-loading-subtitle{margin-top:.6rem;font-family:DM Mono,monospace;font-size:.6rem;font-weight:400;color:#a8a39b;letter-spacing:.18em;text-transform:uppercase;opacity:0;animation:sl-fade-up .7s cubic-bezier(.16,1,.3,1) .65s forwards}.scene-loading-bar-container{margin:.5rem 0;width:120px;height:3px;background:#e8e5e0;border-radius:2px;overflow:hidden;opacity:0;animation:sl-fade-up .7s cubic-bezier(.16,1,.3,1) .9s forwards}.scene-loading-bar{height:100%;background:#a8a39b;border-radius:2px;width:0%;animation:sl-fake-progress 12s cubic-bezier(.1,.4,.2,.8) 1.2s forwards}.scene-loading-bar.complete{animation:sl-fill-complete .4s cubic-bezier(.16,1,.3,1) forwards}@keyframes sl-fill-complete{to{width:100%}}@keyframes sl-fake-progress{0%{width:0%}20%{width:25%}50%{width:50%}80%{width:70%}to{width:85%}}@keyframes sl-fade-up{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes sl-rule-expand{0%{opacity:0;transform:scaleX(0)}to{opacity:1;transform:scaleX(1)}}.click-to-start-overlay{position:fixed;inset:0;z-index:9998;display:flex;align-items:center;justify-content:center;cursor:pointer}.click-to-start-text{margin-top:80px;font-family:DM Mono,monospace;font-size:.85rem;font-weight:400;color:#a8a39b;letter-spacing:.18em;text-transform:uppercase;opacity:0;animation:cts-pulse 2.5s cubic-bezier(.4,0,.2,1) 2s infinite}@keyframes cts-pulse{0%,to{opacity:.4}50%{opacity:1}}.virtual-joystick{position:fixed;bottom:2rem;left:2rem;width:120px;height:120px;border-radius:50%;background:#ffffff0f;border:1px solid rgba(255,255,255,.15);z-index:15;touch-action:none;-webkit-user-select:none;user-select:none}.virtual-joystick-stick{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:48px;height:48px;border-radius:50%;background:#fff3;border:1px solid rgba(255,255,255,.35);box-shadow:0 0 12px #ffffff1a;pointer-events:none}.mobile-creator-btn{position:fixed;bottom:2rem;right:2rem;width:56px;height:56px;border-radius:50%;background:var(--forge-surface);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid var(--forge-gold);color:var(--forge-gold);font-size:1.6rem;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:15;box-shadow:0 0 20px var(--forge-glow),0 4px 16px #0006;transition:all .25s;touch-action:manipulation;-webkit-user-select:none;user-select:none}.mobile-creator-btn:active{transform:scale(.92);box-shadow:0 0 30px var(--forge-glow-strong)}.mobile-creator-btn-icon{font-family:Syne,sans-serif;font-weight:700;line-height:1}.pause-overlay{position:fixed;inset:0;z-index:9000;display:flex;align-items:center;justify-content:center;background:#050408bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);cursor:pointer;animation:pause-fade-in .2s ease-out}@keyframes pause-fade-in{0%{opacity:0}to{opacity:1}}.pause-card{display:flex;flex-direction:column;align-items:center;gap:.75rem;padding:2rem 2.5rem;background:var(--forge-surface);border:1px solid var(--forge-border);border-radius:16px;box-shadow:0 0 60px -10px var(--forge-glow),0 8px 32px #00000080;pointer-events:auto;animation:pause-card-in .3s ease-out;min-width:240px}@keyframes pause-card-in{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.pause-social-links{display:flex;gap:1rem;align-items:center;justify-content:center}.pause-social-link{display:flex;align-items:center;justify-content:center;width:2.2rem;height:2.2rem;border-radius:50%;background:#e8a84914;border:1px solid var(--forge-border);color:var(--forge-text-dim);transition:all .2s ease;text-decoration:none}.pause-social-link:hover{color:var(--forge-gold);background:#e8a8492e;border-color:var(--forge-gold);box-shadow:0 0 12px var(--forge-glow);transform:translateY(-2px)}.pause-social-link svg{width:1rem;height:1rem}.pause-divider{width:100%;height:1px;background:var(--forge-border)}.pause-resume-btn{width:100%;padding:.65rem 1.5rem;font-family:Syne,sans-serif;font-size:1rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--forge-bg);background:var(--forge-gold);border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;text-shadow:none}.pause-resume-btn:hover{background:var(--forge-gold-bright, #f0c060);box-shadow:0 0 20px var(--forge-glow-strong);transform:translateY(-1px)}.pause-resume-btn:active{transform:translateY(0)}.pause-controls-title{font-family:DM Mono,monospace;font-size:.7rem;color:var(--forge-text-dim);letter-spacing:.15em;text-transform:uppercase}.pause-controls{display:flex;flex-direction:column;gap:0;width:100%}.pause-controls-row{display:flex;align-items:center;gap:.35rem;padding:.25rem .5rem;font-size:.7rem;color:var(--forge-text-dim)}.pause-controls-row span{margin-left:.15rem;font-size:.7rem}.pause-controls-row kbd{display:inline-flex;align-items:center;justify-content:center;min-width:1.4em;padding:.1em .4em;font-family:DM Mono,monospace;font-size:.6rem;font-weight:500;color:var(--forge-text-dim);background:#e8a8490f;border:1px solid var(--forge-border);border-radius:4px;line-height:1.4}@media(pointer:coarse)and (max-width:1024px){.crosshair-container{pointer-events:none}.selection-mode-overlay{bottom:1rem;max-width:100vw;padding:0 .5rem}.action-buttons-row,.snap-rotation-row{flex-wrap:wrap;justify-content:center}.transform-btn,.snap-ground-btn,.billboard-btn{padding:.5rem .75rem;font-size:.7rem}.transform-btn kbd,.selection-hint{display:none}.dialog-card{padding:1rem}.dialog-card-text{font-size:.95rem}.floating-panel{width:96%;max-height:85vh}}
