/* ============================================================
   Hannah Katalin Grimmer — first draft
   Palette + type synthesized from her references:
   Gerber Bicecci (paper + tile grid), Soma (type on bold color),
   Yara Feghali (bright blocks), Nuart (big contrasting type).
   ============================================================ */

:root{
  /* ============ PALETTE — swap this whole block to try a new look ============
     "Ink & Lime" — black-dominant like the reference poster. Near-black tiles +
     white type; ONE violet block (the identity tile = the poster's "bar"); lime
     used ONLY as a thin accent (numbers, active language). Avoids the violet+lime
     "Buzz" clash by never putting big lime and big violet next to each other —
     colour & life come from the hover images. */
  --bg:    #0C0B12;                  /* darkest — header / base */
  --fg:    #F4F3EC;                  /* white-ish text + hairlines */
  --line:  rgba(244,243,236,.14);
  --ink:   #0F0A20;                  /* dark token (menu bg) */
  --cream: #F4F3EC;                  /* light token: text on every tile */
  --accent:#C6F24E;                  /* lime — the only accent colour */

  --c-intro: #4631C4; /* the single violet block (identity) */
  --c-kur: #110F1C;   /* near-black tiles — colour comes from the hover images */
  --c-for: #110F1C;
  --c-vor: #110F1C;
  --c-sch: #110F1C;
  --c-bio: #C6F24E;   /* lime field — bio & kontakt (dark text + dark "—") */

  /* per-section accents ("neon on ink") — required by brief v2: menu categories
     take colour on hover, and every subpage repeats its home colour. Big fields
     stay ink; these appear only as text/detail colour, so no Buzz clash. */
  --a-kur: #8C5CF6;   /* violet   — kuratieren  */
  --a-for: #4ED2F2;   /* cyan     — forschen    */
  --a-sch: #F25CA2;   /* magenta  — schreiben   */
  --a-vor: #4E86F2;   /* azure    — vortragen   */
  --a-bio: #C6F24E;   /* lime     — bio         */
  /* ========================================================================= */

  --font-display: "Space Grotesk", "Helvetica Neue", Arial, sans-serif;
  --font-mono:    "Space Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;

  --bar-h: 4.25rem;
  --pad:   clamp(0.9rem, 2.2vw, 1.6rem);
  --ease:  cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; }
