/* =========================================================
   Viktória Fröhlich — shared design system
   Two sides of the same coin: science (deep space) / art (fire)
   Edit colors here once; both pages follow.
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Newsreader:ital,opsz,wght@0,6..72,300..600;1,6..72,300..500&family=IBM+Plex+Mono:wght@400;500&display=swap');

/* ---------- TOKENS ---------- */
:root{
  /* shared neutrals (DARK default) */
  --bg:        #0a0a0f;
  --bg-soft:   #14141d;
  --surface:   #181826;
  --text:      #ece9f0;
  --text-dim:  #a09cb0;
  --hair:      rgba(236,233,240,.14);

  /* SCIENCE — deep space: indigo/violet base, rust accent */
  --sci-1:     #6f7dffff;   /* luminous indigo */
  --sci-2:     #b9a7ff;     /* soft violet */
  --sci-deep:  #0a0c1f;     /* space navy */
  --sci-glow:  rgba(111,125,255,.16);
  --sci-accent:#d9743f;     /* rust accent */

  /* ART — fire: rust/amber base, cool blue accent */
  --art-1:     #e07a45;     /* rust */
  --art-2:     #f0a24b;     /* amber */
  --art-deep:  #170c08;     /* charred brown-black */
  --art-glow:  rgba(224,122,69,.16);
  --art-accent:#7f8cff;     /* cool blue accent */

  /* type + rhythm */
  --serif: "Newsreader", Georgia, "Times New Roman", serif;
  --mono:  "IBM Plex Mono", ui-monospace, monospace;
  --maxw: 1180px;
  --gut: clamp(1.25rem, 4vw, 3.25rem);
  --r: 3px;
}

/* ---------- RESET ---------- */
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--serif);
  background:var(--bg);
  color:var(--text);
  line-height:1.6;
  font-size:clamp(1rem,.55rem + .7vw,1.12rem);
  -webkit-font-smoothing:antialiased;
  transition:background .5s ease,color .5s ease;
  overflow-x:hidden;
}
a{color:inherit}
img{display:block;max-width:100%}
.mono{font-family:var(--mono);font-feature-settings:"tnum"}

/* per-page accent wiring: pages set --c1/--c2/--deep/--glow/--accent */
.science{--c1:var(--sci-1);--c2:var(--sci-2);--deep:var(--sci-deep);--glow:var(--sci-glow);--accent:var(--sci-accent)}
.art{--c1:var(--art-1);--c2:var(--art-2);--deep:var(--art-deep);--glow:var(--art-glow);--accent:var(--art-accent)}

/* ---------- ATMOSPHERE (the quiet glow) ---------- */
.field{position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(60% 50% at var(--gx,30%) 0%, var(--glow), transparent 70%),
    linear-gradient(180deg, var(--deep), var(--bg) 55%);
  opacity:1;transition:background .5s ease}
.art .field{--gx:70%}
/* faint starfield / ember texture via tiny dots */
.grain{position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:.5;
  background-image:radial-gradient(circle at 50% 50%, var(--text-dim) .5px, transparent .6px);
  background-size:140px 140px;mix-blend-mode:overlay;opacity:.06}

/* ---------- NAV ---------- */
nav{position:sticky;top:0;z-index:40;display:flex;align-items:center;
  justify-content:space-between;gap:1rem;
  padding:1.1rem var(--gut);
  background:color-mix(in srgb, var(--bg) 78%, transparent);
  backdrop-filter:blur(10px);border-bottom:1px solid var(--hair)}
nav .brand{font-weight:500;font-size:1.05rem;letter-spacing:.01em;text-decoration:none}
nav .links{display:flex;align-items:center;gap:1.4rem}
nav .links a{font-family:var(--mono);font-size:.74rem;letter-spacing:.13em;
  text-transform:uppercase;text-decoration:none;color:var(--text-dim);
  padding:.2rem 0;border-bottom:1px solid transparent;transition:.25s}
nav .links a:hover{color:var(--text)}
nav .links a.active{color:var(--text);border-bottom-color:var(--c1,var(--sci-1))}


