/* Coffey Labs dark theme for Gitea. Generated by hosts-baseline gitea/theme/build.py on Gitea's own dark theme (gitea version 28.0.0, MIT) -- do not edit. */
gitea-theme-meta-info{--theme-display-name: "Coffey Labs Dark";--theme-color-scheme: "dark"}:root{--is-dark-theme: true;--color-primary: #4183c4;--color-primary-contrast: #ffffff;--color-primary-dark-1: #548fca;--color-primary-dark-2: #679cd0;--color-primary-dark-3: #7aa8d6;--color-primary-dark-4: #8db5dc;--color-primary-dark-5: #b3cde7;--color-primary-dark-6: #d9e6f3;--color-primary-dark-7: #f4f8fb;--color-primary-light-1: #3876b3;--color-primary-light-2: #31699f;--color-primary-light-3: #2b5c8b;--color-primary-light-4: #254f77;--color-primary-light-5: #193450;--color-primary-light-6: #0c1a28;--color-primary-light-7: #04080c;--color-primary-alpha-10: #4183c419;--color-primary-alpha-20: #4183c433;--color-primary-alpha-30: #4183c44b;--color-primary-alpha-40: #4183c466;--color-primary-alpha-50: #4183c480;--color-primary-alpha-60: #4183c499;--color-primary-alpha-70: #4183c4b3;--color-primary-alpha-80: #4183c4cc;--color-primary-alpha-90: #4183c4e1;--color-primary-hover: var(--color-primary-light-1);--color-primary-active: var(--color-primary-light-2);--color-secondary: #3f4248;--color-secondary-dark-1: #46494f;--color-secondary-dark-2: #4f5259;--color-secondary-dark-3: #5e626a;--color-secondary-dark-4: #6f747d;--color-secondary-dark-5: #7d828c;--color-secondary-dark-6: #8b8f98;--color-secondary-dark-7: #999da4;--color-secondary-dark-8: #a8abb1;--color-secondary-dark-9: #aeb1b8;--color-secondary-dark-10: #bbbec3;--color-secondary-dark-11: #c8cacf;--color-secondary-dark-12: #d2d4d7;--color-secondary-dark-13: #d5d6d9;--color-secondary-light-1: #35373c;--color-secondary-light-2: #2c2e32;--color-secondary-light-3: #1f2124;--color-secondary-light-4: #191a1c;--color-secondary-alpha-10: #3f424819;--color-secondary-alpha-20: #3f424833;--color-secondary-alpha-30: #3f42484b;--color-secondary-alpha-40: #3f424866;--color-secondary-alpha-50: #3f424880;--color-secondary-alpha-60: #3f424899;--color-secondary-alpha-70: #3f4248b3;--color-secondary-alpha-80: #3f4248cc;--color-secondary-alpha-90: #3f4248e1;--color-secondary-button: var(--color-secondary-dark-4);--color-secondary-hover: var(--color-secondary-dark-3);--color-secondary-active: var(--color-secondary-dark-2);--color-console-fg: #f8f8f8;--color-console-fg-subtle: #c1c3c8;--color-console-bg: #191a1c;--color-console-hover-bg: #2a2c30;--color-console-active-bg: #313338;--color-console-link: #969aa1;--color-red: #cc4848;--color-orange: #cc580c;--color-yellow: #cc9903;--color-olive: #91a313;--color-green: #87ab63;--color-teal: #00918a;--color-blue: #3a8ac6;--color-violet: #906ae1;--color-purple: #b259d0;--color-pink: #d22e8b;--color-brown: #a47252;--color-black: #202225;--color-red-light: #d15a5a;--color-orange-light: #f6a066;--color-yellow-light: #eaaf03;--color-olive-light: #abc016;--color-green-light: #93b373;--color-teal-light: #00b6ad;--color-blue-light: #4e96cc;--color-violet-light: #9b79e4;--color-purple-light: #ba6ad5;--color-pink-light: #d74397;--color-brown-light: #b08061;--color-black-light: #45484e;--color-red-dark-1: #c23636;--color-orange-dark-1: #f38236;--color-yellow-dark-1: #b88a03;--color-olive-dark-1: #839311;--color-green-dark-1: #7a9e55;--color-teal-dark-1: #00837c;--color-blue-dark-1: #347cb3;--color-violet-dark-1: #7b4edb;--color-purple-dark-1: #a742c9;--color-pink-dark-1: #be297d;--color-brown-dark-1: #94674a;--color-black-dark-1: #2e3033;--color-red-dark-2: #ad3030;--color-orange-dark-2: #f16e17;--color-yellow-dark-2: #a37a02;--color-olive-dark-2: #74820f;--color-green-dark-2: #6c8c4c;--color-teal-dark-2: #00746e;--color-blue-dark-2: #2e6e9f;--color-violet-dark-2: #6733d6;--color-purple-dark-2: #9834b9;--color-pink-dark-2: #a9246f;--color-brown-dark-2: #835b42;--color-black-dark-2: #292b2e;--color-ansi-black: #202225;--color-ansi-red: #cc4848;--color-ansi-green: #87ab63;--color-ansi-yellow: #cc9903;--color-ansi-blue: #3a8ac6;--color-ansi-magenta: #d22e8b;--color-ansi-cyan: #00918a;--color-ansi-white: var(--color-console-fg-subtle);--color-ansi-bright-black: #45484e;--color-ansi-bright-red: #d15a5a;--color-ansi-bright-green: #93b373;--color-ansi-bright-yellow: #eaaf03;--color-ansi-bright-blue: #4e96cc;--color-ansi-bright-magenta: #d74397;--color-ansi-bright-cyan: #00b6ad;--color-ansi-bright-white: var(--color-console-fg);--color-series-16-0: #7db233;--color-series-16-1: #499a37;--color-series-16-2: #ce4751;--color-series-16-3: #8f9121;--color-series-16-4: #ac32a6;--color-series-16-5: #7445e9;--color-series-16-6: #c67d28;--color-series-16-7: #4db392;--color-series-16-8: #aa4d30;--color-series-16-9: #2a6f84;--color-series-16-10: #c45327;--color-series-16-11: #3d965c;--color-series-16-12: #792a93;--color-series-16-13: #439d73;--color-series-16-14: #103aad;--color-series-16-15: #982e85;--color-grey: #3d3f44;--color-grey-light: #898d96;--color-gold: #b1983b;--color-white: #ffffff;--color-diff-added-fg: #93b373;--color-diff-added-linenum-bg: #274227;--color-diff-added-row-bg: #203224;--color-diff-added-row-border: #314a37;--color-diff-added-word-bg: #3c653c;--color-diff-moved-row-bg: #818044;--color-diff-moved-row-border: #bcca6f;--color-diff-removed-fg: #fb5f5b;--color-diff-removed-linenum-bg: #482121;--color-diff-removed-row-bg: #301e1e;--color-diff-removed-row-border: #634343;--color-diff-removed-word-bg: #6f3333;--color-diff-inactive: #25272a;--color-error-border: #763232;--color-error-bg: #322226;--color-error-bg-active: #49262a;--color-error-bg-hover: #3c2427;--color-error-text: #f85149;--color-success-border: #225633;--color-success-bg: #1c3329;--color-success-text: #3fb950;--color-warning-border: #5f481a;--color-warning-bg: #342e1f;--color-warning-text: #d29922;--color-info-border: #254a7e;--color-info-bg: #1b283a;--color-info-text: #2f81f7;--color-priority-border: #4a268d;--color-priority-bg: #251c39;--color-priority-text: #a371f7;--color-red-badge: #db2828;--color-red-badge-bg: #db28281a;--color-red-badge-hover-bg: #db28284d;--color-green-badge: #21ba45;--color-green-badge-bg: #21ba451a;--color-green-badge-hover-bg: #21ba454d;--color-yellow-badge: #fbbd08;--color-yellow-badge-bg: #fbbd081a;--color-yellow-badge-hover-bg: #fbbd084d;--color-orange-badge: #f2711c;--color-orange-badge-bg: #f2711c1a;--color-orange-badge-hover-bg: #f2711c4d;--color-git: #f05133;--color-logo: #609926;--color-body: #1e1f20;--color-box-header: #1b1c1e;--color-box-body: #161718;--color-box-body-highlight: #202124;--color-text-dark: #f8f8f8;--color-text: #d2d4d8;--color-text-light: #c0c2c7;--color-text-light-1: #aaadb4;--color-text-light-2: #969aa1;--color-text-light-3: #80858f;--color-footer: var(--color-nav-bg);--color-timeline: #383b40;--color-input-text: var(--color-text-dark);--color-input-background: #191a1c;--color-input-toggle-background: #323438;--color-input-border: var(--color-secondary-dark-1);--color-light: #0b0b0c28;--color-light-border: #f3f3f428;--color-hover: #f3f3f419;--color-hover-opaque: #232528;--color-active: #f3f3f424;--color-menu: #191a1c;--color-card: #191a1c;--color-markup-table-row: #f3f3f40f;--color-markup-code-block: #f3f3f412;--color-markup-code-inline: #f3f3f428;--color-button: #191a1c;--color-code-bg: #161718;--color-shadow: #0b0b0c58;--color-shadow-opaque: #0b0b0c;--color-secondary-bg: #2e3033;--color-expand-button: #333539;--color-placeholder-text: var(--color-text-light-3);--color-editor-line-highlight: var(--color-secondary-alpha-40);--color-editor-selection: var(--color-primary-alpha-50);--color-project-column-bg: var(--color-secondary-light-2);--color-caret: var(--color-text);--color-reaction-bg: #f3f3f412;--color-reaction-hover-bg: var(--color-primary-light-4);--color-reaction-active-bg: var(--color-primary-light-5);--color-tooltip-text: #fafafa;--color-tooltip-bg: #2b2e33;--color-nav-bg: #18191b;--color-nav-hover-bg: var(--color-secondary-light-1);--color-nav-text: var(--color-text);--color-secondary-nav-bg: #1a1b1e;--color-label-text: var(--color-text);--color-label-bg: #7a7f8a4b;--color-label-hover-bg: #7a7f8aa0;--color-label-active-bg: #7a7f8aff;--color-accent: var(--color-primary-light-1);--color-small-accent: var(--color-primary-light-5);--color-highlight-fg: #87651e;--color-highlight-bg: #443a27;--color-overlay-backdrop: #080808c0;--color-danger: var(--color-red);--color-transparency-grid-light: #2a2a2a;--color-transparency-grid-dark: #1a1a1a;--color-workflow-edge-hover: #666a73;--color-syntax-keyword: #ff8854;--color-syntax-bool: #25bbc9;--color-syntax-control: #dd9e17;--color-syntax-name: #fabd2f;--color-syntax-type: #eb8cb3;--color-syntax-number: #63b2dd;--color-syntax-operator: #ff8854;--color-syntax-regexp: #b89de4;--color-syntax-string: #95b62a;--color-syntax-comment: #8898b0;--color-syntax-invalid: #ff8686;--color-syntax-link: var(--color-primary);--color-syntax-tag: #ff8854;--color-syntax-attribute: #c792ff;--color-syntax-property: #55afff;--color-syntax-variable: #e29b33;--color-syntax-string-special: #dd9e17;--color-syntax-escape: #c7a618;--color-syntax-entity: #c792ff;--color-syntax-preproc: #4cbe7a;--color-syntax-preproc-file: #63b2dd;--color-syntax-decorator: #4cbe7a;--color-syntax-namespace: #c9d1d9;--color-syntax-name-pseudo: #c792ff;--color-syntax-comment-special: #b89de4;--color-syntax-text: #c9d1d9;--color-syntax-text-alt: #b9bcc7;--color-syntax-punctuation: #d2d4db;--color-syntax-whitespace: #7f8699;--color-syntax-diff-fg: #ffffff;--color-syntax-deleted-bg: #5f3737;--color-syntax-inserted-bg: #3a523a;--color-syntax-emph: #d1a242;--color-syntax-strong: #e29b33;--color-syntax-heading: #dd9e17;--color-syntax-subheading: #95b62a;--color-syntax-output: #8898b0;--color-syntax-prompt: #e29b33;--color-syntax-traceback: #ff8686;--color-syntax-matching-bracket-bg: #00918a48;--color-syntax-nonmatching-bracket-bg: #cc484848;accent-color:var(--color-accent);color-scheme:dark}.emoji[data-alias=heavy_check_mark],.emoji[data-alias=currency_exchange],.emoji[data-alias=top],.emoji[data-alias=end],.emoji[data-alias=on],.emoji[data-alias=soon],.emoji[data-alias=heavy_dollar_sign],.emoji[data-alias=copyright],.emoji[data-alias=registered],.emoji[data-alias=tm],.emoji[data-alias=heavy_multiplication_x],.emoji[data-alias=heavy_plus_sign],.emoji[data-alias=heavy_minus_sign],.emoji[data-alias=heavy_division_sign],.emoji[data-alias=curly_loop],.emoji[data-alias=loop],.emoji[data-alias=wavy_dash],.emoji[data-alias=feet],.emoji[data-alias=musical_note],.emoji[data-alias=notes]{filter:invert(100%) hue-rotate(180deg)}

:root{--is-dark-theme: true;--color-primary: #4EA8FF;--color-primary-dark-1: #5cafff;--color-primary-dark-2: #6ab6ff;--color-primary-dark-3: #78bdff;--color-primary-dark-4: #87c4ff;--color-primary-dark-5: #a3d2ff;--color-primary-dark-6: #bfe0ff;--color-primary-dark-7: #dceeff;--color-primary-light-1: #489beb;--color-primary-light-2: #428dd6;--color-primary-light-3: #3b80c2;--color-primary-light-4: #3572ad;--color-primary-light-5: #295785;--color-primary-light-6: #1c3c5c;--color-primary-light-7: #102233;--color-primary-alpha-10: #4EA8FF1a;--color-primary-alpha-20: #4EA8FF33;--color-primary-alpha-30: #4EA8FF4c;--color-primary-alpha-40: #4EA8FF66;--color-primary-alpha-50: #4EA8FF7f;--color-primary-alpha-60: #4EA8FF99;--color-primary-alpha-70: #4EA8FFb2;--color-primary-alpha-80: #4EA8FFcc;--color-primary-alpha-90: #4EA8FFe5;--color-primary-contrast: #06101C;--color-primary-hover: var(--color-primary-light-1);--color-primary-active: var(--color-primary-light-2);--color-secondary: #2E3D55;--color-secondary-dark-1: #3f4d63;--color-secondary-dark-2: #4f5c70;--color-secondary-dark-3: #606c7e;--color-secondary-dark-4: #717b8b;--color-secondary-dark-5: #929aa7;--color-secondary-dark-6: #b4b9c2;--color-secondary-dark-7: #d5d8dd;--color-secondary-light-1: #2a384e;--color-secondary-light-2: #273347;--color-secondary-light-3: #232e41;--color-secondary-light-4: #1f293a;--color-secondary-alpha-10: #2E3D551a;--color-secondary-alpha-20: #2E3D5533;--color-secondary-alpha-30: #2E3D554c;--color-secondary-alpha-40: #2E3D5566;--color-secondary-alpha-50: #2E3D557f;--color-secondary-alpha-60: #2E3D5599;--color-secondary-alpha-70: #2E3D55b2;--color-secondary-alpha-80: #2E3D55cc;--color-secondary-alpha-90: #2E3D55e5;--color-secondary-dark-8: #e6e8eb;--color-secondary-dark-9: #eeeff1;--color-secondary-dark-10: #f5f5f6;--color-secondary-dark-11: #f9f9fa;--color-secondary-dark-12: #fbfbfc;--color-secondary-dark-13: #fdfdfd;--color-body: #1A2536;--color-box-header: #213049;--color-box-body: #1E2A3D;--color-text-dark: #FFFFFF;--color-text: #DCE6F2;--color-text-light: #C3D3E6;--color-text-light-1: #A9BFD9;--color-text-light-2: #8FA9C8;--color-text-light-3: #7189A8;--color-timeline: #2E3D55;--color-input-background: #16202F;--color-input-toggle-background: #2E3D55;--color-light-border: #DCEBFF28;--color-hover: #DCEBFF14;--color-hover-opaque: #223049;--color-active: #DCEBFF1F;--color-menu: #1E2A3D;--color-card: #1E2A3D;--color-button: #1E2A3D;--color-markup-table-row: #DCEBFF0F;--color-secondary-bg: #26354D;--color-tooltip-bg: #26354D;--color-nav-bg: #081629;--color-nav-text: #DCEBFF;--color-secondary-nav-bg: #172234;--color-footer: #081629;--color-logo: #4EA8FF}
/* ---- Coffey Labs, shared by both themes (build.py appends it) ----------
   git.coffeylabs.org dressed like coffeylabs.org and the forum: the site's
   two fonts, a navy top bar in both schemes, the light/dark switch, the
   landing page (templates/home.tmpl) and the footer
   (templates/base/footer_content.tmpl). Colors come from the :root block
   above; this file only uses Gitea's variables and the --cl-* ones here. */

@font-face {
  font-family: "Bricolage Grotesque";
  src: url(/assets/fonts/bricolage-grotesque-latin-wght-normal.woff2) format("woff2");
  font-weight: 200 800;
  font-display: swap;
}

@font-face {
  font-family: "JetBrains Mono";
  src: url(/assets/fonts/jetbrains-mono-latin-wght-normal.woff2) format("woff2");
  font-weight: 100 800;
  font-display: swap;
}

:root {
  --fonts-proportional: "Bricolage Grotesque", system-ui, -apple-system, "Segoe UI", sans-serif;
  --fonts-monospace: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  --border-radius: 8px;
  --border-radius-medium: 10px;
  --cl-navy-deep: #081629;
  --cl-card-a: #13294a;
  --cl-card-b: #0b1a30;
  --cl-blue: #4ea8ff;
  --cl-blue-hot: #7dc0ff;
  --cl-pale: #dcebff;
  --cl-on-navy: #b9cce3;
  --cl-on-navy-soft: #8fa9c8;
  --cl-mono: "JetBrains Mono", ui-monospace, monospace;
}

/* ---------------------------------------------------------------- top bar */
#navbar {
  min-height: 60px;
  border-bottom: 1px solid rgb(220 235 255 / 0.08);
  padding: 0 16px;
}

#navbar .item {
  color: var(--cl-pale);
}

