/* ============================================================
   CHORNOBYL40 — Virtual Residency page
   week cards · slot grid · anatomy list
   ============================================================ */

/* ---------- week card ---------- */
.wklist{ display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line); }
.wk{ background:var(--bg-card); padding:clamp(22px,2.6vw,34px) clamp(20px,2.6vw,36px); position:relative; transition:background .4s var(--ease); }
.wk:hover{ background:var(--bg-card-2); }
.wk::after{ content:""; position:absolute; left:0; top:0; width:2px; height:100%; background:transparent; transition:background .4s var(--ease); }
.wk:hover::after{ background:var(--acid); }
.wk__head{ display:flex; flex-wrap:wrap; align-items:baseline; gap:10px 22px; margin-bottom:14px; }
.wk__no{ font-family:var(--mono); font-size:12px; letter-spacing:.24em; text-transform:uppercase; color:var(--acid); }
.wk__date{ font-family:var(--mono); font-size:12.5px; letter-spacing:.04em; color:var(--ink-2); }
.wk__grp{ font-family:var(--mono); font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-dim); border:1px solid var(--line); padding:4px 9px; margin-left:auto; white-space:nowrap; }
.wk__t{ font-size:clamp(21px,2.4vw,31px); font-weight:500; letter-spacing:-.015em; line-height:1.08; margin-bottom:16px; text-wrap:balance; }
.wk__cols{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(18px,3vw,54px); }
.wk__col .k{ display:block; font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:7px; }
.wk__col p{ font-size:14.5px; line-height:1.55; color:var(--ink-2); max-width:52ch; }
.wk__col.out p{ color:var(--ink); }
@media (max-width:760px){
  .wk__cols{ grid-template-columns:1fr; gap:16px; }
  .wk__grp{ margin-left:0; }
}

/* ---------- hackathon slot grid ---------- */
.slots{ display:grid; grid-template-columns:repeat(auto-fit,minmax(168px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); margin-top:26px; }
.slot{ background:var(--bg-card); padding:20px 18px; transition:background .4s var(--ease),transform .4s var(--ease); }
.slot:hover{ background:var(--bg-card-2); transform:translateY(-2px); }
.slot .d{ font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-faint); margin-bottom:8px; }
.slot .t{ font-family:var(--mono); font-size:16px; color:var(--acid); letter-spacing:.02em; }
.slot .n{ display:block; font-family:var(--mono); font-size:11.5px; color:var(--ink-dim); margin-top:8px; letter-spacing:.06em; }

/* ---------- session anatomy list ---------- */
.anat{ display:flex; flex-direction:column; gap:0; border-top:1px solid var(--line); }
.anat li{ display:grid; grid-template-columns:44px 1fr; gap:16px; align-items:baseline; padding:15px 0; border-bottom:1px solid var(--line); list-style:none; }
.anat li .i{ font-family:var(--mono); font-size:11.5px; letter-spacing:.16em; color:var(--ink-faint); }
.anat li p{ font-size:15px; line-height:1.5; color:var(--ink-2); }
.anat li:hover .i{ color:var(--acid); }

/* ---------- key/value spec block ---------- */
.spec{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:1px; background:var(--line); border:1px solid var(--line); }
.spec div{ background:var(--bg-1); padding:18px 18px 20px; }
.spec .k{ display:block; font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--ink-dim); margin-bottom:9px; }
.spec .v{ font-family:var(--mono); font-size:15px; color:var(--ink); letter-spacing:.02em; line-height:1.3; }
.spec .v.acc{ color:var(--acid); }

/* ---------- outputs ladder ---------- */
.ladder{ display:flex; flex-direction:column; gap:1px; background:var(--line); border:1px solid var(--line); margin-top:8px; }
.ladder div{ background:var(--bg-card); padding:16px 20px; display:grid; grid-template-columns:56px 1fr; gap:18px; align-items:baseline; transition:background .4s var(--ease); }
.ladder div:hover{ background:var(--bg-card-2); }
.ladder .st{ font-family:var(--mono); font-size:12px; letter-spacing:.16em; color:var(--acid); }
.ladder p{ font-size:14.5px; line-height:1.5; color:var(--ink-2); }

/* ---------- nav: longer labels on this page need an earlier burger switch ---------- */
body:has(.res-hero) .nav-links a{ white-space:nowrap; }
@media (max-width:1060px){
  body:has(.res-hero) .nav-links{ display:none; }
  body:has(.res-hero) .burger{ display:flex; }
}

/* ---------- residency hero: image as backdrop, content pulled up ---------- */
.res-hero{ min-height:0; height:auto; padding-top:calc(var(--nav-h,68px) + 30px); padding-bottom:clamp(30px,5vh,54px); display:block; }
.res-hero .hero__bg img{ opacity:.30; }
.res-hero .hero__bg::after{ background:linear-gradient(180deg,rgba(10,10,11,.86) 0%,rgba(10,10,11,.70) 45%,rgba(10,10,11,.94) 100%); }
.res-hero .hero__top{ position:relative; top:auto; left:auto; right:auto; padding:0; margin-bottom:clamp(14px,2vh,22px); z-index:4; }
.res-hero .hero__brk{ display:none; }
.res-hero .hero__body{ position:relative; z-index:4; padding:0; }
.res-hero .hero__line{ margin-bottom:clamp(18px,2.6vh,28px); color:var(--ink); }
.res-hero .hero__line b{ color:var(--ink); }
.res-hero .eyebrow{ color:var(--ink); }
.res-hero .hero__coord{ color:var(--ink-2); }
.res-hero .fact .k{ color:var(--ink-2); }
.res-hero .fact .v{ color:var(--ink); }
.res-hero .hero__micro{ color:var(--ink-2); }
.res-hero .hero__micro b{ color:var(--ink); }
.res-hero .hero__cta{ margin-bottom:clamp(20px,3vh,32px); }
.res-hero .scrollcue{ display:none; }

/* ---------- single-column splitimg (images removed) ---------- */
#format .splitimg,#pitches .splitimg{ grid-template-columns:1fr; }
#format .splitimg > div,#pitches .splitimg > div{ max-width:none; }

/* ---------- lab numgrid ---------- */
@media (max-width:640px){ #lab .numgrid{ grid-template-columns:1fr; } }

/* ---------- tighter section rhythm on this page ---------- */
body:has(.res-hero) .section{ padding-block:clamp(52px,7vh,88px); }

/* ---------- contact panel ---------- */
.contact{ display:grid; grid-template-columns:1.1fr .9fr; gap:clamp(28px,5vw,70px); align-items:center; }
@media (max-width:900px){ .contact{ grid-template-columns:1fr; } }
.contact__mail{ font-family:var(--mono); font-size:clamp(17px,2.2vw,26px); color:var(--acid); letter-spacing:.01em; word-break:break-all; }
.contact__mail:hover{ text-decoration:underline; }
