/** Reset some basic elements */
body, h1, h2, h3, h4, h5, h6, p, blockquote, pre, hr, dl, dd, ol, ul, figure { margin: 0; padding: 0; }

/** Basic styling */
body { font: 400 16px/1.5 -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; color: #1d1d1b; background-color: #f6f6f4; -webkit-text-size-adjust: 100%; -webkit-font-feature-settings: "kern" 1; -moz-font-feature-settings: "kern" 1; -o-font-feature-settings: "kern" 1; font-feature-settings: "kern" 1; font-kerning: normal; display: flex; min-height: 100vh; flex-direction: column; }

:root{--pik-red:#b5121b;--pik-red-dark:#8c0f15;--pik-gray:#4a4a47;--pik-border:#d7d7d2;--pik-surface:#ffffff;--pik-muted:#6b6b66;--pik-soft:#f0f0ec;}

/** Set `margin-bottom` to maintain vertical rhythm */
h1, h2, h3, h4, h5, h6, p, blockquote, pre, ul, ol, dl, figure, .highlight { margin-bottom: 15px; }

/** `main` element */
main { display: block; /* Default value of `display` of `main` element is 'inline' in IE 11. */ }

/** Images */
img { max-width: 100%; vertical-align: middle; }

/** Figures */
figure > img { display: block; }

figcaption { font-size: 14px; }

/** Lists */
ul, ol { margin-left: 30px; }

li > ul, li > ol { margin-bottom: 0; }

/** Headings */
h1, h2, h3, h4, h5, h6 { font-weight: 400; }

/** Links */
a { color: var(--pik-red); text-decoration: none; }

a:visited { color: var(--pik-red-dark); }

a:hover { color: #111; text-decoration: underline; }

.social-media-list a:hover { text-decoration: none; }

.social-media-list a:hover .username { text-decoration: underline; }

/** Blockquotes */
blockquote { color: #828282; border-left: 4px solid #e8e8e8; padding-left: 15px; font-size: 18px; letter-spacing: -1px; font-style: italic; }

blockquote > :last-child { margin-bottom: 0; }

/** Code formatting */
pre, code { font-size: 15px; border: 1px solid #e8e8e8; border-radius: 3px; background-color: #eef; }

code { padding: 1px 5px; }

pre { padding: 8px 12px; overflow-x: auto; }

pre > code { border: 0; padding-right: 0; padding-left: 0; }

/** Wrapper */
.wrapper { max-width: -webkit-calc(1200px - (30px * 2)); max-width: calc(1200px - (30px * 2)); margin-right: auto; margin-left: auto; padding-right: 30px; padding-left: 30px; }

@media screen and (max-width: 1200px) { .wrapper { max-width: -webkit-calc(1200px - (30px)); max-width: calc(1200px - (30px)); padding-right: 15px; padding-left: 15px; } }

/** Clearfix */
.footer-col-wrapper:after, .wrapper:after { content: ""; display: table; clear: both; }

/** Icons */
.svg-icon { width: 16px; height: 16px; display: inline-block; fill: #828282; padding-right: 5px; vertical-align: text-top; }

.social-media-list li + li { padding-top: 5px; }

/** Tables */
table { margin-bottom: 30px; width: 100%; text-align: left; color: #3f3f3f; border-collapse: collapse; border: 1px solid #e8e8e8; }

table tr:nth-child(even) { background-color: #f7f7f7; }

table th, table td { padding: 10px 15px; }

table th { background-color: #f0f0f0; border: 1px solid #dedede; border-bottom-color: #c9c9c9; }

table td { border: 1px solid #e8e8e8; }

/** Site header */
.site-header { border-top: 5px solid var(--pik-red); border-bottom: 1px solid var(--pik-border); min-height: 55.95px; position: relative; background: #fff; }

.site-title { font-size: 26px; font-weight: 300; line-height: 54px; letter-spacing: -1px; margin-bottom: 0; float: left; }

.site-title, .site-title:visited { color: #2b2b2b; }

.site-nav { float: right; line-height: 54px; }

.site-nav .nav-trigger { display: none; }

.site-nav .menu-icon { display: none; }

.site-nav .page-link { color: #2b2b2b; line-height: 1.5; }

.site-nav .page-link:not(:last-child) { margin-right: 20px; }

@media screen and (max-width: 600px) { .site-nav { position: absolute; top: 9px; right: 15px; background-color: #fff; border: 1px solid var(--pik-border); border-radius: 5px; text-align: right; } .site-nav label[for="nav-trigger"] { display: block; float: right; width: 36px; height: 36px; z-index: 2; cursor: pointer; } .site-nav .menu-icon { display: block; float: right; width: 36px; height: 26px; line-height: 0; padding-top: 10px; text-align: center; } .site-nav .menu-icon > svg { fill: #424242; } .site-nav input ~ .trigger { clear: both; display: none; } .site-nav input:checked ~ .trigger { display: block; padding-bottom: 5px; } .site-nav .page-link { display: block; padding: 5px 10px; margin-left: 20px; } .site-nav .page-link:not(:last-child) { margin-right: 0; } }

.note-nav { float: right; line-height: 54px; }

.note-nav .n-nav-trigger { display: none; }

.note-nav .n-menu-icon { display: none; }

.note-nav .page-link { color: #111; line-height: 1.5; }

.note-nav .page-link:not(:last-child) { margin-right: 20px; }

@media screen and (max-width: 600px) { .note-nav { position: absolute; top: 79px; right: 15px; background-color: #fdfdfd; border: 1px solid #e8e8e8; border-radius: 5px; text-align: right; } .note-nav label[for="n-nav-trigger"] { display: block; float: right; width: 36px; height: 36px; z-index: 3; cursor: pointer; } .note-nav .n-menu-icon { display: block; float: right; width: 36px; height: 26px; line-height: 0; padding-top: 10px; text-align: center; } .note-nav .n-menu-icon > svg { fill: #424242; } .note-nav input ~ .n-trigger { clear: both; display: none; } .note-nav input:checked ~ .n-trigger { display: block; padding-bottom: 5px; } .note-nav .page-link { display: block; padding: 5px 10px; margin-left: 20px; } .note-nav .page-link:not(:last-child) { margin-right: 0; } }

/** Site footer */
.site-footer { border-top: 1px solid #e8e8e8; padding: 30px 0; }

.footer-heading { font-size: 18px; margin-bottom: 15px; }

.contact-list, .social-media-list { list-style: none; margin-left: 0; }

.footer-col-wrapper { font-size: 15px; color: #828282; margin-left: -15px; }

.footer-col { float: left; margin-bottom: 15px; padding-left: 15px; }

.footer-col-1 { width: -webkit-calc(35% - (30px / 2)); width: calc(35% - (30px / 2)); }

.footer-col-2 { width: -webkit-calc(20% - (30px / 2)); width: calc(20% - (30px / 2)); }

.footer-col-3 { width: -webkit-calc(45% - (30px / 2)); width: calc(45% - (30px / 2)); }

@media screen and (max-width: 800px) { .footer-col-1, .footer-col-2 { width: -webkit-calc(50% - (30px / 2)); width: calc(50% - (30px / 2)); } .footer-col-3 { width: -webkit-calc(100% - (30px / 2)); width: calc(100% - (30px / 2)); } }

@media screen and (max-width: 600px) { .footer-col { float: none; width: -webkit-calc(100% - (30px / 2)); width: calc(100% - (30px / 2)); } }

/** Page content */
.page-content { padding: 30px 0; flex: 1; }

.page-heading { font-size: 32px; }

.post-list-heading { font-size: 28px; }

.post-list { margin-left: 0; list-style: none; }

.post-list > li { margin-bottom: 30px; }

.post-meta { font-size: 14px; color: #828282; }

.post-link { display: block; font-size: 24px; }

/** Posts */
.post-header { margin-bottom: 30px; }

.post-title { font-size: 42px; letter-spacing: -1px; line-height: 1; }

@media screen and (max-width: 800px) { .post-title { font-size: 36px; } }

.post-content { margin-bottom: 30px; }

.post-content h2 { font-size: 32px; }

@media screen and (max-width: 800px) { .post-content h2 { font-size: 28px; } }

.post-content h3 { font-size: 26px; }

@media screen and (max-width: 800px) { .post-content h3 { font-size: 22px; } }

.post-content h4 { font-size: 20px; }

@media screen and (max-width: 800px) { .post-content h4 { font-size: 18px; } }

/** Syntax highlighting styles */
.highlight { background: #fff; }

.highlighter-rouge .highlight { background: #eef; }

.highlight .c { color: #998; font-style: italic; }

.highlight .err { color: #a61717; background-color: #e3d2d2; }

.highlight .k { font-weight: bold; }

.highlight .o { font-weight: bold; }

.highlight .cm { color: #998; font-style: italic; }

.highlight .cp { color: #999; font-weight: bold; }

.highlight .c1 { color: #998; font-style: italic; }

.highlight .cs { color: #999; font-weight: bold; font-style: italic; }

.highlight .gd { color: #000; background-color: #fdd; }

.highlight .gd .x { color: #000; background-color: #faa; }

.highlight .ge { font-style: italic; }

.highlight .gr { color: #a00; }

.highlight .gh { color: #999; }

.highlight .gi { color: #000; background-color: #dfd; }

.highlight .gi .x { color: #000; background-color: #afa; }

.highlight .go { color: #888; }

.highlight .gp { color: #555; }

.highlight .gs { font-weight: bold; }

.highlight .gu { color: #aaa; }

.highlight .gt { color: #a00; }

.highlight .kc { font-weight: bold; }

.highlight .kd { font-weight: bold; }

.highlight .kp { font-weight: bold; }

.highlight .kr { font-weight: bold; }

.highlight .kt { color: #458; font-weight: bold; }

.highlight .m { color: #099; }

.highlight .s { color: #d14; }

.highlight .na { color: #008080; }

.highlight .nb { color: #0086B3; }

.highlight .nc { color: #458; font-weight: bold; }

.highlight .no { color: #008080; }

.highlight .ni { color: #800080; }

.highlight .ne { color: #900; font-weight: bold; }

.highlight .nf { color: #900; font-weight: bold; }

.highlight .nn { color: #555; }

/** Tiles + landing */
.tile-grid { display: grid; grid-template-columns: repeat(3, minmax(240px, 1fr)); gap: 20px; margin: 20px 0 40px; }
.tile-grid--hero { grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
@media screen and (max-width: 980px) { .tile-grid { grid-template-columns: repeat(2, minmax(220px, 1fr)); } }
@media screen and (max-width: 640px) { .tile-grid { grid-template-columns: 1fr; } }
.tile-card { display: flex; flex-direction: column; border: 1px solid var(--pik-border); border-radius: 14px; overflow: hidden; background: #fff; color: inherit; box-shadow: 0 8px 22px rgba(0, 0, 0, 0.05); transition: transform 0.2s ease, box-shadow 0.2s ease; }
.tile-card:hover { transform: translateY(-2px); box-shadow: 0 12px 28px rgba(0, 0, 0, 0.08); text-decoration: none; }
.tile-card--hero { border-color: var(--pik-border); }
.tile-image { height: 150px; background-size: contain; background-position: center; background-repeat: no-repeat; background-color: #f4f4f4; }
.tile-body { padding: 16px 18px 20px; }
.tile-title { margin: 0 0 8px; font-size: 20px; font-weight: 500; color: #111; }
.tile-meta { margin: 0; color: var(--pik-muted); font-size: 14px; }

/** Publications subnav */
.subnav{display:flex;flex-wrap:wrap;gap:10px;margin:10px 0 20px 0;padding:8px 10px;border:1px solid var(--pik-border);border-radius:10px;background:#fff;}
.subnav-link{padding:4px 8px;border-radius:999px;border:1px solid transparent;color:var(--pik-red);font-weight:600;font-size:0.9rem;}
.subnav-link:hover{border-color:var(--pik-red);background:#f6eaea;text-decoration:none;}

/** Infra + highlight detail */
.infra-hero, .highlight-hero { display: flex; gap: 24px; align-items: center; flex-wrap: wrap; }
.infra-logo, .highlight-logo { width: 160px; height: 160px; border-radius: 16px; border: 1px solid #e4e4e4; background: #fafafa; display: flex; align-items: center; justify-content: center; padding: 16px; }
.infra-logo img, .highlight-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
.infra-title-block, .highlight-title-block { flex: 1; min-width: 220px; }
.tag-list { list-style: none; margin: 12px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.tag-pill { display: inline-flex; align-items: center; padding: 4px 10px; border-radius: 999px; background: #eef1f6; color: #3a4550; font-size: 12px; text-transform: uppercase; letter-spacing: 0.02em; }

.highlight .nt { color: #000080; }

.highlight .nv { color: #008080; }

.highlight .ow { font-weight: bold; }

.highlight .w { color: #bbb; }

.highlight .mf { color: #099; }

.highlight .mh { color: #099; }

.highlight .mi { color: #099; }

.highlight .mo { color: #099; }

.highlight .sb { color: #d14; }

.highlight .sc { color: #d14; }

.highlight .sd { color: #d14; }

.highlight .s2 { color: #d14; }

.highlight .se { color: #d14; }

.highlight .sh { color: #d14; }

.highlight .si { color: #d14; }

.highlight .sx { color: #d14; }

.highlight .sr { color: #009926; }

.highlight .s1 { color: #d14; }

.highlight .ss { color: #990073; }

.highlight .bp { color: #999; }

.highlight .vc { color: #008080; }

.highlight .vg { color: #008080; }

.highlight .vi { color: #008080; }

.highlight .il { color: #099; }

/* Zenodo registry customisations */
.browse-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin: 20px 0;
  padding: 0;
  list-style: none;
}

.browse-links a {
  border: 1px solid var(--pik-red);
  border-radius: 4px;
  padding: 6px 12px;
  font-weight: 500;
}

.record-listing {
  list-style: none;
  margin-left: 0;
  padding-left: 0;
}

.record-card {
  border: 1px solid #e8e8e8;
  border-radius: 6px;
  padding: 20px;
  margin-bottom: 20px;
  background-color: #fff;
  box-shadow: 0 1px 2px rgba(17, 17, 17, 0.05);
}

.record-card h2 {
  margin-bottom: 5px;
}

.record-meta span {
  margin-right: 6px;
  color: #555;
}

.record-line {
  margin-bottom: 10px;
}

.record-links {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
}

.record-link {
  color: var(--pik-red);
  font-weight: 600;
}

.record-entry .badge,
.record-card .badge {
  display: inline-block;
  padding: 2px 8px;
  border-radius: 999px;
  background-color: var(--pik-red);
  color: #fff;
  font-size: 0.85em;
  margin-right: 6px;
  margin-bottom: 4px;
}

.badge-muted {
  background-color: #6b6b66;
}

.record-meta p {
  margin-bottom: 8px;
}

.term-index {
  list-style: none;
  padding-left: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-bottom: 25px;
}

.term-index a {
  border: 1px solid var(--pik-border);
  border-radius: 4px;
  padding: 4px 10px;
}

.term-group {
  margin-bottom: 18px;
}

.term-group h2 {
  border-bottom: none;
  padding-bottom: 0;
}

.term-records {
  list-style: none;
  padding-left: 0;
  margin-top: 10px;
}

.term-records li {
  padding: 6px 0;
  border-bottom: 1px solid #f0f0f0;
  display: flex;
  justify-content: space-between;
  align-items: baseline;
  gap: 10px;
}

.term-meta {
  color: #666;
  font-size: 0.85em;
}

.record-links a + a {
  margin-left: 5px;
}

.record-entry .post-meta span {
  margin-right: 6px;
}

.record-entry .record-links {
  margin-top: 10px;
}

/*# sourceMappingURL=main.css.map */

.year-toggle{display:flex;align-items:center;gap:0.5rem;margin:0 0 1rem 0;padding:0.6rem 0;border-bottom:1px solid #e0e0e0;font-weight:600;}
.year-toggle input[type="checkbox"]{width:1.1rem;height:1.1rem;}
.count-badge{font-weight:600;margin-left:0.35rem;color:#555;}

.collapse-toggle{all:unset;display:inline-flex;align-items:center;gap:0.4rem;font-weight:600;cursor:pointer;padding:0.35rem 0.75rem;border-radius:999px;background:#fbeff0;border:1px solid var(--pik-red);color:var(--pik-red);font-size:0.95rem;line-height:1;}
.collapse-toggle::before{content:"▸";display:inline-block;transform:rotate(0deg);transition:transform 0.15s ease;}
.collapse-toggle[aria-expanded="true"]::before{transform:rotate(90deg);}
.collapse-toggle.collapsed::before{transform:rotate(0deg);}
.collapse-toggle:hover{background:#f6dede;}
.term-group .count-badge{color:var(--pik-red);font-weight:700;}

.filter-bar{
  border:1px solid var(--pik-border);
  background:#f7f2f2;
  border-radius:8px;
  padding:12px 14px;
  margin:10px 0 20px 0;
}
.filter-row{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  align-items:flex-end;
}
.filter-row label{
  display:flex;
  flex-direction:column;
  font-weight:600;
  color:#3a2b2b;
  font-size:0.95rem;
}
.filter-row select,
.filter-row input[type="search"]{
  margin-top:4px;
  padding:6px 10px;
  border-radius:6px;
  border:1px solid var(--pik-border);
  min-width:150px;
  font-size:0.95rem;
}
.filter-row .grow{flex:1;min-width:220px;}
#filter-reset{
  padding:8px 12px;
  border-radius:6px;
  border:1px solid var(--pik-border);
  background:#fff;
  cursor:pointer;
  font-weight:600;
  color:#3a2b2b;
}
#filter-reset:hover{background:#f6eaea;}

.record-groups{
  display:flex;
  flex-direction:column;
  gap:16px;
}
.year-group{
  border-top:1px solid #e8e8e8;
  padding-top:8px;
}
.year-heading{
  margin:0 0 8px 0;
  font-size:1.4rem;
  color:#3a2b2b;
}
.record-listing{
  list-style:none;
  margin-left:0;
  padding-left:0;
}
.record-card{
  border:1px solid #e8e8e8;
  border-radius:8px;
  padding:16px;
  margin-bottom:12px;
  background:#fff;
  box-shadow:0 1px 2px rgba(17,17,17,0.04);
  transition:transform 0.05s ease, box-shadow 0.05s ease;
}
.record-card:hover{
  transform:translateY(-1px);
  box-shadow:0 4px 10px rgba(181,18,27,0.12);
}
.record-card h3{
  margin-bottom:6px;
  font-size:1.1rem;
}
.record-meta{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  align-items:center;
  margin-bottom:8px;
}
.type-chip{
  padding:2px 8px;
  border-radius:999px;
  font-size:0.75rem;
  font-weight:700;
  border:1px solid var(--pik-border);
  color:#3a2b2b;
}
.type-chip.software{background:#f9e8e9;border-color:var(--pik-red);color:var(--pik-red);}
.type-chip.dataset{background:#f0f4ef;border-color:#3f6f3f;color:#2f5a2f;}

.badge, .badge-muted{
  white-space:nowrap;
}
.record-line{
  margin-bottom:6px;
}
.record-line .badge,
.record-line .badge-muted{
  margin-bottom:6px;
}

.back-to-top{
  position:fixed;
  right:16px;
  bottom:16px;
  padding:10px 12px;
  border-radius:999px;
  background:var(--pik-red);
  color:#fff;
  border:none;
  cursor:pointer;
  box-shadow:0 4px 10px rgba(0,0,0,0.12);
  z-index:100;
}
.back-to-top:hover{background:var(--pik-red-dark);}

@media screen and (max-width: 700px){
  .filter-row{gap:10px;}
  .filter-row label{width:100%;}
  .filter-row .grow{min-width:100%;}
  .record-card{padding:14px;}
}

.alpha-nav{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin:10px 0 16px 0;
}
.alpha-nav a{
  padding:4px 8px;
  border:1px solid var(--pik-border);
  border-radius:6px;
  color:var(--pik-red);
  font-weight:600;
}
.alpha-nav a:hover{background:#f6eaea;}