#navbar .item:hover,
#navbar .item.active {
  background: rgb(255 255 255 / 0.07);
  color: #fff;
}

/* the brand: the kitten icon (img/logo.svg), the name, and "source" */
#navbar-logo {
  gap: 10px;
}

#navbar-logo img {
  width: 32px;
  height: 32px;
}

#navbar-logo::after {
  content: "Coffey Labs";
  font-weight: 700;
  font-size: 18px;
  color: #fff;
  white-space: nowrap;
}

#navbar-logo::before {
  content: "source";
  order: 3;
  font: 400 11px var(--cl-mono);
  letter-spacing: 0.08em;
  color: var(--cl-blue-hot);
  border: 1px solid rgb(125 192 255 / 0.3);
  background: rgb(78 168 255 / 0.08);
  border-radius: 999px;
  padding: 3px 9px;
}

#navbar-logo:hover {
  background: none;
}

@media (max-width: 767.98px) {
  #navbar-logo::before {
    display: none;
  }
}

/* Gitea's own "Help" goes to docs.gitea.com; the forum link replaces it */
#navbar a.item[href="https://docs.gitea.com"] {
  display: none;
}

/* coffeylabs.org's Sponsor button: outlined, a pink heart that fills on hover */
#navbar .cl-sponsor {
  gap: 6px;
  border: 1px solid rgb(220 235 255 / 0.18);
  border-radius: 8px;
  margin: 10px 4px;
}

