/* ------------------------------------------------------------------
   szymekdr — Swiss / Bauhaus system
   Palette taken from the previous site (black on white, #4400FF blue),
   Bauhaus primaries reserved for the kinetic composition.
------------------------------------------------------------------ */
:root{
  --paper:#ffffff;
  --ink:#000000;
  --blue:#4400ff;
  --red:#e30613;
  --yellow:#ffd100;
  --grey:#6b6b6b;
  --rule:#d9d9d9;
  --rule-soft:#ececec;

  --font:"Archivo","Helvetica Neue",Helvetica,Arial,sans-serif;
  --gutter:clamp(16px,2.2vw,32px);
  --col:12;
  --max:1680px;

  --t-xs:0.8125rem;   /* 13 */
  --t-s:0.9375rem;    /* 15 */
  --t-m:1.0625rem;    /* 17 */
  --t-l:1.375rem;     /* 22 */
  --t-xl:clamp(1.75rem,3.2vw,2.75rem);
  --t-display:clamp(3rem,9.5vw,10.5rem);
  --ease:cubic-bezier(.2,.7,.2,1);
}
/* dark pages (portfolio) — same system, inverted */
html[data-theme="dark"]{
  --paper:#000000;--ink:#ffffff;--grey:#9a9a9a;--rule:#2e2e2e;--rule-soft:#1c1c1c;--blue:#7b5cff;
}
html[data-theme="dark"] .news-item .excerpt{color:#d8d8d8}
html[data-theme="dark"] .lb{background:rgba(0,0,0,.94)}
html[data-theme="dark"] .lb .lb-close{background:var(--paper)}
html[data-theme="dark"] .brand .mark{background:#4400ff}
html[data-theme="dark"] .nav a[aria-current="page"]::after,html[data-theme="dark"] .more,html[data-theme="dark"] .filters button[aria-pressed="true"]::after{background-color:var(--blue)}
html[data-theme="dark"] .more{border-color:var(--blue)}
/* home: selected-work band */
.band-dark{background:#000;color:#fff;--paper:#000;--ink:#fff;--grey:#9a9a9a;--rule:#2e2e2e;--rule-soft:#1c1c1c;--blue:#7b5cff;border-bottom:0}
.band-dark .more{border-color:var(--blue)}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--font);font-size:var(--t-m);line-height:1.5;
  font-feature-settings:"ss01","cv05";
  -webkit-font-smoothing:antialiased;
}
img{max-width:100%;height:auto;display:block}
a{color:inherit;text-decoration:none}
p a,li a,.prose a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.16em;transition:color .15s}
p a:hover,li a:hover,.prose a:hover{color:var(--blue)}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px}
h1,h2,h3,h4{font-weight:600;letter-spacing:-.02em;line-height:1.08;margin:0}
h2{font-size:var(--t-xl)}
h3{font-size:var(--t-l);letter-spacing:-.01em}
p{margin:0 0 1em}
strong{font-weight:600}
hr{border:0;border-top:1px solid var(--rule);margin:0}
::selection{background:var(--blue);color:#fff}

/* language toggling: <html data-lang="en|pl">, blocks carry lang="pl" / lang="en" */
html[data-lang="en"] body [lang="pl"]{display:none !important}
html[data-lang="pl"] body [lang="en"]{display:none !important}

/* ---------- grid ---------- */
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}
.grid{display:grid;grid-template-columns:repeat(var(--col),1fr);column-gap:var(--gutter)}
.c1{grid-column:span 1}.c2{grid-column:span 2}.c3{grid-column:span 3}.c4{grid-column:span 4}
.c5{grid-column:span 5}.c6{grid-column:span 6}.c7{grid-column:span 7}.c8{grid-column:span 8}
.c9{grid-column:span 9}.c10{grid-column:span 10}.c12{grid-column:span 12}
.s2{grid-column-start:2}.s3{grid-column-start:3}.s4{grid-column-start:4}.s5{grid-column-start:5}.s7{grid-column-start:7}.s8{grid-column-start:8}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:50;background:var(--paper);
  border-bottom:1px solid var(--ink);
}
.site-header .bar{display:flex;align-items:stretch;justify-content:space-between;height:38px}
.brand{display:flex;align-items:center;gap:9px;font-weight:600;letter-spacing:-.01em;font-size:0.8125rem}
.brand .mark{width:10px;height:10px;background:var(--blue);display:inline-block;transition:transform .5s var(--ease)}
.brand:hover .mark{transform:rotate(90deg)}
.nav{display:flex;align-items:stretch}
.nav a{display:flex;align-items:center;padding:0 10px;font-size:0.75rem;border-left:1px solid var(--rule-soft);position:relative}
.nav a:hover{color:var(--blue)}
.nav a[aria-current="page"]{color:var(--blue)}
.nav a[aria-current="page"]::after{content:"";position:absolute;left:11px;right:11px;bottom:0;height:2px;background:var(--blue)}
.lang{display:flex;align-items:center;border-left:1px solid var(--ink);padding-left:10px;font-size:0.75rem;gap:4px}
.lang button{all:unset;cursor:pointer;padding:4px 2px}
.lang button[aria-pressed="true"]{font-weight:600;text-decoration:underline;text-decoration-color:var(--blue);text-decoration-thickness:2px;text-underline-offset:.2em}
.lang button:hover{color:var(--blue)}
.menu-btn{display:none}

