/* ============================================================
   Mariia Miroshnik — admissions landing page
   Design tokens
   ============================================================ */
:root{
  --bg:#fbfbfa;
  --bg-alt:#eaf1fd;
  --surface:#ffffff;
  --ink:#12151c;
  --ink-soft:#565c68;
  --ink-faint:#8a8f99;
  --navy:#2247d6;
  --navy-soft:#4f6bea;
  --accent:#2247d6;
  --accent-light:#e3ecfe;
  --accent-deep:#0b1f66;
  --line:#e3e4e8;
  --line-strong:#c8cad1;
  --radius-s:6px;
  --radius-m:14px;
  --maxw:1180px;
  --measure:660px;
  --nav-h:64px;
  --ease:cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{box-sizing:border-box;}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 18px);}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important;}
}
body{
  margin:0;
  background:var(--bg);
  color:var(--ink);
  font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  font-size:17px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
a{color:var(--navy);text-decoration-color:var(--line-strong);text-underline-offset:3px;}
a:hover{text-decoration-color:currentColor;}
:focus-visible{outline:2px solid var(--navy);outline-offset:3px;}
h1,h2,h3,h4{margin:0;font-weight:600;letter-spacing:-.01em;}
p{margin:0;}
em{font-style:italic;}
.container{max-width:var(--maxw);margin:0 auto;padding:0 32px;}
@media (max-width:640px){.container{padding:0 20px;}}

.section{padding:120px 0;border-top:1px solid var(--line);}
.section:first-of-type{border-top:none;}
.section--alt{background:var(--bg-alt);}
@media (max-width:900px){.section{padding:84px 0;}}

.eyebrow{
  font-size:13px;color:var(--ink-faint);margin:0 0 14px;
}
.section__head{position:relative;max-width:var(--measure);margin-bottom:56px;padding-top:58px;}
.section__num{
  position:absolute;top:-14px;left:-3px;z-index:0;user-select:none;pointer-events:none;
  font-size:clamp(56px,7.4vw,104px);font-weight:750;line-height:1;
  color:var(--accent-light);letter-spacing:-.03em;
}
.section__head .eyebrow,.section__head .section__title{position:relative;z-index:1;}
.section__title{font-size:clamp(28px,3.4vw,40px);}
.split__text{position:relative;padding-top:58px;}
.split__text .eyebrow{position:relative;z-index:1;}
.section__lede{margin-top:16px;color:var(--ink-soft);font-size:18px;max-width:var(--measure);}

.link-ext{
  color:var(--navy);text-decoration:underline;text-decoration-color:var(--line-strong);
  text-underline-offset:3px;font-weight:500;
}
.link-ext:hover{text-decoration-color:currentColor;}
.link-ext::after{
  content:"↗";display:inline-block;font-size:.72em;margin-left:1px;
  transform:translateY(-4px);opacity:.6;
}

.prose{max-width:var(--measure);color:var(--ink-soft);}
.prose p{margin:0 0 20px;font-size:17px;line-height:1.75;}
.prose p:last-child{margin-bottom:0;}
.prose strong{color:var(--ink);font-weight:600;}
.prose .lead{color:var(--ink);font-size:19px;}

.gap-l{margin-top:56px;}
.gap-m{margin-top:36px;}

/* ---------- Nav ---------- */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:100;
  height:var(--nav-h);
  display:flex;align-items:center;
  opacity:0;transform:translateY(-6px);
  pointer-events:none;
  transition:opacity .45s var(--ease),transform .45s var(--ease),background .3s ease,border-color .3s ease;
  border-bottom:1px solid transparent;
}
.nav.is-visible{opacity:1;transform:translateY(0);pointer-events:auto;}
.nav.is-solid{
  background:rgba(251,251,250,.78);
  backdrop-filter:blur(14px) saturate(160%);
  -webkit-backdrop-filter:blur(14px) saturate(160%);
  border-bottom-color:var(--line);
}
.nav__inner{
  width:100%;max-width:var(--maxw);margin:0 auto;padding:0 32px;
  display:flex;align-items:center;justify-content:space-between;gap:24px;
}
@media (max-width:640px){.nav__inner{padding:0 20px;}}
.nav__mark{
  font-size:14px;font-weight:600;letter-spacing:-.01em;color:var(--ink);
  text-decoration:none;white-space:nowrap;
}
.nav__links{
  display:flex;gap:28px;list-style:none;margin:0;padding:0;
}
.nav__links a{
  font-size:13.5px;color:var(--ink-soft);text-decoration:none;
  padding:4px 0;border-bottom:1px solid transparent;
  transition:color .2s ease,border-color .2s ease;
}
.nav__links a:hover{color:var(--ink);border-color:var(--line-strong);}
@media (max-width:880px){.nav__links{display:none;}}