.cl-heart {
  fill: none;
  stroke: #db61a2;
  stroke-width: 2;
  stroke-linejoin: round;
}

#navbar .cl-sponsor:hover .cl-heart {
  fill: #db61a2;
}

#navbar .cl-out {
  border: 1px solid rgb(125 192 255 / 0.4);
  border-radius: 8px;
  margin: 10px 4px;
}

.cl-color-switch {
  cursor: pointer;
  background: none;
  border: 0;
  font: inherit;
}

#navbar .cl-color-switch {
  align-self: center;
  justify-content: center;
  width: 38px;
  height: 38px;
  padding: 0;
  margin: 0 4px;
  border: 1px solid rgb(220 235 255 / 0.18);
  border-radius: 10px;
}

/* ---------------------------------------------------------------- general */
h1, h2, h3, .ui.header {
  letter-spacing: -0.015em;
}

.ui.button,
.ui.input > input,
.ui.form input:not([type]),
.ui.form input[type="text"],
.ui.form input[type="search"],
.ui.form textarea,
.ui.dropdown.selection {
  border-radius: var(--border-radius);
}

.ui.segment,
.ui.attached.segment:first-child,
.ui.cards > .card,
.flex-list,
.repository .ui.attached.header:first-child,
.ui.top.attached.header {
  border-radius: var(--border-radius-medium);
}

