*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--void: #090912;--text: #e6e2f2;--muted: #7a7890;--ember: #e8892a;--ember-dim: rgba(232, 137, 42, .07);--ember-line: rgba(232, 137, 42, .35);--mono: "IBM Plex Mono", "Courier New", monospace;--serif: "Cormorant Garamond", Georgia, serif;--split: 36vw}html{background:var(--void)}html,body{width:100%;height:100%;overflow:hidden;background:transparent;color:var(--text);font-family:var(--serif)}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:21;pointer-events:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.8' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='300' height='300' filter='url(%23n)'/%3E%3C/svg%3E");background-size:180px 180px;opacity:.035;mix-blend-mode:screen}@keyframes fade-left{0%{opacity:0;transform:translateY(-50%) translate(-10px)}to{opacity:1;transform:translateY(-50%) translate(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-right{0%{opacity:0;transform:translate(10px)}to{opacity:1;transform:translate(0)}}@keyframes line-grow-v{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes line-grow-h{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes scan-v{0%{top:-80px;opacity:0}1.5%{opacity:1}13%{top:100vh;opacity:.5}14%{top:100vh;opacity:0}to{top:-80px;opacity:0}}@keyframes scan-h{0%{left:-80px;opacity:0}1.5%{opacity:1}13%{left:100vw;opacity:.5}14%{left:100vw;opacity:0}to{left:-80px;opacity:0}}.sigil-spine{position:fixed;left:2.2rem;top:50%;transform:translateY(-50%);writing-mode:vertical-lr;font-family:var(--serif);font-weight:700;font-size:clamp(5.5rem,9.5vw,11rem);letter-spacing:.1em;color:#e8892a29;-webkit-user-select:none;user-select:none;pointer-events:none;z-index:2;animation:fade-left 1s ease both .1s}.site-name{position:fixed;bottom:1.8rem;left:2.2rem;font-family:var(--mono);font-size:.58rem;letter-spacing:.2em;color:var(--muted);text-transform:lowercase;-webkit-user-select:none;user-select:none;z-index:6;animation:fade-in .6s ease both .7s}.dividing-line{position:fixed;left:var(--split);top:0;bottom:0;width:1px;background:var(--ember-line);z-index:3;transform-origin:top center;animation:line-grow-v 1s cubic-bezier(.16,1,.3,1) both .2s}.dividing-line:after{content:"";position:absolute;left:-1px;top:-80px;width:3px;height:80px;background:linear-gradient(to bottom,transparent 0%,var(--ember) 40%,rgba(232,137,42,.06) 100%);animation:scan-v 14s ease-in infinite 2.5s}main{position:fixed;top:0;right:0;bottom:0;left:0;z-index:6;pointer-events:none}.node-grid{position:absolute;top:22vh;left:calc(var(--split) + 5vw);right:3rem;pointer-events:all;animation:fade-right .5s ease both .4s}.node-row{display:grid;grid-template-columns:4.2rem 6rem 1fr 6.5rem 1.2rem;align-items:center;gap:1.2rem;padding:.7rem .5rem;border-bottom:1px solid rgba(232,137,42,.12);font-family:var(--mono);font-size:.72rem;letter-spacing:.04em;color:var(--muted);text-decoration:none;cursor:default}.node-row:first-child{border-top:1px solid rgba(232,137,42,.12)}.node-separator{margin-top:.6rem;border-top:1px solid rgba(232,137,42,.2)}.node-active{color:var(--text);cursor:pointer;transition:background .2s ease,color .2s ease}.node-active:hover{color:var(--ember);background:#e8892a0a}.node-active:focus-visible{outline:1px solid var(--ember);outline-offset:2px}.node-coord{color:var(--ember);opacity:.85;font-size:.6rem;letter-spacing:.06em}.node-desc{font-size:.6rem;letter-spacing:.06em;color:var(--muted);opacity:.5}.node-status{display:flex;align-items:center;gap:.4em;font-size:.55rem;letter-spacing:.12em;text-transform:uppercase}.status-dot{width:5px;height:5px;border-radius:50%;flex-shrink:0;background:currentColor}.status-online{color:var(--ember)}.status-offline{color:var(--muted);opacity:.4}.status-pending{color:var(--muted);opacity:.55;gap:.5em}.node-arrow{color:var(--ember);opacity:.75;display:flex;align-items:center;justify-self:end;transition:opacity .2s ease,transform .2s ease}.node-active:hover .node-arrow{opacity:1;transform:translate(4px)}.node-inactive,.node-locked{opacity:.6}footer{position:fixed;bottom:1.8rem;right:2.5rem;font-family:var(--mono);font-size:.55rem;letter-spacing:.22em;color:var(--muted);text-transform:uppercase;z-index:6;animation:fade-in .6s ease both .85s}#lang-switcher{position:fixed;top:1.2rem;left:1.5rem;z-index:101;font-family:var(--mono);font-size:.62rem;letter-spacing:.1em;color:var(--muted);display:flex;align-items:center;gap:.25rem}#lang-switcher button{background:none;border:none;color:inherit;cursor:pointer;padding:.1rem .2rem;font-family:inherit;font-size:inherit;letter-spacing:inherit;transition:color .2s ease}#lang-switcher button:hover,#lang-switcher button.active{color:var(--ember)}#lang-switcher button:focus-visible{outline:1px solid var(--ember);outline-offset:3px;border-radius:1px}@media(max-width:768px){:root{--split: 28vh}.sigil-spine{writing-mode:horizontal-tb;font-size:clamp(2.5rem,9vw,4rem);left:50%;top:calc(var(--split) / 2);transform:translate(-50%,-50%);letter-spacing:.32em;animation:fade-in 1s ease both .1s}.site-name{display:none}.dividing-line{left:0;right:0;top:var(--split);bottom:auto;width:auto;height:1px;transform-origin:left center;animation:line-grow-h 1s cubic-bezier(.16,1,.3,1) both .2s}.dividing-line:after{left:-80px;top:-1px;width:80px;height:3px;background:linear-gradient(to right,transparent 0%,var(--ember) 40%,rgba(232,137,42,.06) 100%);animation:scan-h 14s ease-in infinite 2.5s}.node-grid{top:calc(var(--split) + 4vh);left:1.5rem;right:1.5rem;transform:none;animation:fade-in .5s ease both .4s}.node-row{grid-template-columns:3.8rem 1fr 5.5rem 1rem;gap:.6rem;padding:.65rem .3rem;font-size:.65rem}.node-desc{display:none}#lang-switcher{left:auto;right:1.5rem}footer{right:auto;left:50%;transform:translate(-50%);text-align:center}}@media(prefers-reduced-motion:reduce){.sigil-spine,.site-name,.dividing-line,.node-grid,footer{animation:none;opacity:1;transform:none}.sigil-spine{transform:translateY(-50%)}.dividing-line:after{animation:none}.node-active,.node-arrow,#lang-switcher button{transition:none}}
