/* ===== THE RISE (Progress tab) ===== */
.rise-hero{padding-top:clamp(120px,15vw,190px);padding-bottom:40px}
.ticker{border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--s1);overflow:hidden;white-space:nowrap;padding:16px 0}
.ticker .track{display:inline-flex;align-items:center;gap:22px;padding-left:22px;animation:tick 140s linear infinite;will-change:transform}
.ticker:hover .track,.ticker:focus-within .track{animation-play-state:paused}
@keyframes tick{to{transform:translateX(-50%)}}
.ticker .tk{font-family:var(--f-mono);font-size:13px;font-weight:500;letter-spacing:.12em;text-transform:uppercase;color:var(--cream);text-decoration:none}
.ticker a.tk:hover{color:var(--yellow)}
.ticker .tk.st{color:var(--mute)}
.ticker .sep{font-style:normal;color:var(--yellow)}
@media (prefers-reduced-motion:reduce){.ticker{overflow-x:auto}.ticker .track{animation:none}}
.bignum{background:#000;padding-block:clamp(90px,14vw,200px)}
.bignum .huge{font-family:var(--f-display);font-weight:900;font-size:clamp(88px,20vw,320px);line-height:.85;color:var(--yellow);margin:.1em 0;font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.bignum .nums{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);margin-top:48px}
.bignum .nums>div{background:#000;padding:24px}
.bignum .nums b{display:block;font-family:var(--f-display);font-weight:900;font-size:clamp(40px,4.6vw,68px);line-height:.95;font-variant-numeric:tabular-nums}
.bignum .nums span{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--mute);display:block;margin-top:10px}
.srcl{font-family:var(--f-mono);font-size:11px;letter-spacing:.08em;color:var(--yellow);text-decoration:none;white-space:nowrap}
.srcl:hover{text-decoration:underline}
.bld{cursor:pointer}
.org{border:1px solid var(--line);background:var(--ink);display:flex;flex-direction:column}
.org>.v{position:relative;aspect-ratio:16/9;inset:auto}
.org .oc{padding:20px;display:grid;gap:8px}
.org .ocap{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:22px;line-height:1;color:var(--yellow)}
.org p{margin:0;color:var(--mute);font-size:16px}
.blackq{background:#000}
.blackq .scr{min-height:70svh;display:flex;align-items:center;padding-inline:var(--gut);max-width:var(--max);margin:0 auto}
.ladder{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-top:50px}
.rung{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:clamp(22px,2.6vw,34px);padding:8px 16px;border:1px solid var(--line2);margin-left:calc(var(--i)*clamp(8px,3vw,44px));background:var(--s1)}
.rung:last-child{border-color:var(--yellow);color:var(--yellow)}
.la{color:var(--yellow);font-family:var(--f-mono);padding-left:18px}
.ptable{border:1px solid var(--line);overflow-x:auto}
.pr{display:grid;grid-template-columns:1.1fr 1.6fr 1.1fr .7fr 1.2fr 1.1fr .9fr;gap:14px;padding:16px 18px;border-top:1px solid var(--line);font-size:15px;min-width:900px}
.pr.ph{border-top:0;font-family:var(--f-mono);font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}
@media (max-width:760px){.ptable{overflow:visible;border:0}.pr{grid-template-columns:1fr;min-width:0;gap:4px;border:1px solid var(--line);margin-bottom:10px}.pr.ph{display:none}.pr span::before{content:attr(data-l);display:block;font-family:var(--f-mono);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim)}}
.inst{border:1px solid var(--line);padding:22px;background:var(--s1)}
.inst .ii{border-top:1px solid var(--line);padding:12px 0;display:grid;gap:6px;justify-items:start}
.inst .ii p{margin:0;font-size:16px}
.prob .wl{margin:0;padding-left:18px;font-family:var(--f-mono);font-size:12.5px;letter-spacing:.06em;text-transform:uppercase;display:grid;gap:4px}
.sol{display:grid;gap:10px;border-top:1px solid var(--line);padding-top:12px;animation:rise .4s}
.solr{display:grid;gap:2px;justify-items:start}.solr span{font-size:14px;color:var(--mute)}
.rpin .glow{fill:#FFD84D;opacity:.18;animation:glow 2.6s ease-in-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes glow{50%{opacity:.04;transform:scale(1.5)}}
.rpin text{display:block!important}
@media (max-width:600px){.rpin text{font-size:16px!important}}
.feedlist{display:grid;gap:14px}
.fi{display:grid;grid-template-columns:220px 1fr;border:1px solid var(--line);background:var(--ink)}
.fi .fv{position:relative;min-height:160px}
.fi .fx{padding:20px 22px;display:grid;gap:10px;align-content:start;min-width:0}
.fi .fx p{margin:0;color:var(--mute);max-width:70ch}
@media (max-width:640px){.fi{grid-template-columns:1fr}.fi .fv{aspect-ratio:16/9;min-height:0}}
.narrow2{max-width:900px}
.pipeline-h{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:26px 0 14px;font-family:var(--f-mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase}
.pipeline-h span{border:1px solid var(--line2);padding:7px 10px}
.pipeline-h span:last-of-type{border-color:var(--yellow);color:var(--yellow)}
.pipeline-h i{color:var(--yellow);font-style:normal}
#subform{margin-top:24px;border:1px solid var(--line);padding:22px;background:var(--s1);display:grid;gap:18px}
.fgrid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fgrid label{display:grid;gap:6px;font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute);min-width:0}
.fgrid label.wide{grid-column:1/-1}
.fgrid input,.fgrid select,.fgrid textarea{font:16px var(--f-body);color:var(--cream);background:var(--ink);border:1px solid var(--line2);padding:11px 12px;width:100%;text-transform:none;letter-spacing:0}
.fgrid input:focus,.fgrid select:focus,.fgrid textarea:focus{outline:2px solid var(--yellow);outline-offset:0}
@media (max-width:640px){.fgrid{grid-template-columns:1fr}}
.subr{border:1px solid var(--line);padding:14px;margin-bottom:8px;display:grid;gap:6px}
.pipe-s{display:flex;flex-wrap:wrap;gap:4px}
.pipe-s span{font-family:var(--f-mono);font-size:10px;letter-spacing:.1em;text-transform:uppercase;padding:4px 7px;border:1px solid var(--line2);color:var(--dim)}
.pipe-s span.on{border-color:var(--yellow);color:var(--yellow)}
.edq{margin-top:34px;border:1px dashed var(--yellow);padding:18px;display:grid;gap:12px;justify-items:start}
.parity{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line)}
.parity>div{background:var(--ink);padding:26px}
.parity b{display:block;font-family:var(--f-display);font-weight:900;font-size:clamp(44px,5vw,72px);line-height:.9;margin-top:14px}
.parity p{color:var(--mute);margin:8px 0 0}
.bars{display:grid;gap:18px;margin-top:18px}
.bars div{display:grid;gap:6px}
.bars span{font-family:var(--f-mono);font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.bars i{display:block;height:14px;background:var(--cream)}
.bars i.g{background:var(--yellow)}
.bars em{font-style:normal;font-family:var(--f-display);font-weight:900;font-size:30px}
@media (max-width:760px){.parity{grid-template-columns:1fr}}
.trio{display:flex;flex-wrap:wrap;gap:8px 28px;margin-top:40px;font-family:var(--f-display);font-weight:900;text-transform:uppercase;font-size:clamp(28px,4vw,56px);line-height:1}
.bridges{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:14px;margin-top:20px}
.br{border:1px solid var(--line);display:grid}
.br .bh{padding:18px;text-decoration:none;display:grid;gap:4px;background:var(--s1)}
.br .bh:hover b{color:var(--yellow)}
.br b{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:24px;line-height:1}
.br .ba2{text-align:center;color:var(--yellow);font-family:var(--f-mono);padding:6px 0}
.br .bn{padding:18px;display:grid;gap:4px;border-top:1px solid var(--yellow)}
.finale{background:#000}
.finale .scr{min-height:80svh;display:flex;flex-direction:column;justify-content:center;padding-inline:var(--gut);max-width:var(--max);margin:0 auto}
.roles{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;padding-block:40px}
.role{aspect-ratio:4/5;border:1px solid var(--line);display:flex;align-items:flex-end;padding:16px;background:radial-gradient(circle at 60% 40%,#1c1a16,#060606 70%)}
.role span{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:26px;line-height:1}
.rl{grid-column:1/-1;font-family:var(--f-display);font-weight:900;text-transform:uppercase;font-size:clamp(30px,5vw,72px);line-height:.95;padding:30px 0}
@media (max-width:980px){.bottombar{grid-template-columns:repeat(6,1fr)}.bottombar a{font-size:9px;letter-spacing:.06em}}

/* ===== Library of Congress photographs ===== */
.v.vp{background:#0d0c0a}
.v.vp img.photo{filter:grayscale(.85) contrast(1.08) brightness(.92);transition:filter .6s}
.card:hover .v.vp img.photo,.bcard:hover .v.vp img.photo,.genre:hover .v.vp img.photo{filter:grayscale(.2) contrast(1.05)}
.credit{position:absolute;z-index:4;left:8px;bottom:8px;max-width:calc(100% - 16px);font-family:var(--f-mono);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;color:#F3EBDDcc;background:#080808b8;padding:3px 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.card .vis .credit{bottom:auto;top:8px;left:auto;right:8px;max-width:70%}
.card .seen{z-index:5}
.s-hero .credit{z-index:3;left:auto;right:var(--gut);bottom:14px;white-space:normal;max-width:min(420px,60%)}
.hphotos{position:absolute;inset:0}
.hphotos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity 2s ease;filter:grayscale(1) contrast(1.1) brightness(.62)}
.hphotos img.on{opacity:1}
.hphotos .hcred{left:auto;right:var(--gut);bottom:18px;z-index:3;white-space:normal;max-width:min(460px,70%);text-transform:none;letter-spacing:.02em}
.hero .shade{z-index:1}.hero .collage{z-index:1}.hero .content{z-index:2}
.hero .frag.on{opacity:.1}
.iph{position:relative;aspect-ratio:16/9;margin:-22px -22px 18px}
.rphoto{margin:0;position:relative;aspect-ratio:4/5;border:1px solid var(--line);overflow:hidden}
.rphoto figcaption{position:absolute;left:0;right:0;bottom:0;z-index:5;padding:14px;background:linear-gradient(transparent,#000e 45%);font-size:13px;color:var(--mute)}
.rphoto figcaption b{display:block;font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:24px;color:var(--cream)}
.rphoto .credit{display:none}

/* ===== Connect the dots (home) ===== */
.dots{display:grid;grid-template-columns:2fr 1fr 2fr 1fr 2fr 1fr 2fr 1fr 2fr 1fr 2fr;gap:10px;align-items:center;margin-top:10px}
.dnode2{text-decoration:none;display:block;transform:rotate(var(--r));transition:transform .9s cubic-bezier(.2,.8,.2,1);border:1px solid var(--line2);background:var(--ink);min-width:0}
.dnode2:hover{border-color:var(--yellow)}
.dnode2 .dv{position:relative;aspect-ratio:4/5}
.dnode2 .dv .credit{display:none}
.dnode2 .dc{padding:10px 12px 12px;display:grid;gap:4px}
.dnode2 .dy{font-family:var(--f-mono);font-size:11px;letter-spacing:.14em;color:var(--yellow)}
.dnode2 b{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:17px;line-height:1}
.dlink{min-height:120px;border:1px dashed var(--line2);display:flex;align-items:center;justify-content:center;text-decoration:none;transition:border-color .6s,background .6s;min-width:0}
.dlink .dq{font-family:var(--f-display);font-weight:900;font-size:40px;color:var(--dim)}
.dlink .da{display:none}
.dots.linked{display:flex;overflow-x:auto;gap:10px;padding-bottom:14px;align-items:stretch;scroll-snap-type:x mandatory}
.dots.linked .dnode2{transform:none;flex:0 0 200px;scroll-snap-align:start}
.dots.linked .dlink{flex:0 0 210px}
.dlink.on{border:1px solid var(--yellow);background:#FFD84D10;align-items:flex-start;justify-content:flex-start;padding:14px}
.dlink.on .dq{display:none}
.dlink.on .da{display:grid;gap:8px;font-size:14px;line-height:1.4;color:var(--mute);animation:rise .5s}
.dlink.on .da b{font-family:var(--f-display);font-weight:800;text-transform:uppercase;font-size:20px;line-height:1;color:var(--yellow)}
@media (max-width:980px){.dots{display:flex;overflow-x:auto;gap:10px;padding-bottom:14px;align-items:stretch;scroll-snap-type:x mandatory}.dnode2{flex:0 0 170px;scroll-snap-align:start}.dlink{flex:0 0 64px}.dots.linked .dlink{flex:0 0 200px}}