/* ---------- LAYOUT ---------- */
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gut)}
section{padding-block:clamp(3rem,7vw,6rem)}
.lead{max-width:60ch}

/* hero */
.hero{padding-top:clamp(3.5rem,9vw,7rem)}
.eyebrow{font-family:var(--mono);font-size:.76rem;letter-spacing:.22em;
  text-transform:uppercase;color:var(--c1,var(--sci-1));margin-bottom:1.4rem}
h1{font-weight:300;font-size:clamp(2.4rem,5.4vw,4.2rem);line-height:1.05;
  letter-spacing:-.018em}
h1 em{font-style:italic;font-weight:400}
.hero p{margin-top:1.6rem;color:var(--text-dim);font-size:1.15rem;max-width:58ch}

/* section headings */
.shead{display:flex;align-items:baseline;gap:1rem;margin-bottom:2rem;
  padding-bottom:.8rem;border-bottom:1px solid var(--hair)}
.shead .n{font-family:var(--mono);font-size:.8rem;color:var(--c1,var(--sci-1))}
.shead h2{font-weight:400;font-size:clamp(1.5rem,3vw,2.1rem);font-style:italic}

/* ---------- PUBLICATIONS ---------- */
.pub{display:grid;grid-template-columns:74px 1fr auto;gap:1.4rem;align-items:start;
  padding:1.4rem 0;border-bottom:1px solid var(--hair);transition:padding-left .25s}
.pub:hover{padding-left:.5rem}
.pub .yr{font-family:var(--mono);font-size:.85rem;color:var(--text-dim);padding-top:.25rem}
.pub h3{font-weight:500;font-size:1.18rem;line-height:1.35}
.pub .auth{margin-top:.35rem;font-style:italic;color:var(--text-dim);font-size:.98rem}
.pub .ven{margin-top:.25rem;font-family:var(--mono);font-size:.76rem;color:var(--c1,var(--sci-1))}
.pub .lk{display:flex;gap:.5rem;padding-top:.3rem;flex-wrap:wrap}
.pub .lk a{font-family:var(--mono);font-size:.68rem;letter-spacing:.07em;text-transform:uppercase;
  text-decoration:none;color:var(--text);border:1px solid var(--hair);
  padding:.32rem .6rem;border-radius:var(--r);white-space:nowrap;transition:.22s}
.pub .lk a:hover{border-color:var(--c1,var(--sci-1));color:var(--c1,var(--sci-1))}

/* ---------- CARDS (outreach / services) ---------- */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:1.2rem}
.card{border:1px solid var(--hair);border-radius:var(--r);padding:1.5rem;
  background:var(--surface);display:flex;flex-direction:column;min-height:190px;
  transition:transform .28s ease,border-color .28s ease}
.card:hover{transform:translateY(-4px);border-color:var(--c1,var(--sci-1))}
.card .tag{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--c1,var(--sci-1))}
.card h3{margin-top:.7rem;font-weight:500;font-size:1.22rem;line-height:1.3}
.card p{margin-top:.6rem;color:var(--text-dim);font-size:.96rem;flex:1}
.card .more{margin-top:1rem;font-family:var(--mono);font-size:.7rem;letter-spacing:.08em;
  text-transform:uppercase;text-decoration:none;color:var(--c1,var(--sci-1))}
.card .more:hover{text-decoration:underline}

/* ---------- GALLERY ---------- */
.subnav{display:flex;gap:.5rem;flex-wrap:wrap;margin-bottom:2rem}
.subnav button{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  background:none;border:1px solid var(--hair);color:var(--text-dim);
  padding:.5rem .9rem;border-radius:var(--r);cursor:pointer;transition:.22s}