.nav__toggle{
  display:none;
  width:34px;height:34px;border:none;background:none;cursor:pointer;
  align-items:center;justify-content:center;
}
@media (max-width:880px){.nav__toggle{display:flex;}}
.nav__toggle span{
  position:relative;width:18px;height:1px;background:var(--ink);
}
.nav__toggle span::before,.nav__toggle span::after{
  content:"";position:absolute;left:0;width:18px;height:1px;background:var(--ink);
  transition:transform .3s var(--ease),opacity .3s var(--ease);
}
.nav__toggle span::before{top:-6px;}
.nav__toggle span::after{top:6px;}
.nav__toggle[aria-expanded="true"] span{background:transparent;}
.nav__toggle[aria-expanded="true"] span::before{transform:translateY(6px) rotate(45deg);}
.nav__toggle[aria-expanded="true"] span::after{transform:translateY(-6px) rotate(-45deg);}

.nav__panel{
  position:fixed;inset:var(--nav-h) 0 auto 0;z-index:99;
  background:rgba(251,251,250,.97);backdrop-filter:blur(14px);
  border-bottom:1px solid var(--line);
  transform:translateY(-8px);opacity:0;pointer-events:none;
  transition:opacity .3s var(--ease),transform .3s var(--ease);
}
.nav__panel.is-open{opacity:1;transform:translateY(0);pointer-events:auto;}
.nav__panel ul{list-style:none;margin:0;padding:14px 20px 26px;display:flex;flex-direction:column;}
.nav__panel a{
  display:block;padding:12px 0;font-size:17px;color:var(--ink);text-decoration:none;
  border-bottom:1px solid var(--line);
}
.nav__panel a:last-child{border-bottom:none;}

/* ---------- Intro (hero + about merged) ---------- */
.intro{
  padding-top:calc(var(--nav-h) + 56px);padding-bottom:110px;
}
.intro__grid{
  display:grid;grid-template-columns:1fr .92fr;column-gap:64px;
  grid-template-areas:
    "name collage"
    "about collage";
  align-items:start;
}
.intro__name{grid-area:name;}
.intro__collage{grid-area:collage;}
.intro__about{grid-area:about;margin-top:56px;max-width:560px;}
@media (max-width:900px){
  .intro__grid{grid-template-columns:1fr;grid-template-areas:"name" "collage" "about";}
  .intro__collage{margin-top:44px;}
  .intro__about{margin-top:44px;max-width:none;}
}

.hero__greet{font-size:19px;color:var(--ink-soft);margin:0 0 6px;}
.intro__tagline{margin:26px 0 0;max-width:520px;font-size:20px;line-height:1.5;color:var(--ink);font-weight:500;}
.hero__name{
  font-size:clamp(44px,7vw,84px);line-height:1.0;letter-spacing:-.02em;font-weight:650;
  color:var(--ink);
}

