/* Action shapes are local UI, never fake packets or visitors. */
:root{--glyph-still:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='white' d='M7 5h4v22H7zm14 0h4v22h-4zM14 14h4v4h-4z'/%3E%3C/svg%3E");--glyph-signal:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M2 18h6V9h6v14h6V5h5v13h5' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E");--glyph-inspect:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M12 5H5v8m15-8h7v8M5 20v7h7m15-7v7h-7' fill='none' stroke='white' stroke-width='2'/%3E%3Cpath fill='white' d='M13 13h6v6h-6z'/%3E%3C/svg%3E");--glyph-study:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath fill='white' d='M3 5h6v6H3zm20 0h6v6h-6zM13 13h6v6h-6zM3 21h6v6H3zm20 0h6v6h-6z'/%3E%3C/svg%3E");--glyph-enter:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M4 12V4h24v8M4 20v8h24v-8M1 16h12m6 0h12' fill='none' stroke='white' stroke-width='2'/%3E%3Cpath fill='white' d='M13 13h6v6h-6z'/%3E%3C/svg%3E");--glyph-release:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M3 24h9V13h10V5h7M3 28h13V17h10' fill='none' stroke='white' stroke-width='2'/%3E%3Cpath fill='white' d='M24 3h5v5h-5z'/%3E%3C/svg%3E");--glyph-close:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M5 5h8v8H5zm14 14h8v8h-8zM5 27l8-8m6-6 8-8' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E");--glyph-erase:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M4 10V4h24v6M4 22v6h24v-6M9 16h14' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E");--glyph-join:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M2 8h11v8h6v8h11M2 24h11V8h6v0h11' fill='none' stroke='white' stroke-width='2'/%3E%3C/svg%3E")}
.geo-control,.geo-file{--glyph:var(--glyph-inspect);position:relative!important;display:inline-grid!important;place-items:center!important;flex:0 0 44px!important;width:44px!important;height:44px!important;min-width:44px!important;max-width:44px!important;padding:8px!important;margin:0!important;background:transparent!important;border:0!important;color:#8f9dac!important;cursor:pointer;overflow:visible!important;isolation:isolate}
.geo-control::before,.geo-file::before{content:'';width:27px;height:27px;background:currentColor;mask-image:var(--glyph);mask-size:contain;mask-repeat:no-repeat;mask-position:center;pointer-events:none}
.geo-control::after,.geo-file::after{content:'';position:absolute;inset:0;border:1px solid transparent;clip-path:polygon(0 0,35% 0,35% 3%,3% 3%,3% 35%,0 35%,0 100%,65% 100%,65% 97%,97% 97%,97% 65%,100% 65%,100% 0);pointer-events:none}
.geo-control:hover,.geo-control:focus-visible,.geo-control[aria-pressed=true],.geo-file:focus-within,.geo-file:hover{color:#00e5ff!important}.geo-control:hover::after,.geo-control:focus-visible::after,.geo-control[aria-pressed=true]::after,.geo-file:hover::after,.geo-file:focus-within::after{border-color:currentColor}
[data-geometric=still]{--glyph:var(--glyph-still)}[data-geometric=signal]{--glyph:var(--glyph-signal)}[data-geometric=study]{--glyph:var(--glyph-study)}[data-geometric=enter]{--glyph:var(--glyph-enter)}[data-geometric=release],[data-geometric=export]{--glyph:var(--glyph-release)}[data-geometric=leave],[data-geometric=close]{--glyph:var(--glyph-close)}[data-geometric=erase]{--glyph:var(--glyph-erase)}[data-geometric=join]{--glyph:var(--glyph-join)}[data-geometric=listen],[data-geometric=import]{--glyph:var(--glyph-enter)}
.bit-caption{position:absolute;z-index:20;top:calc(100% + 9px);right:0;min-width:180px;max-width:250px;width:230px;background:#050509;border-left:1px solid #783cff;padding:10px;font:7px/1.9 monospace!important;letter-spacing:.06em;overflow-wrap:anywhere;white-space:normal;opacity:0;visibility:hidden;pointer-events:none;color:#b9c6d4}
.geo-control:hover>.bit-caption,.geo-control:focus-visible>.bit-caption,.geo-file:hover>.bit-caption,.geo-file:focus-within>.bit-caption{opacity:1;visibility:visible}
.hub-bottom .bit-caption{top:auto;bottom:calc(100% + 9px)}.controls .bit-caption,#messages .bit-caption,.hub-inspection .bit-caption{left:0;right:auto}.hub-inspection .bit-caption{width:180px;min-width:140px}.hub-top nav,.hub-bottom nav,.controls,.actions{align-items:center;gap:16px}.controls{padding:20px 0;border-top:1px solid #20202c;border-bottom:1px solid #20202c}.controls label:not(.geo-file){border:0;background:transparent;max-width:210px;padding:0}.controls input[type=password]{display:block;width:185px;margin-top:8px;padding:10px;background:#090c14;color:#e8edf2;border:0;border-bottom:1px solid #783cff;font:12px monospace;letter-spacing:.1em}.geo-file input[type=file]{position:absolute;inset:0;width:44px!important;height:44px!important;opacity:0;cursor:pointer}.room-grid{grid-template-columns:minmax(130px,.65fr) minmax(0,2fr);gap:6vw}.traces{min-width:0}#messages li{position:relative;padding:24px 0 24px 45px}#messages li>.message-signature{position:absolute;left:0;top:27px;width:29px;height:29px;color:#b7c2cf}#messages li[data-own=true]>.message-signature{color:#00e5ff}#messages p{margin:12px 0!important;line-height:1.9!important}#messages .geo-control{position:absolute!important;right:0;top:23px;opacity:.5}#messages li:hover .geo-control,#messages li:focus-within .geo-control{opacity:1}#messages small{display:block;padding-right:45px;max-width:100%;font-size:6px!important;line-height:1.8!important;color:#687788}#speak{padding-top:22px}#words{border:0;border-left:2px solid #3d3265;background:#080c13;min-height:130px;padding:20px;transition:border-color .2s}#words:focus{border-left-color:#00e5ff;outline:1px solid #343442;outline-offset:4px}.compose{border-bottom:1px solid #20202c;padding-bottom:12px;align-items:center}.compose select{background:transparent;border:0;border-bottom:1px solid #3d3265;padding:8px}.binary-interface .room-head{margin-bottom:2.5rem}.binary-interface .room-head h2{font-size:11px;max-width:450px}.room-grid aside .letter{font-size:7px!important;color:#687788}.room-grid aside details{font-size:7px!important}.origin-credit{color:#464453}.beacon-link{color:#697884;font:8px/1.8 monospace;max-width:40ch}.hub-inspection form .geo-control{margin-top:10px!important}@media(max-width:700px){.room-grid{grid-template-columns:1fr}.room-grid aside{max-width:100%}.room-grid aside .letter{max-width:65ch!important}.hub-top nav,.hub-bottom nav,.controls{gap:8px}.geo-control,.geo-file{flex-basis:44px!important}#messages li{padding-left:37px}.bit-caption{max-width:190px;min-width:140px;width:190px}.hub-inspection .bit-caption{left:auto;right:0}.controls input[type=password]{width:170px}}

.geo-control[hidden],.geo-file[hidden]{display:none!important}.readable-interface .bit-caption{font:11px/1.7 monospace!important;width:210px;letter-spacing:0}.readable-interface .room-head h2{font:normal 32px/1.4 monospace;letter-spacing:-.04em}.readable-interface .room-head p{font:12px/1.7 monospace}.readable-interface .room-grid aside .letter{font:12px/1.9 monospace!important;color:#8998aa}.readable-interface .room-grid aside details{font:11px/1.8 monospace!important}.readable-interface #status,.readable-interface .fine,.readable-interface .signature,.readable-interface .protocol,.readable-interface .compose,.readable-interface form>label{font:11px/1.8 monospace;letter-spacing:0}.readable-interface #messages small{font:10px/1.7 monospace!important}.readable-interface #hub-inspection p,.readable-interface #hub-inspection label{font:12px/1.8 monospace}.readable-interface .hub-readout p{font:12px/1.8 monospace}

#messages{overflow-x:hidden}#messages .bit-caption{left:auto;right:0}.readable-interface #messages p{font:15px/1.9 ui-monospace,Consolas,monospace!important}.readable-interface .room-grid aside .letter{max-width:none}

#messages .author-thread{position:static!important;font:10px monospace!important;opacity:.7;margin-left:0}#messages .author-thread .bit-caption{left:0;right:auto}.personal-thread h2{font:14px/1.8 monospace}.personal-thread button{margin:8px 0}

:root{--glyph-door-triangle:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20d%3D%22M4%204h24v24H4z%20M16%209l8%2014H8z%22%20fill%3D%22none%22%20stroke%3D%22white%22%20stroke-width%3D%222%22%20stroke-linejoin%3D%22miter%22%2F%3E%3C%2Fsvg%3E");--glyph-keyhole:url("data:image/svg+xml,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20viewBox%3D%220%200%2032%2032%22%3E%3Cpath%20fill%3D%22white%22%20d%3D%22M16%204a7%207%200%200%200-4%2012.75L9%2028h14l-3-11.25A7%207%200%200%200%2016%204z%22%2F%3E%3C%2Fsvg%3E")}
#enter[data-geometric]{--glyph:var(--glyph-door-triangle)}[data-geometric=keyhole]{--glyph:var(--glyph-keyhole)}

:root{--glyph-chip:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='M8 8h16v16H8zM12 12h8v8h-8zM11 2v6m5-6v6m5-6v6M11 24v6m5-6v6m5-6v6M2 11h6m-6 5h6m-6 5h6m16-10h6m-6 5h6m-6 5h6' stroke='white' fill='none' stroke-width='2'/%3E%3C/svg%3E")}.geo-control[data-geometric=chip]{--glyph:var(--glyph-chip)}.geo-control[data-geometric=eye]::before{content:'<o>';background:none;mask-image:none;width:auto;height:auto;font:16px/1 monospace;color:currentColor}
