*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #f5f1e8;--text: #4a4238;--text-light: #8a7a6a;--text-lighter: #6b5d4f;--border: #c9bfa8;--surface: #e5dbc8;--surface-hover: #d9cdb5}@media(prefers-color-scheme:dark){:root{--bg: #1a1a1a;--text: #e5e5e5;--text-light: #a0a0a0;--text-lighter: #c0c0c0;--border: #404040;--surface: #2a2a2a;--surface-hover: #353535}}body{font-family:ui-monospace,SF Mono,Monaco,Cascadia Code,Roboto Mono,Menlo,Courier New,monospace;height:100vh;background:var(--bg);color:var(--text);overflow:hidden;position:relative;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.canvas{position:fixed;top:0;right:0;bottom:0;left:0}.identity{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:var(--surface);border:2px solid var(--text-light);border-radius:50%;width:clamp(100px,20vmin,140px);height:clamp(100px,20vmin,140px);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:10;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent}.identity:hover,.identity:active{transform:translate(-50%,-50%) scale(1.05);border-color:var(--text);box-shadow:0 0 20px #ffffff1a}.identity.pulse{animation:identityPulse .3s ease-out}@keyframes identityPulse{0%{box-shadow:0 0 #8ba4b866}70%{box-shadow:0 0 0 15px #8ba4b800}to{box-shadow:0 0 #8ba4b800}}.identity-label{font-size:clamp(1rem,2vmin,1.2rem);color:var(--text);font-weight:600;line-height:1}.identity-value{font-size:.7rem;color:var(--text-lighter);text-align:center;white-space:nowrap;font-weight:400;line-height:1.2}.identity-value:hover{opacity:.7}.identity-pds-label{position:absolute;bottom:clamp(-1.5rem,-3vmin,-2rem);font-size:clamp(.55rem,1.1vmin,.65rem);color:var(--text-light);letter-spacing:.05em;font-weight:500;text-decoration:none;white-space:nowrap;transition:opacity .2s ease}.identity-pds-label:hover{opacity:.7}.identity-avatar{position:absolute;top:0;left:0;width:100%;height:100%;border-radius:50%;object-fit:cover}.identity-handle{position:absolute;bottom:-1.8rem;left:50%;transform:translate(-50%);font-size:clamp(.7rem,1.5vmin,.85rem);color:var(--text-light);white-space:nowrap}.app-view{position:absolute;display:flex;flex-direction:column;align-items:center;gap:clamp(.3rem,1vmin,.5rem);cursor:pointer;transition:all .2s ease;opacity:.7}.app-view:hover{opacity:1;transform:scale(1.1);z-index:100}.app-circle{background:var(--surface-hover);border:1px solid var(--border);border-radius:50%;width:clamp(55px,10vmin,70px);height:clamp(55px,10vmin,70px);display:flex;align-items:center;justify-content:center;transition:all .2s ease;overflow:hidden;font-size:clamp(1rem,2vmin,1.5rem)}.app-logo{width:100%;height:100%;object-fit:cover}.app-view:hover .app-circle{background:var(--surface);border-color:var(--text-light)}.app-name{position:absolute;top:100%;left:50%;transform:translate(-50%);margin-top:clamp(.3rem,1vmin,.5rem);font-size:clamp(.6rem,1.2vmin,.75rem);color:var(--text);text-align:center;max-width:200px;text-decoration:none;display:block;white-space:nowrap;transition:opacity .15s ease,transform .15s ease}#field.many-apps .app-name{display:none}#field.many-apps .app-view.selected .app-name{display:block}.app-view.selected{opacity:1;z-index:100}.app-view.selected .app-circle{box-shadow:0 0 0 3px var(--text-light);border-color:var(--text);animation:selectedPulse 2s ease-in-out infinite}@keyframes selectedPulse{0%,to{box-shadow:0 0 0 3px var(--text-light)}50%{box-shadow:0 0 0 5px var(--text-light),0 0 12px #ffffff26}}@media(max-width:768px){.app-name{font-size:clamp(.55rem,1vmin,.65rem)}}.app-name:hover{text-decoration:underline;color:var(--text)}.app-name.invalid-link{color:var(--text-light);opacity:.5;cursor:not-allowed}.app-name.invalid-link:hover{text-decoration:none;color:var(--text-light)}#field.many-apps .app-name.invalid-link{display:none}.detail-panel{position:fixed;top:0;left:0;bottom:0;width:500px;background:var(--surface);border-right:2px solid var(--border);padding:2.5rem 2rem;overflow-y:auto;opacity:0;transform:translate(-100%);transition:all .25s ease;z-index:1000;scrollbar-width:none;-ms-overflow-style:none}.detail-panel::-webkit-scrollbar{display:none}.detail-panel.visible{opacity:1;transform:translate(0)}@media(max-width:768px){.detail-panel{width:100%;padding:4rem 1.5rem 2rem;border-right:none;border-bottom:2px solid var(--border)}}.detail-panel h3{margin-bottom:.75rem;font-size:.85rem;color:var(--text)}.detail-panel .subtitle{font-size:.7rem;color:var(--text-light);margin-bottom:1.5rem;line-height:1.4}.detail-close{position:absolute;top:1.5rem;right:1.5rem;width:32px;height:32px;border:1px solid var(--border);background:var(--bg);color:var(--text-light);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;line-height:1;transition:all .2s ease;border-radius:2px;-webkit-tap-highlight-color:transparent}.detail-close:hover,.detail-close:active{background:var(--surface-hover);border-color:var(--text-light);color:var(--text)}@media(max-width:768px){.detail-close{top:1rem;right:1rem;width:40px;height:40px;font-size:1.4rem}}.tree-item{padding:.65rem .75rem;font-size:.75rem;color:var(--text-lighter);background:var(--bg);border:1px solid var(--border);border-radius:2px;margin-bottom:.5rem;transition:all .15s ease;cursor:pointer;-webkit-tap-highlight-color:transparent}.tree-item:hover,.tree-item:active{background:var(--surface-hover);border-color:var(--text-light)}@media(max-width:768px){.tree-item{padding:.8rem .9rem;font-size:.8rem}}.tree-item:last-child{margin-bottom:0}.tree-item-header{display:flex;justify-content:space-between;align-items:center}.tree-item-count{font-size:.65rem;color:var(--text-light);transition:color .15s ease}.tree-item-count.has-records{color:var(--text);font-weight:500}.tree-item:hover .tree-item-count.has-records{color:var(--text)}.tree-item-count.empty{color:var(--text-lighter);opacity:.6}.collection-content{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.collection-tabs{display:flex;gap:0;margin-bottom:.75rem;border:1px solid var(--border);border-radius:2px;overflow:hidden}.collection-tab{flex:1;padding:.5rem .75rem;background:var(--bg);border:none;border-right:1px solid var(--border);color:var(--text-light);font-family:inherit;font-size:.65rem;cursor:pointer;transition:all .15s ease;-webkit-tap-highlight-color:transparent}.collection-tab:last-child{border-right:none}.collection-tab:hover{background:var(--surface);color:var(--text)}.collection-tab.active{background:var(--surface-hover);color:var(--text);font-weight:500}.collection-view-content{position:relative}.collection-view{display:none}.collection-view.active{display:block}.structure-view{min-height:600px}.record-list{margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}.record{margin-bottom:.5rem;background:var(--bg);border:1px solid var(--border);border-radius:4px;font-size:.65rem;color:var(--text-light);transition:all .15s ease;overflow:hidden}.record:hover{border-color:var(--text-light);background:var(--surface)}.record:last-child{margin-bottom:0}.record-header{display:flex;justify-content:space-between;align-items:center;padding:.5rem .6rem;background:var(--surface);border-bottom:1px solid var(--border)}.record-label{font-size:.6rem;color:var(--text-lighter);font-weight:500}.copy-btn{background:var(--bg);border:1px solid var(--border);color:var(--text-light);font-family:inherit;font-size:.55rem;padding:.2rem .5rem;cursor:pointer;transition:all .15s ease;border-radius:2px;-webkit-tap-highlight-color:transparent}.copy-btn:hover,.copy-btn:active{background:var(--surface-hover);border-color:var(--text-light);color:var(--text)}.copy-btn.copied{color:var(--text);border-color:var(--text)}.record-content{padding:.6rem;cursor:text;-webkit-user-select:text;user-select:text}.record-content pre{margin:0;white-space:pre-wrap;word-break:break-word;line-height:1.5;font-size:.625rem;cursor:text;-webkit-user-select:text;user-select:text}.load-more{margin-top:.5rem;padding:.4rem .6rem;background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:inherit;font-size:.65rem;cursor:pointer;width:100%;transition:all .15s ease;-webkit-tap-highlight-color:transparent;border-radius:2px}.load-more:hover,.load-more:active{background:var(--surface-hover);border-color:var(--text-light)}@media(max-width:768px){.load-more{padding:.6rem .8rem;font-size:.7rem}}#field.loading{position:fixed;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;z-index:1000;background:var(--bg)}#field.loading~.identity{display:none}.loading-spinner{width:48px;height:48px;border:3px solid var(--border);border-top-color:var(--text);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.loading-text{color:var(--text);font-size:.85rem;font-weight:500;letter-spacing:.05em}.loading-progress{color:var(--text-light);font-size:.7rem}.stats-box{display:flex;gap:1.5rem;margin:1.5rem 0;padding:1rem;background:var(--bg);border-radius:4px;border:1px solid var(--border)}.stat{flex:1;text-align:center}.stat-value{font-size:1.8rem;font-weight:600;color:var(--text);margin-bottom:.25rem}.stat-label{font-size:.65rem;color:var(--text-light);text-transform:uppercase;letter-spacing:.05em}.ownership-box{margin:1rem 0;padding:1rem;background:var(--bg);border-radius:4px;border:1px solid var(--border)}.ownership-box.yours{background:#4caf500d;border-color:#4caf504d}@media(prefers-color-scheme:dark){.ownership-box.yours{background:#4caf5014;border-color:#4caf5066}}.ownership-box.independent-pds{background:#9c27b00d;border-color:#9c27b04d}@media(prefers-color-scheme:dark){.ownership-box.independent-pds{background:#ba68c814;border-color:#ba68c866}}.ownership-box.bluesky-hosted{background:#2196f30d;border-color:#2196f34d}@media(prefers-color-scheme:dark){.ownership-box.bluesky-hosted{background:#42a5f514;border-color:#42a5f566}}.ownership-header{font-size:.7rem;font-weight:600;color:var(--text);margin-bottom:.5rem;text-transform:uppercase;letter-spacing:.05em}.ownership-text{font-size:.7rem;color:var(--text-lighter);line-height:1.5}.ownership-text strong{color:var(--text)}.ownership-text a{color:var(--text);text-decoration:underline}.home-btn{position:fixed;top:clamp(1rem,2vmin,1.5rem);left:clamp(1rem,2vmin,1.5rem);font-family:inherit;font-size:clamp(.85rem,1.8vmin,1rem);color:var(--text-light);border:1px solid var(--border);background:var(--bg);padding:clamp(.4rem,1vmin,.5rem) clamp(.6rem,1.5vmin,.8rem);transition:all .2s ease;z-index:100;cursor:pointer;border-radius:2px;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;width:clamp(32px,7vmin,40px);height:clamp(32px,7vmin,40px)}.home-btn:hover,.home-btn:active{background:var(--surface);color:var(--text);border-color:var(--text-light)}.watch-live-btn{font-family:inherit;font-size:clamp(.65rem,1.4vmin,.75rem);color:var(--text-light);border:1px solid var(--border);background:var(--bg);padding:clamp(.4rem,1vmin,.5rem) clamp(.8rem,2vmin,1rem);transition:all .2s ease;cursor:pointer;border-radius:2px;display:flex;align-items:center;gap:clamp(.3rem,.8vmin,.5rem)}.watch-live-btn:hover,.watch-live-btn:active{background:var(--surface);color:var(--text);border-color:var(--text-light)}.watch-live-btn.active{background:var(--surface-hover);color:var(--text);border-color:var(--text)}.watch-indicator{width:clamp(8px,2vmin,10px);height:clamp(8px,2vmin,10px);border-radius:50%;background:var(--text-light);display:none}.watch-live-btn.active .watch-indicator{display:block;animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:.5}50%{opacity:1}}.top-right-buttons{position:fixed;top:clamp(1rem,2vmin,1.5rem);right:clamp(1rem,2vmin,1.5rem);display:flex;flex-direction:row;align-items:center;gap:clamp(.5rem,1vmin,.75rem);z-index:100}@media(max-width:768px){.top-right-buttons{flex-direction:column;align-items:flex-end}}.filter-btn{font-family:inherit;font-size:clamp(.65rem,1.4vmin,.75rem);color:var(--text-light);border:1px solid var(--border);background:var(--bg);padding:clamp(.4rem,1vmin,.5rem) clamp(.8rem,2vmin,1rem);transition:all .2s ease;cursor:pointer;border-radius:2px;display:flex;align-items:center;gap:clamp(.3rem,.8vmin,.5rem)}.filter-btn:hover,.filter-btn:active{background:var(--surface);color:var(--text);border-color:var(--text-light)}.filter-btn.active{background:var(--surface-hover);color:var(--text);border-color:var(--text)}.filter-btn.has-filters{border-color:var(--text-light)}.filter-count{font-size:.6rem;background:var(--text-light);color:var(--bg);padding:.1rem .35rem;border-radius:2px;font-weight:500}.info{position:fixed;bottom:clamp(.75rem,2vmin,1rem);left:clamp(.75rem,2vmin,1rem);width:clamp(32px,7vmin,40px);height:clamp(32px,7vmin,40px);display:flex;align-items:center;justify-content:center;font-size:clamp(.85rem,1.8vmin,1rem);color:var(--text-light);cursor:pointer;transition:all .2s ease;z-index:100;-webkit-tap-highlight-color:transparent}.info:hover,.info:active{color:var(--text)}.info-modal{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);background:var(--surface);border:2px solid var(--border);padding:2rem;max-width:500px;width:90%;z-index:2000;display:none;border-radius:4px}@media(max-width:768px){.info-modal{padding:1.5rem;width:95%}.info-modal h2{font-size:.9rem}.info-modal p{font-size:.7rem}}.info-modal.visible{display:block}.info-modal h2{margin-bottom:1rem;font-size:1rem;color:var(--text)}.info-modal p{margin-bottom:.75rem;font-size:.75rem;line-height:1.5;color:var(--text-lighter)}.info-modal button{margin-top:1rem;padding:.5rem 1rem;background:var(--bg);border:1px solid var(--border);color:var(--text);font-family:inherit;font-size:.7rem;cursor:pointer;transition:all .2s ease;-webkit-tap-highlight-color:transparent;border-radius:2px}.info-modal button:hover,.info-modal button:active{background:var(--surface-hover);border-color:var(--text-light)}@media(max-width:768px){.info-modal button{padding:.65rem 1.2rem;font-size:.75rem}}.overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:1999;display:none}.overlay.visible{display:block}.pov-indicator{position:fixed;bottom:clamp(.75rem,2vmin,1rem);right:clamp(.75rem,2vmin,1rem);font-size:clamp(.55rem,1.2vmin,.65rem);color:var(--text-light);z-index:100}.pov-handle{color:var(--text);text-decoration:none}.pov-handle:hover{text-decoration:underline}.filter-panel{position:fixed;top:clamp(3.5rem,7vmin,4.5rem);right:clamp(1rem,2vmin,1.5rem);background:var(--surface);border:1px solid var(--border);border-radius:4px;padding:1rem;z-index:250;max-height:60vh;overflow-y:auto;min-width:200px;max-width:280px;display:none;box-shadow:0 4px 12px #00000026}@media(max-width:768px){.filter-panel{top:clamp(6rem,12vmin,8rem)}}@media(prefers-color-scheme:dark){.filter-panel{box-shadow:0 4px 12px #0006}}.filter-panel.visible{display:block}.filter-panel-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:.75rem;padding-bottom:.5rem;border-bottom:1px solid var(--border)}.filter-panel-title{font-size:.7rem;font-weight:500;color:var(--text);text-transform:lowercase}.filter-panel-actions{display:flex;gap:.5rem}.filter-action-btn{font-family:inherit;font-size:.6rem;color:var(--text-light);background:transparent;border:none;cursor:pointer;padding:.2rem 0;transition:color .2s ease}.filter-action-btn:hover{color:var(--text)}.filter-list{display:flex;flex-direction:column;gap:.25rem}.filter-item{display:flex;align-items:center;gap:.5rem;padding:.4rem .5rem;border-radius:2px;cursor:pointer;transition:background .15s ease}.filter-item:hover{background:var(--surface-hover)}.filter-checkbox{width:14px;height:14px;border:1px solid var(--border);border-radius:2px;background:var(--bg);display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .15s ease}.filter-item.checked .filter-checkbox{background:var(--text);border-color:var(--text)}.filter-checkbox-icon{width:10px;height:10px;stroke:var(--bg);stroke-width:2;opacity:0;transition:opacity .15s ease}.filter-item.checked .filter-checkbox-icon{opacity:1}.filter-label{font-size:.7rem;color:var(--text-lighter);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.filter-item.checked .filter-label{color:var(--text)}.app-view.filtered{display:none!important}@keyframes pulse{0%,to{opacity:1}50%{opacity:.3}}@keyframes gentle-pulse{0%,to{transform:scale(1);box-shadow:0 0 0 0 var(--text-light)}50%{transform:scale(1.02);box-shadow:0 0 0 3px #a0a0a033}}.firehose-toast{position:fixed;top:clamp(4rem,8vmin,5rem);right:clamp(1rem,2vmin,1.5rem);background:var(--surface);border:1px solid var(--border);padding:.75rem 1rem;border-radius:4px;font-size:.7rem;color:var(--text);z-index:200;opacity:0;transform:translateY(-10px);transition:all .3s ease;pointer-events:none;max-width:min(300px,calc(100vw - 2rem));width:max-content}@media(max-width:768px){.firehose-toast{top:clamp(7rem,14vmin,9rem)}}.firehose-toast.visible{opacity:1;transform:translateY(0);pointer-events:auto}.firehose-toast-action{font-weight:600;color:var(--text)}.firehose-toast-collection{color:var(--text-light);font-size:.65rem;margin-top:.25rem}.firehose-toast-link{display:inline-block;color:var(--text-light);font-size:.6rem;margin-top:.5rem;text-decoration:none;border-bottom:1px solid transparent;transition:all .2s ease;pointer-events:auto}.firehose-toast-link:hover{color:var(--text);border-bottom-color:var(--text)}.guestbook-buttons-container{position:fixed;bottom:clamp(.75rem,2vmin,1rem);right:clamp(.75rem,2vmin,1rem);display:flex;flex-direction:row;align-items:center;gap:clamp(.5rem,1.5vmin,.75rem);z-index:100}.view-guestbook-btn{font-family:inherit;font-size:clamp(.85rem,1.8vmin,1rem);color:var(--text-light);border:1px solid var(--border);background:var(--bg);padding:clamp(.4rem,1vmin,.5rem) clamp(.6rem,1.5vmin,.8rem);transition:all .2s ease;cursor:pointer;border-radius:2px;width:clamp(32px,7vmin,40px);height:clamp(32px,7vmin,40px);display:flex;align-items:center;justify-content:center}.view-guestbook-btn:hover,.view-guestbook-btn:active{background:var(--surface);color:var(--text);border-color:var(--text-light)}.sign-guestbook-btn{font-family:inherit;font-size:clamp(.65rem,1.4vmin,.75rem);color:var(--text-light);border:1px solid var(--border);background:var(--bg);padding:clamp(.4rem,1vmin,.5rem) clamp(.6rem,1.5vmin,.8rem);transition:all .2s ease;cursor:pointer;border-radius:2px;display:flex;align-items:center;gap:clamp(.3rem,.8vmin,.5rem);height:clamp(32px,7vmin,40px);white-space:nowrap}.sign-guestbook-btn:hover,.sign-guestbook-btn:active{background:var(--surface);color:var(--text);border-color:var(--text-light)}.sign-guestbook-btn:disabled{opacity:.5;cursor:not-allowed}.sign-guestbook-btn.signed{border-color:var(--text-light);background:var(--surface)}.sign-guestbook-btn.pulse{animation:gentle-pulse 2s ease-in-out infinite}.guestbook-icon{display:flex;align-items:center;line-height:1}.guestbook-avatar{width:clamp(20px,4.5vmin,24px);height:clamp(20px,4.5vmin,24px);border-radius:50%;object-fit:cover;border:1px solid var(--border);flex-shrink:0;box-shadow:0 2px 4px #00000026,0 1px 2px #0000001a}@media(prefers-color-scheme:dark){.guestbook-avatar{box-shadow:0 2px 4px #0000004d,0 1px 2px #0003}}.guestbook-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--bg);z-index:2000;display:none;overflow-y:auto;padding:clamp(4rem,8vmin,6rem) clamp(1rem,3vmin,2rem) clamp(2rem,4vmin,3rem)}.guestbook-modal.visible{display:block}.guestbook-paper{max-width:700px;margin:0 auto;background:repeating-linear-gradient(0deg,transparent,transparent 31px,rgba(212,197,168,.15) 31px,rgba(212,197,168,.15) 32px),linear-gradient(to bottom,#fdfcf8,#f9f7f1);border:1px solid #d4c5a8;box-shadow:0 4px 6px #0000001a,0 2px 4px #0000000f,inset 0 0 80px #fff8f099;padding:clamp(2.5rem,6vmin,4rem) clamp(2rem,5vmin,3rem);position:relative}@media(prefers-color-scheme:dark){.guestbook-paper{background:repeating-linear-gradient(0deg,transparent,transparent 31px,rgba(90,80,70,.2) 31px,rgba(90,80,70,.2) 32px),linear-gradient(to bottom,#2a2520,#1f1b17);border-color:#3a3530;box-shadow:0 4px 6px #00000080,0 2px 4px #0000004d,inset 0 0 80px #3c322866}}.guestbook-paper:before{content:"";position:absolute;top:0;left:clamp(2rem,5vmin,3rem);width:2px;height:100%;background:linear-gradient(to bottom,transparent 0%,rgba(212,100,100,.2) 5%,rgba(212,100,100,.2) 95%,transparent 100%)}@media(prefers-color-scheme:dark){.guestbook-paper:before{background:linear-gradient(to bottom,transparent 0%,rgba(180,80,80,.15) 5%,rgba(180,80,80,.15) 95%,transparent 100%)}}.guestbook-paper-title{font-family:ui-monospace,SF Mono,Monaco,Cascadia Code,Roboto Mono,Menlo,Courier New,monospace;font-size:clamp(1.8rem,4.5vmin,2.5rem);color:#3a2f25;text-align:center;margin-bottom:clamp(.5rem,1.5vmin,1rem);font-weight:500;letter-spacing:.02em}@media(prefers-color-scheme:dark){.guestbook-paper-title{color:#d4c5a8}}.guestbook-paper-subtitle{font-family:ui-monospace,SF Mono,Monaco,Cascadia Code,Roboto Mono,Menlo,Courier New,monospace;font-size:clamp(.75rem,1.6vmin,.9rem);color:#6b5d4f;text-align:center;margin-bottom:clamp(2rem,5vmin,3rem);font-style:normal}@media(prefers-color-scheme:dark){.guestbook-paper-subtitle{color:#8a7a6a}}.guestbook-tally{font-family:ui-monospace,SF Mono,Monaco,Cascadia Code,Roboto Mono,Menlo,Courier New,monospace;text-align:center;font-size:clamp(.7rem,1.8vmin,.85rem);color:#6b5d4f;margin:clamp(1rem,2.5vmin,1.5rem) 0 0;font-weight:500;letter-spacing:.03em;text-transform:lowercase}@media(prefers-color-scheme:dark){.guestbook-tally{color:#8a7a6a}}.guestbook-signatures-list{margin-top:clamp(1.5rem,4vmin,2.5rem)}.guestbook-paper-signature{padding:clamp(1rem,2.5vmin,1.5rem) 0;border-bottom:1px solid rgba(212,197,168,.3);position:relative;cursor:pointer;transition:all .3s ease}.guestbook-paper-signature:last-child{border-bottom:none}.guestbook-paper-signature:hover{background:#fff8f04d;padding-left:.5rem;padding-right:.5rem;margin-left:-.5rem;margin-right:-.5rem}@media(prefers-color-scheme:dark){.guestbook-paper-signature{border-bottom-color:#5a50464d}.guestbook-paper-signature:hover{background:#3c32284d}}.guestbook-did{font-family:Brush Script MT,cursive,Georgia,serif;font-size:clamp(1.1rem,2.5vmin,1.4rem);color:#2a2520;margin-bottom:clamp(.3rem,.8vmin,.5rem);font-weight:400;letter-spacing:.02em;word-break:break-all;cursor:pointer;transition:all .2s ease;position:relative}.guestbook-did:hover{color:#4a4238;transform:translate(2px)}@media(prefers-color-scheme:dark){.guestbook-did{color:#c9bfa8}.guestbook-did:hover{color:#d4c5a8}}.guestbook-message{font-size:.65rem;color:#6b6052;font-style:italic;margin-top:.2rem;padding-left:.5rem;border-left:2px solid #d4c5a866}@media(prefers-color-scheme:dark){.guestbook-message{color:#a89f8c;border-left-color:#c9bfa866}}.guestbook-close{position:fixed;top:clamp(1rem,2vmin,1.5rem);right:clamp(1rem,2vmin,1.5rem);width:clamp(40px,8vmin,48px);height:clamp(40px,8vmin,48px);border:2px solid var(--border);background:var(--surface);color:var(--text-light);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:clamp(1.2rem,3vmin,1.5rem);line-height:1;transition:all .2s ease;border-radius:4px;z-index:2001}.guestbook-close:hover,.guestbook-close:active{background:var(--surface-hover);border-color:var(--text-light);color:var(--text)}.guestbook-loading{max-width:800px;margin:0 auto;text-align:center;padding:clamp(3rem,8vmin,5rem) clamp(1rem,3vmin,2rem)}.guestbook-loading-spinner{width:40px;height:40px;border:3px solid var(--border);border-top-color:var(--text);border-radius:50%;animation:spin .8s linear infinite;margin:0 auto clamp(1rem,3vmin,1.5rem)}.guestbook-loading-text{font-size:clamp(.75rem,1.6vmin,.9rem);color:var(--text-light)}.guestbook-sign{position:fixed;bottom:clamp(3.5rem,8.5vmin,5.5rem);right:clamp(.75rem,2vmin,1rem);font-family:ui-monospace,SF Mono,Monaco,monospace;font-size:clamp(.6rem,1.3vmin,.7rem);color:var(--text-light);text-transform:lowercase;letter-spacing:.1em;z-index:50;opacity:.6;text-shadow:0 0 4px currentColor;animation:neon-flicker 8s infinite;pointer-events:none;-webkit-user-select:none;user-select:none;white-space:nowrap}@media(prefers-color-scheme:dark){.guestbook-sign{color:#ff6b9d;opacity:.5;text-shadow:0 0 6px currentColor,0 0 12px rgba(255,107,157,.3)}}.pov-indicator{position:fixed;left:50%;top:clamp(1rem,2vmin,1.5rem);transform:translate(-50%);font-family:ui-monospace,SF Mono,Monaco,monospace;font-size:clamp(.65rem,1.4vmin,.75rem);color:var(--text-light);text-transform:lowercase;letter-spacing:.12em;z-index:50;opacity:.4;text-shadow:0 0 3px currentColor;animation:pov-subtle-flicker 37s infinite;pointer-events:none;-webkit-user-select:none;user-select:none;text-align:center;line-height:1.4}.pov-handle{display:inline;margin-left:.3rem;font-size:inherit;opacity:.9;pointer-events:auto;text-decoration:none;color:inherit;transition:opacity .2s ease}.pov-handle:hover{opacity:1;text-decoration:underline}.guestbook-login-form,.guestbook-sign-form{display:flex;flex-direction:column;gap:clamp(1rem,2.5vmin,1.5rem);margin-top:clamp(1.5rem,4vmin,2rem)}.guestbook-input,.guestbook-textarea{font-family:ui-monospace,SF Mono,Monaco,Cascadia Code,Roboto Mono,Menlo,Courier New,monospace;font-size:clamp(.9rem,2vmin,1rem);padding:clamp(.8rem,2vmin,1rem);border:1px solid #d4c5a8;background:#ffffff80;color:#2a2520;border-radius:4px;width:100%;box-sizing:border-box;transition:all .2s ease}.guestbook-input:focus,.guestbook-textarea:focus{outline:none;border-color:#8a7a6a;background:#fffc}.guestbook-input::placeholder,.guestbook-textarea::placeholder{color:#8a7a6a;opacity:.7}@media(prefers-color-scheme:dark){.guestbook-input,.guestbook-textarea{background:#28231e80;border-color:#3a3530;color:#d4c5a8}.guestbook-input:focus,.guestbook-textarea:focus{border-color:#6a5a4a;background:#28231ecc}.guestbook-input::placeholder,.guestbook-textarea::placeholder{color:#6a5a4a}}.guestbook-textarea{min-height:100px;resize:vertical}.guestbook-submit-btn{font-family:ui-monospace,SF Mono,Monaco,Cascadia Code,Roboto Mono,Menlo,Courier New,monospace;font-size:clamp(.85rem,1.8vmin,1rem);padding:clamp(.8rem,2vmin,1rem) clamp(1.5rem,4vmin,2rem);border:1px solid #d4c5a8;background:#3a2f25;color:#f9f7f1;cursor:pointer;border-radius:4px;transition:all .2s ease;text-transform:lowercase;letter-spacing:.05em}.guestbook-submit-btn:hover{background:#4a3f35;border-color:#8a7a6a}.guestbook-submit-btn:disabled{opacity:.5;cursor:not-allowed}@media(prefers-color-scheme:dark){.guestbook-submit-btn{background:#d4c5a8;color:#1f1b17;border-color:#d4c5a8}.guestbook-submit-btn:hover{background:#e4d5b8;border-color:#e4d5b8}}.guestbook-form-buttons{display:flex;gap:clamp(.75rem,2vmin,1rem);justify-content:center;flex-wrap:wrap}.guestbook-signout-btn{font-family:ui-monospace,SF Mono,Monaco,Cascadia Code,Roboto Mono,Menlo,Courier New,monospace;font-size:clamp(.75rem,1.6vmin,.85rem);padding:clamp(.6rem,1.5vmin,.8rem) clamp(1rem,2.5vmin,1.5rem);border:1px solid #d4c5a8;background:transparent;color:#6b5d4f;cursor:pointer;border-radius:4px;transition:all .2s ease;text-transform:lowercase;letter-spacing:.05em}.guestbook-signout-btn:hover{background:#d4c5a833;color:#4a3f35}@media(prefers-color-scheme:dark){.guestbook-signout-btn{color:#8a7a6a;border-color:#3a3530}.guestbook-signout-btn:hover{background:#3c32284d;color:#a89a8a}}.guestbook-error{font-family:ui-monospace,SF Mono,Monaco,Cascadia Code,Roboto Mono,Menlo,Courier New,monospace;font-size:clamp(.7rem,1.5vmin,.8rem);color:#b44;text-align:center;min-height:1.5em}@media(prefers-color-scheme:dark){.guestbook-error{color:#e66}}@keyframes neon-flicker{0%,19%,21%,23%,25%,54%,56%,to{opacity:.6;text-shadow:0 0 4px currentColor}20%,24%,55%{opacity:.2;text-shadow:none}}@keyframes pov-subtle-flicker{0%,98%{opacity:.4;text-shadow:0 0 3px currentColor}17%,17.3%,17.6%{opacity:.75;text-shadow:0 0 8px currentColor,0 0 12px currentColor}17.15%,17.45%{opacity:.5;text-shadow:0 0 4px currentColor}71%,71.2%{opacity:.8;text-shadow:0 0 10px currentColor,0 0 15px currentColor}71.1%{opacity:.45;text-shadow:0 0 3px currentColor}}@media(prefers-color-scheme:dark){@keyframes neon-flicker{0%,19%,21%,23%,25%,54%,56%,to{opacity:.5;text-shadow:0 0 6px currentColor,0 0 12px rgba(255,107,157,.3)}20%,24%,55%{opacity:.15;text-shadow:0 0 2px currentColor}}@keyframes pov-subtle-flicker{0%,98%{opacity:.35;text-shadow:0 0 4px currentColor,0 0 8px rgba(138,180,248,.2)}17%,17.3%,17.6%{opacity:.75;text-shadow:0 0 12px currentColor,0 0 20px rgba(138,180,248,.6)}17.15%,17.45%{opacity:.45;text-shadow:0 0 6px currentColor,0 0 10px rgba(138,180,248,.3)}71%,71.2%{opacity:.8;text-shadow:0 0 15px currentColor,0 0 25px rgba(138,180,248,.7)}71.1%{opacity:.4;text-shadow:0 0 5px currentColor,0 0 9px rgba(138,180,248,.25)}}}.mst-canvas{width:100%;height:600px;border:1px solid var(--border);border-radius:4px;background:var(--bg);margin-top:.5rem}.mst-info{background:var(--bg);border:1px solid var(--border);padding:.75rem;border-radius:4px;margin-bottom:.75rem}.mst-info p{font-size:.65rem;color:var(--text-lighter);line-height:1.5;margin:0}.mst-node-modal{position:fixed;top:0;right:0;bottom:0;left:0;background:#000000bf;display:flex;align-items:center;justify-content:center;z-index:3000;padding:1rem}.mst-node-modal-content{background:var(--surface);border:2px solid var(--border);padding:2rem;border-radius:4px;max-width:600px;width:100%;max-height:80vh;overflow-y:auto;position:relative}.mst-node-close{position:absolute;top:1rem;right:1rem;width:32px;height:32px;border:1px solid var(--border);background:var(--bg);color:var(--text-light);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:1.2rem;line-height:1;transition:all .2s ease;border-radius:2px}.mst-node-close:hover{background:var(--surface-hover);border-color:var(--text-light);color:var(--text)}.mst-node-modal-content h3{margin-bottom:1rem;font-size:.9rem;color:var(--text)}.mst-node-info{background:var(--bg);border:1px solid var(--border);padding:.75rem;border-radius:4px;margin-bottom:1rem}.mst-node-field{display:flex;gap:.5rem;margin-bottom:.5rem;font-size:.65rem}.mst-node-field:last-child{margin-bottom:0}.mst-node-label{color:var(--text-light);font-weight:500;min-width:40px}.mst-node-value{color:var(--text);word-break:break-all;font-family:monospace}.mst-node-explanation{background:var(--bg);border:1px solid var(--border);padding:.75rem;border-radius:4px;margin-bottom:1rem}.mst-node-explanation p{font-size:.65rem;color:var(--text-lighter);line-height:1.5;margin:0}.mst-node-data{background:var(--bg);border:1px solid var(--border);border-radius:4px;overflow:hidden}.mst-node-data-header{font-size:.65rem;color:var(--text-light);padding:.5rem .75rem;border-bottom:1px solid var(--border);font-weight:500}.mst-node-data pre{margin:0;padding:.75rem;font-size:.625rem;color:var(--text);white-space:pre-wrap;word-break:break-word;line-height:1.5;max-height:300px;overflow-y:auto}.onboarding-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:transparent;z-index:3000;display:none;opacity:0;transition:opacity .3s ease;pointer-events:none}.onboarding-overlay.active{display:block;opacity:1}.onboarding-spotlight{position:absolute;border:2px solid rgba(255,255,255,.9);border-radius:50%;box-shadow:0 0 0 9999px #000000bf,0 0 40px #ffffff80;pointer-events:none;transition:all .5s ease}.onboarding-content{position:fixed;background:var(--surface);border:2px solid var(--border);padding:clamp(1rem,3vmin,2rem);max-width:min(400px,90vw);z-index:3001;border-radius:4px;transition:all .3s ease;pointer-events:auto}.onboarding-content h3{font-size:clamp(.9rem,2vmin,1.1rem);margin-bottom:clamp(.5rem,1.5vmin,.75rem);color:var(--text);font-weight:500}.onboarding-content p{font-size:clamp(.7rem,1.5vmin,.85rem);color:var(--text-light);line-height:1.5;margin-bottom:clamp(1rem,2vmin,1.25rem)}.onboarding-actions{display:flex;gap:clamp(.5rem,1.5vmin,.75rem);justify-content:flex-end}.onboarding-actions button{font-family:inherit;font-size:clamp(.7rem,1.5vmin,.8rem);padding:clamp(.4rem,1vmin,.5rem) clamp(.8rem,2vmin,1rem);background:transparent;border:1px solid var(--border);color:var(--text);cursor:pointer;transition:all .2s ease;border-radius:2px}.onboarding-actions button:hover,.onboarding-actions button.primary{background:var(--surface-hover);border-color:var(--text-light)}.onboarding-progress{display:flex;gap:clamp(.4rem,1vmin,.5rem);justify-content:center;margin-top:clamp(.75rem,2vmin,1rem)}.onboarding-progress span{width:clamp(6px,1.5vmin,8px);height:clamp(6px,1.5vmin,8px);border-radius:50%;background:var(--border);transition:background .3s ease}.onboarding-progress span.active{background:var(--text)}.onboarding-progress span.done{background:var(--text-light)}