.collage{
  position:relative;display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:56px;gap:12px;
}
.ph{
  border-radius:var(--radius-m);
  background:linear-gradient(155deg,#e9ebee,#dadde3);
  border:1px solid var(--line-strong);
  display:flex;align-items:flex-end;justify-content:space-between;gap:8px;
  padding:10px 12px;color:var(--ink-faint);position:relative;overflow:hidden;
}
.ph::before{
  content:"";position:absolute;inset:0;
  background:
    radial-gradient(circle at 30% 30%, rgba(255,255,255,.5), transparent 55%);
}
.ph__icon{position:relative;width:15px;height:15px;flex:none;opacity:.55;}
.ph__label{position:relative;font-size:10.5px;letter-spacing:.02em;line-height:1.3;}

/* Three-photo overlapping collage for the intro */
.intro__collage{position:relative;aspect-ratio:4/5;}
.intro__collage::before{
  content:"";position:absolute;z-index:0;
  width:82%;height:82%;top:6%;left:4%;
  background:linear-gradient(135deg,var(--accent-light),#cddcfb);
  border-radius:42% 58% 65% 35% / 45% 45% 55% 55%;
}
.ic-tile{
  position:absolute;border-radius:var(--radius-m);overflow:hidden;
  box-shadow:0 26px 52px -24px rgba(18,21,28,.42);background:var(--surface);
}
.ic-tile img{width:100%;height:100%;object-fit:cover;display:block;}
.ic-1{width:72%;aspect-ratio:4/5;top:0;left:14%;transform:rotate(-2deg);z-index:1;}
.ic-2{width:44%;aspect-ratio:3/4;bottom:2%;left:-2%;transform:rotate(6deg);z-index:2;box-shadow:0 30px 56px -22px rgba(18,21,28,.48);}
.ic-3{width:38%;aspect-ratio:3/4;top:-2%;right:2%;transform:rotate(-7deg);z-index:3;box-shadow:0 30px 56px -22px rgba(18,21,28,.48);}
@media (max-width:640px){
  .ic-1{width:68%;left:16%;}
  .ic-2{width:46%;left:-2%;}
  .ic-3{width:40%;right:0;}
}

/* Three-photo overlapping collage for the WBL section (square infographic cards) */
.wbl-collage{position:relative;aspect-ratio:1/1;}
.wbl-tile{
  position:absolute;border-radius:var(--radius-m);overflow:hidden;
  box-shadow:0 26px 50px -22px rgba(18,21,28,.4);
}
.wbl-collage .wbl-1{width:50%;aspect-ratio:1/1;top:10%;left:5%;transform:rotate(-8deg);z-index:1;}
.wbl-collage .wbl-2{width:50%;aspect-ratio:1/1;top:24%;left:25%;transform:rotate(3deg);z-index:3;box-shadow:0 30px 56px -20px rgba(18,21,28,.46);}
.wbl-collage .wbl-3{width:50%;aspect-ratio:1/1;top:10%;right:5%;transform:rotate(9deg);z-index:2;box-shadow:0 28px 52px -20px rgba(18,21,28,.42);}
@media (max-width:640px){
  .wbl-1{top:8%;}
  .wbl-2{top:22%;}
  .wbl-3{top:8%;}
}

/* ---------- Two-column text + collage rows ---------- */
.split{display:grid;grid-template-columns:1fr .82fr;gap:64px;align-items:start;}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:40px;}}
.split--reverse{grid-template-columns:.82fr 1fr;}
@media (max-width:900px){.split--reverse{grid-template-columns:1fr;}}
.split--reverse .split__media{order:-1;}
@media (min-width:901px){.split--reverse .split__media{order:2;}.split--reverse .split__text{order:1;}}

/* Academic: collage sits beside the first two milestones on desktop,
   but between the 2023–2025 and 2025–2026 blocks once stacked on mobile/tablet. */
.academic-split{
  position:relative;
  grid-template-columns:1fr .82fr;
  grid-template-areas:
    "texta media1"
    "textb media2";
}
.academic-split .academic-text-a{grid-area:texta;}
.academic-split .academic-text-b{grid-area:textb;}
.academic-split .academic-media-1{grid-area:media1;}
.academic-split .academic-media-2{grid-area:media2;align-self:start;}
@media (max-width:900px){
  .academic-split{
    grid-template-columns:1fr;
    grid-template-areas:
      "texta"
      "media1"
      "textb"
      "media2";
  }
  .academic-text-b{margin-top:24px;}
  .academic-media-1,.academic-media-2{margin-left:30px;}
  .academic-media-2{margin-top:8px;}
}

.media-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.media-grid .ph{aspect-ratio:3/4;}
.media-grid .ph.wide{grid-column:span 2;aspect-ratio:auto;}
.media-grid.two{grid-template-columns:repeat(2,1fr);}
.media-grid.four{grid-template-columns:repeat(4,1fr);}
@media (max-width:560px){.media-grid,.media-grid.four{grid-template-columns:repeat(2,1fr);}}

/* ---------- Academic photo + document collage ---------- */
.academic-collage{
  position:relative;display:grid;
  grid-template-columns:repeat(12,1fr);grid-template-rows:repeat(12,1fr);
  aspect-ratio:4/5;
}
.ac-tile{
  position:relative;border-radius:var(--radius-m);overflow:hidden;
  box-shadow:0 20px 38px -24px rgba(18,21,28,.4);background:var(--surface);
}
.ac-tile img{width:100%;height:100%;object-fit:cover;display:block;}
.ac-classroom{grid-column:1/8;grid-row:1/9;z-index:1;}
.ac-lab{grid-column:6/13;grid-row:6/13;z-index:2;box-shadow:0 26px 46px -22px rgba(18,21,28,.45);}
.ac-doc{
  background:#fff;padding:7px 7px 9px;box-shadow:0 16px 30px -16px rgba(18,21,28,.4);
  margin:12px;
}
.ac-doc img{border-radius:3px;}
.ac-medal{grid-column:8/13;grid-row:1/5;z-index:3;}
.ac-olympiad{grid-column:1/7;grid-row:9/13;z-index:3;}