.subnav button:hover{color:var(--text)}
.subnav button.on{background:var(--c1,var(--art-1));border-color:var(--c1,var(--art-1));
  color:#fff}

/* contextual note above the gallery (shown only for certain filters) */
.filter-note{display:none;margin:-.4rem 0 1.6rem;max-width:60ch;
  color:var(--text-dim);font-size:1.05rem;line-height:1.6}
.filter-note.show{display:block}
.filter-note a{color:var(--art-1);text-decoration:none;white-space:nowrap}
.filter-note a:hover{text-decoration:underline}

.gallery{columns:3;column-gap:1rem}
@media(max-width:900px){.gallery{columns:2}}
@media(max-width:560px){.gallery{columns:1}}
.shot{break-inside:avoid;margin-bottom:1rem;border:1px solid var(--hair);border-radius:var(--r);
  overflow:hidden;background:var(--surface);cursor:pointer;position:relative;
  content-visibility:auto;contain-intrinsic-size:auto 320px;
  transition:transform .28s ease,border-color .28s ease}
.shot:hover{transform:translateY(-4px);border-color:var(--c1,var(--art-1))}
.shot img{width:100%;height:auto;display:block}
.shot .ph{aspect-ratio:var(--ar,3/4);display:flex;align-items:center;justify-content:center;
  background:
    radial-gradient(120% 120% at 30% 20%, var(--glow), transparent 60%),
    var(--bg-soft)}
.shot .ph span{font-family:var(--mono);font-size:.68rem;letter-spacing:.08em;color:var(--text-dim);
  border:1px dashed var(--hair);padding:.4rem .7rem;border-radius:var(--r)}
.shot .meta{position:absolute;left:0;right:0;bottom:0;padding:.7rem .85rem;
  display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;
  background:linear-gradient(0deg, color-mix(in srgb,var(--bg) 92%,transparent), transparent);
  opacity:0;transition:opacity .25s}
.shot:hover .meta{opacity:1}
.shot .meta .t{font-style:italic;font-size:1rem}
.shot .meta .y{font-family:var(--mono);font-size:.7rem;color:var(--text-dim)}

/* ---------- LIGHTBOX ---------- */
.lb{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;
  padding:clamp(1rem,4vw,3rem);background:color-mix(in srgb,var(--bg) 92%,#000)}
.lb.open{display:flex}
.lb-inner{display:flex;gap:clamp(1.2rem,3vw,2.4rem);align-items:center;
  max-width:1100px;max-height:88vh}
.lb-media{flex:1 1 auto;display:flex;align-items:center;justify-content:center;min-width:0}
.lb img{max-width:100%;max-height:82vh;border:1px solid var(--hair);border-radius:var(--r);display:block}
.lb .lph{width:min(46vw,420px);aspect-ratio:3/4;border:1px solid var(--hair);border-radius:var(--r);
  background:radial-gradient(120% 120% at 30% 20%, var(--glow), transparent 60%),var(--bg-soft)}
.lb-text{flex:0 0 300px;max-width:300px;display:flex;flex-direction:column;gap:.6rem}
.lb-text .lb-title{font-weight:500;font-size:1.5rem;line-height:1.2;font-style:italic}
.lb-text .lb-year{font-size:.78rem;letter-spacing:.08em;color:var(--text-dim)}
.lb-text .lb-desc{color:var(--text-dim);font-size:1rem;line-height:1.6;margin-top:.3rem}
.lb-text .lb-buy{margin-top:1rem;align-self:flex-start;font-family:var(--mono);font-size:.74rem;
  letter-spacing:.1em;text-transform:uppercase;text-decoration:none;color:#fff;
  background:var(--art-1);border:1px solid var(--art-1);padding:.7rem 1.1rem;border-radius:var(--r);
  transition:.22s}
.lb-text .lb-buy:hover{filter:brightness(1.1)}
.lb .x{position:absolute;top:1.2rem;right:var(--gut);font-family:var(--mono);font-size:.8rem;
  letter-spacing:.1em;text-transform:uppercase;color:var(--text-dim);background:none;border:none;
  cursor:pointer;z-index:2}
.lb .x:hover{color:var(--text)}
@media(max-width:720px){
  .lb-inner{flex-direction:column;gap:1.2rem;max-height:none;overflow-y:auto}
  .lb img{max-height:50vh}
  .lb-text{flex:none;max-width:100%;width:100%}
}

/* ---------- HOME (the coin) ---------- */
.coin{min-height:calc(100vh - 64px);display:grid;grid-template-columns:1fr 1fr}
.coin .door{position:relative;display:flex;flex-direction:column;justify-content:center;
  align-items:center;text-align:center;
  padding:clamp(2rem,4vw,3.5rem);text-decoration:none;color:var(--text);overflow:hidden;
  border-right:1px solid var(--hair);transition:flex-grow .4s}
.coin .door:last-child{border-right:none}
.coin .door .atmo{position:absolute;inset:0;z-index:0;transition:opacity .5s}
.door.d-sci .atmo{background:
  radial-gradient(70% 60% at 30% 25%, var(--sci-glow), transparent 65%),
  linear-gradient(160deg,var(--sci-deep),var(--bg) 70%)}
.door.d-art .atmo{background:
  radial-gradient(70% 60% at 70% 25%, var(--art-glow), transparent 65%),
  linear-gradient(200deg,var(--art-deep),var(--bg) 70%)}
.coin .door .ix{position:absolute;top:clamp(2rem,4vw,3.5rem);font-family:var(--mono);
  font-size:.74rem;letter-spacing:.14em;z-index:2;color:var(--text-dim)}
.coin .door.d-sci .ix{left:clamp(2rem,4vw,3.5rem)}
.coin .door.d-art .ix{right:clamp(2rem,4vw,3.5rem)}
.coin .door .big{position:relative;z-index:2;font-weight:300;
  font-size:clamp(2rem,4.4vw,3.6rem);line-height:1.04;letter-spacing:-.015em}
.coin .door .big em{font-style:italic}
.coin .door.d-sci .big em{color:var(--sci-2)}
.coin .door.d-art .big em{color:var(--art-2)}
.coin .door .sub{position:relative;z-index:2;margin-top:.9rem;color:var(--text);
  white-space:nowrap;font-size:clamp(.62rem,1.35vw,1rem)}
.coin .door .go{position:relative;z-index:2;margin-top:1.6rem;font-family:var(--mono);
  font-size:.74rem;letter-spacing:.13em;text-transform:uppercase;display:inline-flex;gap:.5rem}
.coin .door .go .ar{transition:transform .3s}
.coin .door:hover .go .ar{transform:translateX(6px)}
@media(max-width:760px){
  .coin{grid-template-columns:1fr}
  .coin .door{border-right:none;border-bottom:1px solid var(--hair);min-height:52vh}
  .coin .door .sub{white-space:normal}
}

/* ---------- FOOTER ---------- */
footer{border-top:1px solid var(--hair);padding:2.4rem var(--gut);
  display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;
  font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--text-dim)}
footer a{color:inherit;text-decoration:none}
footer a:hover{color:var(--text)}

/* ---------- ABOUT (neutral seam where both sides meet) ---------- */
.about .field{background:
  radial-gradient(50% 40% at 28% 0%, var(--sci-glow), transparent 70%),
  radial-gradient(50% 40% at 72% 0%, var(--art-glow), transparent 70%),
  linear-gradient(180deg,#0c0c16,var(--bg) 55%)}
.about .eyebrow{color:var(--text-dim)}
.bio{display:grid;grid-template-columns:316px 1fr;gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
@media(max-width:760px){.bio{grid-template-columns:1fr}}
.portrait{border:1px solid var(--hair);border-radius:var(--r);overflow:hidden;
  background:var(--bg-soft);aspect-ratio:4/5;display:flex;align-items:center;justify-content:center}
.portrait span{font-family:var(--mono);font-size:.7rem;color:var(--text-dim);
  border:1px dashed var(--hair);padding:.5rem .8rem;border-radius:var(--r)}
.bio .body p{margin-bottom:1rem}
.bio .body p:last-child{margin-bottom:0}

/* paired vision statements — science / art, mirrored */
.visions{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:1.4rem 0}
@media(max-width:560px){.visions{grid-template-columns:1fr}}
.vision{border:1px solid var(--hair);border-radius:var(--r);padding:1.2rem 1.3rem;
  background:var(--surface);position:relative}
.vision .vlabel{font-family:var(--mono);font-size:.66rem;letter-spacing:.13em;
  text-transform:uppercase;margin-bottom:.5rem;display:block}
.vision.sci .vlabel{color:var(--sci-1)}
.vision.art .vlabel{color:var(--art-1)}
.vision p{font-size:.98rem;line-height:1.55;color:var(--text);margin:0}
.vision.sci{border-top:2px solid var(--sci-1)}
.vision.art{border-top:2px solid var(--art-1)}
.cv-row{display:grid;grid-template-columns:130px 1fr;gap:1.4rem;padding:1.1rem 0;
  border-bottom:1px solid var(--hair)}
.cv-row .when{font-family:var(--mono);font-size:.82rem;color:var(--text-dim)}
.cv-row .what h3{font-weight:500;font-size:1.12rem}
.cv-row .what p{color:var(--text-dim);font-size:.96rem;margin-top:.2rem}
@media(max-width:560px){.cv-row{grid-template-columns:1fr;gap:.3rem}}
.btn{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--mono);
  font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;
  color:var(--text);border:1px solid var(--hair);padding:.7rem 1.1rem;border-radius:var(--r);
  transition:.22s}
.btn:hover{border-color:var(--sci-1);color:var(--sci-1)}

/* paired highlight (Pro Scientia + Hettyei side by side) */
.honours{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin:.4rem 0 1.4rem}
@media(max-width:560px){.honours{grid-template-columns:1fr}}
.honour{border:1px solid var(--hair);border-radius:var(--r);padding:1.3rem;
  background:var(--surface);position:relative;overflow:hidden}
.honour::before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--sci-1)}
.honour.amateur::before{background:var(--sci-accent)}
.honour .yr{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;color:var(--text-dim)}
.honour h3{margin-top:.4rem;font-weight:500;font-size:1.12rem;line-height:1.25}
.honour p{margin-top:.4rem;color:var(--text-dim);font-size:.92rem;line-height:1.5}

/* topic summary line (papers on: …) */
/* stat-cards (about: publications / talks / art) */
.statcard{display:flex;align-items:stretch;gap:1.4rem;border:1px solid var(--hair);
  border-left:3px solid var(--sci-1);border-radius:var(--r);background:var(--surface);
  padding:1.4rem 1.6rem}
.statcard .staticon{display:flex;align-items:center;justify-content:center;
  padding-right:1.4rem;border-right:1px solid var(--hair);min-width:104px}
.statcard .staticon svg{width:64px;height:64px;display:block}
.statcard .statbody{display:flex;flex-direction:column;justify-content:center;gap:.9rem}
.statcard .statbody p{color:var(--text-dim);margin:0}
.statcard .statbody strong{color:var(--text);font-weight:500}
.statcard .statlink{align-self:flex-start;color:var(--sci-1);text-decoration:none;
  font-size:.76rem;letter-spacing:.08em;text-transform:uppercase}
.statcard .statlink:hover{text-decoration:underline}
/* art variant — rust accent */
.statcard.art-card{border-left-color:var(--art-1)}
.statcard.art-card .statlink{color:var(--art-1)}
.statcard .staticon svg{color:var(--text-dim)}
@media(max-width:560px){
  .statcard{flex-direction:column;gap:1rem}
  .statcard .staticon{padding-right:0;padding-bottom:1rem;border-right:none;
    border-bottom:1px solid var(--hair);min-width:0;justify-content:flex-start}
}

/* CV download sits in the "In brief" header */
.shead-cv{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}
.shead-cv h2{font-weight:400;font-size:clamp(1.5rem,3vw,2.1rem);font-style:italic}

/* breathing room before footer on the about page */
.about section:last-of-type{padding-bottom:clamp(3rem,7vw,5rem)}

/* ---------- TAB PANELS (science: research / outreach / talks) ---------- */
.tabpanel{display:none}
.tabpanel.on{display:block;animation:rise .6s cubic-bezier(.2,.7,.2,1)}
@media(prefers-reduced-motion:reduce){.tabpanel.on{animation:none}}

/* research sub-headings (Topics / Papers) */
.rsub{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--sci-1);font-weight:500;margin:0 0 1.3rem}
.rsub + .pub{border-top:1px solid var(--hair)}
.tabpanel .rsub:nth-of-type(2){margin-top:2.8rem}

/* research themes band */
.themes{display:grid;grid-template-columns:repeat(3,1fr);gap:1.2rem;margin-bottom:2.6rem}
@media(max-width:760px){.themes{grid-template-columns:1fr}}
.theme{border:1px solid var(--hair);border-radius:var(--r);background:var(--surface);
  overflow:hidden;display:flex;flex-direction:column;
  transition:transform .28s ease,border-color .28s ease}
.theme:hover{transform:translateY(-4px);border-color:var(--sci-1)}
.theme .tthumb{aspect-ratio:16/10;overflow:hidden;background:
  radial-gradient(120% 120% at 30% 20%, var(--sci-glow), transparent 60%),var(--bg-soft);
  display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--hair)}
