:root{--ps-bg: #0d0817;--ps-bg-elevated: #171026;--ps-bg-card: #1d1433;--ps-border: #2f2148;--ps-text: #f4edff;--ps-text-dim: #a89bc4;--ps-accent: #ff7a1a;--ps-accent-strong: #ff9440;--ps-accent-contrast: #1a0e00;--ps-secondary: #8b5cf6;--ps-secondary-strong: #a78bfa;--ps-success: #4ade80;--ps-danger: #f87171;--ps-warning: #fbbf24;--ps-glow: 0 0 24px rgba(255, 122, 26, .35);--ps-radius: 14px;--ps-radius-sm: 9px;--ps-font-display: "Lilita One", system-ui, sans-serif;--ps-font-body: "Inter", "PingFang SC", "Microsoft YaHei", system-ui, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ps-bg);color:var(--ps-text);font-family:var(--ps-font-body);line-height:1.55;-webkit-font-smoothing:antialiased}.ps-night{position:relative;min-height:100%;background:radial-gradient(1200px 600px at 80% -10%,color-mix(in srgb,var(--ps-secondary) 18%,transparent),transparent 60%),radial-gradient(900px 500px at 0% 100%,color-mix(in srgb,var(--ps-accent) 12%,transparent),transparent 55%),var(--ps-bg)}.ps-night:before{content:"";position:fixed;inset:0;pointer-events:none;background-image:radial-gradient(1px 1px at 20% 30%,rgba(255,255,255,.35) 50%,transparent 51%),radial-gradient(1px 1px at 70% 15%,rgba(255,255,255,.25) 50%,transparent 51%),radial-gradient(1.5px 1.5px at 45% 60%,rgba(255,255,255,.2) 50%,transparent 51%),radial-gradient(1px 1px at 85% 70%,rgba(255,255,255,.3) 50%,transparent 51%),radial-gradient(1px 1px at 10% 80%,rgba(255,255,255,.2) 50%,transparent 51%);background-size:600px 600px;opacity:.8;z-index:0}.ps-app{position:relative;z-index:1}h1,h2,h3{font-family:var(--ps-font-display);font-weight:400;letter-spacing:.02em}a{color:var(--ps-secondary-strong)}.ps-btn{display:inline-flex;align-items:center;justify-content:center;gap:.45em;border:1px solid transparent;border-radius:var(--ps-radius-sm);padding:.55em 1.15em;font:600 .95rem/1.2 var(--ps-font-body);cursor:pointer;white-space:nowrap;transition:transform .12s ease,box-shadow .2s ease,background .2s ease,opacity .2s;-webkit-user-select:none;user-select:none}.ps-btn:active{transform:translateY(1px) scale(.99)}.ps-btn:disabled{opacity:.45;cursor:not-allowed}.ps-btn--primary{background:linear-gradient(135deg,var(--ps-accent),var(--ps-accent-strong));color:var(--ps-accent-contrast);box-shadow:var(--ps-glow)}.ps-btn--primary:hover:not(:disabled){filter:brightness(1.08)}.ps-btn--secondary{background:color-mix(in srgb,var(--ps-secondary) 22%,transparent);border-color:color-mix(in srgb,var(--ps-secondary) 45%,transparent);color:var(--ps-secondary-strong)}.ps-btn--secondary:hover:not(:disabled){background:color-mix(in srgb,var(--ps-secondary) 32%,transparent)}.ps-btn--ghost{background:transparent;border-color:var(--ps-border);color:var(--ps-text-dim)}.ps-btn--ghost:hover:not(:disabled){color:var(--ps-text);border-color:var(--ps-text-dim)}.ps-btn--danger{background:color-mix(in srgb,var(--ps-danger) 18%,transparent);border-color:color-mix(in srgb,var(--ps-danger) 45%,transparent);color:var(--ps-danger)}.ps-btn--lg{padding:.8em 1.6em;font-size:1.05rem;border-radius:var(--ps-radius)}.ps-btn--sm{padding:.35em .7em;font-size:.8rem}.ps-card{background:color-mix(in srgb,var(--ps-bg-card) 88%,transparent);border:1px solid var(--ps-border);border-radius:var(--ps-radius);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.ps-card--pad{padding:1.15rem}.ps-badge{display:inline-flex;align-items:center;gap:.3em;padding:.15em .6em;border-radius:999px;font-size:.72rem;font-weight:600;letter-spacing:.03em;background:color-mix(in srgb,var(--ps-secondary) 18%,transparent);color:var(--ps-secondary-strong);border:1px solid color-mix(in srgb,var(--ps-secondary) 35%,transparent)}.ps-badge--accent{background:color-mix(in srgb,var(--ps-accent) 16%,transparent);color:var(--ps-accent-strong);border-color:color-mix(in srgb,var(--ps-accent) 40%,transparent)}.ps-badge--muted{background:color-mix(in srgb,var(--ps-text-dim) 10%,transparent);color:var(--ps-text-dim);border-color:var(--ps-border)}.ps-input,.ps-textarea,.ps-select{width:100%;background:color-mix(in srgb,var(--ps-bg-elevated) 90%,transparent);color:var(--ps-text);border:1px solid var(--ps-border);border-radius:var(--ps-radius-sm);padding:.6em .85em;font:.95rem/1.4 var(--ps-font-body);outline:none;transition:border-color .15s,box-shadow .15s}.ps-input:focus,.ps-textarea:focus,.ps-select:focus{border-color:var(--ps-accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--ps-accent) 22%,transparent)}.ps-textarea{resize:vertical;min-height:84px}.ps-label{display:block;font-size:.8rem;font-weight:600;color:var(--ps-text-dim);margin:0 0 .35em;letter-spacing:.02em}.ps-modal-overlay{position:fixed;inset:0;z-index:60;display:grid;place-items:center;padding:1rem;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:ps-fade-in .18s ease}.ps-modal{width:min(560px,100%);max-height:86vh;overflow:auto;background:var(--ps-bg-elevated);border:1px solid var(--ps-border);border-radius:var(--ps-radius);padding:1.4rem;box-shadow:0 24px 60px #00000080,var(--ps-glow);animation:ps-pop-in .2s cubic-bezier(.2,.9,.3,1.2)}.ps-toasts{position:fixed;bottom:1.2rem;left:50%;transform:translate(-50%);z-index:80;display:flex;flex-direction:column;gap:.5rem;align-items:center}.ps-toast{padding:.6em 1.1em;border-radius:999px;background:var(--ps-bg-elevated);border:1px solid var(--ps-border);box-shadow:0 8px 30px #00000073;font-size:.9rem;animation:ps-pop-in .22s ease}.ps-toast--success{border-color:color-mix(in srgb,var(--ps-success) 50%,transparent)}.ps-toast--error{border-color:color-mix(in srgb,var(--ps-danger) 55%,transparent)}.ps-empty{text-align:center;padding:3rem 1rem;color:var(--ps-text-dim)}.ps-empty .ps-empty__motif{font-size:3rem;display:block;margin-bottom:.4rem;filter:drop-shadow(var(--ps-glow))}.ps-confetti{position:fixed;inset:0;pointer-events:none;overflow:hidden;z-index:0}.ps-confetti span{position:absolute;top:-5vh;animation:ps-fall linear infinite;opacity:.5;will-change:transform}@keyframes ps-fall{0%{transform:translateY(-6vh) rotate(0)}to{transform:translateY(110vh) rotate(340deg)}}.ps-header{display:flex;align-items:center;gap:.8rem;padding:.9rem 1.2rem;border-bottom:1px solid var(--ps-border);background:color-mix(in srgb,var(--ps-bg-elevated) 72%,transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);position:sticky;top:0;z-index:40;flex-wrap:wrap}.ps-header__title{font-family:var(--ps-font-display);font-size:1.35rem;display:flex;align-items:baseline;gap:.4em;white-space:nowrap}.ps-header__title>span:last-child{font-family:var(--ps-font-body);font-size:.62em;color:var(--ps-text-dim);font-weight:400;white-space:normal}.ps-header__spacer{flex:1}@media(max-width:640px){.ps-header{gap:.5rem;padding:.7rem .9rem}.ps-header__title{font-size:1.15rem}.ps-header__title>span:last-child{display:none}}.ps-footer{text-align:center;padding:1.6rem 1rem 2rem;color:var(--ps-text-dim);font-size:.82rem}.ps-footer a{color:inherit}@keyframes ps-fade-in{0%{opacity:0}to{opacity:1}}@keyframes ps-pop-in{0%{opacity:0;transform:scale(.94) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.leaflet-popup-content-wrapper{background:var(--ps-bg-card)!important;color:var(--ps-text)!important;border:1px solid var(--ps-border);border-radius:var(--ps-radius-sm)!important;box-shadow:0 10px 34px #00000073!important}.leaflet-popup-tip{background:var(--ps-bg-card)!important;border:1px solid var(--ps-border)}.leaflet-container{background:#0b0714!important;font-family:var(--ps-font-body)!important}.leaflet-bar{border:1px solid var(--ps-border)!important;box-shadow:0 6px 20px #0006!important}.leaflet-bar a{background:var(--ps-bg-elevated)!important;color:var(--ps-text)!important;border-bottom-color:var(--ps-border)!important}.leaflet-bar a:hover{background:var(--ps-bg-card)!important;color:var(--ps-accent-strong)!important}.leaflet-control-attribution{background:#0d0817c7!important;color:var(--ps-text-dim)!important;font-size:.62rem!important;padding:0 6px!important}.leaflet-control-attribution a{color:var(--ps-text-dim)!important}.ps-map-dark .leaflet-tile-pane{filter:invert(1) hue-rotate(190deg) brightness(1.02) contrast(.86) saturate(.55)}@media(prefers-reduced-motion:reduce){.ps-confetti span{display:none}*{animation-duration:.01ms!important;transition-duration:.01ms!important}}.ps-demo-notice{margin:0 0 1rem;padding:.65rem .9rem;border:1px solid var(--ps-border);border-radius:.7rem;font-size:.82rem;line-height:1.5;color:var(--ps-text-dim)}.gsr-home{max-width:1020px;margin:0 auto;padding:2.2rem 1.2rem 3rem}.gsr-hero{text-align:center;margin-bottom:2rem}.gsr-hero__title{font-size:clamp(2.2rem,6vw,3.6rem);margin:0 0 .5rem;text-shadow:var(--ps-glow)}.gsr-hero__tagline{color:var(--ps-text-dim);max-width:46ch;margin:0 auto;font-size:1.02rem}.gsr-home-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:1rem;align-items:start}.gsr-panel{padding:1.4rem}.gsr-panel--dim{opacity:.92}.gsr-create{width:100%;margin-top:1.2rem}.gsr-or{text-align:center;color:var(--ps-text-dim);font-size:.85rem;margin:.9rem 0;letter-spacing:.14em;text-transform:uppercase}.gsr-code{font-family:ui-monospace,monospace}.gsr-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.7rem}.gsr-steps li{display:flex;align-items:center;gap:.7rem;color:var(--ps-text-dim)}.gsr-step-num{display:grid;place-items:center;width:1.7rem;height:1.7rem;border-radius:50%;background:color-mix(in srgb,var(--ps-accent) 20%,transparent);color:var(--ps-accent-strong);font-weight:800;font-size:.85rem;flex-shrink:0}.gsr-room{max-width:860px;margin:0 auto;padding:1rem 1.2rem .5rem;display:flex;flex-direction:column;height:calc(100dvh - 114px);min-height:480px}.gsr-roombar{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding-bottom:.7rem;border-bottom:1px solid var(--ps-border)}.gsr-nick{width:130px;padding:.3em .6em;font-size:.85rem}.gsr-story{flex:1;overflow-y:auto;padding:1.1rem .2rem;display:flex;flex-direction:column;gap:.75rem;scroll-behavior:smooth}.gsr-line{border:1px solid var(--ps-border);border-radius:var(--ps-radius);background:color-mix(in srgb,var(--ps-bg-card) 78%,transparent);padding:.65rem .9rem;animation:ps-pop-in .25s ease;max-width:92%}.gsr-line--you{border-color:color-mix(in srgb,var(--ps-accent) 55%,transparent)}.gsr-line--house{border-style:dashed;background:color-mix(in srgb,var(--ps-secondary) 10%,transparent)}.gsr-line__head{display:flex;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.2rem}.gsr-line__author{font-size:.78rem;font-weight:700;color:var(--ps-secondary-strong);letter-spacing:.02em}.gsr-you{color:var(--ps-text-dim);font-style:normal;font-weight:400}.gsr-line__text{margin:0;font-size:1.02rem}.gsr-vibe{border:1px solid var(--ps-border);background:transparent;color:var(--ps-text-dim);border-radius:999px;padding:.12em .6em;font:700 .78rem var(--ps-font-body);cursor:pointer;transition:all .15s;flex-shrink:0}.gsr-vibe:hover{border-color:var(--ps-secondary);color:var(--ps-secondary-strong)}.gsr-vibe--on{background:color-mix(in srgb,var(--ps-secondary) 25%,transparent);border-color:var(--ps-secondary);color:var(--ps-secondary-strong);box-shadow:0 0 12px color-mix(in srgb,var(--ps-secondary) 40%,transparent)}.gsr-composer{border-top:1px solid var(--ps-border);padding:.8rem 0 1rem;background:color-mix(in srgb,var(--ps-bg-elevated) 65%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.gsr-turn-row{display:flex;align-items:baseline;justify-content:space-between;gap:.8rem;margin-bottom:.4rem}.gsr-turn{font-size:.78rem;color:var(--ps-accent-strong);letter-spacing:.02em}.gsr-composer-row{display:flex;gap:.55rem}.gsr-meter{text-align:right;font-size:.72rem;color:var(--ps-text-dim);margin-top:.25rem}.gsr-meter[data-over]{color:var(--ps-danger)}.gsr-final{font-size:1.08rem;line-height:1.85;background:color-mix(in srgb,var(--ps-secondary) 7%,transparent);border:1px solid var(--ps-border);border-radius:var(--ps-radius-sm);padding:1rem 1.2rem;max-height:40vh;overflow:auto}@media(max-width:820px){.gsr-home-grid{grid-template-columns:1fr}.gsr-room{height:auto}.gsr-story{flex:none;overflow:visible}.gsr-composer{position:sticky;bottom:0;z-index:30;border-bottom:none}}