/* ---------- Second academic collage (2025–2026: campus, lab, notes) ---------- */
.ac2-collage{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;}
.ac2-tile{
  position:relative;border-radius:var(--radius-m);overflow:hidden;
  box-shadow:0 16px 30px -20px rgba(18,21,28,.4);background:var(--surface);
}
.ac2-tile img{width:100%;height:100%;object-fit:cover;display:block;}
.ac2-group{grid-column:1/4;aspect-ratio:1200/913;}
.ac2-lab{aspect-ratio:3/4;}
.ac2-equip{aspect-ratio:3/4;}
.ac2-notes{aspect-ratio:3/4;}

.about-collage{
  display:grid;grid-template-columns:1fr 1fr;gap:16px;
  padding-bottom:52px;
}
.about-collage__item img{
  width:100%;height:auto;aspect-ratio:3/4;object-fit:cover;display:block;
  border-radius:var(--radius-m);box-shadow:0 22px 42px -26px rgba(18,21,28,.4);
}
.about-collage__item--2{transform:translateY(52px);}
@media (max-width:640px){
  .about-collage{padding-bottom:32px;}
  .about-collage__item--2{transform:translateY(32px);}
}

.badge-row{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px;}
.badge{
  border:1px solid var(--line);background:var(--surface);
  border-radius:100px;padding:7px 16px;font-size:13.5px;color:var(--accent-deep);
  font-weight:600;box-shadow:0 4px 12px -6px rgba(18,21,28,.14);
}

.stat-line{margin-top:4px;color:var(--ink-faint);font-size:14px;}

/* ---------- Timeline text blocks (Academic) ---------- */
.academic-text-a,.academic-text-b{display:flex;flex-direction:column;gap:36px;position:relative;}
.milestone{position:relative;padding:0 0 0 30px;margin:0;}
.milestone::before{
  content:"";position:absolute;left:0;top:5px;width:11px;height:11px;border-radius:50%;
  background:var(--accent);box-shadow:0 0 0 4px var(--accent-light);z-index:2;
}
/* The connecting line itself is drawn as one continuous element spanning the
   whole timeline (see drawAcademicTimeline() in script.js) — a single measured
   line is the only reliable way to make it land exactly on both dots when the
   content above it (text length, collage image heights) can vary. */
.academic-timeline-line{
  position:absolute;width:2px;background:rgba(34,71,214,.4);z-index:0;pointer-events:none;
}
.milestone__year{font-size:14px;color:var(--navy);font-weight:700;margin-bottom:8px;}
.milestone__body{color:var(--ink-soft);font-size:16.5px;line-height:1.7;max-width:var(--measure);}
.milestone__body strong{color:var(--ink);}

/* ---------- Projects horizontal scroller ---------- */
.scroller{
  display:flex;gap:22px;overflow-x:auto;padding:6px 0 4px;
  -webkit-overflow-scrolling:touch;
  cursor:grab;user-select:none;
  scrollbar-width:none;
}
.scroller.is-dragging{cursor:grabbing;}
.scroller::-webkit-scrollbar{display:none;}

.scroller-nav{display:flex;justify-content:flex-end;gap:10px;margin-bottom:20px;}
.scroller-nav__btn{
  width:44px;height:44px;border-radius:12px;border:none;cursor:pointer;
  background:var(--surface);box-shadow:0 6px 18px -8px rgba(18,21,28,.22);
  color:var(--ink);display:flex;align-items:center;justify-content:center;
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}
.scroller-nav__btn svg{width:20px;height:20px;}
.scroller-nav__btn:hover{background:var(--accent);color:#fff;transform:translateY(-1px);box-shadow:0 10px 22px -8px rgba(34,71,214,.4);}
.scroller-nav__btn:disabled{opacity:.35;cursor:default;pointer-events:none;}

.card{
  flex:0 0 auto;width:min(420px,80vw);
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);
  border-top:4px solid var(--accent);
  padding:26px 28px 28px;display:flex;flex-direction:column;gap:16px;
}
.card__icon{
  width:38px;height:38px;border-radius:50%;flex:none;
  display:flex;align-items:center;justify-content:center;
  background:var(--accent-light);color:var(--accent);
}
.card__icon svg{width:19px;height:19px;}
.card__date{font-size:13px;color:var(--navy);font-weight:600;}
.card__title{font-size:17px;font-weight:600;line-height:1.4;}
.card__body{font-size:15px;color:var(--ink-soft);line-height:1.7;}
.card__media{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:auto;}
.card__media .ph{aspect-ratio:1/1;border-radius:8px;}