.theme .tthumb img{width:100%;height:100%;object-fit:cover;display:block}
.theme .tthumb-svg{width:100%;height:100%;display:block;border:none}
.theme .tthumb span{font-family:var(--mono);font-size:.64rem;letter-spacing:.08em;color:var(--text-dim);
  border:1px dashed var(--hair);padding:.4rem .6rem;border-radius:var(--r)}
.theme .tbody{padding:1.2rem;flex:1}
.theme .tname{display:block;font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--sci-1);margin-bottom:.5rem}
.theme p{font-size:.92rem;line-height:1.5;color:var(--text);margin:0}

/* language pill (text only) */
.lang-tag{display:inline-flex;align-items:center;font-family:var(--mono);
  font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-dim);
  border:1px solid var(--hair);border-radius:99px;padding:.24rem .6rem}
.card .lang{margin-top:.9rem}
/* tag + flag share the top row */
.card .toprow{display:flex;align-items:center;justify-content:space-between;gap:.6rem}

/* speaking note (pricing / availability) */
.note-soft{border:1px solid var(--hair);border-left:3px solid var(--sci-1);border-radius:var(--r);
  padding:1.1rem 1.3rem;background:var(--surface);margin-top:1.8rem;
  font-size:.95rem;color:var(--text-dim);line-height:1.55}
