/* size(r)=1rem * 2^(r/2); browser/user owns the root rem. */
html[data-inverse="true"]{filter:invert(1);color-scheme:light}
:root{--type-rn4:0.25rem;--type-rn3:0.3535533905932738rem;--type-rn2:0.5rem;--type-rn1:0.7071067811865476rem;--type-r0:1rem;--type-rp1:1.4142135623730951rem;--type-rp2:2rem;--type-rp3:2.8284271247461903rem;--type-rp4:4rem;--bg:#05070a;--fg:#f1efe9;--dim:rgba(241,239,233,.48);--hair:rgba(241,239,233,.16);--mono:"SpriteSheet Mono",ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono",monospace;--sans:"SpriteSheet Mono",Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
*{box-sizing:border-box}html,body{width:100%;height:100%;margin:0;overflow:hidden;background:var(--bg);color:var(--fg)}body{font-family:var(--sans);-webkit-font-smoothing:antialiased;overscroll-behavior:none}button,a{font:inherit;color:inherit}button{background:none;border:0;padding:0}
#stage,#stage2d{position:fixed;inset:0;width:100%;height:100%;display:block;background:#05070a;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}#stage2d{display:none}#stage.dragging,#stage2d.dragging{cursor:grabbing}
#noise{position:fixed;inset:0;pointer-events:none;z-index:2;opacity:.15;mix-blend-mode:screen;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.94' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.33'/%3E%3C/svg%3E")}
#veil{position:fixed;inset:0;pointer-events:none;z-index:3;background:radial-gradient(circle at 55% 46%,transparent 0 34%,rgba(5,7,10,.04) 58%,rgba(5,7,10,.64) 100%)}
header{position:fixed;z-index:12;top:0;left:0;right:0;display:flex;justify-content:space-between;align-items:flex-start;padding:24px 28px;pointer-events:none}.brand{pointer-events:auto;display:flex;gap:12px;align-items:center;text-decoration:none;font:600 var(--type-rn1)/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;cursor:pointer}.brand i{width:9px;height:9px;display:block;clip-path:polygon(50% 0,0 100%,100% 100%);background:var(--fg);opacity:.9}.lang{pointer-events:auto;display:flex;gap:8px;align-items:center;font:var(--type-rn1)/1 var(--mono);letter-spacing:.1em;color:var(--dim)}.lang button{min-width:32px;min-height:30px;cursor:pointer;color:inherit}.lang button[aria-pressed=true]{color:var(--fg)}.lang span{opacity:.35}
#route-mark{position:fixed;left:28px;top:56px;z-index:10;font:var(--type-rn2)/1.45 var(--mono);letter-spacing:.09em;color:rgba(241,239,233,.34);text-transform:uppercase;pointer-events:none}#status{position:fixed;left:28px;top:75px;z-index:10;font:var(--type-rn2)/1 var(--mono);letter-spacing:.1em;color:rgba(170,255,229,.42);text-transform:uppercase;pointer-events:none}
#vertex-labels,#organ-labels{position:fixed;inset:0;z-index:8;pointer-events:none}.vertex-label{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:baseline;gap:8px;color:var(--fg);text-shadow:0 1px 12px rgba(0,0,0,.72);transition:opacity .18s ease}.vertex-label .gene{font:var(--type-rn2)/1 var(--mono);letter-spacing:.13em;opacity:.55}.vertex-label .concept{font:520 var(--type-rn1)/1 var(--sans);letter-spacing:0;white-space:nowrap}.vertex-label.back{opacity:.18!important}.vertex-label.focus .concept{font-weight:680}.organ-label{position:absolute;transform:translate(-50%,-50%);font:var(--type-rn2)/1.25 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:rgba(241,239,233,.45);white-space:nowrap;text-shadow:0 1px 14px #000;opacity:0;transition:opacity .22s ease}.organ-label.show{opacity:.68}
#tree-eye{position:fixed;z-index:7;width:26px;height:26px;border-radius:50%;pointer-events:none;opacity:.82;background:radial-gradient(circle at 50% 50%,#010302 0 19%,rgba(178,235,210,.24) 21% 35%,rgba(235,255,247,.11) 38% 44%,rgba(0,0,0,.15) 46% 58%,transparent 70%);box-shadow:0 0 26px rgba(154,234,199,.13)}#tree-eye span{position:absolute;left:34px;top:7px;white-space:nowrap;font:var(--type-rn2)/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:rgba(241,239,233,.31)}#tree-eye span::after{content:'provider aperture · Google AI Studio · not an address'}
#page-copy{position:fixed;z-index:9;left:28px;bottom:30px;width:min(620px,calc(100vw - 380px));pointer-events:none;transition:opacity .28s ease,transform .28s ease}#page-copy.root{opacity:.72;width:min(570px,calc(100vw - 390px))}#page-copy .kicker{font:var(--type-rn2)/1.45 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:rgba(241,239,233,.42);margin-bottom:9px}#page-copy h1{font:520 var(--type-rp4)/.92 var(--sans);letter-spacing:.02em;margin:0;max-width:15ch;text-wrap:balance}#page-copy p{font:400 var(--type-rn1)/1.45 var(--sans);letter-spacing:0;color:rgba(241,239,233,.62);max-width:52ch;margin:13px 0 0}#page-copy.root h1{font-size:var(--type-r0);letter-spacing:0;font-weight:520;max-width:48ch;line-height:1.24}#page-copy.root p{font:var(--type-rn2)/1.55 var(--mono);letter-spacing:.025em;max-width:70ch;color:rgba(241,239,233,.40)}
#mini{position:fixed;right:18px;bottom:18px;z-index:15;width:292px;height:292px;pointer-events:none}#mini-title{position:absolute;right:0;top:0;font:var(--type-rn2)/1 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:rgba(241,239,233,.36)}#mini-state{position:absolute;right:0;top:15px;font:var(--type-rn2)/1.25 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:rgba(241,239,233,.55)}#navTwin{position:absolute;right:0;top:31px;width:224px;height:224px;pointer-events:auto;touch-action:none;outline:none;cursor:default}#navTwin:focus-visible{filter:drop-shadow(0 0 10px rgba(255,255,255,.18))}
.axis{position:absolute;pointer-events:auto;touch-action:none;outline:none;user-select:none;-webkit-user-select:none}.axis::before{content:"";position:absolute;background:rgba(241,239,233,.16);border-radius:999px}.axis .knob{position:absolute;width:18px;height:18px;border-radius:50%;border:1px solid rgba(241,239,233,.55);background:rgba(7,10,14,.88);box-shadow:0 0 0 5px rgba(241,239,233,.035),0 0 18px rgba(255,255,255,.04);transform:translate(-50%,-50%) scale(var(--knob-scale,1));will-change:left,top}.axis .knob .knob-shape{position:absolute;left:50%;top:50%;width:32px;height:32px;margin:-16px 0 0 -16px;overflow:visible;pointer-events:none;opacity:0}.axis .knob .knob-shape polygon{fill:rgba(7,10,14,.88);stroke:rgba(241,239,233,calc(.55 + .4*var(--knob-lock,0)));stroke-width:1;stroke-linejoin:round}.axis .knob[data-morph="on"]{border-color:transparent;background:transparent;box-shadow:none}.axis .knob[data-morph="on"] .knob-shape{opacity:1}.axis .axis-letter{position:absolute;font:var(--type-rn2)/1 var(--mono);color:rgba(241,239,233,.28);text-transform:uppercase;letter-spacing:.08em;pointer-events:none}#axis-x{right:17px;bottom:0;width:190px;height:38px;cursor:ew-resize}#axis-x::before{left:10px;right:10px;top:19px;height:1px}#axis-x .knob{top:19px;left:50%}#axis-x .axis-letter{right:-10px;top:15px}#axis-y{left:18px;top:48px;width:38px;height:190px;cursor:ns-resize}#axis-y::before{top:10px;bottom:10px;left:19px;width:1px}#axis-y .knob{left:19px;top:50%}#axis-y .axis-letter{left:15px;top:-10px}.axis:focus-visible .knob{box-shadow:0 0 0 5px rgba(255,255,255,.09),0 0 18px rgba(255,255,255,.16)}#mini-help{position:absolute;right:0;bottom:43px;width:218px;font:var(--type-rn2)/1.35 var(--mono);letter-spacing:.02em;color:rgba(241,239,233,.26);text-align:right;pointer-events:none}
.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.skip:focus{position:fixed!important;width:auto!important;height:auto!important;clip:auto!important;z-index:100;left:12px;top:12px;background:#05070a;border:1px solid var(--hair);padding:10px!important;margin:0!important}
@media(max-width:760px){#page-copy h1{font-size:var(--type-rp2)}header{padding:18px}.brand{font-size:var(--type-rn2)}#route-mark{left:18px;top:47px}#status{left:18px;top:64px}#mini{right:7px;bottom:7px;width:228px;height:246px}#navTwin{width:178px;height:178px;top:29px}#axis-x{right:8px;width:154px;height:34px}#axis-x::before{top:17px}#axis-x .knob{top:17px}#axis-y{left:5px;top:40px;height:154px;width:34px}#axis-y::before{left:17px}#axis-y .knob{left:17px}#mini-help{display:none}#page-copy{left:18px;bottom:22px;width:calc(100vw - 242px)}#page-copy.root{width:calc(100vw - 238px)}.vertex-label .concept{font-size:var(--type-rn1)}.vertex-label .gene{font-size:var(--type-rn2)}}
@media(max-width:520px){#page-copy{display:none}#mini{opacity:.94}.brand span{display:none}#tree-eye span{display:none}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