.media-thumb{
  display:block;width:100%;aspect-ratio:1/1;border-radius:8px;overflow:hidden;
  border:none;padding:0;margin:0;cursor:zoom-in;background:var(--bg-alt);
}
.media-thumb img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .35s ease;}
.media-thumb:hover img{transform:scale(1.07);}
.media-thumb:focus-visible{outline:2px solid var(--navy);outline-offset:2px;}

/* ---------- Lightbox ---------- */
.lightbox{
  position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;
  padding:32px;background:rgba(12,14,18,.92);
  opacity:0;pointer-events:none;transition:opacity .25s ease;
}
.lightbox.is-open{opacity:1;pointer-events:auto;}
.lightbox__img{
  max-width:min(92vw,1150px);max-height:88vh;width:auto;height:auto;
  border-radius:10px;box-shadow:0 40px 80px -24px rgba(0,0,0,.6);
  opacity:0;transform:scale(.97);transition:opacity .25s ease,transform .25s ease;
}
.lightbox.is-open .lightbox__img{opacity:1;transform:scale(1);}
.lightbox__close{
  position:fixed;top:24px;right:28px;width:44px;height:44px;border-radius:50%;
  background:rgba(255,255,255,.12);border:none;color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .2s ease;
}
.lightbox__close:hover{background:rgba(255,255,255,.22);}
.lightbox__close svg{width:18px;height:18px;}
.lightbox__nav{
  position:fixed;top:50%;transform:translateY(-50%);
  width:48px;height:48px;border-radius:50%;
  background:rgba(255,255,255,.12);border:none;color:#fff;cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:background .2s ease,opacity .2s ease;
  z-index:1;
}
.lightbox__nav:hover{background:rgba(255,255,255,.22);}
.lightbox__nav svg{width:22px;height:22px;}
.lightbox__prev{left:20px;}
.lightbox__next{right:20px;}
.lightbox__nav[hidden]{display:none;}
.lightbox__count{
  position:fixed;left:50%;bottom:20px;transform:translateX(-50%);
  margin:0;color:rgba(255,255,255,.75);font-size:13px;letter-spacing:.02em;
}
@media (max-width:640px){
  .lightbox{padding:14px;}
  .lightbox__close{top:14px;right:14px;width:38px;height:38px;}
  .lightbox__nav{width:40px;height:40px;}
  .lightbox__prev{left:8px;}
  .lightbox__next{right:8px;}
}

/* ---------- Skills carousel ---------- */
.skills-scroller{
  display:flex;gap:18px;overflow-x:auto;padding:6px 0 4px;
  cursor:grab;user-select:none;
  scrollbar-width:none;
}
.skills-scroller.is-dragging{cursor:grabbing;}
.skills-scroller::-webkit-scrollbar{display:none;}
.skill-card{
  flex:0 0 auto;width:300px;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-m);
  border-top:4px solid var(--accent);
  padding:26px;
}
.skill-card h3{font-size:15.5px;margin-bottom:14px;font-style:italic;}
.skill-card ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:9px;}
.skill-card li{font-size:14.5px;color:var(--ink-soft);line-height:1.55;padding-left:14px;position:relative;}
.skill-card li::before{content:"";position:absolute;left:0;top:9px;width:5px;height:5px;border-radius:50%;background:var(--line-strong);}