html,body{ margin:0; height:100%; }
body{
  background:var(--bg);
  color:var(--cream);
  font-family:var(--font-display);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{ color:inherit; text-decoration:none; }
button{ font:inherit; color:inherit; background:none; border:0; cursor:pointer; }

/* ---------- top bar ---------- */
.topbar{
  height:var(--bar-h);
  display:flex; align-items:center; justify-content:space-between;
  padding:0 var(--pad);
  border-bottom:1px solid var(--line);
}
.wordmark{
  font-family:var(--font-display);
  font-weight:500;
  font-size:clamp(.95rem, 1.5vw, 1.18rem);
  letter-spacing:.015em; text-transform:lowercase;
}
.topbar__right{ display:flex; align-items:center; gap:clamp(1rem,3vw,2.2rem); }

.lang{ display:flex; align-items:center; gap:.5em; font-family:var(--font-display); font-weight:500; font-size:.95rem; }
.lang__btn{ letter-spacing:.03em; opacity:.42; padding:.2em .1em; transition:opacity .15s; }
.lang__btn[aria-pressed="true"]{ opacity:1; text-decoration:underline; text-underline-offset:4px; text-decoration-color:var(--accent); text-decoration-thickness:2px; }
.lang__btn:hover{ opacity:1; }
.lang__sep{ opacity:.3; }

.menu-btn{ display:flex; align-items:center; gap:.6em; font-family:var(--font-display); font-weight:500; font-size:.95rem; letter-spacing:.04em; text-transform:uppercase; }
.menu-btn__lines{ display:inline-flex; flex-direction:column; gap:4px; width:24px; }
.menu-btn__lines i{ height:2px; background:var(--cream); transition:transform .3s var(--ease), opacity .2s; }
.menu-btn[aria-expanded="true"] .menu-btn__lines i:nth-child(1){ transform:translateY(6px) rotate(45deg); }
.menu-btn[aria-expanded="true"] .menu-btn__lines i:nth-child(2){ opacity:0; }
.menu-btn[aria-expanded="true"] .menu-btn__lines i:nth-child(3){ transform:translateY(-6px) rotate(-45deg); }

/* ---------- home grid ---------- */
.grid{
  height:calc(100vh - var(--bar-h));
  display:grid;
  grid-template-columns:repeat(3,1fr);
  grid-template-rows:repeat(2,1fr);
}
.tile{
  position:relative;
  display:flex; flex-direction:column; justify-content:space-between;
  padding:clamp(1rem,2vw,1.9rem);
  border-right:1px solid var(--line);
  border-bottom:1px solid var(--line);
  min-height:0; overflow:hidden;
}
.grid .tile:nth-child(3n){ border-right:0; }
.grid .tile:nth-child(n+4){ border-bottom:0; }

.tile--intro{ background:var(--c-intro); justify-content:flex-end; }
.tile--intro .tile__teaser{ white-space:pre-line; }   /* the &#10; after "Kulturwissenschaften" renders as a line break */
/* the intro title is long ("kulturwissenschaftlerin") — size it down so it still fits */
/* (intro title now uses the same size as every other tile title) */

.tile--link{ background:var(--tile-bg); color:var(--tile-fg); transition:filter .2s var(--ease); }
.tile--link:hover{ filter:brightness(1.04) saturate(1.05); }
.tile__no{ font-family:var(--font-mono); font-size:.85rem; letter-spacing:.1em; color:var(--no-color,var(--accent)); }
.tile__body{ display:flex; flex-direction:column; gap:.5rem; }
.tile__title{
  font-weight:600; text-transform:lowercase; letter-spacing:-.015em;
  line-height:.98; font-size:clamp(1.3rem, 2.55vw, 2.35rem);   /* one size for all tiles; sized to fit "kulturwissenschaftlerin" */
}
.tile__teaser{
  font-family:var(--font-mono); font-size:clamp(.72rem,1vw,.86rem); line-height:1.45;
  max-width:34ch; opacity:.92;
  /* reserve 2 lines + bottom-align so every tile's title lands on the same baseline,
     regardless of whether its teaser is 1 or 2 lines */
  min-height:2.9em; display:flex; align-items:flex-end;
}
.tile__arrow{
  position:absolute; right:clamp(1rem,2vw,1.9rem); bottom:clamp(1rem,2vw,1.9rem);
  font-size:1.7rem; line-height:1; opacity:0; transform:translateX(-6px); color:var(--no-color,var(--accent));
  transition:opacity .2s var(--ease), transform .25s var(--ease);
}
.tile--link:hover .tile__arrow,
.tile--link:focus-visible .tile__arrow{ opacity:1; transform:translateX(0); }
.tile--link:focus-visible{ outline:3px solid var(--cream); outline-offset:-3px; }

/* hover-reveal image (only on tiles that have a --tile-img) */
.tile__media{
  position:absolute; inset:0; z-index:0;
  /* --scrim-rgb: dark (0,0,0) for cream-text tiles, light (244,239,224) for ink-text tiles.
     --img-pos: focal point of the photo within the tile crop. */
  background:
    linear-gradient(to top, rgba(var(--scrim-rgb,0,0,0),.58), rgba(var(--scrim-rgb,0,0,0),.12) 52%, rgba(var(--scrim-rgb,0,0,0),.24)),
    var(--tile-img) var(--img-pos,center)/var(--img-size,cover) no-repeat;
  opacity:0; transition:opacity .3s var(--ease);
}
.tile--media .tile__no,
.tile--media .tile__body{ position:relative; z-index:1; }
.tile--media .tile__arrow{ z-index:1; }   /* keep it absolute, just lift above the image */
.tile--media .tile__no,
.tile--media .tile__title,
.tile--media .tile__teaser{ text-shadow:0 1px 10px rgba(var(--scrim-rgb,0,0,0),.4); }
.tile--media:hover .tile__media,
.tile--media:focus-visible .tile__media{ opacity:1; }

/* hover-reveal video (same idea, with a separate scrim over the <video>) */
.tile__video{
  position:absolute; inset:0; z-index:0; width:100%; height:100%;
  object-fit:cover; opacity:0; transition:opacity .3s var(--ease);
  pointer-events:none;   /* it's decorative — clicks go to the tile link */
}
/* hide the browser's native play-button / media-control overlay
   (the "blocked autoplay" button that appears while the clip is paused) */
.tile__video::-webkit-media-controls,
.tile__video::-webkit-media-controls-enclosure,
.tile__video::-webkit-media-controls-overlay-enclosure,
.tile__video::-webkit-media-controls-panel,
.tile__video::-webkit-media-controls-overlay-play-button,
.tile__video::-webkit-media-controls-start-playback-button{
  display:none !important;
  -webkit-appearance:none;
  appearance:none;
  opacity:0 !important;
}
.tile__scrim{
  position:absolute; inset:0; z-index:0;
  background:linear-gradient(to top, rgba(var(--scrim-rgb,0,0,0),.55), rgba(var(--scrim-rgb,0,0,0),.12) 50%, rgba(var(--scrim-rgb,0,0,0),.22));
  opacity:0; transition:opacity .3s var(--ease);
}
/* our own poster — painted above the <video>, so it also hides the browser's
   native play-button overlay until the clip is actually playing (then it fades) */
.tile__poster{
  position:absolute; inset:0; z-index:0; background:var(--img-pos,center)/cover no-repeat;
  opacity:0; transition:opacity .3s var(--ease);
}
.tile--video:hover .tile__video,
.tile--video:focus-visible .tile__video,
.tile--video:hover .tile__poster,
.tile--video:focus-visible .tile__poster,
.tile--video:hover .tile__scrim,
.tile--video:focus-visible .tile__scrim{ opacity:1; }
.tile--video.is-playing .tile__poster{ opacity:0; }

/* ---------- menu overlay ---------- */
.overlay{
  position:fixed; inset:0; z-index:40;
  background:var(--ink); color:var(--cream);
  display:flex; flex-direction:column; justify-content:center;
  padding:clamp(2rem,7vw,6rem);
  opacity:0; visibility:hidden; transition:opacity .3s var(--ease), visibility .3s;
}
.overlay.is-open{ opacity:1; visibility:visible; }
.overlay__list{ list-style:none; margin:0; padding:0; }
.overlay__list li + li{ margin-top:clamp(.1rem,.6vw,.4rem); }
.overlay__list a{
  display:flex; align-items:baseline; gap:1.2rem;
  font-weight:600; text-transform:lowercase; letter-spacing:-.02em;
  font-size:clamp(2rem,7vw,4.5rem); line-height:1.05;
  transition:color .15s var(--ease), padding-left .25s var(--ease);
}
.overlay__list a:hover{ color:var(--hl,var(--cream)); padding-left:.6rem; }
.overlay__no{ font-family:var(--font-mono); font-size:.9rem; opacity:.5; min-width:2.4ch; }
.overlay__foot{ margin-top:clamp(2rem,5vw,3.5rem); font-family:var(--font-mono); font-size:.9rem; opacity:.8;
  display:flex; flex-wrap:wrap; gap:.4rem 2rem; }
.overlay__foot a:hover{ text-decoration:underline; text-underline-offset:4px; }
.overlay__legal{ opacity:.7; }

/* ---------- custom cursor (deliberately minimal) ----------
   A small dot that becomes a subtle ring over pressable tiles.
   white + mix-blend keeps it legible on every tile colour. */
.cursor{
  position:fixed; top:0; left:0; z-index:90; pointer-events:none;
  width:9px; height:9px; margin:-4.5px 0 0 -4.5px; border-radius:50%;
  background:#fff; mix-blend-mode:difference; display:none;
  transition:width .16s var(--ease), height .16s var(--ease), margin .16s var(--ease);
}
.cursor__label{ display:none; }   /* simplified: no growing circle, no text */
body.has-cursor .cursor{ display:block; }
body.has-cursor.cursor-active .cursor{
  width:26px; height:26px; margin:-13px 0 0 -13px;
  background:transparent; box-shadow:inset 0 0 0 1.5px #fff;
}
body.has-cursor *{ cursor:none !important; }

/* ---------- responsive ---------- */
@media (max-width:860px){
  .grid{ height:auto; grid-template-columns:repeat(2,1fr); grid-template-rows:none; }
  .tile{ aspect-ratio:1/1; border-right:1px solid var(--line); border-bottom:1px solid var(--line); }
  .grid .tile:nth-child(3n){ border-right:1px solid var(--line); }
  .grid .tile:nth-child(2n){ border-right:0; }
  .grid .tile:nth-child(n+4){ border-bottom:1px solid var(--line); }
  body.has-cursor .cursor{ display:none; }
  body.has-cursor *{ cursor:auto !important; }
}
@media (max-width:520px){
  .grid{ grid-template-columns:1fr; }
  .tile{ aspect-ratio:4/3; border-right:0 !important; }
  .menu-btn__text{ display:none; }
}

/* ---------- section pages ---------- */
.sec{ padding-bottom:clamp(3rem,8vw,6rem); }
.sec__back{
  display:inline-block; margin:clamp(.8rem,2vw,1.4rem) var(--pad) 0;
  font-family:var(--font-mono); font-size:.82rem; letter-spacing:.05em;
}
.sec__back:hover{ text-decoration:underline; text-underline-offset:4px; }
.sec__hero{
  margin:clamp(.8rem,2vw,1.4rem) var(--pad) 0;
  background:var(--tile-bg); color:var(--tile-fg);
  border:1px solid var(--line);
  padding:clamp(1.6rem,5vw,3.4rem) clamp(1.4rem,4vw,3rem);
  min-height:38vh; display:flex; flex-direction:column; justify-content:flex-end; gap:.6rem;
}
.sec__no{ font-family:var(--font-mono); font-size:.9rem; letter-spacing:.1em; opacity:.95; color:var(--sec-accent,inherit); }
.sec__hero--bio .sec__no{ color:inherit; }
.sec__title{
  margin:0; font-weight:700; text-transform:lowercase; letter-spacing:-.02em;
  line-height:.92; font-size:clamp(2.4rem, 8vw, 6rem);
}
.sec__sub{ margin:0; font-family:var(--font-mono); font-size:clamp(.8rem,1.4vw,1rem); opacity:.92; max-width:48ch; }

.sec__content{ padding:0 var(--pad); }
.items__label{ font-family:var(--font-mono); font-size:.78rem; letter-spacing:.16em; text-transform:uppercase; opacity:.85;
  color:var(--sec-accent,var(--accent)); margin:clamp(1.8rem,4vw,2.8rem) 0 1rem; }

/* ---------- squares (the important items → detail sub-subpages) ---------- */
.squares{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:clamp(1.2rem,2.4vw,2rem); }
.sq{ display:flex; flex-direction:column; min-width:0; }
.sq__img{
  width:100%; aspect-ratio:1/1; object-fit:cover; display:block;
  border:1px solid var(--line); filter:saturate(.96);
  transition:filter .25s var(--ease), transform .25s var(--ease);
}
.sq__typo{
  width:100%; aspect-ratio:1/1; border:1px solid var(--sec-accent,var(--line));
  display:flex; align-items:flex-end; padding:1rem; color:var(--sec-accent,var(--accent));
  transition:background .25s var(--ease), color .25s var(--ease);
}
.sq__typotxt{ font-weight:600; font-size:1rem; line-height:1.2; letter-spacing:-.01em;
  display:-webkit-box; -webkit-line-clamp:6; -webkit-box-orient:vertical; overflow:hidden; }
.sq:hover .sq__img{ filter:saturate(1.1) brightness(1.05); }
.sq:hover .sq__typo{ background:var(--sec-accent,var(--accent)); color:var(--ink); }
/* book format — publication covers stay portrait and uncropped */
.squares--book .sq__img{
  aspect-ratio:3/4; object-fit:contain; background:#0D0C15;
  padding:clamp(.6rem,1.2vw,1rem); box-sizing:border-box;
}
.gal--book .gal__item{ aspect-ratio:3/4; background:#0D0C15; }
.gal--book .gal__img{ object-fit:contain; padding:.5rem; box-sizing:border-box; }

.sq__t{ margin:.7rem 0 .25rem; font-weight:600; font-size:.98rem; line-height:1.2; }
.sq:hover .sq__t{ color:var(--sec-accent,var(--accent)); }
.sq__m{ margin:0; font-family:var(--font-mono); font-size:.74rem; line-height:1.5; opacity:.68; }

/* ---------- split layout (photo block + chips at the same height) ---------- */
.sec__split{ display:grid; grid-template-columns:minmax(230px,390px) minmax(0,1fr);
  gap:0 clamp(1.6rem,4vw,3.5rem); align-items:start; }
.sec__split .squares{ grid-template-columns:1fr; }
@media (max-width:720px){ .sec__split{ grid-template-columns:1fr; } }

/* chips — compact side-by-side keywords instead of a stacked list */
.chips{ display:flex; flex-wrap:wrap; gap:.55rem; }
.chip{ border:1px solid var(--sec-accent,var(--line)); padding:.5em .85em;
  font-family:var(--font-mono); font-size:.78rem; line-height:1.4; }

/* ---------- collapsible long lists ---------- */
summary.items__label{ cursor:pointer; display:flex; align-items:baseline; gap:.7rem; list-style:none; }
summary.items__label::-webkit-details-marker{ display:none; }
summary.items__label:hover .fold__label{ text-decoration:underline; text-underline-offset:4px; }
.fold__count{ opacity:.55; letter-spacing:.05em; }
.fold__arrow{ display:inline-block; transition:transform .25s var(--ease); }
.fold[open] .fold__arrow{ transform:rotate(180deg); }

/* ---------- lists (the "Auflistung" rest) ---------- */
.list{ border-top:1px solid var(--line); max-width:78ch; }
.list__row{ display:flex; align-items:flex-start; gap:1rem; padding:.85rem 0; border-bottom:1px solid rgba(244,243,236,.14); }
.list__thumbs{ display:flex; gap:.5rem; flex:none; flex-wrap:wrap; max-width:180px; }
.list__thumb{ width:84px; height:84px; object-fit:cover; flex:none; border:1px solid var(--line); }
.list__col{ display:flex; flex-direction:column; gap:.25rem; min-width:0; }
.list__t{ font-weight:600; font-size:.95rem; line-height:1.3; }
.list__m{ font-family:var(--font-mono); font-size:.74rem; line-height:1.5; opacity:.65; }
.list__arrow{ margin-left:auto; flex:none; color:var(--sec-accent,var(--accent)); opacity:0; transform:translate(-4px,4px); transition:opacity .2s var(--ease), transform .2s var(--ease); }
a.list__row--link:hover .list__t{ color:var(--sec-accent,var(--accent)); }
a.list__row--link:hover .list__arrow{ opacity:1; transform:translate(0,0); }

/* ---------- detail sub-subpages ---------- */
.sec__hero--detail{ min-height:28vh; }
.sec__kicker{ margin:0; font-family:var(--font-mono); font-size:.8rem; letter-spacing:.12em; text-transform:uppercase; color:var(--sec-accent,var(--accent)); }
.sec__title--detail{ font-size:clamp(1.6rem,4.6vw,3.4rem); line-height:1.02; letter-spacing:-.01em; text-transform:none; }
.det__award{ font-family:var(--font-mono); font-size:.8rem; line-height:1.6; color:var(--sec-accent,var(--accent));
  border:1px solid var(--sec-accent,var(--line)); padding:.7em 1em; display:inline-block; margin:clamp(1.4rem,3vw,2rem) 0 0; }
.det__text{ max-width:64ch; font-size:clamp(1rem,1.5vw,1.18rem); line-height:1.6; margin:clamp(1.4rem,3vw,2rem) 0 0; white-space:pre-line; }

/* collapsible long text: first paragraph shows; the rest unfolds on hover/click */
.det__textwrap{ max-width:64ch; }
.det__textwrap .det__text{ margin-top:clamp(1.4rem,3vw,2rem); }
.det__more{ max-height:0; overflow:hidden; transition:max-height .6s var(--ease); }
.det__more.det__text{ margin-top:0; }
.is-collapsible:hover .det__more,
.is-collapsible.is-open .det__more,
.is-collapsible:focus-within .det__more{ max-height:400rem; }
.det__hint{
  margin:.4rem 0 0; font-family:var(--font-mono); font-size:.78rem;
  color:var(--sec-accent,var(--accent)); transition:opacity .25s var(--ease);
}
.is-collapsible:hover .det__hint,
.is-collapsible.is-open .det__hint{ opacity:0; }
.det__links{ display:flex; flex-wrap:wrap; gap:.7rem; margin:clamp(1.2rem,2.5vw,1.8rem) 0 0; }
.det__link{ border:1px solid var(--line); padding:.55em 1em; font-family:var(--font-mono); font-size:.78rem;
  transition:border-color .15s, color .15s; }
.det__link:hover{ border-color:var(--sec-accent,var(--accent)); color:var(--sec-accent,var(--accent)); }
/* detail gallery — small squares; the lightbox shows them big on click */
.gal{
  display:grid; grid-template-columns:repeat(auto-fill,minmax(150px,1fr));
  gap:clamp(.6rem,1.4vw,1rem); max-width:960px;
  margin:clamp(1.4rem,3vw,2.2rem) 0 0;
}
.gal__item{ padding:0; display:block; aspect-ratio:1/1; overflow:hidden; border:1px solid var(--line); }
.gal__img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform .25s var(--ease), filter .25s var(--ease);
}
.gal__item:hover .gal__img,
.gal__item:focus-visible .gal__img{ transform:scale(1.04); filter:brightness(1.06); }
.gal__item:focus-visible{ outline:2px solid var(--sec-accent,var(--accent)); outline-offset:2px; }

.lightbox{
  position:fixed; inset:0; z-index:80;
  background:rgba(12,11,18,.94);
  display:flex; align-items:center; justify-content:center;
  cursor:zoom-out;
}
.lightbox__img{ max-width:92vw; max-height:92vh; display:block; border:1px solid var(--line); }
.lightbox__close{
  position:absolute; top:.8rem; right:1.1rem;
  font-size:2.2rem; line-height:1; color:var(--cream); opacity:.85;
}
.lightbox__close:hover{ opacity:1; color:var(--sec-accent,var(--accent)); }

/* ---------- bio layout ---------- */
.bio{ display:grid; grid-template-columns:minmax(220px,380px) 1fr; gap:clamp(1.4rem,3.5vw,3rem); margin-top:clamp(1.8rem,4vw,2.8rem); }
.bio__fig{ margin:0; }
.bio__img{ width:100%; height:auto; display:block; border:1px solid var(--line); }
.bio__col{ min-width:0; }
.bio__col .sec__bio{ margin:0 0 1.1rem; }
@media (max-width:720px){ .bio{ grid-template-columns:1fr; } }

/* ---------- site footer (email as text + legal links) ---------- */
.sitefoot{
  margin:clamp(2.5rem,6vw,4rem) var(--pad) 0; padding-top:1.2rem;
  border-top:1px solid var(--line);
  display:flex; flex-wrap:wrap; gap:.5rem 2rem;
  font-family:var(--font-mono); font-size:.8rem; opacity:.75;
}
.sitefoot a:hover{ color:var(--sec-accent,var(--accent)); }
.email{ user-select:all; }

.sec__bio{ max-width:60ch; font-size:clamp(1rem,1.6vw,1.25rem); line-height:1.55; margin:clamp(1.8rem,4vw,2.8rem) 0 1.6rem; }
.sec__contact{ max-width:60ch; font-size:clamp(1rem,1.6vw,1.25rem); line-height:1.55; margin:1.6rem 0 clamp(2rem,4vw,3rem); }
.sec__contact .email{ color:var(--sec-accent,var(--accent)); white-space:nowrap; }
.sec__cta{ display:flex; flex-wrap:wrap; gap:.8rem; margin:1.4rem 0 clamp(2rem,4vw,3rem); }
.btn{ border:1px solid var(--line); padding:.7em 1.2em; font-family:var(--font-mono); font-size:.85rem; transition:background .15s, color .15s; }
a.btn:hover{ background:var(--cream); color:var(--bg); }
.btn--static{ border-color:var(--sec-accent,var(--line)); color:var(--sec-accent,var(--cream)); user-select:all; }
.btn--ghost{ opacity:.6; }
.sec__edu{ border-top:1px solid var(--line); max-width:70ch; }
.edu__row{ display:flex; flex-wrap:wrap; gap:.3rem 1.5rem; padding:1rem 0; border-bottom:1px solid rgba(244,239,224,.18); }
.edu__t{ font-weight:600; flex:1 1 16rem; }
.edu__m{ font-family:var(--font-mono); font-size:.8rem; opacity:.7; flex:1 1 16rem; }

@media (prefers-reduced-motion:reduce){
  *{ transition:none !important; }
}
