:root,:root[data-theme=celestial]{--bg-1: #070b24;--bg-2: #141a4a;--bg-3: #2a1f5c;--glow: rgba(245, 200, 76, .22);--surface: rgba(18, 24, 66, .62);--surface-strong: rgba(24, 32, 84, .9);--border: rgba(245, 200, 76, .28);--text: #eef0ff;--muted: #a7add8;--accent: #f5c84c;--accent-2: #8fb3ff;--accent-text: #1a1440;--bubble-out: linear-gradient(135deg, #f5c84c, #e09b2d);--bubble-out-text: #1f1640;--bubble-in: rgba(143, 179, 255, .16);--danger: #ff6b81;--ok: #6ee7b7;--particle: #fff7d6;--m-body: #3f63d8;--m-belly: #f5d98a;--m-wing: #2a3f9e;--m-wing-front: #5c82f0;--m-accent: #f5c84c;--m-eye: #ffffff;--m-dark: #10123a;--m-extra: #8fe3ff;color-scheme:dark}:root[data-theme=forest]{--bg-1: #04140e;--bg-2: #0b2a1d;--bg-3: #173d28;--glow: rgba(190, 255, 120, .18);--surface: rgba(10, 40, 26, .62);--surface-strong: rgba(14, 52, 34, .92);--border: rgba(170, 230, 120, .26);--text: #eafbe9;--muted: #9fc4a8;--accent: #b8f06c;--accent-2: #5ed6a8;--accent-text: #0b2414;--bubble-out: linear-gradient(135deg, #b8f06c, #5ed6a8);--bubble-out-text: #0a2214;--bubble-in: rgba(94, 214, 168, .14);--danger: #ff7a7a;--ok: #b8f06c;--particle: #e8ff8a;--m-body: #7a6a4f;--m-belly: #e7dcc0;--m-wing: #5a4c37;--m-wing-front: #8d7b5c;--m-accent: #f2b84b;--m-eye: #fffbe6;--m-dark: #1d1a10;--m-extra: #7ee081;color-scheme:dark}:root[data-theme=volcano]{--bg-1: #160505;--bg-2: #3a0d07;--bg-3: #5c1a08;--glow: rgba(255, 120, 40, .25);--surface: rgba(50, 12, 8, .64);--surface-strong: rgba(66, 16, 10, .92);--border: rgba(255, 140, 60, .3);--text: #fff1e8;--muted: #e0a98f;--accent: #ff8a2a;--accent-2: #ffd04d;--accent-text: #2a0a02;--bubble-out: linear-gradient(135deg, #ff8a2a, #ff4d2a);--bubble-out-text: #2a0702;--bubble-in: rgba(255, 208, 77, .14);--danger: #ff5a7a;--ok: #ffd04d;--particle: #ffb347;--m-body: #d9381e;--m-belly: #ffcf70;--m-wing: #a1220f;--m-wing-front: #ff6a3d;--m-accent: #ffe14d;--m-eye: #fff8e0;--m-dark: #2a0702;--m-extra: #ffb020;color-scheme:dark}:root[data-theme=ice]{--bg-1: #e8f6ff;--bg-2: #cfeaff;--bg-3: #b7dcf5;--glow: rgba(120, 210, 255, .4);--surface: rgba(255, 255, 255, .66);--surface-strong: rgba(255, 255, 255, .95);--border: rgba(80, 160, 210, .3);--text: #0f2a3d;--muted: #4d7088;--accent: #1594c9;--accent-2: #5dd3f0;--accent-text: #ffffff;--bubble-out: linear-gradient(135deg, #1594c9, #33bde0);--bubble-out-text: #ffffff;--bubble-in: rgba(21, 148, 201, .1);--danger: #d6334f;--ok: #0f9d75;--particle: #ffffff;--m-body: #c4e6fa;--m-belly: #ffffff;--m-wing: #9fd4f0;--m-wing-front: #bfe6fa;--m-accent: #5dd3f0;--m-eye: #ffffff;--m-dark: #12405c;--m-extra: #9be7ff;color-scheme:light}*,*:before,*:after{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica Neue,Arial,sans-serif;color:var(--text);background:radial-gradient(ellipse at 20% 0%,var(--bg-3),transparent 60%),radial-gradient(ellipse at 100% 100%,var(--bg-2),transparent 55%),var(--bg-1);background-attachment:fixed;transition:background .6s ease,color .4s ease;overflow:hidden;-webkit-font-smoothing:antialiased}h1,h2,h3{margin:0 0 .4em;font-weight:650;letter-spacing:.01em}h3{font-size:.95rem;color:var(--accent);text-transform:uppercase;letter-spacing:.08em}p{margin:0 0 .6em;line-height:1.5}code{font-family:ui-monospace,Cascadia Code,SF Mono,Menlo,Consolas,monospace;font-size:.82rem;word-break:break-all}.muted{color:var(--muted)}.small{font-size:.82rem}.center{text-align:center}.grow{flex:1;min-width:0}.row{display:flex;gap:.5rem;flex-wrap:wrap}.stack{display:flex;flex-direction:column;gap:.9rem}.glass{background:var(--surface);border:1px solid var(--border);border-radius:20px;backdrop-filter:blur(14px) saturate(140%);-webkit-backdrop-filter:blur(14px) saturate(140%);box-shadow:0 10px 40px #00000040,inset 0 1px #ffffff0f}label{display:flex;flex-direction:column;gap:.35rem;font-size:.85rem;color:var(--muted)}input,textarea,select{font:inherit;color:var(--text);background:var(--surface-strong);border:1px solid var(--border);border-radius:12px;padding:.7rem .85rem;outline:none;transition:border-color .2s,box-shadow .2s}input:focus,textarea:focus,select:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--glow)}textarea{resize:vertical}.btn{font:inherit;font-weight:600;border-radius:12px;padding:.7rem 1.1rem;border:1px solid transparent;cursor:pointer;transition:transform .15s,box-shadow .2s,opacity .2s,background .2s}.btn:hover:not(:disabled){transform:translateY(-1px)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--accent-text);box-shadow:0 4px 18px var(--glow)}.btn-ghost{background:transparent;color:var(--text);border-color:var(--border)}.btn-danger{background:transparent;color:var(--danger);border-color:var(--danger)}.btn-small{padding:.45rem .8rem;font-size:.85rem}.icon-btn{background:transparent;border:none;color:var(--text);font-size:1.15rem;width:38px;height:38px;border-radius:10px;cursor:pointer;display:inline-grid;place-items:center}.icon-btn:hover{background:var(--bubble-in)}.error{color:var(--danger);font-size:.88rem}.hint{font-size:.8rem;color:var(--muted)}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.server-line code{word-break:break-all}.link-btn{background:none;border:none;padding:0;font:inherit;color:var(--accent);text-decoration:underline;cursor:pointer}.mascot .m-body{fill:var(--m-body)}.mascot .m-belly{fill:var(--m-belly)}.mascot .m-wing{fill:var(--m-wing)}.mascot .m-wing-front{fill:var(--m-wing-front);opacity:.92}.mascot .m-accent{fill:var(--m-accent)}.mascot .m-eye{fill:var(--m-eye)}.mascot .m-dark{fill:var(--m-dark)}.mascot .m-eye-ring{fill:var(--m-accent)}.mascot .m-leaf,.mascot .m-flame{fill:var(--m-extra)}.mascot .m-crystal{fill:var(--m-extra);stroke:var(--m-accent);stroke-width:1}.mascot .m-stroke{stroke:var(--m-dark);stroke-width:2;stroke-linecap:round}.mascot .m-stroke-accent{stroke:var(--m-accent);stroke-width:2.5;stroke-linecap:round}.mascot .m-stroke-light{stroke:var(--m-accent);stroke-width:1.5;opacity:.7}.mascot{filter:drop-shadow(0 6px 14px var(--glow));overflow:visible}.mascot-celestial{--m-body: #3f63d8;--m-belly: #f5d98a;--m-wing: #2a3f9e;--m-wing-front: #5c82f0;--m-accent: #f5c84c;--m-eye: #fff;--m-dark: #10123a;--m-extra: #8fe3ff}.mascot-forest{--m-body: #7a6a4f;--m-belly: #e7dcc0;--m-wing: #5a4c37;--m-wing-front: #8d7b5c;--m-accent: #f2b84b;--m-eye: #fffbe6;--m-dark: #1d1a10;--m-extra: #7ee081}.mascot-volcano{--m-body: #d9381e;--m-belly: #ffcf70;--m-wing: #a1220f;--m-wing-front: #ff6a3d;--m-accent: #ffe14d;--m-eye: #fff8e0;--m-dark: #2a0702;--m-extra: #ffb020}.mascot-ice{--m-body: #c4e6fa;--m-belly: #ffffff;--m-wing: #9fd4f0;--m-wing-front: #bfe6fa;--m-accent: #5dd3f0;--m-eye: #fff;--m-dark: #12405c;--m-extra: #9be7ff}.float{animation:float 4s ease-in-out infinite}@keyframes float{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.theme-bg{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}.theme-glow{position:absolute;width:60vmax;height:60vmax;left:-15vmax;top:-20vmax;border-radius:50%;background:radial-gradient(circle,var(--glow),transparent 65%);animation:glow-drift 18s ease-in-out infinite alternate}@keyframes glow-drift{to{transform:translate(30vw,25vh) scale(1.15)}}.particle{position:absolute;border-radius:50%;background:var(--particle);opacity:0}.theme-bg-stars .particle{box-shadow:0 0 6px var(--particle);animation-name:twinkle;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes twinkle{0%,to{opacity:.1;transform:scale(.6)}50%{opacity:.95;transform:scale(1.2)}}.theme-bg-fireflies .particle{box-shadow:0 0 10px 3px var(--particle);animation-name:firefly;animation-iteration-count:infinite;animation-timing-function:ease-in-out}@keyframes firefly{0%{opacity:0;transform:translate(0)}25%{opacity:.9}50%{opacity:.3;transform:translate(30px,-40px)}75%{opacity:.9}to{opacity:0;transform:translate(-20px,-80px)}}.theme-bg-embers .particle{top:auto!important;bottom:-10px;border-radius:40%;box-shadow:0 0 8px 2px var(--particle);animation-name:ember;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes ember{0%{opacity:0;transform:translate(0) scale(1)}10%{opacity:1}to{opacity:0;transform:translate(40px,-100vh) scale(.3)}}.theme-bg-snow .particle{top:-10px!important;box-shadow:0 0 4px #78c8ffe6;animation-name:snow;animation-iteration-count:infinite;animation-timing-function:linear}@keyframes snow{0%{opacity:0;transform:translate(0)}10%{opacity:1}to{opacity:.2;transform:translate(-60px,105vh)}}.intro{position:fixed;inset:0;z-index:100;background:radial-gradient(ellipse at 50% 120%,#2a1f5c,#070b24 70%);overflow:hidden;cursor:pointer;animation:intro-in .5s ease both}.intro-leaving{animation:intro-out .6s ease forwards}@keyframes intro-in{0%{opacity:0}}@keyframes intro-out{to{opacity:0;transform:scale(1.05)}}.intro-sky{position:absolute;inset:0}.intro-star{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff7d6;box-shadow:0 0 6px #fff7d6;animation:twinkle 1.8s ease-in-out infinite}.intro-moon{position:absolute;right:12%;top:12%;width:90px;height:90px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#fffbe6,#f5d98a 60%,#d8a93a);box-shadow:0 0 60px #f5c84c80;animation:moon-rise 1.2s ease-out both}@keyframes moon-rise{0%{transform:translateY(40px);opacity:0}}.intro-dragon{position:absolute;left:0;top:0;width:min(42vw,260px);animation:dragon-flight 2.4s cubic-bezier(.45,.05,.35,1) .3s both}@keyframes dragon-flight{0%{transform:translate(-40vw,70vh) rotate(-15deg) scale(.7)}45%{transform:translate(25vw,18vh) rotate(-5deg) scale(1)}75%{transform:translate(calc(50vw - 50%),22vh) rotate(4deg) scale(1.05)}to{transform:translate(calc(50vw - 50%),14vh) rotate(0) scale(.9);opacity:.95}}.intro-dragon-svg{width:100%;height:auto;overflow:visible}.intro-dragon-svg .m-body{fill:#3f63d8}.intro-dragon-svg .m-belly{fill:#f5d98a}.intro-dragon-svg .m-wing{fill:#2a3f9e}.intro-dragon-svg .m-wing-front{fill:#5c82f0;transform-origin:60px 50px;animation:flap .35s ease-in-out infinite alternate}.intro-dragon-svg .m-accent{fill:#f5c84c}.intro-dragon-svg .m-eye{fill:#fff}.intro-dragon-svg .m-dark{fill:#10123a}@keyframes flap{to{transform:scaleY(.55) skew(-6deg)}}.intro-key .key-ring,.intro-key .key-shaft{fill:#f5c84c;filter:drop-shadow(0 0 6px #ffe48a)}.intro-key .key-hole{fill:#2a1f5c}.intro-key{animation:key-glow .8s ease-in-out infinite alternate}@keyframes key-glow{to{opacity:.75}}.intro-trail{position:absolute;left:50%;top:46%;width:4px;height:4px;border-radius:50%;box-shadow:0 0 #f5c84cb3;animation:seal-burst 1s ease-out 2.5s both}@keyframes seal-burst{0%{box-shadow:0 0 #f5c84ccc;opacity:1}to{box-shadow:0 0 0 60vmax #f5c84c00;opacity:0}}.intro-logo{position:absolute;left:50%;top:58%;transform:translate(-50%,-50%);text-align:center;width:90%}.intro-seal{width:92px;height:92px;margin:0 auto .6rem;animation:seal-appear .8s cubic-bezier(.2,1.6,.4,1) 2.45s both}.intro-seal svg{width:100%;height:100%}.seal-ring{fill:none;stroke:#f5c84c;stroke-width:3;stroke-dasharray:280;stroke-dashoffset:280;animation:draw .9s ease 2.5s forwards}.seal-ring-inner{stroke-width:1.5;opacity:.6}.seal-star{fill:#f5c84c;filter:drop-shadow(0 0 8px #ffe48a)}@keyframes draw{to{stroke-dashoffset:0}}@keyframes seal-appear{0%{transform:scale(0) rotate(-180deg);opacity:0}}.intro-title{font-size:clamp(2rem,7vw,3.6rem);font-weight:800;letter-spacing:.08em;background:linear-gradient(90deg,#fff7d6,#f5c84c,#8fb3ff,#fff7d6);background-size:300% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;animation:title-in .9s ease 2.6s both,shimmer 3s linear 2.6s infinite}.intro-subtitle{color:#c9cdf5;letter-spacing:.12em;font-size:.9rem;animation:title-in .9s ease 2.9s both}@keyframes title-in{0%{opacity:0;transform:translateY(14px);letter-spacing:.3em}}@keyframes shimmer{to{background-position:300% 0}}.intro-skip{position:absolute;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.25);border-radius:999px;padding:.5rem 1rem;font:inherit;cursor:pointer}.auth{position:relative;z-index:1;min-height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.2rem;padding:16px;overflow-y:auto}.auth-card{width:min(440px,100%);padding:2rem 1.6rem;text-align:center;display:flex;flex-direction:column;align-items:center}.brand{font-size:2.1rem;font-weight:800;letter-spacing:.06em;background:linear-gradient(90deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent;margin-top:.4rem}.auth-form{width:100%;text-align:left;display:flex;flex-direction:column;gap:.9rem;margin-top:1rem}.auth-form h2{font-size:1.1rem;text-align:center}.wipe{margin-top:1.2rem}.wipe-confirm{display:flex;flex-direction:column;gap:.5rem;align-items:center}.layout{position:relative;z-index:1;height:100%;display:grid;grid-template-columns:320px 1fr;gap:16px;padding:16px}.sidebar{display:flex;flex-direction:column;min-height:0;padding:1rem;gap:.9rem}.sidebar-head{display:flex;align-items:center;gap:.6rem}.brand-small{font-weight:800;letter-spacing:.05em;color:var(--accent)}.sidebar-actions{display:grid;grid-template-columns:1fr auto;gap:.5rem}.sidebar-actions .btn{white-space:nowrap}.status{display:inline-flex;align-items:center;gap:.35rem;font-size:.78rem;color:var(--muted)}.status .dot{width:8px;height:8px;border-radius:50%;background:var(--muted)}.status-online .dot{background:var(--ok);box-shadow:0 0 8px var(--ok)}.status-connecting .dot{background:var(--accent);animation:twinkle 1s infinite}.status-offline .dot{background:var(--danger)}.banner-error{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--danger);border:1px solid var(--danger);border-radius:12px;padding:.3rem .3rem .3rem .7rem}.banner-error span{flex:1}.room-list{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:.35rem}.room-item{display:flex;align-items:center;gap:.7rem;padding:.6rem;border-radius:14px;border:1px solid transparent;background:transparent;color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:background .2s,border-color .2s}.room-item:hover{background:var(--bubble-in)}.room-item.active{background:var(--bubble-in);border-color:var(--border)}.room-avatar{width:40px;height:40px;flex:none;border-radius:12px;display:grid;place-items:center;font-weight:800;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:var(--accent-text)}.room-meta{display:flex;flex-direction:column}.room-label{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.room-state{font-size:.76rem;color:var(--muted)}.chat-area{min-height:0;min-width:0;display:flex}.empty{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:2rem}.chat{flex:1;display:flex;flex-direction:column;min-height:0;min-width:0;overflow:hidden}.chat-head{display:flex;align-items:center;gap:.6rem;padding:.9rem 1rem;border-bottom:1px solid var(--border)}.chat-title{font-size:1.1rem;margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.back{display:none;font-size:1.6rem}.security-panel{display:grid;gap:1rem;padding:1rem;border-bottom:1px solid var(--border);background:var(--surface-strong);max-height:45vh;overflow-y:auto}.safety,.fingerprint{display:block;font-size:1rem;letter-spacing:.06em;line-height:1.7;padding:.6rem .8rem;border-radius:12px;background:var(--bubble-in);margin-bottom:.5rem}.copy-field{display:flex;gap:.5rem;align-items:center}.copy-field code{flex:1;min-width:0;padding:.55rem .7rem;border-radius:10px;background:var(--bubble-in);max-height:5.5em;overflow-y:auto}.messages{flex:1;overflow-y:auto;padding:1rem;display:flex;flex-direction:column;gap:.55rem}.msg{display:flex;animation:msg-in .35s cubic-bezier(.2,1.2,.4,1) both}@keyframes msg-in{0%{opacity:0;transform:translateY(10px) scale(.97)}}.msg-out{justify-content:flex-end}.msg-system{justify-content:center}.bubble{max-width:min(75%,560px);padding:.6rem .85rem .4rem;border-radius:18px;word-wrap:break-word;white-space:pre-wrap}.bubble p{margin:0 0 .25rem}.msg-in .bubble{background:var(--bubble-in);border:1px solid var(--border);border-bottom-left-radius:6px}.msg-out .bubble{background:var(--bubble-out);color:var(--bubble-out-text);border-bottom-right-radius:6px;box-shadow:0 4px 16px var(--glow)}.msg-system .bubble{background:transparent;border:1px dashed var(--border);color:var(--muted);font-size:.82rem;text-align:center}.msg-meta{display:block;font-size:.7rem;opacity:.75;text-align:right}.composer{display:grid;grid-template-columns:auto 1fr auto;gap:.5rem;padding:.8rem;border-top:1px solid var(--border);align-items:end}.composer textarea{resize:none;max-height:140px;min-height:44px}.composer select{max-width:150px}.composer-error{grid-column:1 / -1;margin:0}.modal-backdrop{position:fixed;inset:0;z-index:50;background:#00000073;display:grid;place-items:center;padding:16px;animation:intro-in .2s ease both}.modal{width:min(520px,100%);max-height:calc(100% - 32px);overflow-y:auto;padding:1.2rem 1.3rem 1.4rem;background:var(--surface-strong);animation:modal-in .3s cubic-bezier(.2,1.3,.4,1) both}@keyframes modal-in{0%{opacity:0;transform:translateY(20px) scale(.96)}}.modal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:.8rem}.modal-head h2{margin:0;font-size:1.2rem}.theme-picker{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem}.theme-picker.compact{display:flex;gap:.5rem;justify-content:center}.theme-chip{display:flex;align-items:center;gap:.6rem;padding:.5rem;border-radius:14px;border:2px solid var(--border);background:var(--surface);color:var(--text);font:inherit;text-align:left;cursor:pointer;transition:transform .2s,border-color .2s}.theme-chip:hover{transform:translateY(-2px)}.theme-chip.selected{border-color:var(--accent);box-shadow:0 0 0 3px var(--glow)}.theme-chip-text{display:flex;flex-direction:column}.theme-chip-celestial{background:linear-gradient(135deg,#070b24,#2a1f5c);color:#eef0ff}.theme-chip-forest{background:linear-gradient(135deg,#04140e,#173d28);color:#eafbe9}.theme-chip-volcano{background:linear-gradient(135deg,#160505,#5c1a08);color:#fff1e8}.theme-chip-ice{background:linear-gradient(135deg,#e8f6ff,#b7dcf5);color:#0f2a3d}.theme-chip .muted{color:inherit;opacity:.75}@media (max-width: 760px){.layout{grid-template-columns:1fr;padding:0;gap:0}.layout .glass{border-radius:0;border-left:none;border-right:none}.layout.has-active .sidebar{display:none}.layout:not(.has-active) .chat-area{display:none}.back{display:inline-grid}.composer{grid-template-columns:1fr auto;padding-bottom:calc(.8rem + env(safe-area-inset-bottom))}.composer select{grid-column:1 / -1;max-width:none}.theme-picker{grid-template-columns:1fr}.bubble{max-width:85%}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}.theme-bg .particle{display:none}}.auth{padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(16px,env(safe-area-inset-bottom))}.layout{padding-top:max(16px,env(safe-area-inset-top))}@media (max-width: 760px){.layout{padding-top:env(safe-area-inset-top)}}.checkbox{flex-direction:row;align-items:flex-start;gap:.6rem;color:var(--text);font-size:.85rem;line-height:1.45}.checkbox input{margin-top:.2rem;width:18px;height:18px;flex:none;accent-color:var(--accent)}.blocked-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:.4rem}.blocked-list li{display:flex;align-items:center;gap:.5rem}.blocked-list code{flex:1;min-width:0}.legal-frame{width:100%;height:min(65vh,600px);border:1px solid var(--border);border-radius:12px;background:#fff}.safety,.fingerprint{word-break:normal;overflow-wrap:normal;word-spacing:.15em}.call-start:disabled{opacity:.35;cursor:not-allowed}.call-overlay{position:fixed;inset:0;z-index:90;display:flex;flex-direction:column;justify-content:space-between;align-items:center;padding:max(24px,env(safe-area-inset-top)) 16px max(28px,env(safe-area-inset-bottom));background:radial-gradient(ellipse at 50% 30%,var(--bg-3),var(--bg-1) 75%);color:#fff;animation:intro-in .3s ease both;overflow:hidden}:root[data-theme=ice] .call-overlay{background:radial-gradient(ellipse at 50% 30%,#2b6c90,#0f2a3d 75%)}.call-remote{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:#000}.call-video:before,.call-video:after{content:"";position:absolute;left:0;right:0;height:34%;z-index:1;pointer-events:none}.call-video:before{top:0;background:linear-gradient(rgba(0,0,0,.65),transparent)}.call-video:after{bottom:0;background:linear-gradient(transparent,#0009)}.call-local{position:absolute;right:16px;bottom:calc(max(28px,env(safe-area-inset-bottom)) + 92px);width:min(28vw,160px);aspect-ratio:3 / 4;object-fit:cover;border-radius:16px;border:2px solid rgba(255,255,255,.6);box-shadow:0 8px 30px #00000080;transform:scaleX(-1);z-index:2;background:#111}.call-avatar{position:absolute;top:38%;left:50%;transform:translate(-50%,-50%)}.call-pulse{animation:call-pulse 1.6s ease-in-out infinite}@keyframes call-pulse{0%,to{transform:scale(1);filter:drop-shadow(0 0 10px var(--glow))}50%{transform:scale(1.06);filter:drop-shadow(0 0 30px var(--accent))}}.call-top{position:relative;z-index:3;text-align:center;text-shadow:0 2px 10px rgba(0,0,0,.6)}.call-top h2{font-size:1.6rem;margin-bottom:.2rem}.call-top p{margin:.15rem 0;font-size:.95rem}.call-security{opacity:.85;font-size:.8rem!important}.call-code{margin-top:.6rem!important;font-size:.85rem!important}.call-code span{display:inline-block;font-size:1.4rem;letter-spacing:.25em;padding:.2rem .6rem;border-radius:12px;background:#00000059}.call-controls{position:relative;z-index:3;display:flex;gap:1.4rem}.call-btn{width:64px;height:64px;border-radius:50%;border:none;font-size:1.6rem;cursor:pointer;background:#ffffff2e;color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:transform .15s,background .2s}.call-btn:hover{transform:scale(1.07)}.call-btn-off{background:#ffffffd9}.call-btn-accept{background:#22c55e;animation:call-pulse 1.4s ease-in-out infinite}.call-btn-decline{background:#ef4444}.call-toast{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));transform:translate(-50%);z-index:95;padding:.7rem 1.2rem;border-radius:999px;background:var(--surface-strong);border:1px solid var(--border);color:var(--text);font-size:.9rem;box-shadow:0 8px 30px #0000004d;animation:modal-in .3s ease both;max-width:calc(100% - 32px);text-align:center}