.note-soft strong{color:var(--text);font-weight:500}

/* prints & pricing block (art page) */
.prints{border:1px solid var(--hair);border-left:3px solid var(--art-1);border-radius:var(--r);
  background:var(--surface);padding:1.5rem 1.7rem;margin-top:2.4rem}
.prints h3{font-weight:500;font-size:1.2rem;margin-bottom:.3rem}
.prints .intro{color:var(--text-dim);font-size:.96rem;margin-bottom:1.2rem;max-width:60ch}
.prints .rows{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.9rem;
  margin-bottom:1.1rem}
.prints .row{border:1px solid var(--hair);border-radius:var(--r);padding:.9rem 1rem}
.prints .row .size{font-family:var(--mono);font-size:.72rem;letter-spacing:.08em;
  text-transform:uppercase;color:var(--art-1);display:block;margin-bottom:.3rem}
.prints .row .price{font-size:1.15rem;font-weight:500}
.prints .row .dim{font-family:var(--mono);font-size:.68rem;color:var(--text-dim);display:block;margin-top:.15rem}
.prints .foot{color:var(--text-dim);font-size:.9rem;line-height:1.55}
.prints .foot a{color:var(--art-1);text-decoration:none}
.prints .foot a:hover{text-decoration:underline}

/* talk topics — preview cards */
.topics{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:1.2rem}
.topic{border:1px solid var(--hair);border-radius:var(--r);
  background:var(--surface);position:relative;overflow:hidden;
  display:flex;flex-direction:column;
  transition:transform .28s ease,border-color .28s ease}
