:root,[data-theme=dark]{--ink: #f3e8e6;--ink-soft: #cbb4b0;--mist: #1a0d10;--foam: #10080a;--crimson: #c43a42;--crimson-deep: #8f1d24;--amber: #d67a3a;--line: rgba(243, 232, 230, .14);--danger: #ff6b5c;--shadow: 0 24px 60px rgba(0, 0, 0, .45);--surface: rgba(255, 255, 255, .05);--surface-strong: rgba(255, 255, 255, .09);--mine: rgba(196, 58, 66, .22);--bg-1: rgba(196, 58, 66, .22);--bg-2: rgba(92, 16, 22, .35);--bg-base: linear-gradient(160deg, #10080a 0%, #1a0d10 45%, #140a0c 100%);--font-display: "Fraunces", Georgia, serif;--font-body: "IBM Plex Sans", system-ui, sans-serif;color-scheme:dark}[data-theme=light]{--ink: #14080a;--ink-soft: #2a1014;--mist: #f0e4e2;--foam: #faf6f5;--crimson: #8f1d24;--crimson-deep: #5c1016;--amber: #c45c26;--line: rgba(20, 8, 10, .12);--danger: #b42318;--shadow: 0 24px 60px rgba(20, 8, 10, .22);--surface: rgba(255, 255, 255, .55);--surface-strong: rgba(255, 255, 255, .7);--mine: rgba(143, 29, 36, .12);--bg-1: rgba(143, 29, 36, .32);--bg-2: rgba(92, 16, 22, .22);--bg-base: linear-gradient(160deg, #faf6f5 0%, #f0e6e4 45%, #e8d8d6 100%);color-scheme:light}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{font-family:var(--font-body);color:var(--ink);background:radial-gradient(1200px 600px at 10% -10%,var(--bg-1),transparent 60%),radial-gradient(900px 500px at 90% 0%,var(--bg-2),transparent 55%),var(--bg-base);background-attachment:fixed;transition:color .2s ease,background .25s ease}a{color:inherit;text-decoration:none}button,input{font:inherit}.shell{min-height:100vh;display:flex;flex-direction:column}.topbar{display:flex;justify-content:space-between;align-items:center;padding:1.1rem 1.5rem}.brand{font-family:var(--font-display);font-weight:700;font-size:1.35rem;letter-spacing:-.02em}.topbar nav{display:flex;gap:1rem;align-items:center;font-size:.95rem}.topbar a{opacity:.8}.topbar a:hover{opacity:1}.theme-toggle{display:inline-flex;align-items:center;justify-content:center;width:2.25rem;height:2.25rem;border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--ink);cursor:pointer;padding:0;transition:background .2s ease,transform .2s ease}.theme-toggle:hover{background:var(--surface-strong);transform:translateY(-1px)}.theme-toggle svg{width:1.05rem;height:1.05rem;fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}.hero{flex:1;display:grid;align-items:end;min-height:calc(100vh - 4.5rem);padding:2rem 1.5rem 3rem;position:relative;overflow:hidden}.hero:before{content:"";position:absolute;inset:8% 5% auto auto;width:min(48vw,520px);height:min(48vw,520px);border-radius:40% 60% 55% 45%;background:linear-gradient(145deg,#8f1d249e,#5c101633),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='512' height='512'%3E%3Cfilter id='n' x='0' y='0'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.35' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='matrix' values='0 0 0 0 0.4  0 0 0 0 0.06  0 0 0 0 0.09  0 0 0 0.08 0'/%3E%3C/filter%3E%3Crect width='512' height='512' filter='url(%23n)'/%3E%3C/svg%3E");background-size:auto,cover;filter:blur(2px);animation:drift 18s ease-in-out infinite alternate;z-index:0}.hero:after{content:"";position:absolute;left:-8%;bottom:-18%;width:min(70vw,720px);height:min(42vw,420px);background:radial-gradient(ellipse at center,rgba(11,28,31,.16),transparent 70%);animation:pulse 10s ease-in-out infinite;z-index:0}.hero-copy{position:relative;z-index:1;max-width:38rem}.hero-copy .brand-hero{font-family:var(--font-display);font-size:clamp(3.5rem,12vw,7rem);line-height:.92;letter-spacing:-.04em;margin:0 0 1rem;animation:rise .9s ease both}.hero-copy h1{font-family:var(--font-display);font-weight:500;font-size:clamp(1.4rem,3.2vw,2rem);line-height:1.25;margin:0 0 .85rem;max-width:18ch;animation:rise 1s ease .08s both}.hero-copy p{margin:0 0 1.6rem;max-width:34ch;color:var(--ink-soft);opacity:.9;animation:rise 1.05s ease .14s both}.cta-row{display:flex;flex-wrap:wrap;gap:.75rem;animation:rise 1.1s ease .2s both}.btn{border:0;border-radius:999px;padding:.85rem 1.25rem;cursor:pointer;transition:transform .2s ease,background .2s ease,color .2s ease}.btn:hover{transform:translateY(-1px)}.btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.btn-primary{background:var(--ink);color:var(--foam)}.btn-primary:hover:not(:disabled){background:var(--crimson)}.btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}.panel{width:min(960px,100%);margin:0 auto;padding:1.25rem 1.25rem 2rem}.panel h2{font-family:var(--font-display);font-weight:500;margin:0 0 .35rem}.muted{color:var(--ink-soft);margin:0 0 1.25rem}.grid-actions{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-bottom:1.5rem}.field{display:flex;flex-direction:column;gap:.4rem}.field label{font-size:.85rem;font-weight:500}.field input,.field select{border:1px solid var(--line);background:var(--surface-strong);color:var(--ink);border-radius:12px;padding:.75rem .9rem;outline:none}.field input:focus,.field select:focus{border-color:var(--crimson)}.chat-layout{display:grid;grid-template-rows:auto 1fr auto;min-height:calc(100vh - 5rem);gap:.75rem}.chat-meta{display:flex;justify-content:space-between;gap:1rem;align-items:baseline}.messages{overflow:auto;display:flex;flex-direction:column;gap:.65rem;padding:.5rem 0}.bubble{max-width:min(70%,34rem);padding:.7rem .9rem;border-radius:16px;background:var(--surface-strong);border:1px solid var(--line);animation:rise .35s ease both}.bubble.mine{align-self:flex-end;background:var(--mine)}.bubble .nick{font-size:.75rem;font-weight:600;opacity:.7;margin-bottom:.2rem}.bubble .body{white-space:pre-wrap;word-break:break-word}.composer{display:flex;gap:.6rem}.composer input{flex:1;border:1px solid var(--line);background:var(--surface-strong);color:var(--ink);border-radius:999px;padding:.85rem 1rem}.error{color:var(--danger);font-size:.9rem}.room-list{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}.room-list li{display:flex;justify-content:space-between;gap:1rem;padding:.85rem 1rem;border-radius:14px;background:var(--surface);border:1px solid var(--line)}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes drift{0%{transform:translateZ(0) rotate(0)}to{transform:translate3d(-18px,24px,0) rotate(8deg)}}@keyframes pulse{0%,to{opacity:.55;transform:scale(1)}50%{opacity:.85;transform:scale(1.04)}}@media(max-width:640px){.hero{align-items:center}.bubble{max-width:88%}}.turnstile-slot{margin:0 0 1.25rem;min-height:65px}
