*{margin:0;padding:0;box-sizing:border-box}:root{--font-display: "Helvetica Neue", Helvetica, Arial, sans-serif;--font-meta: "SF Mono", SFMono-Regular, Menlo, Consolas, monospace;--void: #050505;--text-primary: rgba(246, 246, 242, .86);--text-secondary: rgba(246, 246, 242, .48);--text-faint: rgba(246, 246, 242, .28);--rule: rgba(246, 246, 242, .14);--surface: rgba(246, 246, 242, .045);--ease-emerge: cubic-bezier(.16, 1, .3, 1)}body{font-family:var(--font-display);font-weight:300;background:var(--void);color:var(--text-primary);overflow:hidden;cursor:grab;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}body:active{cursor:grabbing}#app{position:relative;width:100vw;height:100vh}#constellation{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1}#app:before{content:"";position:absolute;top:0;left:0;width:100%;height:100%;opacity:.02;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)'/%3E%3C/svg%3E");z-index:1}#quote-overlay{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#050505d1;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);z-index:10;opacity:1;transition:opacity .7s var(--ease-emerge),backdrop-filter .7s var(--ease-emerge)}#quote-overlay.hidden{opacity:0;pointer-events:none}#quote-content{width:min(86vw,760px);padding:3rem;text-align:left}#quote-category{display:inline-block;margin-bottom:2.25rem;font-family:var(--font-meta);font-size:.625rem;font-weight:400;text-transform:uppercase;letter-spacing:.18em;color:var(--text-faint)}#quote-category:empty{display:none}#quote-text{font-size:clamp(1.65rem,3.1vw,2.4rem);font-weight:300;line-height:1.42;letter-spacing:-.015em;font-style:normal;margin-bottom:2rem;color:var(--text-primary)}#quote-attribution{font-size:.75rem;font-weight:400;letter-spacing:.04em;color:var(--text-secondary);font-style:normal}#quote-attribution:before{content:"— "}#quote-attribution:empty:before{content:""}#quote-edit-hint{margin-top:1rem;font-family:var(--font-meta);font-size:.625rem;color:var(--text-faint);letter-spacing:.08em}#quote-edit-hint.hidden{display:none}#add-quote-modal{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:#050505eb;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:20;opacity:1;transition:opacity .7s var(--ease-emerge)}#add-quote-modal.hidden{opacity:0;pointer-events:none}#add-quote-container{width:90%;max-width:600px}#quote-input{width:100%;height:150px;padding:1.5rem;font-family:var(--font-display);font-size:1.25rem;font-weight:300;line-height:1.6;background:var(--surface);border:1px solid var(--rule);border-radius:3px;color:var(--text-primary);resize:none;outline:none;transition:border-color .2s ease}#quote-input:focus{border-color:#f6f6f252}#quote-input::placeholder{color:var(--text-faint)}#attribution-input{width:100%;margin-top:1rem;padding:1rem 1.5rem;font-family:var(--font-display);font-size:.875rem;font-weight:300;background:var(--surface);border:1px solid var(--rule);border-radius:3px;color:var(--text-secondary);outline:none;transition:border-color .2s ease}#attribution-input:focus{border-color:#f6f6f247}#attribution-input::placeholder{color:var(--text-faint)}#save-quote-button{width:100%;margin-top:.9rem;padding:.75rem 1rem;font-family:var(--font-meta);font-size:.625rem;font-weight:400;text-transform:uppercase;letter-spacing:.14em;color:var(--text-secondary);background:var(--surface);border:1px solid var(--rule);border-radius:3px;cursor:pointer;transition:all .2s ease}#save-quote-button:hover{background:#f6f6f21a;color:var(--text-primary)}#save-quote-button:active{transform:translateY(1px)}#add-quote-hint{margin-top:1rem;font-family:var(--font-meta);font-size:.625rem;letter-spacing:.06em;color:var(--text-faint);text-align:center}#resonance-toggle{position:absolute;bottom:2rem;right:2rem;width:48px;height:48px;font-size:1.5rem;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:3px;color:var(--text-faint);cursor:pointer;z-index:20;opacity:.65;transition:all .3s ease}#resonance-toggle:hover{opacity:1;background:#ffffff1a;color:#f0f0f0}#resonance-toggle.active{opacity:1;background:#e8b05c26;border-color:#e8b05c66;color:#e8b05c}#quote-related{margin-top:1.5rem}#quote-related-list{list-style:none;margin:0;padding:0}#quote-related-list li{padding:.55rem 0;border-top:1px solid var(--rule);color:var(--text-secondary);font-size:.875rem;font-style:normal;line-height:1.55;cursor:pointer;transition:color .2s ease}#quote-related-list li:hover{color:#ffe0a3}#hint{position:absolute;bottom:2rem;left:50%;transform:translate(-50%);font-family:var(--font-meta);font-size:.625rem;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);z-index:5;pointer-events:none;opacity:1;transition:opacity 1s ease}#hint.hidden{opacity:0}#status-toast{position:absolute;left:50%;bottom:4.75rem;transform:translate(-50%);z-index:12;max-width:min(90vw,640px);padding:.7rem 1rem;border:1px solid rgba(255,255,255,.2);border-radius:3px;background:#0c0c0cf0;color:var(--text-secondary);font-family:var(--font-meta);font-size:.625rem;letter-spacing:.06em;text-align:center;opacity:1;transition:opacity .35s ease}#status-toast.hidden{opacity:0;pointer-events:none}#loading{position:absolute;top:0;left:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1rem;z-index:100;background:var(--void);color:var(--text-faint);font-family:var(--font-meta);font-size:.625rem;letter-spacing:.1em;text-transform:uppercase;transition:opacity .5s ease}#loading.hidden{opacity:0;pointer-events:none}.loader{width:40px;height:40px;border:2px solid rgba(255,255,255,.1);border-top-color:#fff6;border-radius:50%;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.connection-line{position:absolute;pointer-events:none;z-index:2}@media (max-width: 768px){#quote-text{font-size:1.55rem;line-height:1.45}#quote-content{width:100%;padding:1.75rem}#hint{font-size:.85rem;text-align:center;padding:0 1rem}}
