@font-face{font-family:GT America Mono;src:url(/shielded/fonts/GTAmericaMono-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:GT America Mono;src:url(/shielded/fonts/GTAmericaMono-Bold.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/shielded/fonts/PPNouvelMontreal-Book.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/shielded/fonts/PPNouvelMontreal-Medium.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:PP Neue Montreal;src:url(/shielded/fonts/PPNouvelMontreal-Bold.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Unison Pro;src:url(/shielded/fonts/UnisonPro-BoldRound.woff2) format("woff2");font-weight:700;font-display:swap}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #0d0d0d;--surface: #141414;--surface-2: #1a1a1a;--border: #262626;--border-soft: rgba(250, 250, 250, .05);--orange: #c53400;--orange-bright: #FF4300;--orange-dim: rgba(197, 52, 0, .15);--orange-glow: rgba(255, 67, 0, .55);--text: #fafafa;--muted: rgba(250, 250, 250, .65);--faint: #616161;--muted-2: #3a3a3a;--error: #ff4d6d;--font-sans: "PP Neue Montreal", "Helvetica Neue", sans-serif;--font-display: "Unison Pro", "PP Neue Montreal", "Helvetica Neue", sans-serif;--font-mono: "GT America Mono", ui-monospace, "SFMono-Regular", monospace}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}.bg-video{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0;mix-blend-mode:luminosity;opacity:.35;pointer-events:none}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background-image:linear-gradient(rgba(255,122,0,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,122,0,.04) 1px,transparent 1px);background-size:48px 48px;pointer-events:none;z-index:1}body:after{content:"";position:fixed;top:0;right:0;bottom:0;left:0;background:radial-gradient(ellipse 70% 50% at 50% 50%,rgba(255,122,0,.06) 0%,transparent 70%);pointer-events:none;z-index:1}.app{position:relative;z-index:2;min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:2rem 1rem;gap:2.5rem}.header{text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem}.protocol-tag{font-family:var(--font-mono);font-size:.65rem;letter-spacing:.2em;color:var(--orange);text-transform:uppercase;opacity:.8;display:flex;align-items:center;gap:.5rem}.protocol-tag:before,.protocol-tag:after{content:"";display:block;width:24px;height:1px;background:var(--orange);opacity:.5}.title{font-family:var(--font-display);font-size:clamp(2.4rem,6.5vw,4rem);font-weight:800;letter-spacing:-.025em;color:var(--text);text-shadow:0 0 24px var(--orange-glow),0 0 60px rgba(255,67,0,.18);line-height:1;text-transform:uppercase}.title span{color:var(--orange)}.subtitle{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.15em;color:var(--muted);text-transform:uppercase}.main{width:100%;max-width:660px}.input-section{display:flex;flex-direction:column;gap:1rem}.input-bracket{position:relative;padding:2px}.input-bracket:before,.input-bracket:after,.input-bracket .bracket-br,.input-bracket .bracket-bl{content:"";position:absolute;width:14px;height:14px;border-color:var(--orange);border-style:solid;opacity:.7;z-index:2;transition:opacity .2s}.input-bracket:before{top:0;left:0;border-width:2px 0 0 2px}.input-bracket:after{top:0;right:0;border-width:2px 2px 0 0}.input-bracket .bracket-br{bottom:0;right:0;border-width:0 2px 2px 0}.input-bracket .bracket-bl{bottom:0;left:0;border-width:0 0 2px 2px}.input-bracket:focus-within:before,.input-bracket:focus-within:after,.input-bracket:focus-within .bracket-br,.input-bracket:focus-within .bracket-bl{opacity:1}.input-row{display:flex;align-items:center;background:var(--surface);border:1px solid var(--border);border-radius:2px;overflow:hidden;transition:border-color .2s,box-shadow .2s}.input-bracket:focus-within .input-row{border-color:#ff7a0066;box-shadow:0 0 12px #ff7a001f,inset 0 0 8px #ff7a000a}.at-sign{padding:0 .6rem 0 1rem;font-family:var(--font-mono);font-size:.95rem;color:var(--orange);-webkit-user-select:none;user-select:none;opacity:.7}.handle-input{flex:1;background:transparent;border:none;outline:none;color:var(--text);font-family:var(--font-mono);font-size:.95rem;padding:.9rem 0;caret-color:var(--orange)}.handle-input::placeholder{color:var(--muted-2)}.handle-input:disabled{opacity:.4}.generate-btn{background:var(--orange);color:#0c0a18;border:none;padding:0 1.4rem;align-self:stretch;font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:background .15s,box-shadow .15s;white-space:nowrap;min-width:96px}.generate-btn:hover:not(:disabled){background:var(--orange-bright);box-shadow:0 0 16px var(--orange-glow)}.generate-btn:disabled{opacity:.3;cursor:not-allowed}.status-row{display:flex;align-items:center;gap:.75rem;padding:.4rem .25rem}.status-text{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.08em;color:var(--orange);text-transform:uppercase;opacity:.8}.spinner{display:inline-block;width:14px;height:14px;border:1.5px solid rgba(255,122,0,.2);border-top-color:var(--orange);border-radius:50%;animation:spin .6s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.error-row{padding:.4rem .25rem}.error-text{font-family:var(--font-mono);font-size:.72rem;color:var(--error);letter-spacing:.05em}.error-text:before{content:"// ERR: ";opacity:.6}.result-section{display:flex;flex-direction:column;gap:1.25rem}.images-row{display:flex;gap:1.25rem}.image-col{display:flex;flex-direction:column;gap:.5rem;flex:1}.image-label{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}.result-img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:2px;border:1px solid var(--border);display:block}.result-img.generated{border-color:#ff7a0080;box-shadow:0 0 20px #ff7a0026,0 0 60px #ff7a000f}.action-row{display:flex;gap:.75rem}.download-btn{flex:1;background:var(--orange);color:#0c0a18;border:none;padding:.8rem 1.5rem;border-radius:2px;font-family:var(--font-mono);font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transition:background .15s,box-shadow .15s}.download-btn:hover{background:var(--orange-bright);box-shadow:0 0 20px var(--orange-glow)}.reset-btn{background:transparent;color:var(--muted);border:1px solid var(--muted-2);padding:.8rem 1.25rem;border-radius:2px;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;transition:color .15s,border-color .15s}.reset-btn:hover{color:var(--text);border-color:var(--muted)}.drop-zone{display:flex;align-items:center;justify-content:center;gap:.85rem;padding:1.5rem 1.25rem;background:var(--surface);border:1px dashed var(--border);border-radius:2px;cursor:pointer;transition:border-color .2s,background .2s,box-shadow .2s;text-align:center;margin-bottom:.85rem}.drop-zone:hover,.drop-zone.drag-over{border-color:#ff7a008c;background:#ff7a000a;box-shadow:inset 0 0 14px #ff7a0014}.drop-zone-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--orange);border-radius:2px;color:var(--orange);font-size:1rem;line-height:1;flex-shrink:0}.drop-zone-text{display:flex;flex-direction:column;gap:.2rem;text-align:left}.drop-zone-title{font-family:var(--font-sans);font-size:.95rem;color:var(--text);font-weight:500}.drop-zone-sub{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}.divider-row{display:flex;align-items:center;gap:.75rem;margin:0 0 .85rem}.divider-line{flex:1;height:1px;background:var(--border)}.divider-text{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.18em;color:var(--muted);text-transform:uppercase}.input-bracket.drag-over .input-row{border-color:#ff7a0080;box-shadow:0 0 16px #ff7a0033,inset 0 0 12px #ff7a0014}.upload-row{display:flex;align-items:center;gap:1rem;background:var(--surface);border:1px solid var(--border);border-radius:2px;padding:.75rem}.upload-thumb{width:56px;height:56px;object-fit:cover;border-radius:2px;border:1px solid rgba(255,122,0,.3);flex-shrink:0}.upload-meta{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.upload-name{font-family:var(--font-mono);font-size:.85rem;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upload-clear{align-self:flex-start;background:transparent;border:none;color:var(--muted);font-family:var(--font-mono);font-size:.62rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;padding:0;transition:color .15s}.upload-clear:hover:not(:disabled){color:var(--orange)}.upload-row .generate-btn{border-radius:2px;padding:0 1.25rem;height:56px}.offline-card{border:1px solid rgba(255,122,0,.18);padding:2rem 1.75rem;text-align:center;background:linear-gradient(135deg,#ff7a000a,#ff7a0000)}.offline-tag{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.18em;color:var(--orange);text-transform:uppercase;margin-bottom:1rem}.offline-text{color:var(--text);font-size:.95rem;line-height:1.55;margin-bottom:.75rem}.offline-sub{font-family:var(--font-mono);font-size:.72rem;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}.loading-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;background:#0c0a18eb;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);display:flex;align-items:center;justify-content:center;padding:1.5rem;animation:fadeIn .3s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.loading-card{width:100%;max-width:480px}.loading-brackets{position:relative;padding:2.5rem 2rem 2rem;background:linear-gradient(135deg,#ff7a000a,#ff7a0000);border:1px solid rgba(255,122,0,.18);border-radius:2px}.lb{position:absolute;width:18px;height:18px;border-color:var(--orange);border-style:solid}.lb.tl{top:-1px;left:-1px;border-width:2px 0 0 2px}.lb.tr{top:-1px;right:-1px;border-width:2px 2px 0 0}.lb.bl{bottom:-1px;left:-1px;border-width:0 0 2px 2px}.lb.br{bottom:-1px;right:-1px;border-width:0 2px 2px 0}.loading-inner{display:flex;flex-direction:column;align-items:center;gap:1.25rem}.loading-glyph{position:relative;width:96px;height:96px;display:flex;align-items:center;justify-content:center}.glyph-ring,.glyph-ring-2{position:absolute;border-radius:50%;border:1.5px solid var(--orange)}.glyph-ring{top:0;right:0;bottom:0;left:0;border-top-color:transparent;border-right-color:transparent;animation:spin 1.4s linear infinite;box-shadow:0 0 20px #ff7a0040}.glyph-ring-2{top:16px;right:16px;bottom:16px;left:16px;border-color:#ff7a0066;border-bottom-color:transparent;border-left-color:transparent;animation:spin 1.8s linear infinite reverse}.glyph-core{width:14px;height:14px;background:var(--orange);border-radius:50%;box-shadow:0 0 16px var(--orange),0 0 36px #ff7a0099;animation:pulse-core 1.4s ease-in-out infinite}@keyframes pulse-core{0%,to{transform:scale(1);opacity:1}50%{transform:scale(1.3);opacity:.7}}.loading-tag{font-family:var(--font-mono);font-size:.62rem;letter-spacing:.18em;color:var(--orange);text-transform:uppercase;opacity:.8}.loading-target{font-family:var(--font-mono);font-size:.95rem;color:var(--text);letter-spacing:.02em}.loading-message{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.05em;color:var(--text);text-align:center;min-height:1.2rem;animation:msgIn .4s ease-out}@keyframes msgIn{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.dot-anim{display:inline-block;color:var(--orange);animation:dot-blink 1.4s ease-in-out infinite}@keyframes dot-blink{0%,80%,to{opacity:.2}40%{opacity:1}}.loading-progress{width:100%;height:2px;background:#ff7a001a;border-radius:1px;overflow:hidden;position:relative}.loading-progress-bar{position:absolute;top:0;left:0;width:30%;height:100%;background:linear-gradient(90deg,transparent,var(--orange),transparent);box-shadow:0 0 12px var(--orange);animation:progress-slide 1.6s ease-in-out infinite}@keyframes progress-slide{0%{left:-30%}to{left:100%}}.loading-meta{width:100%;display:flex;justify-content:space-between;font-family:var(--font-mono);font-size:.58rem;letter-spacing:.12em;color:var(--muted);text-transform:uppercase;padding-top:.5rem;border-top:1px dashed rgba(255,122,0,.12)}@media (max-width: 480px){.images-row,.action-row{flex-direction:column}.title{font-size:2rem}}
