/* DNA Discovery — lineage concept studies */
.dd-concept{--concept:#b58a4b;--concept-soft:rgba(181,138,75,.16);background:#050505;color:#f4f3ef}
.dd-concept-hequet{--concept:#8298a9;--concept-soft:rgba(130,152,169,.14)}
.dd-concept-conley{--concept:#7f9475;--concept-soft:rgba(127,148,117,.14)}
.dd-concept-joyce{--concept:#9b7068;--concept-soft:rgba(155,112,104,.14)}
.dd-concept-hero{min-height:92svh;padding:150px clamp(28px,8vw,150px) 72px;position:relative;overflow:hidden;border-bottom:1px solid var(--hair);display:flex;flex-direction:column;justify-content:center;isolation:isolate}
.dd-concept-aura{position:absolute;z-index:-2;width:56vw;height:56vw;right:-10vw;top:-12vw;border-radius:50%;background:radial-gradient(circle,var(--concept-soft),transparent 63%);filter:blur(30px)}
.dd-concept-aura:after,.dd-concept-aura:before{content:"";position:absolute;inset:12%;border:1px solid rgba(255,255,255,.045);border-radius:50%}.dd-concept-aura:after{inset:27%}
.dd-concept-topline{display:flex;justify-content:space-between;align-items:center;gap:30px}
.dd-view-switch{display:flex;border:1px solid var(--hair);border-radius:999px;padding:3px;background:rgba(255,255,255,.015)}
.dd-view-switch button{appearance:none;border:0;background:transparent;color:#6f706c;font-family:'IBM Plex Mono',monospace;font-size:6px;letter-spacing:.22em;padding:10px 16px;border-radius:999px;cursor:pointer;transition:.3s var(--ease)}
.dd-view-switch button.is-active{background:#f0eee7;color:#090909}
.dd-concept-hero-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(280px,.7fr);gap:8vw;align-items:end;margin-top:8vh}
.dd-concept-hero h1{font-family:'Instrument Serif',serif;font-weight:400;font-size:clamp(74px,10vw,180px);line-height:.72;letter-spacing:-.055em;margin:0;max-width:1100px}
.dd-concept-lede{font-family:'Instrument Serif',serif;font-size:clamp(20px,2vw,32px);line-height:1.45;max-width:720px;color:#a8a8a3;margin:38px 0 0}
.dd-concept-stats{border-top:1px solid var(--hair)}
.dd-concept-stats p{display:grid;grid-template-columns:94px 1fr;gap:22px;padding:15px 0;border-bottom:1px solid var(--hair);margin:0;font-size:10px;line-height:1.55;color:#b9b9b4}
.dd-concept-stats span{font-family:'IBM Plex Mono',monospace;font-size:6px;letter-spacing:.2em;color:#8b8c86}
.dd-concept-stats a{text-decoration:underline;text-decoration-color:#4c4d49;text-underline-offset:4px}
.dd-concept-pathline{margin-top:8vh;border-top:1px solid var(--hair);padding-top:18px;font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:.17em;color:#8a8b85}
.dd-concept-journey{position:relative}.dd-concept-index{padding:14vh clamp(28px,8vw,150px) 18vh}
.dd-index-head{display:grid;grid-template-columns:1fr 2.3fr;gap:8vw;align-items:start;margin-bottom:80px}.dd-index-head h2{font-family:'Instrument Serif',serif;font-size:clamp(46px,5.8vw,96px);font-weight:400;line-height:.9;letter-spacing:-.045em;margin:0}
.dd-index-list{border-top:1px solid var(--hair)}
.dd-index-list a{display:grid;grid-template-columns:70px minmax(260px,1fr) 150px 100px;gap:20px;align-items:center;padding:19px 0;border-bottom:1px solid var(--hair);transition:.35s var(--ease)}
.dd-index-list a:hover{padding-left:12px;background:rgba(255,255,255,.012)}
.dd-index-list strong{font-family:'Instrument Serif',serif;font-weight:400;font-size:27px}.dd-index-list span,.dd-index-list em{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:.14em;color:#8f908a;font-style:normal}
.dd-index-list a>span:first-child{color:var(--concept)}
.dd-edge-surface{position:relative}.dd-edge-layer{position:absolute;inset:0;pointer-events:none;overflow:visible;z-index:0}.dd-edge-path{fill:none;stroke:var(--concept);stroke-width:1;opacity:.18;transition:opacity .25s ease,stroke-width .25s ease}.dd-edge-path.is-hot{opacity:.9;stroke-width:1.5}.dd-ancestor-node{position:relative;z-index:2}.dd-edge-surface.is-focused .dd-ancestor-node:not(.is-hot){opacity:.24;filter:saturate(.4)}.dd-ancestor-node{transition:opacity .25s ease,transform .3s var(--ease),filter .25s ease}

/* Walker — ancestral river */
.dd-river-shell{padding:15vh clamp(28px,8vw,150px) 20vh;display:grid;grid-template-columns:72px minmax(220px,.65fr) minmax(420px,1.45fr);gap:5vw;align-items:start}
.dd-lineage-rail{position:sticky;top:130px;height:60vh;display:flex;flex-direction:column;align-items:center;justify-content:space-between;font-family:'IBM Plex Mono',monospace;font-size:6px;letter-spacing:.16em;color:#858681}
.dd-lineage-rail:before{content:"";position:absolute;left:50%;top:28px;bottom:28px;width:1px;background:linear-gradient(var(--concept),rgba(181,138,75,.08))}
.dd-lineage-rail b{position:relative;z-index:2;background:#050505;border:1px solid rgba(181,138,75,.35);width:44px;height:44px;border-radius:50%;display:grid;place-items:center;color:#d4bf8b;font-weight:400}
.dd-river-copy{position:sticky;top:130px}.dd-river-copy h2,.dd-weave-intro h2,.dd-frontier-intro h2,.dd-constellation-intro h2{font-family:'Instrument Serif',serif;font-size:clamp(48px,5.3vw,90px);line-height:.9;letter-spacing:-.04em;font-weight:400;margin:52px 0 32px}
.dd-river-copy>p:last-child,.dd-weave-intro>p:last-child,.dd-frontier-intro>p:last-child,.dd-constellation-intro>p:last-child{max-width:460px;color:#8d8e89;font-size:12px;line-height:1.9}
.dd-river{padding:0 0 8vh}.dd-generation{position:relative;min-height:185px;padding:0 0 56px 52px}
.dd-generation:before{content:"";position:absolute;left:13px;top:14px;bottom:-2px;width:1px;background:linear-gradient(var(--concept),rgba(181,138,75,.08))}
.dd-generation:last-child:before{bottom:70%}.dd-generation-mark{position:absolute;left:0;top:0;display:flex;align-items:center;gap:8px}.dd-generation-mark span{width:28px;height:28px;display:grid;place-items:center;border:1px solid color-mix(in srgb,var(--concept) 55%,transparent);border-radius:50%;background:#050505;font-family:'IBM Plex Mono',monospace;font-size:6px;color:#cdb77e}.dd-generation-mark i{width:16px;height:1px;background:rgba(255,255,255,.13)}
.dd-generation-nodes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.dd-ancestor-node{display:block;border-top:1px solid var(--hair);padding:17px 0 14px;min-height:112px}
.dd-ancestor-node:hover{transform:translateX(5px)}
.dd-ancestor-node .dd-node-status{display:block;font-family:'IBM Plex Mono',monospace;font-size:6px;letter-spacing:.18em;color:var(--concept);margin-bottom:11px}
.dd-ancestor-node strong{display:block;font-family:'Instrument Serif',serif;font-size:clamp(22px,2vw,31px);font-weight:400;line-height:1.08}
.dd-ancestor-node>span:not(.dd-node-status){display:block;margin-top:8px;font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:.12em;color:#7b7c77}
.dd-ancestor-node em{display:block;margin-top:8px;font-family:'IBM Plex Mono',monospace;font-size:6px;letter-spacing:.12em;color:#7e7f79;font-style:normal;text-transform:uppercase}

/* Hequet — generational weave */
.dd-weave-shell{padding:15vh clamp(28px,8vw,150px) 20vh}.dd-weave-intro{display:grid;grid-template-columns:.55fr 1.55fr .8fr;gap:6vw;align-items:start;margin-bottom:12vh}.dd-weave-intro .dd-kicker{grid-column:1}.dd-weave-intro h2{grid-column:2;margin:0}.dd-weave-intro>p:last-child{grid-column:3;margin:0}
.dd-weave{max-width:1160px;margin:0 auto;padding:8vh 0;position:relative}.dd-weave:before{content:"";position:absolute;left:50%;top:0;bottom:0;width:1px;background:linear-gradient(transparent,var(--concept) 8%,var(--concept) 92%,transparent);opacity:.28}
.dd-weave-generation{display:grid;grid-template-columns:1fr 90px 1fr;gap:30px;min-height:190px;align-items:center;position:relative}
.dd-weave-generation.is-left .dd-weave-nodes{grid-column:1;text-align:right}.dd-weave-generation.is-left .dd-weave-year{grid-column:2;grid-row:1}.dd-weave-generation.is-right .dd-weave-nodes{grid-column:3}.dd-weave-generation.is-right .dd-weave-year{grid-column:2;grid-row:1}
.dd-weave-year{justify-self:center;width:56px;height:56px;border:1px solid color-mix(in srgb,var(--concept) 50%,transparent);border-radius:50%;display:grid;place-items:center;background:#050505;font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:.1em;color:#b6c1c9;position:relative;z-index:3}
.dd-weave-nodes{display:grid;gap:12px}.dd-weave-node{padding:16px 0;min-height:100px}.dd-weave-generation.is-left .dd-weave-node:hover{transform:translateX(-5px)}
.dd-concept-hequet .dd-edge-path{stroke:#8298a9}

/* Conley — research frontier */
.dd-frontier-shell{padding:15vh clamp(28px,8vw,150px) 22vh;display:grid;grid-template-columns:minmax(280px,.7fr) minmax(430px,1.35fr);gap:10vw}.dd-frontier-intro{position:sticky;top:130px;align-self:start}
.dd-frontier-path{padding:6vh 0 8vh}.dd-frontier-person{min-height:220px;border:0;border-left:1px solid rgba(127,148,117,.35);padding:28px 0 38px 48px;margin-left:18px;display:flex;flex-direction:column;justify-content:center;position:relative}
.dd-frontier-person:before{content:"";position:absolute;left:-7px;top:50%;width:13px;height:13px;border-radius:50%;background:#9bad91;box-shadow:0 0 0 8px rgba(127,148,117,.08),0 0 24px rgba(127,148,117,.28)}
.dd-frontier-person>span{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:.18em;color:#879c7c}.dd-frontier-person strong{font-family:'Instrument Serif',serif;font-size:clamp(38px,4.3vw,72px);font-weight:400;line-height:.95;margin:17px 0}.dd-frontier-person em{font-family:'IBM Plex Mono',monospace;font-size:7px;letter-spacing:.13em;color:#70716c;font-style:normal}.dd-frontier-person:hover{transform:translateX(8px)}
.dd-frontier-break{margin-left:18px;border-left:1px dashed rgba(127,148,117,.26);padding:76px 0 80px 48px;position:relative}.dd-frontier-break i{position:absolute;left:-5px;top:0;width:9px;height:9px;border:1px solid #7f9475;border-radius:50%;background:#050505}.dd-frontier-break span{font-family:'IBM Plex Mono',monospace;font-size:6px;letter-spacing:.22em;color:#7f9475}.dd-frontier-break strong{display:block;font-family:'Instrument Serif',serif;font-weight:400;font-size:clamp(42px,5vw,80px);line-height:.92;margin:20px 0}.dd-frontier-break p{max-width:520px;color:#898a85;font-size:12px;line-height:1.8}

/* Joyce — constellation */
.dd-constellation-shell{padding:15vh clamp(28px,8vw,150px) 20vh}.dd-constellation-intro{display:grid;grid-template-columns:.55fr 1.35fr .8fr;gap:6vw;align-items:start;margin-bottom:9vh}.dd-constellation-intro .dd-kicker{grid-column:1}.dd-constellation-intro h2{grid-column:2;margin:0}.dd-constellation-intro>p:last-child{grid-column:3;margin:0}
.dd-constellation{height:min(78vw,980px);min-height:720px;max-width:1180px;margin:0 auto;border:1px solid rgba(255,255,255,.055);border-radius:50%;overflow:hidden;background:radial-gradient(circle at center,rgba(155,112,104,.05),transparent 50%);position:relative}
.dd-orbit-ring{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);border:1px solid rgba(255,255,255,.045);border-radius:50%;pointer-events:none}.ring-a{width:30%;height:30%}.ring-b{width:58%;height:58%}.ring-c{width:84%;height:84%}
.dd-star{--angle:calc((360deg / var(--star-n)) * var(--star-i));position:absolute;width:210px;min-height:92px;left:calc(50% + cos(var(--angle)) * 34%);top:calc(50% + sin(var(--angle)) * 34%);transform:translate(-50%,-50%);text-align:center;border:0;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.dd-star:hover{transform:translate(-50%,-50%) scale(1.05)}.dd-star i{width:8px;height:8px;border-radius:50%;background:#b88a80;box-shadow:0 0 20px rgba(155,112,104,.5);margin-bottom:12px}.dd-star.is-related i{background:#666;box-shadow:none}.dd-star strong{font-family:'Instrument Serif',serif;font-weight:400;font-size:clamp(20px,2vw,29px);line-height:1.05}.dd-star span,.dd-star em{font-family:'IBM Plex Mono',monospace;font-size:6px;letter-spacing:.12em;color:#71726e;font-style:normal;margin-top:7px}.dd-star em{color:#9b7068}
.dd-open-horizon{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:260px;text-align:center;z-index:1}.dd-open-horizon span{font-family:'IBM Plex Mono',monospace;font-size:6px;letter-spacing:.2em;color:#9b7068}.dd-open-horizon p{font-family:'Instrument Serif',serif;font-size:20px;line-height:1.4;color:#8b8b86;margin:16px 0 0}

/* Generic states and reveal */
.dd-generation,.dd-weave-generation,.dd-frontier-person,.dd-star{opacity:.62;transition:opacity .45s var(--ease),transform .45s var(--ease)}.dd-generation.is-inview,.dd-weave-generation.is-inview,.dd-frontier-person.is-inview,.dd-star.is-inview{opacity:1}
.dd-concept [hidden]{display:none!important}

@media(max-width:1050px){
  .dd-concept-hero-grid{grid-template-columns:1fr;gap:60px}.dd-concept-hero{min-height:auto;padding-top:130px}
  .dd-river-shell{grid-template-columns:46px 1fr}.dd-river-copy{grid-column:2;position:relative;top:auto;margin-bottom:50px}.dd-river{grid-column:2}.dd-lineage-rail{grid-row:1 / span 2}
  .dd-weave-intro,.dd-constellation-intro{grid-template-columns:1fr}.dd-weave-intro .dd-kicker,.dd-weave-intro h2,.dd-weave-intro>p:last-child,.dd-constellation-intro .dd-kicker,.dd-constellation-intro h2,.dd-constellation-intro>p:last-child{grid-column:1}.dd-weave-intro h2,.dd-constellation-intro h2{margin-top:42px}.dd-weave-intro>p:last-child,.dd-constellation-intro>p:last-child{margin-top:12px}
  .dd-frontier-shell{grid-template-columns:1fr}.dd-frontier-intro{position:relative;top:auto}.dd-frontier-path{max-width:760px;margin-left:auto}
}
@media(max-width:760px){
  .dd-concept-hero{padding-left:22px;padding-right:22px}.dd-concept-topline{align-items:flex-start;flex-direction:column}.dd-concept-hero h1{font-size:72px}.dd-concept-stats p{grid-template-columns:80px 1fr}.dd-concept-pathline{line-height:1.8}
  .dd-river-shell,.dd-weave-shell,.dd-frontier-shell,.dd-constellation-shell,.dd-concept-index{padding-left:22px;padding-right:22px}
  .dd-river-shell{grid-template-columns:1fr}.dd-lineage-rail{display:none}.dd-river-copy,.dd-river{grid-column:1}.dd-generation{padding-left:38px}.dd-generation-nodes{grid-template-columns:1fr}
  .dd-weave:before{left:26px}.dd-weave-generation{display:grid;grid-template-columns:54px 1fr;gap:18px;min-height:150px}.dd-weave-generation.is-left .dd-weave-nodes,.dd-weave-generation.is-right .dd-weave-nodes{grid-column:2;text-align:left}.dd-weave-generation.is-left .dd-weave-year,.dd-weave-generation.is-right .dd-weave-year{grid-column:1;grid-row:1}.dd-weave-year{width:44px;height:44px}.dd-weave-generation.is-left .dd-weave-node:hover{transform:translateX(5px)}
  .dd-frontier-person{min-height:170px;padding-left:34px}.dd-frontier-break{padding-left:34px}
  .dd-constellation{height:auto;min-height:0;border-radius:0;border-left:0;border-right:0;padding:35px 0}.dd-orbit-ring,.dd-open-horizon{display:none}.dd-star{position:relative;left:auto!important;top:auto!important;transform:none!important;width:100%;min-height:110px;border-bottom:1px solid var(--hair)}.dd-star:hover{transform:translateX(5px)!important}
  .dd-index-head{grid-template-columns:1fr;gap:45px}.dd-index-list a{grid-template-columns:42px 1fr auto}.dd-index-list a>span:nth-of-type(2),.dd-index-list em{display:none}
}
@media(prefers-reduced-motion:reduce){.dd-generation,.dd-weave-generation,.dd-frontier-person,.dd-star{opacity:1!important;transition:none!important}}
