html,body{margin:0;width:100%;height:100%;overflow:hidden;background:#000005;color:#ececf4e0;font-family:Songti SC,"Source Han Serif SC","Noto Serif SC",serif;touch-action:none;user-select:none}canvas{display:block;width:100%;height:100%}#vignette{pointer-events:none;position:fixed;inset:0;background:radial-gradient(ellipse at center,#0000 48%,#00000257);z-index:2}.architecture-link{position:fixed;top:max(22px,env(safe-area-inset-top));right:max(22px,env(safe-area-inset-right));z-index:5;display:inline-flex;align-items:center;gap:8px;min-height:34px;box-sizing:border-box;padding:7px 12px 7px 9px;border:1px solid rgba(198,214,242,.14);border-radius:999px;background:#03071270;box-shadow:0 8px 28px #00000842,inset 0 0 18px #7a92d20a;backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%);color:#ecf1fdd6;font-size:12px;letter-spacing:.12em;line-height:1;text-decoration:none;pointer-events:auto;transition:border-color .25s ease,background .25s ease,color .25s ease,transform .25s ease}.architecture-link:hover,.architecture-link:focus-visible{border-color:#d3e1ff4d;background:#070d1e9e;color:#f6f8fff5;outline:none;transform:translateY(-1px)}.architecture-link-mark{display:inline-grid;width:14px;height:14px;place-items:center;border:1px solid rgba(126,220,196,.58);border-radius:50%;color:#a4efd6e6;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:11px;letter-spacing:0;line-height:1}.node-label-layer{position:fixed;inset:0;z-index:3;overflow:hidden;pointer-events:none}.node-label{position:absolute;left:0;top:0;box-sizing:border-box;padding:3px 6px;border:1px solid rgba(198,214,242,.1);border-radius:4px;background:#02050e80;color:#e8eefae0;box-shadow:0 0 12px #000006b8;font-family:ui-monospace,SFMono-Regular,Cascadia Code,Roboto Mono,Menlo,Consolas,monospace;font-size:12px;font-weight:500;line-height:1.1;letter-spacing:.035em;white-space:nowrap;opacity:0;visibility:hidden;will-change:transform;transition:opacity .16s ease}.node-label.visible{opacity:1;visibility:visible}.node-label[data-plane=governance]{border-color:#b1c2eb24;color:#d2ddf6e0}.node-label[data-plane=external]{border-color:#cdad8724;color:#e2cfb8db}.node-label.selected{z-index:2;border-color:#eef2ff4d;background:#060a16b8;color:#fffffffa;box-shadow:0 0 14px #121c3ae0,0 0 24px #6e82be24}.glass{box-sizing:border-box;position:fixed;top:0;right:0;bottom:0;z-index:4;display:flex;width:clamp(300px,31vw,520px);align-items:center;overflow:hidden;padding:0;border:0;border-left:1px solid rgba(216,225,248,.06);background:linear-gradient(90deg,#070a1404,#070a1413 44%,#070a1421);box-shadow:none;backdrop-filter:blur(6px) saturate(105%);-webkit-backdrop-filter:blur(6px) saturate(105%);opacity:0;pointer-events:none;transform:translate3d(22px,0,0);will-change:opacity,transform;transition:opacity .52s cubic-bezier(.22,1,.36,1),transform .68s cubic-bezier(.16,1,.3,1)}.glass.show{opacity:1;pointer-events:auto;transform:translateZ(0)}.glass-content{box-sizing:border-box;width:100%;max-height:100%;overflow:auto;padding:clamp(24px,4.8vh,58px) clamp(26px,3.8vw,60px) clamp(24px,4.8vh,58px) clamp(24px,3vw,48px);scrollbar-width:thin;overscroll-behavior:contain;touch-action:pan-y;user-select:text;-webkit-overflow-scrolling:touch;opacity:1;transform:translateZ(0);will-change:opacity,transform;transition:opacity .42s cubic-bezier(.22,1,.36,1),transform .5s cubic-bezier(.16,1,.3,1)}.glass:not(.show) .glass-content{opacity:0;transform:translate3d(14px,0,0)}.glass-content.is-leaving{opacity:0;transform:translate3d(0,-10px,0);transition:opacity .2s cubic-bezier(.4,0,1,1),transform .22s cubic-bezier(.4,0,1,1)}.glass-content.is-entering{opacity:0;transform:translate3d(0,12px,0);transition:none}.glass-name{color:#f8f9fff5;font-size:clamp(22px,calc(18px + .58vw),28px);letter-spacing:.1em;line-height:1.3;text-shadow:0 1px 16px rgba(0,0,8,.65)}.glass-role{margin-top:clamp(4px,.7vh,8px);font-size:clamp(12px,calc(10.5px + .27vw),15px);letter-spacing:.14em;color:#dde2f09e}.glass-layer{margin-top:clamp(6px,1vh,10px);font-size:clamp(11px,calc(9.5px + .22vw),13px);line-height:1.55;letter-spacing:.1em;color:#aec3e699;overflow-wrap:anywhere}.glass-blurb{margin:clamp(12px,2vh,20px) 0 0;font-size:clamp(15px,calc(12.5px + .32vw),18px);line-height:1.75;letter-spacing:.04em;color:#eef0f7e0;text-shadow:0 1px 14px rgba(0,0,8,.56);overflow-wrap:anywhere;word-break:normal;white-space:normal}.glass-meta{margin-top:clamp(12px,2vh,20px);font-size:clamp(12px,calc(10px + .28vw),14px);line-height:1.7;letter-spacing:.04em;color:#cbd3e58f;overflow-wrap:anywhere;word-break:normal;white-space:normal}.gesture-hint{position:fixed;left:50%;bottom:max(24px,env(safe-area-inset-bottom));z-index:3;padding:8px 12px;color:#e0e4f08a;font-size:11px;letter-spacing:.12em;white-space:nowrap;pointer-events:none;opacity:0;transform:translate(-50%,5px);transition:opacity .8s ease,transform .8s ease}.gesture-hint.show{opacity:1;transform:translate(-50%)}.voice-dock{position:fixed;right:max(22px,env(safe-area-inset-right));bottom:max(22px,env(safe-area-inset-bottom));z-index:5;width:min(330px,calc(100vw - 32px));color:#edf1fce0;font-family:Songti SC,"Source Han Serif SC","Noto Serif SC",serif;pointer-events:none}.voice-trigger,.voice-panel{pointer-events:auto}.voice-trigger{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:7px 12px 7px 9px;border:1px solid rgba(198,214,242,.14);border-radius:999px;background:#03071270;color:#ecf1fdd6;box-shadow:0 8px 28px #00000842,inset 0 0 18px #7a92d20a;backdrop-filter:blur(10px) saturate(120%);-webkit-backdrop-filter:blur(10px) saturate(120%);cursor:pointer;font:inherit;letter-spacing:.12em;transition:border-color .25s ease,background .25s ease,transform .25s ease}.voice-trigger:hover,.voice-trigger:focus-visible{border-color:#d3e1ff4d;background:#070d1e9e;outline:none;transform:translateY(-1px)}.voice-trigger-orb{width:12px;height:12px;border:1px solid rgba(190,211,255,.65);border-radius:50%;box-shadow:0 0 8px #88abf56b,inset 0 0 5px #b3ceff61}.voice-dock[data-status=connected] .voice-trigger-orb{border-color:#7edcc4e6;box-shadow:0 0 10px #4ccba9ad,inset 0 0 5px #b2ffeb9e}.voice-dock[data-speaking=true] .voice-trigger-orb{animation:voice-pulse 1.1s ease-in-out infinite}@keyframes voice-pulse{0%,to{transform:scale(.9);opacity:.76}50%{transform:scale(1.18);opacity:1}}.voice-panel{box-sizing:border-box;position:absolute;right:0;bottom:46px;width:100%;padding:15px;border:1px solid rgba(198,214,242,.13);border-radius:14px;background:linear-gradient(150deg,#0b1227d1,#030712bd);box-shadow:0 16px 42px #00000861,inset 0 0 24px #7d97dc0a;backdrop-filter:blur(16px) saturate(125%);-webkit-backdrop-filter:blur(16px) saturate(125%)}.voice-panel-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.voice-title{font-size:17px;letter-spacing:.12em}.voice-subtitle{margin-top:3px;color:#beccea8a;font-family:ui-monospace,SFMono-Regular,Cascadia Code,Roboto Mono,Menlo,Consolas,monospace;font-size:10px;letter-spacing:.035em}.voice-status-dot{flex:0 0 auto;width:8px;height:8px;margin-top:5px;border-radius:50%;background:#adbbd76b;box-shadow:0 0 8px #9db1dc3d}.voice-dock[data-status=connected] .voice-status-dot{background:#77d7b5;box-shadow:0 0 10px #59dab29e}.voice-dock[data-status=connecting] .voice-status-dot,.voice-dock[data-status=reconnecting] .voice-status-dot{background:#e9c47b;box-shadow:0 0 10px #e9c47b80}.voice-dock[data-status=error] .voice-status-dot{background:#df8d8d;box-shadow:0 0 10px #df8d8d75}.voice-status{margin-top:14px;color:#eff2fae6;font-size:13px;line-height:1.45}.voice-room,.voice-detail{margin-top:5px;color:#bbc9e68c;font-family:ui-monospace,SFMono-Regular,Cascadia Code,Roboto Mono,Menlo,Consolas,monospace;font-size:10px;line-height:1.45;overflow-wrap:anywhere}.voice-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:14px}.voice-action{min-height:29px;padding:5px 9px;border:1px solid rgba(198,214,242,.13);border-radius:7px;background:#101a366b;color:#dee7fac7;cursor:pointer;font:inherit;font-size:11px;letter-spacing:.04em;transition:background .2s ease,border-color .2s ease,color .2s ease}.voice-action:hover:not(:disabled),.voice-action:focus-visible:not(:disabled){border-color:#d2e0fd4d;background:#23345d8f;color:#f6f8fff2;outline:none}.voice-action:disabled{cursor:not-allowed;opacity:.42}.voice-dock[data-mic=true] .voice-mic{border-color:#7edcc466;color:#a4efd6e6}audio[data-participant]{position:fixed;width:1px;height:1px;opacity:0;pointer-events:none}@media(max-width:700px)and (orientation:portrait){.node-label{padding:3px 5px;font-size:11px}.glass{inset:auto 0 0;width:100%;height:min(40vh,380px);height:min(40dvh,380px);border-top:1px solid rgba(216,225,248,.06);border-left:0;background:linear-gradient(180deg,#070a1405,#070a141a 38%,#070a1429);transform:translate3d(0,18px,0)}.glass.show{transform:translateZ(0)}.glass-content{padding:clamp(18px,3vh,28px) max(20px,env(safe-area-inset-right)) max(20px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left))}.glass:not(.show) .glass-content{transform:translate3d(0,10px,0)}.glass-name{font-size:clamp(20px,6vw,24px)}.glass-role{margin-top:clamp(3px,.7vh,6px);font-size:clamp(12px,3.4vw,14px)}.glass-layer{margin-top:clamp(5px,.9vh,8px);font-size:clamp(11px,3vw,12px)}.glass-blurb{margin-top:clamp(10px,1.8vh,15px);font-size:clamp(15px,4.2vw,17px);line-height:1.65}.glass-meta{margin-top:clamp(10px,1.8vh,15px);font-size:clamp(12px,3.5vw,13.5px)}.gesture-hint{bottom:max(18px,env(safe-area-inset-bottom));width:calc(100vw - 32px);box-sizing:border-box;text-align:center;white-space:normal}.voice-dock{right:max(14px,env(safe-area-inset-right));bottom:max(14px,env(safe-area-inset-bottom));width:min(320px,calc(100vw - 28px))}.architecture-link{top:max(14px,env(safe-area-inset-top));right:max(14px,env(safe-area-inset-right))}.voice-panel{bottom:46px}}@media(max-height:560px)and (orientation:landscape){.glass{width:clamp(280px,40vw,380px)}.glass-content{padding:clamp(16px,5vh,28px) clamp(20px,4vw,38px)}.glass-name{font-size:clamp(20px,3vw,24px)}.glass-role{margin-top:3px;font-size:clamp(11px,1.8vw,13px)}.glass-layer{margin-top:5px;font-size:clamp(10px,1.6vw,12px)}.glass-blurb{margin-top:10px;font-size:clamp(14px,2vw,16px);line-height:1.55}.glass-meta{margin-top:10px;font-size:clamp(11px,1.7vw,13px);line-height:1.55}.voice-dock{right:14px;bottom:14px}.architecture-link{top:14px;right:14px}}@media(prefers-reduced-motion:reduce){.glass,.glass-content,.gesture-hint,.node-label,.voice-trigger-orb{transition-duration:.01ms;animation-duration:.01ms}}