/* ---------------------------------------------------------------- landing */
/* the band meets the top bar: no gap from Gitea's page margin. .cl-dash is
   a signed-in user's dashboard, with the same content above the feed. */
.page-content.home.cl-home,
.page-content.dashboard.cl-dash {
  margin-top: 0;
  padding-top: 0;
}

.page-content.home.cl-home {
  padding-bottom: 24px;
}

.page-content.home.cl-home > .cl-band,
.page-content.dashboard.cl-dash > .cl-band {
  margin-top: 0;
}

.page-content.dashboard.cl-dash > .cl-section {
  padding-bottom: 40px;
}

.cl-wrap {
  max-width: 1160px;
  margin: 0 auto;
  padding: 0 24px;
}

.cl-kicker {
  display: inline-block;
  font: 12px var(--cl-mono);
  color: var(--color-primary);
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

.cl-band {
  position: relative;
  overflow: hidden;
  isolation: isolate;
  color: #fff;
  background:
    radial-gradient(1200px 600px at 78% 30%, #163a6b 0%, transparent 60%),
    radial-gradient(900px 500px at 10% 110%, #10305a 0%, transparent 60%),
    var(--cl-navy-deep);
}

.cl-band .cl-kicker {
  color: var(--cl-blue-hot);
}

.cl-grid {
  position: absolute;
  inset: -64px;
  z-index: -1;
  background-image:
    linear-gradient(rgb(78 168 255 / 0.11) 1px, transparent 1px),
    linear-gradient(90deg, rgb(78 168 255 / 0.11) 1px, transparent 1px);
  background-size: 32px 32px;
  mask-image: radial-gradient(ellipse 70% 80% at 70% 40%, #000 30%, transparent 75%);
  animation: cl-drift 30s linear infinite;
}

@media (prefers-reduced-motion: reduce) {
  .cl-grid {
    animation: none;
  }
}

@keyframes cl-drift {
  to {
    transform: translate(32px, 32px);
  }
}

.cl-hero {
  padding-top: 72px;
  padding-bottom: 80px;
}

.cl-hero h1 {
  font-size: clamp(38px, 6.5vw, 68px);
  line-height: 1.02;
  letter-spacing: -0.035em;
  font-weight: 750;
  margin: 18px 0 16px;
  color: #fff;
}

.cl-lead {
  color: var(--cl-pale);
  font-size: clamp(17px, 1.8vw, 20px);
  max-width: 620px;
  opacity: 0.92;
  margin: 0;
}

.cl-actions {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 30px;
}

a.cl-btn {
  display: inline-flex;
  align-items: center;
  padding: 13px 20px;
  border-radius: 12px;
  font: 650 16px var(--fonts-proportional);
  color: #fff;
  border: 1px solid rgb(220 235 255 / 0.25);
  transition: transform 0.15s, background 0.15s;
}

a.cl-btn:hover {
  color: #fff;
  transform: translateY(-1px);
  background: rgb(255 255 255 / 0.06);
  text-decoration: none;
}

a.cl-btn.cl-btn-pri,
a.cl-btn.cl-btn-pri:hover {
  color: #04101e;
  background: linear-gradient(180deg, #6cb8ff, #3e98f0);
  border-color: transparent;
  box-shadow: 0 10px 30px -10px rgb(78 168 255 / 0.7), inset 0 1px 0 rgb(255 255 255 / 0.35);
}

.cl-section {
  padding-top: 64px;
}

.cl-section h2 {
  font-size: clamp(28px, 4vw, 40px);
  font-weight: 750;
  letter-spacing: -0.02em;
  margin: 10px 0 8px;
}

.cl-sub {
  color: var(--color-text-light-1);
  margin: 0 0 28px;
  max-width: 620px;
  font-size: 16px;
}

.cl-cards {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 18px;
}

@media (max-width: 1100px) {
  .cl-cards {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 560px) {
  .cl-cards {
    grid-template-columns: 1fr;
  }
}

.cl-card {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  border-radius: 20px;
  color: #fff;
  background: linear-gradient(160deg, var(--cl-card-a) 0%, var(--cl-card-b) 100%);
  box-shadow: 0 20px 50px -30px rgb(8 22 41 / 0.8);
  transition: transform 0.2s, box-shadow 0.2s;
}

.cl-card::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: radial-gradient(420px 220px at 100% 0%, color-mix(in srgb, var(--accent) 45%, transparent), transparent 70%);
  opacity: 0.75;
  transition: opacity 0.2s;
}

.cl-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 30px 60px -28px color-mix(in srgb, var(--accent) 60%, #000);
}

.cl-card:hover::before {
  opacity: 1;
}

a.cl-card-main {
  display: grid;
  grid-template-columns: 52px 1fr;
  column-gap: 14px;
  row-gap: 2px;
  align-items: center;
  padding: 22px 20px 16px;
  color: #fff;
}

a.cl-card-main:hover {
  color: #fff;
  text-decoration: none;
}

.cl-card-main img {
  grid-row: span 2;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: rgb(255 255 255 / 0.95);
  padding: 4px;
}

.cl-card-name {
  font-size: 23px;
  font-weight: 700;
  letter-spacing: -0.02em;
  line-height: 1.1;
}

.cl-card-tag {
  color: var(--cl-on-navy);
  font-size: 14px;
}

.cl-card-links {
  display: flex;
  gap: 4px;
  margin-top: auto;
  padding: 0 12px 14px;
}

.cl-card-links a {
  font-weight: 600;
  font-size: 14px;
  color: color-mix(in srgb, var(--accent) 45%, #fff);
  padding: 7px 10px;
  border-radius: 8px;
}

.cl-card-links a:hover {
  color: #fff;
  background: rgb(255 255 255 / 0.07);
  text-decoration: none;
}

.cl-card-links a:last-child {
  margin-left: auto;
}

a.cl-else {
  display: flex;
  align-items: center;
  gap: 14px;
  margin-top: 18px;
  padding: 14px 20px;
  border: 1px solid var(--color-secondary);
  border-radius: 14px;
  color: var(--color-text-light);
}

a.cl-else img {
  flex: none;
  width: 36px;
  height: 36px;
}

a.cl-else span {
  flex: 1;
}

a.cl-else b {
  color: var(--color-text);
}

a.cl-else:hover {
  border-color: var(--color-primary);
  text-decoration: none;
  color: var(--color-text-light);
}

/* ---------------------------------------------------------------- footer */
/* Gitea's .page-footer is a flex row (a column on phones); ours stacks its
   own two rows */
.page-footer.cl-foot {
  display: block;
  padding: 0;
}

.cl-foot {
  background: var(--cl-navy-deep);
  color: #a9bfd9;
  border-top: 1px solid rgb(220 235 255 / 0.08);
  margin-top: 48px;
  font-size: 15px;
}

.cl-foot a {
  color: #c9d9ec;
}

.cl-foot a:hover {
  color: #fff;
  text-decoration: none;
}

.cl-foot ul {
  list-style: none;
  margin: 0;
  padding: 0;
}

.cl-foot li {
  margin: 0 0 8px;
}

.cl-foot-in {
  display: grid;
  grid-template-columns: 1.6fr 1fr 1fr 1fr;
  gap: 32px;
  padding-top: 44px;
  padding-bottom: 20px;
}

@media (max-width: 820px) {
  .cl-foot-in {
    grid-template-columns: 1fr 1fr;
  }
}

.cl-foot-brand p {
  max-width: 340px;
  margin: 12px 0 0;
}

a.cl-brand {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  font-weight: 700;
  font-size: 18px;
  color: #fff;
}

h2.cl-foot-h {
  font: 12px var(--cl-mono);
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--cl-blue-hot);
  margin: 0 0 12px;
}

/* © | Powered by Gitea | language · licenses · API · privacy · terms, the
   middle one on the center line, as on the forum */
.cl-foot-legal {
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  align-items: center;
  gap: 16px;
  padding-top: 14px;
  padding-bottom: 22px;
  font-size: 14px;
  border-top: 1px solid rgb(220 235 255 / 0.1);
}

.cl-legal-links {
  justify-self: end;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 4px 12px;
}

.cl-legal-links .ui.dropdown {
  color: #c9d9ec;
}

@media (max-width: 640px) {
  .cl-foot-legal {
    grid-template-columns: 1fr;
    justify-items: center;
    text-align: center;
  }

  .cl-legal-links {
    justify-self: center;
    justify-content: center;
  }
}
