@font-face{font-family:Ronzino;font-weight:400;font-style:normal;src:url(/fonts/Ronzino-Regular.otf)format("opentype")}@font-face{font-family:Ronzino;font-weight:500;font-style:normal;src:url(/fonts/Ronzino-Medium.otf)format("opentype")}@font-face{font-family:Ronzino;font-weight:500;font-style:italic;src:url(/fonts/Ronzino-MediumOblique.otf)format("opentype")}@font-face{font-family:Ronzino;font-weight:700;font-style:normal;src:url(/fonts/Ronzino-Bold.otf)format("opentype")}:root{--bg:#050505;--bg-chat:#0a0a0a;--surface:#111;--surface-raised:#181818;--surface-hover:#1c1c1c;--border:#f0f8ff14;--border-focus:#f0f8ff33;--border-subtle:#f0f8ff0a;--text-primary:#f0f8ff;--text-secondary:#f0f8ff8c;--text-muted:#f0f8ff40;--text-dim:#f0f8ff1f;--accent:#f0f8ff;--accent-dim:#f0f8ff14;--accent-glow:#f0f8ff0f;--own-msg-bg:#f0f8ff0f;--own-msg-border:#f0f8ff1a;--own-msg-glow:#f0f8ff05;--recv-msg-bg:#f0f8ff08;--recv-msg-border:#f0f8ff14;--recv-msg-glow:#f0f8ff03;--red:#dc2626;--red-dim:#dc26261f;--red-border:#dc26264d;--amber:#d97706;--amber-dim:#d977061a;--amber-border:#d9770640;--green:#22c55e;--green-dim:#22c55e1a;--gate-stroke:#f0f8ff;--strength-weak:#9b2c2c;--strength-fair:#c27803;--strength-good:#c27803;--strength-strong:#f0f8ff;--font-hero:"Ronzino", Georgia, serif;--font-body:"Inter", -apple-system, system-ui, sans-serif;--font-mono:"Ronzino", Georgia, serif;--ease-out:cubic-bezier(.4, 0, .2, 1);--ease-in-out:cubic-bezier(.4, 0, .6, 1);--radius:4px}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{background:var(--bg);width:100%;height:100%;color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}button{cursor:pointer;font-family:var(--font-body)}input,textarea{font-family:var(--font-body)}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#f0f8ff14;border-radius:2px}@supports (padding:env(safe-area-inset-bottom)){#root{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}.entry-screen{z-index:100;background:var(--bg);transition:opacity .6s var(--ease-out);flex-direction:column;justify-content:center;align-items:center;padding:60px 24px;display:flex;position:fixed;inset:0;overflow-y:auto}.entry-screen.exiting{opacity:0;pointer-events:none}.gate-wrap{flex-direction:column;align-items:center;width:100%;max-width:420px;padding:0;display:flex;position:relative}.wordmark{font-family:var(--font-hero);letter-spacing:.38em;text-transform:uppercase;color:var(--text-primary);opacity:0;animation:fadeUp .8s var(--ease-out) 1.8s forwards;text-indent:.38em;margin-bottom:6px;font-size:2.4rem;font-weight:700}.subtitle{font-family:var(--font-body);letter-spacing:.22em;color:var(--text-muted);text-transform:lowercase;white-space:nowrap;opacity:0;animation:fadeUp .8s var(--ease-out) 2s forwards;margin-bottom:52px;font-size:.7rem;font-weight:300}.gate-container{opacity:0;width:100%;max-width:340px;animation:fadeIn .6s var(--ease-out) .2s forwards;margin-bottom:36px;position:relative}.gate-svg-wrap{filter:brightness(.35);width:100%;transition:filter .6s var(--ease-out);position:relative}.gate-svg-wrap.glow-weak{filter:brightness(.45)drop-shadow(0 0 6px #f0f8ff08)}.gate-svg-wrap.glow-fair{filter:brightness(.6)drop-shadow(0 0 14px #f0f8ff0f)}.gate-svg-wrap.glow-good{filter:brightness(.78)drop-shadow(0 0 24px #f0f8ff1a)}.gate-svg-wrap.glow-strong{filter:brightness()drop-shadow(0 0 40px #f0f8ff29)drop-shadow(0 0 80px #f0f8ff0f)}.gate-svg{width:100%;height:auto;display:block}.gate-svg .draw-path{stroke-dasharray:var(--path-len,1000);stroke-dashoffset:var(--path-len,1000);animation:drawStroke 2s var(--ease-in-out) var(--draw-delay,0s) forwards}@keyframes drawStroke{to{stroke-dashoffset:0}}.gate-door-left,.gate-door-right{transition:transform .9s var(--ease-out);transform-origin:50%}.gate-container.opening .gate-door-left{opacity:0;transition:transform .9s var(--ease-out), opacity .6s var(--ease-out) .3s;transform:translate(-55%)}.gate-container.opening .gate-door-right{opacity:0;transition:transform .9s var(--ease-out), opacity .6s var(--ease-out) .3s;transform:translate(55%)}.gate-container.opening .gate-arch{opacity:0;transition:opacity .8s var(--ease-out) .2s}.entry-form{opacity:0;width:100%;max-width:340px;animation:fadeUp .8s var(--ease-out) 2.2s forwards;flex-direction:column;gap:8px;display:flex}.input-float-label{background:var(--bg);font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);z-index:1;pointer-events:none;padding:0 6px;font-size:.55rem;position:absolute;top:-7px;left:12px}.input-wrap{position:relative}.password-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-primary);font-family:var(--font-mono);letter-spacing:.04em;-webkit-appearance:none;outline:none;padding:14px 48px 14px 16px;font-size:.875rem;transition:border-color .3s,box-shadow .3s}.password-input::placeholder{color:var(--text-muted);font-family:var(--font-body);letter-spacing:.06em;font-size:.8rem;font-weight:300}.password-input:focus{border-color:var(--border-focus);box-shadow:0 0 0 1px #f0f8ff0f}.input-wrap.error .password-input{border-color:var(--red);animation:.4s shake}.toggle-vis{color:var(--text-muted);cursor:pointer;line-height:1;font-family:var(--font-mono);letter-spacing:.1em;background:0 0;border:none;padding:4px;font-size:.6rem;transition:color .2s;position:absolute;top:50%;right:12px;transform:translateY(-50%)}.toggle-vis:hover{color:var(--text-secondary)}.strength-bar{background:var(--accent-dim);border-radius:1px;width:100%;height:2px;margin-top:-4px;overflow:hidden}.strength-fill{width:0%;height:100%;transition:width .4s var(--ease-out), background-color .4s;background:var(--text-muted);border-radius:1px}.strength-fill.weak{background:var(--strength-weak)}.strength-fill.fair{background:var(--strength-fair)}.strength-fill.good{background:var(--strength-good)}.strength-fill.strong{background:var(--strength-strong)}.strength-label{font-family:var(--font-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--text-muted);text-align:right;height:16px;font-size:.625rem;line-height:16px;transition:color .3s}.error-msg{font-family:var(--font-body);color:var(--red);letter-spacing:.02em;opacity:0;height:0;font-size:.7rem;transition:opacity .2s,height .2s;overflow:hidden}.error-msg.visible{opacity:1;height:18px}.enter-btn{border:1px solid var(--border);border-radius:var(--radius);width:100%;color:var(--text-muted);font-family:var(--font-hero);letter-spacing:.28em;text-transform:uppercase;cursor:not-allowed;transition:all .3s var(--ease-out);text-indent:.28em;background:0 0;margin-top:4px;padding:13px 24px;font-size:.75rem;font-weight:500;position:relative;overflow:hidden}.enter-btn.enabled{border-color:var(--accent);color:var(--text-primary);cursor:pointer}.enter-btn.enabled:hover{background:#f0f8ff0a;box-shadow:0 0 24px #f0f8ff0f}.enter-btn.enabled:active{transform:scale(.985)}.enter-btn.loading{cursor:wait;color:var(--text-secondary);border-color:var(--border-focus)}.enter-btn.loading:after{content:"";background:var(--accent);width:100%;height:2px;animation:loadSlide 1.4s var(--ease-in-out) infinite;position:absolute;bottom:0;left:0}.relay-status{bottom:max(20px, env(safe-area-inset-bottom,20px));font-family:var(--font-mono);letter-spacing:.16em;text-transform:uppercase;color:var(--text-muted);z-index:110;opacity:0;animation:fadeIn .6s var(--ease-out) 2.6s forwards;align-items:center;gap:8px;font-size:.6rem;display:flex;position:fixed;left:50%;transform:translate(-50%)}.relay-status.exiting{opacity:0;transition:opacity .6s cubic-bezier(.4,0,.2,1);animation:none}.relay-dot{background:var(--green);border-radius:50%;width:5px;height:5px;animation:2.4s infinite pulse}.relay-dot.connecting{background:var(--text-muted);animation:none}.relay-dot.offline{background:var(--red);animation:none}.chat-app{background:var(--bg-chat,var(--bg));flex-direction:column;display:flex;position:fixed;inset:0;overflow:hidden}.room-banner{font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;animation:bannerSlide .3s var(--ease-out);flex-shrink:0;justify-content:center;align-items:center;gap:8px;padding:7px 16px;font-size:.6rem;display:flex}.room-banner.amber{background:var(--amber-dim);border-bottom:1px solid var(--amber-border);color:var(--amber)}.room-banner.red{background:var(--red-dim);border-bottom:1px solid var(--red-border);color:var(--red)}.chat-header{padding:12px 20px;padding-top:max(12px, env(safe-area-inset-top,12px));border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;min-height:48px;display:flex;position:relative}.header-left{align-items:center;gap:12px;min-width:0;display:flex}.room-id{font-family:var(--font-mono);letter-spacing:.05em;color:var(--text-secondary);white-space:nowrap;font-size:.72rem}.peer-indicator{align-items:center;gap:6px;display:flex}.peer-dot{border-radius:50%;flex-shrink:0;width:6px;height:6px;transition:background .3s}.peer-dot.waiting{background:var(--text-muted)}.peer-dot.connecting{background:var(--amber);animation:1s infinite pulseFast}.peer-dot.active{background:var(--green);animation:2.4s infinite pulse}.peer-label{font-family:var(--font-mono);letter-spacing:.06em;color:var(--text-muted);white-space:nowrap;font-size:.6rem}.header-center{font-family:var(--font-hero);letter-spacing:.32em;text-transform:uppercase;color:var(--text-dim);text-indent:.32em;font-size:.65rem;font-weight:500;position:absolute;left:50%;transform:translate(-50%)}.header-actions{flex-shrink:0;align-items:center;gap:4px;display:flex}.action-btn{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;white-space:nowrap;background:0 0;padding:5px 10px;font-size:.58rem;transition:all .2s;position:relative}.action-btn:hover{border-color:var(--border-focus);color:var(--text-secondary);background:var(--accent-dim)}.action-btn.clipboard-on{border-color:var(--amber-border);color:var(--amber);background:var(--amber-dim)}.action-btn.clipboard-on:before{content:"";background:var(--amber);border-radius:50%;width:5px;height:5px;position:absolute;top:-2px;right:-2px}.action-btn.terminate{border-color:var(--red-border);color:#dc262699}.action-btn.terminate:hover{border-color:var(--red);color:#fff;background:var(--red)}.action-btn.terminate.nuking{background:var(--red);color:#fff;border-color:var(--red);cursor:wait;animation:.4s infinite terminatePulse}.bulk-banner{background:var(--surface);border-bottom:1px solid var(--border);animation:bannerSlide .3s var(--ease-out);flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 20px;display:flex}.bulk-banner-text{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-secondary);font-size:.65rem}.bulk-banner-text strong{color:var(--text-primary);font-weight:500}.mark-all-btn{border:1px solid var(--border-focus);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;padding:4px 10px;font-size:.6rem;transition:all .2s}.mark-all-btn:hover{background:var(--accent-dim)}.messages-area{-webkit-overflow-scrolling:touch;scroll-behavior:smooth;flex-direction:column;flex:1 1 0;gap:6px;min-height:0;padding:16px 20px;display:flex;overflow:hidden auto}.message{border-radius:8px;max-width:68%;padding:11px 16px;animation:.2s msgAppear;position:relative}.message.own{background:var(--own-msg-bg);border:1px solid var(--own-msg-border);box-shadow:0 4px 24px var(--own-msg-glow), inset 0 1px 0 #f0f8ff0a;align-self:flex-end}.message.received{background:var(--recv-msg-bg);border:1px solid var(--recv-msg-border);box-shadow:0 4px 24px var(--recv-msg-glow), inset 0 1px 0 #f0f8ff08;align-self:flex-start}.msg-meta{justify-content:space-between;align-items:center;gap:16px;margin-bottom:5px;display:flex}.msg-alias{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.04em;font-size:.58rem}.msg-time{font-family:var(--font-mono);color:var(--text-muted);letter-spacing:.04em;font-size:.52rem}.msg-body{font-family:var(--font-body);color:var(--text-primary);word-break:break-word;font-size:.835rem;font-weight:300;line-height:1.55}.msg-footer{justify-content:space-between;align-items:center;gap:8px;margin-top:6px;display:flex}.burn-timer{font-family:var(--font-mono);letter-spacing:.04em;color:var(--text-muted);font-size:.52rem;transition:color .3s}.burn-timer.warning{color:var(--amber)}.burn-timer.critical{color:var(--red);animation:1s infinite burnPulse}.drop-label{font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;border-radius:2px;padding:2px 6px;font-size:.52rem}.drop-label.queued{color:var(--text-secondary);background:var(--accent-dim)}.drop-label.waiting{color:var(--amber);background:var(--amber-dim)}.drop-label.sending{color:var(--text-muted)}.drop-label.failed{color:var(--red);background:var(--red-dim)}.mark-read-btn{border:1px solid var(--border-focus);color:var(--text-secondary);font-family:var(--font-mono);letter-spacing:.06em;text-transform:uppercase;cursor:pointer;background:0 0;border-radius:2px;padding:2px 7px;font-size:.5rem;transition:all .2s}.mark-read-btn:hover{background:var(--accent-dim);color:var(--text-primary)}.system-msg{text-align:center;font-family:var(--font-body);color:var(--text-muted);align-self:center;padding:10px 0;font-size:.7rem;font-style:italic;font-weight:300}.input-bar-wrap{flex-shrink:0}.input-error-banner{background:var(--red-dim);border-top:1px solid var(--red-border);font-family:var(--font-mono);color:var(--red);letter-spacing:.04em;text-align:center;padding:6px 16px;font-size:.6rem;display:none}.input-error-banner.visible{display:block}.media-blocked-banner{background:var(--amber-dim);border-top:1px solid var(--amber-border);font-family:var(--font-mono);color:var(--amber);letter-spacing:.04em;text-align:center;padding:5px 16px;font-size:.6rem}.input-bar{padding:10px 16px;padding-bottom:max(10px, env(safe-area-inset-bottom,10px));border-top:1px solid var(--border);background:var(--bg-chat);z-index:10;flex-shrink:0;align-items:center;gap:8px;display:flex;position:relative}.input-bar.dragging{outline:1px solid var(--amber)}.msg-input{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text-primary);font-family:var(--font-body);-webkit-appearance:none;outline:none;flex:1;padding:10px 14px;font-size:16px;font-weight:300;transition:border-color .2s}.msg-input::placeholder{color:var(--text-muted);font-weight:300}.chat-input::placeholder{opacity:.5;font-size:13px}.chat-input::placeholder{opacity:.5;font-size:13px}.msg-input:focus{border-color:var(--border-focus)}.send-btn{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-muted);font-family:var(--font-hero);letter-spacing:.2em;text-transform:uppercase;cursor:pointer;text-indent:.2em;text-align:center;background:0 0;flex-shrink:0;min-width:72px;padding:9px 16px;font-size:.62rem;font-weight:500;transition:all .2s}.send-btn:hover{border-color:var(--accent);color:var(--text-primary);background:var(--accent-dim)}.send-btn:active{transform:scale(.97)}.send-btn:disabled{cursor:not-allowed;opacity:.4}.send-btn.active{border-color:var(--border-focus);color:var(--text-primary)}.send-btn.rate-limited{border-color:var(--amber-border);color:var(--amber);cursor:not-allowed}.chat-footer{padding:7px 20px;padding-bottom:max(8px, env(safe-area-inset-bottom,8px));border-top:1px solid var(--border-subtle);background:var(--bg-chat);flex-shrink:0;justify-content:space-between;align-items:center;display:flex}.panic-hint{font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.06em;text-transform:uppercase;font-size:.55rem}.session-hint{font-family:var(--font-mono);color:var(--text-dim);letter-spacing:.04em;font-size:.55rem}.modal-backdrop{z-index:1000;background:#000000bf;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.warn-dialog{background:var(--surface);border:1px solid var(--border);text-align:center;width:90%;max-width:360px;animation:scaleIn .2s var(--ease-out);border-radius:6px;padding:32px 36px}.warn-title{font-family:var(--font-hero);letter-spacing:.18em;text-transform:uppercase;color:var(--text-primary);text-indent:.18em;margin-bottom:10px;font-size:1rem;font-weight:500}.warn-body{font-family:var(--font-body);color:var(--text-secondary);margin-bottom:20px;font-size:.8rem;font-weight:300;line-height:1.6}.warn-countdown{font-family:var(--font-mono);color:var(--text-primary);letter-spacing:.04em;margin-bottom:24px;font-size:2.8rem;font-weight:400;transition:color .5s}.warn-countdown.amber{color:var(--amber)}.warn-countdown.red{color:var(--red)}.warn-actions{justify-content:center;gap:10px;display:flex}.warn-btn{border-radius:var(--radius);font-family:var(--font-hero);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;text-indent:.14em;padding:10px 20px;font-size:.68rem;font-weight:500;transition:all .2s}.warn-btn.primary{background:var(--text-primary);border:1px solid var(--text-primary);color:var(--bg)}.warn-btn.primary:hover{background:#f0f8ffe6}.warn-btn.ghost{border:1px solid var(--border);color:var(--text-muted);background:0 0}.warn-btn.ghost:hover{border-color:var(--border-focus);color:var(--text-secondary)}.stego-mode{z-index:2000;color:#1a1a1a;animation:stegoIn .3s var(--ease-out);background:#fff;flex-direction:column;font-family:Segoe UI,Calibri,Arial,sans-serif;display:flex;position:fixed;inset:0}.stego-menubar{background:#f0f0f0;border-bottom:1px solid #d4d4d4;flex-shrink:0;align-items:center;gap:0;padding:2px 8px;display:flex}.stego-menu-item{color:#333;cursor:default;border-radius:3px;padding:4px 10px;font-size:.78rem}.stego-menu-item:hover{background:#0000000f}.stego-toolbar{background:#fafafa;border-bottom:1px solid #e0e0e0;flex-shrink:0;align-items:center;gap:2px;padding:4px 10px;display:flex}.stego-tool-btn{color:#444;cursor:default;background:0 0;border:none;border-radius:3px;justify-content:center;align-items:center;width:28px;height:26px;font-size:.82rem;display:flex}.stego-tool-btn:hover{background:#e8e8e8}.stego-sep{background:#d0d0d0;width:1px;height:20px;margin:0 4px}.stego-font-select{color:#333;cursor:default;background:#fff;border:1px solid #ccc;border-radius:3px;margin:0 4px;padding:2px 6px;font-size:.72rem}.stego-body{color:#2a2a2a;background:#fff;flex:1;padding:60px 80px;font-size:.92rem;line-height:1.8;overflow-y:auto}.stego-cursor{vertical-align:text-bottom;background:#333;width:1px;height:1.1em;margin-left:1px;animation:1s step-end infinite stegoBlink;display:inline-block}.stego-input-area{background:#fff;padding:0 80px 40px}.stego-textarea{resize:none;color:#2a2a2a;background:0 0;border:none;outline:none;width:100%;min-height:28px;font-family:inherit;font-size:.92rem;line-height:1.8}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes loadSlide{0%{transform:translate(-100%)}to{transform:translate(100%)}}@keyframes shake{0%,to{transform:translate(0)}20%,60%{transform:translate(-6px)}40%,80%{transform:translate(6px)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}@keyframes pulseFast{0%,to{opacity:1}50%{opacity:.3}}@keyframes bannerSlide{0%{opacity:0;transform:translateY(-100%)}to{opacity:1;transform:translateY(0)}}@keyframes msgAppear{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes burnPulse{0%,to{opacity:1}50%{opacity:.6}}@keyframes terminatePulse{0%,to{opacity:1}50%{opacity:.7}}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes stegoIn{0%{opacity:0}to{opacity:1}}@keyframes stegoBlink{0%,50%{opacity:1}51%,to{opacity:0}}@media (max-width:640px){.wordmark{letter-spacing:.32em;text-indent:.32em;font-size:1.8rem}.subtitle{letter-spacing:.16em;white-space:normal;text-align:center;margin-bottom:40px;font-size:.48rem}.gate-container{max-width:280px;margin-bottom:28px}.entry-screen{padding:20px 20px 40px}.entry-form{max-width:300px}.password-input{padding:12px 44px 12px 14px}.chat-header{padding:10px 14px}.header-center{display:none}.header-actions{gap:3px}.action-btn{padding:4px 7px;font-size:.52rem}.room-id{font-size:.65rem}.messages-area{padding:12px 14px}.message{max-width:85%;padding:9px 12px}.msg-body{font-size:.8rem}.input-bar{gap:6px;padding:8px 12px}.msg-input{padding:9px 12px}.send-btn{min-width:60px;padding:8px 12px;font-size:.58rem}.chat-footer,.bulk-banner{padding:6px 14px}.stego-body{padding:24px 20px}.stego-input-area{padding:0 20px 24px}}