.topic:hover{transform:translateY(-4px);border-color:var(--sci-1)}
.topic .thumb{aspect-ratio:16/9;overflow:hidden;background:
  radial-gradient(120% 120% at 30% 20%, var(--sci-glow), transparent 60%),var(--bg-soft);
  display:flex;align-items:center;justify-content:center;border-bottom:1px solid var(--hair)}
.topic .thumb img{width:100%;height:100%;object-fit:cover;display:block}
.topic .thumb span{font-family:var(--mono);font-size:.66rem;letter-spacing:.08em;color:var(--text-dim);
  border:1px dashed var(--hair);padding:.4rem .7rem;border-radius:var(--r)}
.topic .body{padding:1.5rem;display:flex;flex-direction:column;flex:1}
.topic .lvl{font-family:var(--mono);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--sci-1)}
.topic h3{margin-top:.7rem;font-weight:500;font-size:1.28rem;line-height:1.25}
.topic .teaser{margin-top:.7rem;color:var(--text-dim);font-size:.98rem;line-height:1.55;flex:1}
.topic .tags{margin-top:1.1rem;display:flex;flex-wrap:wrap;gap:.4rem}
.topic .tags span{font-family:var(--mono);font-size:.66rem;letter-spacing:.06em;
  color:var(--text-dim);border:1px solid var(--hair);padding:.3rem .55rem;border-radius:99px}
