:root{--tra-hero-bg:#070610;--tra-hero-ink:#f1e9df;--tra-hero-muted:#b2a49b;--tra-orange:#c86f4d;--tra-auburn:#71372e;--tra-leather:#3b211d;--tra-leather-deep:#241517;--tra-copper:#c58a67;--tra-edge:rgba(218,181,160,.52)}
html:has(body.page-tra-graph),body.page-tra-graph{width:100%;max-width:100%;margin:0;min-height:100vh;overflow-x:hidden;overflow-y:hidden;background:var(--tra-hero-bg);color:var(--tra-hero-ink);font-family:Inter,system-ui,sans-serif}body.page-tra-graph a{color:inherit}
.tra-hero-media,.tra-hero-vignette{position:fixed;inset:0;pointer-events:none}.tra-hero-media{z-index:0;background:var(--tra-hero-bg)}.tra-hero-media video{width:100%;height:100%;object-fit:cover;filter:brightness(.25) saturate(.32)}.tra-hero-vignette{z-index:1;background:radial-gradient(ellipse at center,transparent 5%,rgba(3,3,12,.96) 100%)}.tra-hero-filters{position:absolute;width:0;height:0;pointer-events:none}
.tra-hero-topbar{position:fixed;top:0;left:0;z-index:20;padding:18px 26px}.tra-hero-back{display:flex;align-items:center;gap:10px;width:auto;color:var(--tra-hero-ink);font-size:28px;line-height:24px;text-decoration:none;opacity:.78;transition:opacity .15s,transform .15s}.tra-hero-back img{display:block;width:34px;height:34px;object-fit:contain}.tra-hero-back-arrow{display:block}.tra-hero-back:hover{opacity:1;transform:translateX(-3px)}
.tra-hero-shell{position:relative;z-index:2;width:100%;height:100vh;padding:22px 1vw 14px;display:flex;flex-direction:column;align-items:center;overflow:hidden}.tra-hero-logo,.tra-hero-tagline{position:relative;z-index:10}.tra-hero-logo{width:min(780px,88vw);max-height:150px;object-fit:contain;filter:drop-shadow(0 0 30px rgba(200,111,77,.2));margin-bottom:2px}.tra-hero-tagline{margin:0;color:var(--tra-hero-ink);font:clamp(16px,1.7vw,24px)/1.3 Georgia,serif;opacity:.88;text-align:center}.tra-hero-tagline em{font-style:normal;color:var(--tra-copper);font-weight:700;letter-spacing:.04em;text-shadow:0 0 18px rgba(197,138,103,.25)}
.tra-graph{position:relative;z-index:1;width:min(1760px,100vw);flex:1 1 auto;height:auto;min-height:0;margin-top:4px;perspective:1400px;perspective-origin:50% 47%}.tra-graph-edges{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.tra-graph-edges path{fill:none;stroke:var(--tra-edge);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:2 10}.tra-graph-edges path.related{stroke:var(--tra-orange);stroke-width:2.5;stroke-dasharray:3 11;filter:drop-shadow(0 0 3px rgba(200,111,77,.35));animation:tra-edge-walk 1.35s linear infinite}.tra-graph-field{position:absolute;inset:0;transform-style:preserve-3d}.tra-graph-halo{position:absolute;left:50%;top:48%;width:220px;height:220px;margin:-110px 0 0 -110px;border-radius:50%;background:radial-gradient(circle,rgba(200,111,77,.09),transparent 68%);pointer-events:none}
.tra-node-hit{position:absolute;z-index:2;left:50%;top:-24px;width:112px;height:112px;transform:translateX(-50%);border-radius:50%;pointer-events:auto;cursor:pointer}.tra-graph-node{position:absolute;left:0;top:0;width:150px;height:126px;margin:-48px 0 0 -75px;text-align:center;transform-style:preserve-3d;will-change:transform,opacity;cursor:default;transition:opacity .2s;outline:none;pointer-events:none}.tra-graph-node::after{content:"";position:absolute;z-index:-1;left:50%;top:47px;width:52px;height:9px;transform:translateX(-50%);border-radius:50%;background:rgba(0,0,0,.62);filter:blur(4px);opacity:.8}.tra-graph-ball{position:relative;width:52px;height:52px;margin:0 auto;border-radius:50%;overflow:hidden;isolation:isolate;pointer-events:auto;cursor:pointer;background:linear-gradient(145deg,#754238 0%,var(--tra-leather) 46%,var(--tra-leather-deep) 100%);border:1px solid #b87960;box-shadow:inset 0 0 0 3px #291816,inset 0 0 0 5px rgba(196,126,96,.58),0 8px 12px -8px rgba(0,0,0,.95);animation:tra-node-pulse var(--pulse) ease-in-out infinite;transition:width .25s,height .25s,margin .25s,box-shadow .25s}.tra-graph-ball::before{content:"";position:absolute;inset:3px;border-radius:inherit;border:1px solid rgba(224,166,133,.42);pointer-events:none}.tra-graph-ball::after{content:"";position:absolute;inset:0;border-radius:inherit;background:#b8927f;filter:url(#tra-grain-noise-only);clip-path:circle(50% at 50% 50%);mix-blend-mode:screen;opacity:.55;pointer-events:none}.tra-node-icon{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);color:rgba(235,196,164,.82);pointer-events:none}.tra-node-icon svg{display:block;width:18px;height:18px;filter:drop-shadow(0 1px 2px rgba(27,13,13,.7))}.tra-graph-node.current .tra-node-icon svg{width:28px;height:28px}.tra-graph-node.current .tra-graph-ball{width:96px;height:96px;margin-top:-22px;box-shadow:inset 0 0 0 4px #291816,inset 0 0 0 7px rgba(200,132,99,.72),0 11px 18px -10px rgba(0,0,0,.95)}.tra-graph-node.current::after{top:84px;width:88px}.tra-graph-label{display:block;margin-top:10px;color:var(--tra-hero-muted);font-size:12px;line-height:1.18;white-space:nowrap;text-shadow:0 1px 7px #000;transition:opacity .2s,color .2s;pointer-events:none}.tra-graph-node.current .tra-graph-label{position:relative;left:50%;width:max-content;max-width:calc(100vw - 32px);margin-top:16px;color:var(--tra-hero-ink);font-size:19px;font-weight:800;letter-spacing:.015em;line-height:1.08;white-space:nowrap;text-align:center;transform:translateX(-50%);animation:tra-center-breathe 3.6s ease-in-out infinite}.tra-graph-node.hovered .tra-graph-label{color:var(--tra-hero-ink)}.tra-graph-node.hovered{z-index:10000!important;opacity:1!important}.tra-node-popover{position:absolute;z-index:10001;left:50%;bottom:calc(100% + 24px);width:210px;padding:12px 14px;text-align:left;color:var(--tra-hero-ink);background:rgba(48,27,24,.96);border:1px solid #b87960;border-radius:8px;box-shadow:0 9px 18px -12px rgba(0,0,0,.95),inset 0 0 0 3px rgba(33,19,18,.9);transform:translate(-50%,8px) scale(.86);transform-origin:50% 100%;opacity:0;pointer-events:none;transition:opacity .18s ease,transform .24s cubic-bezier(.2,1.35,.4,1)}.tra-node-popover::after{content:"";position:absolute;left:50%;bottom:-8px;width:14px;height:14px;background:rgba(48,27,24,.96);border-right:1px solid #b87960;border-bottom:1px solid #b87960;transform:translateX(-50%) rotate(45deg)}.tra-node-popover strong{display:block;margin-bottom:4px;color:var(--tra-copper);font:600 12px/1.2 Georgia,serif;letter-spacing:.03em}.tra-node-popover span{display:block;color:#d2bdb2;font-size:11px;line-height:1.4}.tra-graph-node.hovered .tra-node-popover,.tra-graph-node:focus-visible .tra-node-popover{opacity:1;transform:translate(-50%,0) scale(1)}@keyframes tra-node-pulse{0%,100%{transform:scale(1);filter:brightness(.96)}50%{transform:scale(1.035);filter:brightness(1.04)}}@keyframes tra-center-breathe{0%,100%{translate:0 0;letter-spacing:.015em}50%{translate:0 -3px;letter-spacing:.035em}}@keyframes tra-edge-walk{to{stroke-dashoffset:-26px}}
.tra-graph-hint{position:absolute;left:8px;bottom:10px;color:var(--tra-hero-muted);font-size:11px;opacity:.7}.tra-graph-readout{position:absolute;right:8px;bottom:10px;color:var(--tra-hero-muted);font-size:10px;letter-spacing:.1em;text-transform:uppercase}.tra-graph-readout b{color:var(--tra-orange);font-weight:500}
@media(max-width:680px){.tra-hero-media{display:none}.tra-hero-topbar{left:0;right:0;padding:12px 15px}.tra-hero-back{justify-content:center}.tra-hero-back img{width:30px;height:30px}.tra-hero-shell{width:100%;max-width:100%;height:100svh;min-height:680px;padding:26px 0 12px;overflow:hidden;align-items:center}.tra-hero-logo{width:min(92vw,520px);max-height:82px}.tra-hero-tagline{max-width:30ch;font-size:15px;line-height:1.25;text-align:center}.tra-graph{width:100%;max-width:100%;height:calc(100% - 132px);min-height:0;margin-top:10px;perspective:none;overflow:visible}.tra-graph-field{inset:8px 0 0;overflow:visible}.tra-graph-node{width:126px;height:94px;margin:-42px 0 0 -63px;transform:none}.tra-graph-node.current .tra-graph-label{font-size:clamp(14px,4.5vw,18px);width:max-content;max-width:calc(100vw - 32px);left:50%;transform:translateX(-50%);margin-top:14px}.tra-graph-node.current .tra-graph-ball{width:76px;height:76px;margin-top:-12px}.tra-graph-node.current::after{top:67px;width:72px}.tra-graph-label{font-size:10px}.tra-node-popover{width:180px}.tra-graph-halo{width:150px;height:150px;margin:-75px 0 0 -75px}}
@media(prefers-reduced-motion:reduce){.tra-graph-ball,.tra-graph-edges path.related,.tra-graph-node.current .tra-graph-label{animation:none}.tra-graph-node{will-change:auto}}
