:root{--bg:#0b0e18;--bg-secondary:#111525;--panel:#161b2e;--panel-hover:#1c2240;--ink:#e5e7eb;--ink-secondary:#9ca3af;--muted:#6b7280;--line:#1e2740;--accent:#8b5cf6;--accent-strong:#7c3aed;--accent-glow:#8b5cf640;--accent-surface:#8b5cf614;--success:#34d399;--success-surface:#34d3991a;--danger:#f87171;--danger-surface:#f871711a}*{box-sizing:border-box}body{color:var(--ink);background:var(--bg);margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,sans-serif}.shell{min-height:100vh}.container{gap:1.25rem;width:min(980px,100%);margin:0 auto;padding:2rem 1rem;display:grid}.card{border:1px solid var(--line);background:var(--panel);border-radius:.75rem;padding:1.25rem;transition:border-color .15s}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}.grid{gap:.75rem;display:grid}.grid.two{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}label{color:var(--ink-secondary);gap:.35rem;font-size:.875rem;display:grid}input,select,textarea{font:inherit;border:1px solid var(--line);background:var(--bg-secondary);width:100%;color:var(--ink);border-radius:.5rem;padding:.6rem .75rem;transition:border-color .15s,box-shadow .15s}input:focus,select:focus,textarea:focus{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow);outline:none}input::placeholder{color:var(--muted)}button,.button{font:inherit;background:var(--accent);color:#fff;cursor:pointer;border:0;border-radius:.5rem;justify-content:center;align-items:center;gap:.4rem;padding:.6rem 1.1rem;font-size:.875rem;font-weight:600;text-decoration:none;transition:background .15s,box-shadow .15s;display:inline-flex}button:hover,.button:hover{background:var(--accent-strong);box-shadow:0 0 20px var(--accent-glow)}button.secondary,.button.secondary{background:var(--panel);border:1px solid var(--line);color:var(--ink-secondary)}button.secondary:hover,.button.secondary:hover{background:var(--panel-hover);border-color:var(--muted);box-shadow:none;color:var(--ink)}button.danger{background:var(--danger)}button.danger:hover{background:#ef4444}button:disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.notice{border-radius:.5rem;margin:0;padding:.75rem 1rem;font-size:.875rem}.notice.error{background:var(--danger-surface);color:var(--danger);border:1px solid #f8717133}.notice.success{background:var(--success-surface);color:var(--success);border:1px solid #34d39933}.muted{color:var(--muted);margin:0}a{color:var(--accent)}a:hover{color:var(--accent-strong)}h1,h2,h3,p{margin-top:0}h1{margin-bottom:.25rem;font-size:1.5rem}h2{margin-bottom:.25rem;font-size:1.15rem}.text-center{text-align:center}.list{margin:0;padding-left:1rem}.badge{letter-spacing:.02em;text-transform:capitalize;border-radius:9999px;align-items:center;padding:.2rem .6rem;font-size:.7rem;font-weight:600;display:inline-flex}.badge.theme-forest{color:#34d399;background:#34d39926}.badge.theme-snow{color:#93c5fd;background:#93c5fd26}.badge.theme-coast{color:#fbbf24;background:#fbbf2426}.badge.status-active{color:#6ee7b7;background:#34d3991f}.badge.role-host{color:#a78bfa;background:#8b5cf626}.badge.role-guest{color:#9ca3af;background:#6b728026}.badge.saved{color:#fbbf24;background:#fbbf241f}.navbar{background:var(--bg-secondary);border-bottom:1px solid var(--line);z-index:50;justify-content:space-between;align-items:center;padding:.75rem 1.5rem;display:flex;position:sticky;top:0}.navbar-brand{color:var(--ink);letter-spacing:-.02em;font-size:1.1rem;font-weight:700;text-decoration:none}.navbar-brand span{color:var(--accent)}.navbar-right{align-items:center;gap:.75rem;display:flex}.navbar-user{color:var(--muted);font-size:.85rem}.hero{text-align:center;flex-direction:column;justify-content:center;align-items:center;padding:8rem 1.5rem 5rem;display:flex;position:relative;overflow:hidden}.hero:before{content:"";background:radial-gradient(circle,var(--accent-glow),transparent 70%);pointer-events:none;z-index:0;width:600px;height:600px;position:absolute;top:-30%;left:50%;transform:translate(-50%)}.hero>*{z-index:1;position:relative}.hero-title{letter-spacing:-.04em;background:linear-gradient(135deg,#fff 30%,var(--accent));-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;margin:0 0 1rem;font-size:3.5rem;font-weight:800;line-height:1.1}.hero-subtitle{color:var(--muted);max-width:480px;margin:0 0 2.5rem;font-size:1.15rem;line-height:1.6}.hero-actions{gap:.75rem;display:flex}.hero-actions .button{padding:.75rem 2rem;font-size:1rem}.features{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem;width:100%;max-width:880px;margin:0 auto;padding:0 1.5rem 4rem;display:grid}.feature-card{border:1px solid var(--line);background:var(--panel);border-radius:.75rem;padding:1.5rem}.feature-card h3{margin-bottom:.4rem;font-size:1rem}.feature-card p{color:var(--muted);margin:0;font-size:.875rem;line-height:1.55}.auth-wrap{justify-content:center;align-items:center;min-height:100vh;padding:2rem 1rem;display:flex}.auth-card{border:1px solid var(--line);background:var(--panel);border-radius:.75rem;gap:1.25rem;width:min(420px,100%);padding:2rem;display:grid}.auth-card h1{text-align:center;margin:0;font-size:1.5rem}.auth-divider{border:0;border-top:1px solid var(--line);margin:0}.world-card{border:1px solid var(--line);background:var(--panel);border-radius:.75rem;transition:border-color .2s,box-shadow .2s;overflow:hidden}.world-card:hover{border-color:#8b5cf64d;box-shadow:0 0 24px #8b5cf60f}.world-card-accent{height:3px}.world-card-accent.forest{background:linear-gradient(90deg,#34d399,#059669)}.world-card-accent.snow{background:linear-gradient(90deg,#93c5fd,#3b82f6)}.world-card-accent.coast{background:linear-gradient(90deg,#fbbf24,#f59e0b)}.world-card-body{padding:1.25rem}.world-card-body h3{margin:0 0 .5rem;font-size:1.05rem}.world-card-meta{flex-wrap:wrap;gap:.4rem;margin-bottom:.85rem;display:flex}.world-card-footer{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.world-card-footer .muted{font-size:.8rem}.section-header{justify-content:space-between;align-items:center;gap:1rem;display:flex}.section-header h2{margin:0}.empty-state{text-align:center;color:var(--muted);border:1px dashed var(--line);border-radius:.75rem;padding:3rem 1rem}.empty-state p{margin:0}dialog{background:0 0;border:0;width:100%;max-width:100vw;height:100%;max-height:100vh;padding:0}dialog::backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#000000b3}.modal{background:var(--panel);border:1px solid var(--line);border-radius:.75rem;width:min(500px,100% - 2rem);margin:10vh auto;overflow:hidden}.modal-header{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;padding:1rem 1.25rem;display:flex}.modal-header h2{margin:0;font-size:1.1rem}.modal-close{color:var(--muted);cursor:pointer;background:0 0;border:0;padding:.25rem;font-size:1.5rem;line-height:1}.modal-close:hover{color:var(--ink);box-shadow:none;background:0 0}.modal-body{gap:1rem;padding:1.25rem;display:grid}.invite-box{background:var(--bg-secondary);border:1px solid var(--line);color:var(--ink-secondary);word-break:break-all;border-radius:.5rem;padding:.65rem .85rem;font-family:SF Mono,Fira Code,Fira Mono,monospace;font-size:.8rem;line-height:1.5}.member-row{border:1px solid var(--line);background:var(--bg-secondary);border-radius:.5rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.75rem;display:flex}.member-info{align-items:center;gap:.75rem;display:flex}.member-avatar{color:#fff;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.85rem;font-weight:700;display:flex}.member-details p{margin:0}.member-name{font-size:.9rem;font-weight:600}.stat-row{flex-wrap:wrap;gap:1.5rem;display:flex}.stat{flex-direction:column;gap:.15rem;display:flex}.stat-label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:.7rem}.stat-value{font-size:.95rem;font-weight:600}.site-footer{text-align:center;color:var(--muted);padding:2rem 1rem;font-size:.8rem}.site-footer a{color:var(--muted);margin:0 .5rem;text-decoration:none}.site-footer a:hover{color:var(--ink)}@media (max-width:700px){.hero{padding:5rem 1rem 3rem}.hero-title{font-size:2.25rem}.hero-actions{flex-direction:column;width:100%}.hero-actions .button{width:100%}.navbar{padding:.6rem .75rem}.section-header{flex-direction:column;align-items:flex-start}.container{padding:1.25rem .75rem}}