/* ---------- Beyond-science blocks ---------- */
.blocklist{display:flex;flex-direction:column;gap:64px;}
.block{max-width:var(--measure);}
.block h3{font-size:19px;margin-bottom:14px;}
.block--gym{max-width:none;}
.block--gym .media-grid{max-width:var(--measure);}
.block__row{position:relative;}
.block__row .prose{max-width:var(--measure);}
.block--gym .block__row .prose{max-width:var(--measure);}
.block__accent{position:relative;aspect-ratio:3/4;width:300px;max-width:300px;margin:10px 0 8px auto;}
.block__accent::before{
  content:"";position:absolute;z-index:0;
  width:112%;height:112%;top:-6%;left:-9%;
  background:linear-gradient(135deg,var(--accent-light),#cddcfb);
  border-radius:42% 58% 65% 35% / 45% 45% 55% 55%;
}
.block__accent .media-thumb{
  position:relative;z-index:1;transform:rotate(-6deg);
  box-shadow:0 26px 50px -22px rgba(18,21,28,.42);
}
@media (min-width:821px){
  .block__accent{
    position:absolute;top:0;right:0;margin:0;
  }
}
@media (max-width:820px){
  .block__accent{width:240px;max-width:240px;margin:28px 0 8px 6px;}
}
.media-grid.four .media-thumb{aspect-ratio:3/4;border-radius:var(--radius-m);}
.media-grid.duo-sci{display:flex;gap:12px;}
.media-grid.duo-sci .media-thumb{
  width:auto;flex:0 0 auto;height:208px;aspect-ratio:auto;border-radius:var(--radius-m);
}
.media-grid.duo-sci .media-thumb img{height:100%;width:auto;object-fit:cover;display:block;}
.media-grid.duo-sci .ph{width:156px;height:208px;flex:0 0 auto;aspect-ratio:auto;}
@media (max-width:640px){
  .media-grid.duo-sci .media-thumb{height:168px;}
  .media-grid.duo-sci .ph{height:168px;width:126px;}
}
.block .prose{max-width:none;}

/* ---------- Document embed ---------- */
.doc{
  margin-top:18px;border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden;background:var(--surface);
}
.doc__toggle{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:16px 20px;background:none;border:none;cursor:pointer;text-align:left;font:inherit;color:var(--ink);
}
.doc__toggle strong{font-weight:600;font-size:15px;}
.doc__toggle span.hint{display:block;font-size:13px;color:var(--ink-faint);margin-top:2px;font-weight:400;}
.doc__chev{width:16px;height:16px;flex:none;transition:transform .25s var(--ease);color:var(--ink-faint);}
.doc__toggle[aria-expanded="true"] .doc__chev{transform:rotate(180deg);}
.doc__body{max-height:0;overflow:hidden;transition:max-height .35s var(--ease);border-top:1px solid transparent;}
.doc__body.is-open{max-height:640px;border-top-color:var(--line);}
.doc__body iframe{width:100%;height:560px;border:none;display:block;background:var(--bg-alt);}
.doc__fallback{padding:16px 20px;font-size:13.5px;color:var(--ink-faint);}

/* ---------- References ---------- */
.reading-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;}
.reading-list li{
  padding:18px 0;border-top:1px solid var(--line);font-size:16px;line-height:1.6;
}
.reading-list li:first-child{border-top:none;}
.reading-list .link-ext{color:var(--ink);font-weight:600;text-decoration-color:var(--line-strong);}
.reading-list .link-ext:hover{color:var(--navy);}

/* ---------- Contact ---------- */
.contact-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--radius-m);overflow:hidden;}
.contact-item:last-child{grid-column:span 2;}
@media (min-width:1080px){.contact-grid{grid-template-columns:repeat(3,1fr);}.contact-item:last-child{grid-column:auto;}}
@media (max-width:640px){.contact-grid{grid-template-columns:1fr;}.contact-item:last-child{grid-column:auto;}}
.contact-item{background:var(--surface);padding:28px;}
.contact-item .label{font-size:13px;color:var(--ink-faint);margin-bottom:8px;}
.contact-item a{font-size:17px;font-weight:500;color:var(--ink);text-decoration:none;}
.contact-item a:hover{color:var(--navy);}

.cv-btn{
  margin-top:40px;display:inline-flex;align-items:center;gap:10px;
  background:var(--accent);color:#fff;text-decoration:none;
  padding:15px 28px;border-radius:100px;font-size:15px;font-weight:600;
  box-shadow:0 14px 28px -12px rgba(34,71,214,.55);
  transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
}
.cv-btn:hover{background:var(--accent-deep);transform:translateY(-2px);box-shadow:0 18px 34px -12px rgba(34,71,214,.62);}
.cv-btn svg{width:16px;height:16px;}

footer.site-footer{
  padding-top:36px;padding-bottom:36px;border-top:1px solid var(--line);
  display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;
  color:var(--ink-faint);font-size:13px;
}

.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;}
