﻿/* Nodes installation: sandbox Ride study only. */
.ethel-main.is-nodes{padding:0!important;background:#10110f!important}
.ethel-main.is-nodes>div:last-child{max-width:none}
.nodes-installation{--ink:#eae2d3;--line:#a68861;background:#10110f;color:var(--ink);padding:34px 4vw 25px;min-height:85vh}
.nodes-installation:fullscreen{overflow:auto;padding:25px 3vw}
.nodes-heading{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:25px}
.nodes-kicker{font:10px/1.6 'JetBrains Mono',monospace;text-transform:uppercase;letter-spacing:.16em;color:#bdab91}
.nodes-heading h2{font:normal clamp(55px,6vw,90px)/1 Georgia;margin:8px 0 0;letter-spacing:-.05em}.nodes-heading h2 span{color:#bc8159}
.nodes-heading>p{font-size:14px;line-height:1.7;color:#b4b5a9}
.nodes-chapters{display:flex;gap:7px;flex-wrap:wrap;padding-bottom:20px;border-bottom:1px solid #cfb98f33}
.nodes-installation button,.nodes-installation a,.nodes-installation select,.nodes-installation input{touch-action:manipulation}
.nodes-chapters button,.nodes-filters button,.nodes-filters select{padding:10px 15px;border:1px solid #c3b08f40;background:#181a15;color:#c9c5b9;font-size:12px}
.nodes-chapters button[aria-pressed=true]{background:#d0b492;color:#12130f;border-color:#d0b492}
.nodes-body{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:30px;align-items:start}
.nodes-field{min-width:0;position:relative}.nodes-field-label{display:flex;justify-content:space-between;align-items:center;padding:20px 0 5px;font-size:11px;color:#b7b6a7;letter-spacing:.07em}
.nodes-field-label button{text-decoration:underline;text-underline-offset:4px;padding:8px}
.nodes-viewport{position:relative;height:clamp(430px,47vw,670px);overflow:hidden;touch-action:none;cursor:grab;background:radial-gradient(ellipse,#29312644,transparent 72%)}
.nodes-viewport:active{cursor:grabbing}.nodes-scene{position:absolute;width:1100px;height:680px;transform-origin:0 0}
.nodes-atmosphere{position:absolute;inset:0;background-position:center;background-size:cover;opacity:.12;mask-image:radial-gradient(ellipse,#000,transparent 70%);pointer-events:none}
.nodes-scene svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
.nodes-scene path{fill:none;stroke:#bc9e7159;stroke-width:1.5;transition:stroke .3s}
.nodes-scene text{fill:#c6b99e;font:12px 'JetBrains Mono',monospace;paint-order:stroke;stroke:#10110f;stroke-width:5px;stroke-linejoin:round}
.nodes-scene .edge-lit path{stroke:#e4bc7e;stroke-width:2.5;filter:drop-shadow(0 0 6px #e4bc7e55)}
.person-node{position:absolute;width:156px;height:156px;transform:translate(-50%,-50%);border:1px solid #b3a07a80;border-radius:50%;padding:7px;background:#161b15;cursor:pointer;box-shadow:0 0 0 9px #ad98720a;transition:box-shadow .25s,border-color .25s;overflow:visible}
.person-node img{width:100%;height:100%;object-fit:cover;border-radius:50%;filter:saturate(.55);pointer-events:none}
.person-node:hover,.person-node.is-selected{border-color:#e5bd80;box-shadow:0 0 0 10px #c09a4d15,0 0 65px #9f7f3530}
.person-node.is-selected img{filter:saturate(.9)}
.node-name{position:absolute;top:calc(100% + 13px);left:50%;transform:translateX(-50%);width:245px;text-align:center;font:22px/1.2 Georgia;color:#eee5d2;text-shadow:0 2px 10px #000;background:radial-gradient(ellipse,#10110fc9,transparent 72%)}
.node-mark{font:36px Georgia;color:#c6a77c}.person-node.is-event{border-style:dashed;background:#1c2119}
.node-note{padding:30px 0 20px;border-left:1px solid #c3b18b33;padding-left:25px;min-height:420px}
.node-note h3{font:normal 34px/1.05 Georgia;margin:25px 0 10px}.node-role{font-size:12px;color:#c2aa88;line-height:1.6}.node-prose{font:18px/1.65 Georgia;margin:24px 0;color:#dedbcf}
.node-connections{border-top:1px solid #c2af8d33;margin-top:30px;padding-top:16px}.node-connections>p{font-size:10px;text-transform:uppercase;letter-spacing:.12em;color:#aaa997;margin-bottom:10px}
.node-connections button{width:100%;text-align:left;display:flex;justify-content:space-between;gap:8px;padding:11px 0;border-bottom:1px solid #a89e7622;font-size:13px}.node-connections span{font-size:10px;color:#b5a68c;align-self:center}
.node-next{padding:12px 15px;background:#cab092;color:#171914;font-size:12px;line-height:1.5;margin:15px 0;display:block;text-align:left}
.node-text-link{display:block;margin:16px 0;font-size:12px;color:#d6b591;text-decoration:underline;text-underline-offset:5px}.node-source-note{font-size:14px;line-height:1.7;color:#c7c5b8}
.nodes-controls,.nodes-pagination{display:flex;align-items:center;justify-content:space-between;gap:15px;font-size:11px;color:#b9b6a3;border-top:1px solid #c2af8d33;padding:12px 0}.nodes-controls>div{display:flex;gap:5px}.nodes-controls button,.nodes-pagination button{min-height:36px;min-width:36px;padding:6px;border:1px solid #c2af8d33;background:#1a1d16}.nodes-pagination button:disabled{opacity:.35}
.nodes-footer{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #c2af8d33;padding:22px 0 0;font-size:12px;color:#bcb6a8}.nodes-footer>span{max-width:630px}.nodes-footer button,.nodes-footer a{color:#dfb586;flex-shrink:0}
.nodes-filters{display:flex;flex-wrap:wrap;gap:15px;align-items:center;padding:15px 0;border-bottom:1px solid #c2af8d33;font-size:12px}.nodes-filters label{display:flex;align-items:center;gap:10px}.nodes-filters input{padding:10px;background:#22271d;border:1px solid #b3a58088;color:#ece6d9;max-width:200px}
.nodes-list{min-height:400px;display:grid;grid-template-columns:1fr 1fr;align-content:start;gap:12px;padding:25px 0}.nodes-list button{text-align:left;padding:20px;background:#20251b;border:1px solid #b3a58044;font:22px Georgia}.nodes-list small{display:block;margin-top:8px;font:12px/1.5 'DM Sans',sans-serif;color:#c9b89b}.nodes-list [aria-pressed=true]{border-color:#dfb586}
@media(max-width:1000px){.nodes-body{grid-template-columns:minmax(0,1fr) 245px;gap:15px}.node-note{padding-left:15px}.nodes-installation{padding:26px 25px}.nodes-viewport{height:440px}}
@media(max-width:700px){.nodes-heading{align-items:start}.nodes-heading>p{font-size:11px;max-width:140px;padding-top:20px}.nodes-installation{padding:24px 16px}.nodes-heading h2{font-size:58px}.nodes-kicker{font-size:8px;letter-spacing:.08em}.nodes-body{display:flex;flex-direction:column;gap:0}.nodes-field{width:100%}.nodes-viewport{height:300px}.nodes-chapters{gap:5px}.nodes-chapters button{font-size:10px;padding:9px}.node-note{width:100%;min-height:0;border-left:0;border-top:1px solid #c3b18b33;padding:22px 4px}.node-note h3{font-size:30px;margin-top:12px}.node-prose{margin:16px 0;font-size:18px}.node-connections{margin-top:20px}.nodes-footer{flex-direction:column;gap:12px}.nodes-controls>span{font-size:9px}.nodes-filters{gap:9px}.nodes-filters label{flex:1}.nodes-filters input{max-width:180px}.nodes-list{min-height:280px}.nodes-list button{font-size:18px;padding:15px}}
@media(prefers-reduced-motion:reduce){.nodes-installation *{transition:none!important}}
@media(max-width:700px){.person-node{width:210px;height:210px}.node-name{font-size:32px;width:300px}.nodes-scene text{font-size:18px}}
/* Two continuous, physical networks. */
.nodes-force .nodes-heading h2{font-size:62px}.nodes-force .nodes-body{grid-template-columns:minmax(0,1fr) 260px;gap:22px}.nodes-force .nodes-viewport{height:72vh;min-height:540px;max-height:none;background:radial-gradient(ellipse at 45% 40%,#28301b60,transparent 75%)}
.nodes-force .nodes-scene{width:6000px;height:6000px}.nodes-force .nodes-scene svg{width:6000px;height:6000px;overflow:visible}
.nodes-force .person-node{width:200px;height:200px;touch-action:none;cursor:grab}.nodes-force .person-node:active{cursor:grabbing}.nodes-force .node-name{font-size:29px;width:290px;line-height:1.1}.nodes-force .node-mark{font:32px Georgia;color:#b9a07e}
.nodes-force .group-node{border:1px dashed #be9f6844;background:#222518;width:180px;height:180px;box-shadow:none}.nodes-force .group-node .node-name{top:50%;transform:translate(-50%,-50%);font:22px/1.4 'DM Sans',sans-serif;width:170px;text-transform:uppercase;letter-spacing:.05em}
.nodes-force .force-edge path{stroke-width:2}.nodes-force .force-edge.group path{stroke-dasharray:5 14;stroke:#bca77c24}.nodes-force .force-edge.resists path{stroke:#91bbbc77}.nodes-force .force-edge.alias path{stroke-dasharray:12 8}.nodes-force .edge-lit path{stroke:#efc080!important;stroke-width:4!important}.nodes-force .force-edge text{font-size:22px;stroke-width:7px}
.force-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0}.force-toolbar h3{font:24px Georgia}.force-toolbar label{font-size:11px;color:#b5ad9a;display:flex;align-items:center;gap:10px}.force-toolbar input{background:#24251e;color:#eee5d6;border:1px solid #b69f7655;padding:10px;max-width:190px}.force-toolbar>button{padding:10px;border:1px solid #b69f7655}
.force-results{display:flex;flex-wrap:wrap;gap:8px;max-height:160px;overflow:auto;margin-bottom:16px}.force-results button{padding:10px;background:#292b20;border:1px solid #b69f7655;font-size:12px}
.nodes-force .nodes-controls{flex-wrap:wrap}.nodes-force .node-note{max-height:78vh;overflow-y:auto}.nodes-force .nodes-list{max-height:72vh;overflow:auto}.nodes-force .node-prose{font-size:17px;line-height:1.65}.nodes-force .node-connections button{display:block}.nodes-force .node-connections span{display:block;margin-top:5px}
.node-photos{border-top:1px solid #b69f7655;padding-top:14px;margin-top:20px}.node-photos summary{cursor:pointer;font-size:13px;color:#ddbd90}.node-photos p{font-size:12px;margin:12px 0}.node-photos>div{display:grid;grid-template-columns:1fr 1fr;gap:7px}.node-photos img{width:100%;aspect-ratio:1;object-fit:cover}
.nodes-force:fullscreen .nodes-viewport{height:75vh}
@media(max-width:700px){.nodes-force .nodes-body{display:flex}.nodes-force .nodes-viewport{height:58vh;min-height:420px}.force-toolbar{flex-wrap:wrap;gap:12px}.force-toolbar h3{width:100%;font-size:23px}.force-toolbar label{flex:1}.force-toolbar input{max-width:160px;min-width:0}.nodes-force .node-note{max-height:none;overflow:visible}.nodes-force .nodes-controls>div{flex-wrap:wrap}.nodes-force .nodes-controls button{min-height:44px}.nodes-force .person-node{width:210px;height:210px}.nodes-force .node-name{font-size:34px}.nodes-force .nodes-heading>p{font-size:11px}.nodes-force .nodes-chapters button{font-size:12px;padding:13px 10px}.nodes-force .nodes-list{grid-template-columns:1fr}.nodes-force .nodes-footer{font-size:11px}}
.force-top-controls{display:flex;gap:5px}.force-top-controls button{padding:10px;min-width:38px;min-height:40px;border:1px solid #b69f7655;font-size:12px}.nodes-force .nodes-viewport{background:radial-gradient(ellipse at 45% 40%,#28301b60,transparent 75%)}
.force-top-controls output{align-self:center;min-width:44px;text-align:center;font:11px monospace;color:#bfb29c}
.nodes-force .nodes-viewport{overscroll-behavior:contain;user-select:none}
.nodes-force .nodes-viewport:focus-visible{outline:1px solid #d6b591;outline-offset:3px}
.nodes-force .person-node:focus-visible{outline:3px solid #e4bc7e;outline-offset:12px}
@media(max-width:700px){.force-top-controls{width:100%}.force-top-controls button{min-width:50px;min-height:44px}.nodes-force .nodes-viewport{min-height:380px;height:52vh}}