.topic .ask{margin-top:1.2rem;display:inline-block;font-family:var(--mono);font-size:.7rem;
  letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--sci-1)}
.topic .ask:hover{text-decoration:underline}

/* ---------- CONTACT ---------- */
.contact .field{background:
  radial-gradient(50% 40% at 28% 0%, var(--sci-glow), transparent 70%),
  radial-gradient(50% 40% at 72% 0%, var(--art-glow), transparent 70%),
  linear-gradient(180deg,#0c0c16,var(--bg) 55%)}
.contact .eyebrow{color:var(--text-dim)}
.cgrid{display:grid;grid-template-columns:1fr 320px;gap:clamp(1.5rem,4vw,3.5rem);align-items:start}
@media(max-width:820px){.cgrid{grid-template-columns:1fr}}

form.inq{display:flex;flex-direction:column;gap:1.1rem}
.inq label{display:flex;flex-direction:column;gap:.4rem;font-size:.95rem}
.inq label .lab{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--text-dim)}
.inq input,.inq select,.inq textarea{
  font-family:var(--serif);font-size:1rem;color:var(--text);
  background:var(--surface);border:1px solid var(--hair);border-radius:var(--r);
  padding:.7rem .8rem;width:100%;transition:border-color .2s}
.inq textarea{min-height:130px;resize:vertical;line-height:1.55}
.inq input:focus,.inq select:focus,.inq textarea:focus{
  outline:none;border-color:var(--sci-1)}
.inq select{appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,var(--text-dim) 50%),
                   linear-gradient(135deg,var(--text-dim) 50%,transparent 50%);
  background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat}
.inq .send{align-self:flex-start;font-family:var(--mono);font-size:.76rem;letter-spacing:.1em;
  text-transform:uppercase;color:#fff;background:var(--sci-1);border:1px solid var(--sci-1);
  padding:.8rem 1.4rem;border-radius:var(--r);cursor:pointer;transition:.22s}
.inq .send:hover{filter:brightness(1.1)}
.form-note{font-family:var(--mono);font-size:.74rem;color:var(--text-dim);margin-top:.4rem}
.form-msg{font-family:var(--mono);font-size:.85rem;padding:.8rem;border-radius:var(--r);
  border:1px solid var(--hair);display:none}
.form-msg.show{display:block}

.clinks{display:flex;flex-direction:column;gap:.2rem}
.clink{display:flex;align-items:baseline;gap:.8rem;padding:1rem 0;
  border-bottom:1px solid var(--hair);text-decoration:none;color:var(--text);transition:padding-left .22s}
.clink:hover{padding-left:.4rem}
.clink .k{font-family:var(--mono);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--sci-1);min-width:84px}
.clink .v{color:var(--text-dim)}
.clink:hover .v{color:var(--text)}

/* ---------- LOAD FADE (gentle, no scroll effects) ---------- */
.fade{opacity:0;transform:translateY(14px);animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
.fade.d1{animation-delay:.08s}.fade.d2{animation-delay:.16s}.fade.d3{animation-delay:.24s}
@keyframes rise{to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){.fade{animation:none;opacity:1;transform:none}}