@media (max-width:900px){
  .nav{position:fixed;inset:38px 0 0 0;background:var(--paper);flex-direction:column;padding:8px var(--gutter);transform:translateY(-8px);opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
  .nav.open{opacity:1;transform:none;pointer-events:auto}
  .nav a{border-left:0;border-bottom:1px solid var(--rule);padding:16px 0;font-size:var(--t-l)}
  .nav a[aria-current="page"]::after{left:0;right:auto;width:28px;top:0;bottom:auto;height:3px}
  .menu-btn{display:flex;align-items:center;all:unset;cursor:pointer;padding:0 14px;border-left:1px solid var(--rule-soft);font-size:var(--t-s);display:flex}
  .site-header .right{display:flex;align-items:stretch}
}
@media (min-width:901px){.site-header .right{display:flex;align-items:stretch}}

/* ---------- hero ---------- */
.hero{position:relative;overflow:hidden;border-bottom:1px solid var(--ink)}
.hero .grid{min-height:min(70vh,760px);align-content:end;padding:40px 0 24px;position:relative}
.display{font-size:var(--t-display);font-weight:600;letter-spacing:-.045em;line-height:.9;margin:0}
.display .line{display:block}
.hero-sub{font-size:var(--t-l);max-width:30ch;margin:20px 0 0;line-height:1.3;letter-spacing:-.005em}
.hero-meta{display:flex;flex-wrap:wrap;gap:4px 24px;font-size:var(--t-s);color:var(--grey);margin-top:22px}
.hero-meta a:hover{color:var(--blue)}

/* video hero */
.hero-video{position:relative;isolation:isolate;background:#e9e4ff;overflow:hidden}
.hero-video .hero-bg{position:absolute;top:0;left:0;width:100%;height:100%;object-fit:cover;z-index:0;display:block;max-width:none}
.hero-video .hero-veil{position:absolute;top:0;left:0;width:100%;height:100%;z-index:1;
  background:linear-gradient(180deg,rgba(255,255,255,.06) 0%,rgba(255,255,255,.14) 50%,rgba(255,255,255,.55) 100%)}
.hero-video .wrap{position:relative;z-index:2}
.hero-video .grid{min-height:min(82vh,900px)}
.hero-video .hero-meta{color:#222}
@media (prefers-reduced-motion:reduce){.hero-video .hero-bg{display:none}.hero-video{background:#e9e4ff url(../video/hero-poster.jpg) center/cover}}

/* social icons in the hero (icon shapes loaded from simpleicons.org, recoloured with CSS mask) */
.social{list-style:none;margin:0;padding:0;display:flex;gap:12px;grid-column:9 / span 4;justify-self:end;align-self:end;position:relative;z-index:2}
.social a{display:block;color:var(--ink);padding:4px}
.social a:hover{color:var(--blue)}
.ico{display:block;width:16px;height:16px;background:currentColor;-webkit-mask-size:contain;mask-size:contain;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:center;mask-position:center}
.ico-bluesky{-webkit-mask-image:url(../icons/bluesky.svg);mask-image:url(../icons/bluesky.svg)}
.ico-behance{-webkit-mask-image:url(../icons/behance.svg);mask-image:url(../icons/behance.svg)}
.ico-github{-webkit-mask-image:url(../icons/github.svg);mask-image:url(../icons/github.svg)}
.ico-instagram{-webkit-mask-image:url(../icons/instagram.svg);mask-image:url(../icons/instagram.svg)}
.ico-googlescholar{-webkit-mask-image:url(../icons/googlescholar.svg);mask-image:url(../icons/googlescholar.svg)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
@media (max-width:900px){.social{grid-column:1 / -1;justify-self:start;margin-top:18px}}

/* kinetic bauhaus composition */
.komp{grid-column:8 / span 5;align-self:stretch;position:relative;min-height:320px}
.komp svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}
.komp .shape{transition:transform .9s var(--ease);transform-origin:center}
@media (max-width:900px){
  .hero .grid{min-height:0;padding:40px 0 28px}
  .komp{grid-column:1 / -1;order:-1;min-height:220px;height:38vh}
  .hero .intro{grid-column:1 / -1}
}
@media (prefers-reduced-motion:reduce){.komp .shape{transition:none}}

/* ---------- sections ---------- */
.section{padding:clamp(32px,4.5vw,64px) 0;border-bottom:1px solid var(--rule)}
.section:last-of-type{border-bottom:0}
.section-head{display:grid;grid-template-columns:repeat(var(--col),1fr);column-gap:var(--gutter);align-items:baseline;margin-bottom:clamp(16px,2vw,28px)}
.section-head h2{grid-column:1 / span 7}
.section-head .more{grid-column:10 / span 3;justify-self:end;font-size:var(--t-s)}
.more{border-bottom:2px solid var(--blue);padding-bottom:2px;white-space:nowrap}
.more:hover{color:var(--blue)}
@media (max-width:900px){.section-head h2{grid-column:1 / -1}.section-head .more{grid-column:1 / -1;justify-self:start;margin-top:8px}}

.lede{font-size:var(--t-l);line-height:1.35;letter-spacing:-.005em;max-width:38ch}
.prose{max-width:66ch}
.prose h3{margin:1.6em 0 .5em}
.prose h3:first-child{margin-top:0}
.prose ul{padding-left:1.2em}
.prose li{margin:.25em 0}
.prose img{margin:1.4em 0;border:1px solid var(--rule)}
.prose blockquote{margin:1.5em 0;padding-left:1em;border-left:3px solid var(--blue)}
.muted{color:var(--grey)}
.small{font-size:var(--t-s)}

/* two column text with hairline */
.cols{display:grid;grid-template-columns:repeat(var(--col),1fr);column-gap:var(--gutter);row-gap:28px}
.cols > *{grid-column:span 6}
.cols .lead{grid-column:span 5}
.cols .body{grid-column:7 / span 6}
@media (max-width:900px){.cols > *,.cols .lead,.cols .body{grid-column:1 / -1}}

/* definition rows (projects meta, team) */
.rows{border-top:1px solid var(--ink)}
.row{display:grid;grid-template-columns:repeat(var(--col),1fr);column-gap:var(--gutter);padding:6px 0;border-bottom:1px solid var(--rule)}
.row .k{grid-column:span 3;color:var(--grey);font-size:var(--t-xs);line-height:1.4}
.row .v{grid-column:span 9;font-size:var(--t-s);line-height:1.4}
@media (max-width:700px){.row .k,.row .v{grid-column:1 / -1}.row .k{margin-bottom:4px}}

.project-block + .project-block,.team-section + .team-section{margin-top:48px}
.project-block .rows{margin-top:20px}

/* ---------- news ---------- */
.news-list{border-top:1px solid var(--ink)}
.news-item{display:grid;grid-template-columns:repeat(var(--col),1fr);column-gap:var(--gutter);padding:20px 0;border-bottom:1px solid var(--rule)}
.news-item .when{grid-column:span 2;font-size:var(--t-s);color:var(--grey)}
.news-item .what{grid-column:span 7}
.news-item .pic{grid-column:10 / span 3}
.news-item h3{margin:0 0 .4em}
.news-item .tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}
.news-item .tags button{all:unset;cursor:pointer;font-size:0.6875rem;line-height:1.2;border:1px solid var(--blue);padding:1px 5px;color:var(--blue)}
.news-item .tags button:hover{background:var(--blue);color:#fff}
.news-item .excerpt{color:#222}
.news-item .excerpt p:last-child{margin-bottom:0}
.news-item details summary{cursor:pointer;list-style:none;display:inline-block;margin-top:10px;font-size:var(--t-s);border-bottom:2px solid var(--blue)}
.news-item details summary::-webkit-details-marker{display:none}
.news-item details[open] summary{color:var(--blue)}
.news-item .full{margin-top:14px}
.news-item .full img{margin:1em 0}
.news-item .readlink{display:inline-block;margin-top:10px;font-size:var(--t-s);color:var(--blue)}
@media (max-width:900px){
  .news-item .when{grid-column:1 / -1;display:flex;align-items:center;gap:14px}
  .news-item .thumb{margin-top:0;width:56px}
  .news-item .what{grid-column:1 / -1}
  .news-item .pic{grid-column:1 / -1;order:-1;margin-bottom:12px}
}
.news-compact .news-item .pic{display:none}
.news-compact .news-item .what{grid-column:span 10}
/* home list: square duotone thumbnail under the date (grey image blended onto the site blue) */
.news-item .thumb{display:block;margin-top:10px;aspect-ratio:1;background:var(--blue);overflow:hidden;max-width:120px}
.news-item .thumb img{width:100%;height:100%;object-fit:cover;display:block;filter:grayscale(1) contrast(1.05) brightness(1.05);mix-blend-mode:luminosity}
.news-item:hover .thumb img{filter:grayscale(0);mix-blend-mode:normal;transition:filter .4s}
.news-item .pic img{aspect-ratio:4/3;object-fit:cover;width:100%}

/* news page: year groups */
.news-year{display:grid;grid-template-columns:repeat(var(--col),1fr);column-gap:var(--gutter);padding-top:24px}
.news-year h2{grid-column:span 2;font-size:var(--t-xl);letter-spacing:-.03em;line-height:1;position:sticky;top:54px;align-self:start;color:var(--blue)}
.news-year .news-list{grid-column:3 / span 10;border-top:0;--col:10}
.news-year .news-item .when{grid-column:span 2}
.news-year .news-item .what{grid-column:span 7}
.news-year .news-item .pic{grid-column:10 / span 3}
.news-year .news-item:last-child{border-bottom:0}
.news-year + .news-year{margin-top:12px;border-top:1px solid var(--ink)}
.news-wrap > .filters{margin-bottom:8px}
@media (max-width:900px){.news-year h2{grid-column:1 / -1;position:static;margin-bottom:8px}.news-year .news-list{grid-column:1 / -1}.news-year .news-item .when,.news-year .news-item .what,.news-year .news-item .pic{grid-column:1 / -1}.news-year .news-item .pic{order:-1;margin-bottom:12px;max-width:50%}}

/* ---------- work grid ---------- */
.works{position:relative;--inset:12px;padding:20px 0 24px}
.wk-lines{position:absolute;inset:0;pointer-events:none}
.wk-lines i{position:absolute;top:0;bottom:0;width:1px;background:var(--rule)}
.wk{position:absolute;top:0;left:0;margin:0;will-change:transform;
  opacity:0;scale:.965;transition:opacity .7s var(--ease),scale .9s var(--ease),transform .6s var(--ease)}
.wk.in{opacity:1;scale:1}
.wk[hidden]{display:none}
.wk a{display:block}
.wk .ph{display:block;overflow:hidden;background:var(--rule-soft)}
.wk img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .7s var(--ease)}
.wk:hover img,.wk:focus-within img{transform:scale(1.025)}
.wk figcaption{font-size:var(--t-xs);line-height:1.35;padding:7px 0 0;display:flex;flex-direction:column;gap:1px;min-height:40px}
.wk figcaption .t{color:var(--ink);font-weight:600}
.wk figcaption .m{color:var(--grey);font-weight:600}
.wk.wide figcaption{position:absolute;top:0;left:0;padding:10px 12px;max-width:70%;min-height:0;pointer-events:none;mix-blend-mode:difference}
.wk.wide figcaption .t,.wk.wide figcaption .m{color:#fff}
@media (max-width:759px){.wk.wide figcaption{position:static;padding:7px 0 0;max-width:none;min-height:40px;mix-blend-mode:normal}.wk.wide figcaption .t{color:var(--ink)}.wk.wide figcaption .m{color:var(--grey)}}
@media (prefers-reduced-motion:reduce){.wk{transition:none;opacity:1;scale:1}}

.filters[hidden]{display:none}
.filters{display:flex;flex-wrap:wrap;border-top:1px solid var(--ink);border-bottom:1px solid var(--rule);padding-left:12px}
.filters button{all:unset;cursor:pointer;padding:9px 14px 9px 0;margin-right:12px;font-size:var(--t-xs);position:relative}
.filters button:hover{color:var(--blue)}
.filters button[aria-pressed="true"]{color:var(--blue)}
.filters button[aria-pressed="true"]::after{content:"";position:absolute;left:0;right:14px;bottom:-1px;height:2px;background:var(--blue)}

/* lightbox */
.lb{position:fixed;inset:0;z-index:100;background:rgba(255,255,255,.96);display:none;align-items:center;justify-content:center;padding:var(--gutter)}
.lb.open{display:flex}
.lb figure{margin:0;max-width:min(1400px,100%);width:100%;display:grid;grid-template-columns:1fr;gap:16px;align-items:start}
.lb img{max-height:78vh;width:auto;max-width:100%;margin:0 auto;border:1px solid var(--rule)}
.lb figcaption{display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap;font-size:var(--t-s);border-top:1px solid var(--ink);padding-top:10px}
.lb .lb-close{position:fixed;top:12px;right:var(--gutter);all:unset;cursor:pointer;font-size:var(--t-s);padding:8px 12px;border:1px solid var(--ink);background:var(--paper)}
.lb .lb-close:hover{background:var(--ink);color:#fff}
.lb .lb-nav{position:fixed;top:50%;transform:translateY(-50%);all:unset;cursor:pointer;position:fixed;font-size:28px;padding:12px 16px;color:var(--ink)}
.lb .lb-nav:hover{color:var(--blue)}
.lb .prev{left:4px}.lb .next{right:4px}


/* ---------- CV ---------- */
.cv-layout{display:grid;grid-template-columns:repeat(var(--col),1fr);column-gap:var(--gutter);row-gap:40px}
.cv-side{grid-column:span 4;align-self:start;position:sticky;top:56px}
.cv-side img{width:100%;height:auto;display:block}
.cv-side .who{margin-top:16px}
.cv-side .who b{display:block;font-size:var(--t-l);letter-spacing:-.01em;line-height:1.15}
.cv-side .who span{display:block;color:var(--grey);font-size:var(--t-s);margin-top:4px}
.cv-side ul{list-style:none;padding:0;margin:14px 0 0;font-size:var(--t-xs);line-height:1.5}
.cv-side li a:hover{color:var(--blue)}
.cv-main{grid-column:6 / span 7}
.cv-section{display:grid;grid-template-columns:repeat(7,1fr);column-gap:var(--gutter);padding:20px 0 28px;border-top:1px solid var(--ink)}
.cv-section:first-child{border-top:0;padding-top:0}
.cv-head{grid-column:span 2}
.cv-head h2{font-size:var(--t-m);font-weight:600;letter-spacing:-.01em;line-height:1.3}
.cv-num{display:block;font-size:var(--t-xs);color:var(--blue);margin-bottom:4px;font-variant-numeric:tabular-nums}
.cv-body{grid-column:span 5;max-width:none;font-size:var(--t-s)}
.cv-body p{margin:0 0 .8em}
.cv-body ul{padding-left:1.1em;margin:0}
.cv-body li{margin:.3em 0}
.cv-rows{border-top:0}
.cv-rows .row:last-child{border-bottom:0}
.rows .row:last-child{border-bottom:0}
.people li:last-child{border-bottom:0}
.metric span{white-space:normal}
.cv-rows .row{grid-template-columns:repeat(5,1fr);padding:5px 0}
.cv-rows .k{grid-column:span 1;white-space:nowrap}
.cv-rows .v{grid-column:span 4}
.metrics{display:grid;grid-template-columns:repeat(3,1fr);gap:16px var(--gutter);margin-bottom:12px}
.metric b{display:block;font-size:var(--t-xl);font-weight:600;letter-spacing:-.03em;line-height:1;color:var(--blue)}
.metric span{display:block;font-size:var(--t-xs);color:var(--grey);margin-top:6px;line-height:1.3}
.cv-metrics .cv-body > p{font-size:var(--t-xs);color:var(--grey)}
@media (max-width:900px){.cv-side{grid-column:1 / -1;position:static;display:grid;grid-template-columns:1fr 1fr;gap:var(--gutter);align-items:end}.cv-main{grid-column:1 / -1}.cv-section{grid-template-columns:1fr}.cv-head,.cv-body{grid-column:1 / -1}.cv-head{margin-bottom:10px}.cv-rows .row{grid-template-columns:1fr}.cv-rows .k{margin-bottom:2px}.metrics{grid-template-columns:repeat(2,1fr)}}

/* ---------- project page ---------- */
.crumb{font-size:var(--t-s);margin:0 0 18px;color:var(--grey)}
.crumb a:hover{color:var(--blue)}
.pj-images .wrap{display:grid;grid-template-columns:repeat(var(--col),1fr);column-gap:var(--gutter);row-gap:var(--gutter)}
.pj-images img{grid-column:3 / span 8;border:1px solid var(--rule-soft)}
@media (max-width:900px){.pj-images img{grid-column:1 / -1}}
.pj-nav .wrap{display:flex;justify-content:space-between;gap:24px;font-size:var(--t-s)}
.pj-nav a:hover{color:var(--blue)}

/* ---------- publications: list + figure column ---------- */
.pub-layout{display:grid;grid-template-columns:repeat(var(--col),1fr);column-gap:var(--gutter)}
.pub-layout .pubs{grid-column:span 8}
.pub-layout .pub-figs{grid-column:10 / span 3;position:relative}
.pubfig{position:absolute;left:0;right:0;margin:0;transition:top .3s var(--ease)}
.pubfig img{width:100%;height:auto;display:block}
.pubfig figcaption{display:flex;gap:8px;align-items:flex-start;font-size:var(--t-xs);color:var(--grey);margin-top:6px;line-height:1.3}
.num{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:50%;background:var(--blue);color:#fff;font-size:10px;font-weight:600;flex:none;line-height:1}
.figref{white-space:nowrap;font-size:var(--t-xs);color:var(--blue) !important;text-decoration:none !important;word-break:normal !important;margin-left:6px}
.figref .num{margin-left:2px;vertical-align:-3px;color:#fff !important}
.figref:hover{text-decoration:underline !important}
@media (max-width:900px){.pub-layout .pubs,.pub-layout .pub-figs{grid-column:1 / -1}.pub-layout .pub-figs{display:none}.pubfig{position:static;max-width:320px;margin:10px 0 18px 1.4em}}

/* publications stripe (one square per paper) — colours by paper type */
:root{--c-emp:#4400ff;--c-got:#15b36b;--c-syn:#a63cff;--c-met:#ff4a3d}
.pub-layout.no-figs .pubs{grid-column:1 / -1}
.pub-stripe{margin:0 0 28px}
.stripe-rows{display:flex;flex-direction:column;gap:3px}
.stripe-row{display:flex;align-items:center;gap:14px;text-decoration:none}
.stripe-row .y{width:5ch;font-size:var(--t-xs);color:var(--grey);font-variant-numeric:tabular-nums;flex:none}
.stripe-row .sq{display:flex;flex-wrap:wrap;gap:3px}
.stripe-row i,.stripe-note i,.tsq{display:inline-block;width:9px;height:9px;background:var(--c-emp);flex:none}
.stripe-row i.gotland,.stripe-note i.gotland,.tsq.gotland{background:var(--c-got)}
.stripe-row i.synthesis,.stripe-note i.synthesis,.tsq.synthesis{background:var(--c-syn)}
.stripe-row i.method,.stripe-note i.method,.tsq.method{background:var(--c-met)}
.stripe-row i.preprint,.stripe-note i.preprint,.tsq.preprint{background:none;box-shadow:inset 0 0 0 1px var(--c-emp)}
.stripe-row:hover .y{color:var(--ink)}
.stripe-row:hover i{filter:brightness(.6)}
.stripe-note{font-size:var(--t-xs);color:var(--grey);margin:12px 0 0;display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.stripe-note i{margin-left:6px}
.pubs p .tsq{position:absolute;left:0;top:.45em}
.pubs p{position:relative}

/* ---------- publications ---------- */
.pubs h2{font-size:var(--t-xl);margin:1.6em 0 .5em;padding-top:.5em;border-top:1px solid var(--ink)}
.pubs h2:first-of-type{margin-top:0}
.pubs p{max-width:90ch;margin:0 0 1.1em;padding-left:1.4em;font-size:var(--t-s);line-height:1.45}
.pubs p a{word-break:break-all;color:var(--blue);text-decoration:none}
.pubs p a:hover{text-decoration:underline}
.pubs > p:first-child{padding-left:0;text-indent:0;font-size:var(--t-m);max-width:66ch;margin-bottom:2em}

/* ---------- people / lists ---------- */
.people{list-style:none;padding:0;margin:0;border-top:1px solid var(--ink)}
.people li{display:grid;grid-template-columns:repeat(var(--col),1fr);column-gap:var(--gutter);padding:10px 0;border-bottom:1px solid var(--rule);font-size:var(--t-s)}
.people li b{grid-column:span 4;font-weight:600}
.people li span{grid-column:span 8;color:#222}
@media (max-width:700px){.people li b,.people li span{grid-column:1 / -1}}
.inline-list{columns:2;column-gap:var(--gutter);font-size:var(--t-s);padding:0;margin:0;list-style:none}
.inline-list li{break-inside:avoid;padding:6px 0;border-bottom:1px solid var(--rule-soft)}
@media (max-width:700px){.inline-list{columns:1}}
.links-list{list-style:none;padding:0;margin:0;border-top:1px solid var(--ink)}
.links-list li{padding:10px 0;border-bottom:1px solid var(--rule);font-size:var(--t-s);display:flex;gap:16px;justify-content:space-between;align-items:baseline}
.links-list li a{text-decoration:none}
.links-list li a:hover{color:var(--blue);text-decoration:underline}
.links-list .tag{color:var(--grey);font-size:var(--t-xs);white-space:nowrap}

/* poems */
.poem{white-space:pre-line;font-size:var(--t-m);line-height:1.45;max-width:40ch;margin:0}
.poem-grid{display:grid;grid-template-columns:repeat(var(--col),1fr);column-gap:var(--gutter);row-gap:44px}
.poem-grid article{grid-column:span 6}
.poem-grid h3{margin-bottom:.8em}
.poem-grid .where{font-size:var(--t-xs);color:var(--grey);margin-top:1em}
@media (max-width:900px){.poem-grid article{grid-column:1 / -1}}

/* ---------- page head ---------- */
.page-head{padding:clamp(28px,4vw,56px) 0 clamp(20px,3vw,32px);border-bottom:1px solid var(--ink)}
.page-head h1{font-size:clamp(2.6rem,7vw,6.5rem);letter-spacing:-.04em;line-height:.95}
.page-head .lede{margin-top:16px}

/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--ink);padding:28px 0 36px;font-size:var(--t-xs)}
.site-footer b{font-size:var(--t-xs)}
.site-footer .grid > div{grid-column:span 3}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{padding:3px 0}
.site-footer a:hover{color:var(--blue)}
.site-footer .colophon{grid-column:span 12;margin-top:24px;color:var(--grey);font-size:var(--t-xs);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}
@media (max-width:900px){.site-footer .grid > div{grid-column:span 6}}

/* portrait */
.portrait{border:1px solid var(--rule);aspect-ratio:3/4;object-fit:cover;width:100%}

/* reveal on load (single orchestrated moment on the home hero only) */
.hero .intro > *{animation:rise .9s var(--ease) both}
.hero .intro > *:nth-child(2){animation-delay:.08s}
.hero .intro > *:nth-child(3){animation-delay:.16s}
@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.hero .intro > *{animation:none}}

/* loading state for md-driven blocks */
[data-loading]{min-height:120px;color:var(--grey);font-size:var(--t-s)}
