@import url('https://fonts.googleapis.com/css2?family=Tenor+Sans&family=Onest:wght@400;500;600&family=Mona+Sans:ital,wght@0,400;0,500;0,600;1,400&family=JetBrains+Mono:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap'); gitea-theme-meta-info { --theme-display-name: "neogothic"; --theme-color-scheme: "dark"; } :root { --is-dark-theme: true; --color-primary: #8A9299; --color-primary-contrast: #0A0B0D; --color-primary-dark-1: #A3ABB2; --color-primary-dark-2: #BCC3C9; --color-primary-dark-3: #D5DADF; --color-primary-dark-4: #E6E9EC; --color-primary-dark-5: #EEF0F2; --color-primary-dark-6: #F5F6F7; --color-primary-dark-7: #FBFBFC; --color-primary-light-1: #6B757D; --color-primary-light-2: #4E5962; --color-primary-light-3: #3A434A; --color-primary-light-4: #272E33; --color-primary-light-5: #1C2125; --color-primary-light-6: #121518; --color-primary-light-7: #0B0D0F; --color-primary-alpha-10: #8A929919; --color-primary-alpha-20: #8A929933; --color-primary-alpha-30: #8A92994b; --color-primary-alpha-40: #8A929966; --color-primary-alpha-50: #8A929980; --color-primary-alpha-60: #8A929999; --color-primary-alpha-70: #8A9299b3; --color-primary-alpha-80: #8A9299cc; --color-primary-alpha-90: #8A9299e1; --color-primary-hover: var(--color-primary-dark-1); --color-primary-active: var(--color-primary-dark-2); --color-secondary: #1E2227; --color-secondary-dark-1: #262B30; --color-secondary-dark-2: #2F353B; --color-secondary-dark-3: #3A4148; --color-secondary-dark-4: #464E56; --color-secondary-dark-5: #535B64; --color-secondary-dark-6: #616971; --color-secondary-dark-7: #6F777F; --color-secondary-dark-8: #7E858C; --color-secondary-dark-9: #8C9399; --color-secondary-dark-10: #9AA0A6; --color-secondary-dark-11: #A9AEB3; --color-secondary-dark-12: #B8BCC0; --color-secondary-dark-13: #C6C9CD; --color-secondary-light-1: #181B1F; --color-secondary-light-2: #131619; --color-secondary-light-3: #0F1114; --color-secondary-light-4: #0B0D0F; --color-secondary-alpha-10: #1E222719; --color-secondary-alpha-20: #1E222733; --color-secondary-alpha-30: #1E22274b; --color-secondary-alpha-40: #1E222766; --color-secondary-alpha-50: #1E222780; --color-secondary-alpha-60: #1E222799; --color-secondary-alpha-70: #1E2227b3; --color-secondary-alpha-80: #1E2227cc; --color-secondary-alpha-90: #1E2227e1; --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: #E2E4E6; --color-console-fg-subtle: #9BA0A5; --color-console-bg: #0C0E10; --color-console-border: #1E2227; --color-console-hover-bg: #14171B; --color-console-active-bg: #1A1E22; --color-console-menu-bg: #0F1114; --color-console-menu-border: #262B30; --color-console-link: #9BA0A5; --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: #16191C; --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: #262B30; --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: #121518; --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: #0E1013; --color-ansi-black: #16191C; --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: #464E56; --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: #2F353B; --color-grey-light: #7E858C; --color-gold: #A89064; --color-white: #ffffff; --color-diff-added-fg: #7CB05C; --color-diff-added-linenum-bg: #1C2A1C; --color-diff-added-row-bg: #141C14; --color-diff-added-row-border: #26382A; --color-diff-added-word-bg: #2E4A2E; --color-diff-moved-row-bg: #5F5A2A; --color-diff-moved-row-border: #8E8A55; --color-diff-removed-fg: #E07070; --color-diff-removed-linenum-bg: #2E1A1A; --color-diff-removed-row-bg: #1E1414; --color-diff-removed-row-border: #3E2626; --color-diff-removed-word-bg: #4E2A2A; --color-diff-inactive: #141618; --color-error-border: #5A2B2B; --color-error-bg: #1F1315; --color-error-bg-active: #2C1A1C; --color-error-bg-hover: #261618; --color-error-text: #E07070; --color-success-border: #2A4A2A; --color-success-bg: #131D13; --color-success-text: #7CB05C; --color-warning-border: #5A4A2A; --color-warning-bg: #1F1A10; --color-warning-text: #C4AB7A; --color-info-border: #2B3F5A; --color-info-bg: #121A24; --color-info-text: #7AA8D6; --color-priority-border: #4A3A7A; --color-priority-bg: #1A1524; --color-priority-text: #A895E0; --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: #0A0B0D; --color-box-header: #0E1013; --color-box-body: #0C0E10; --color-box-body-highlight: #14171B; --color-text-dark: #F2F3F4; --color-text: #E2E4E6; --color-text-light: #B4B9BE; --color-text-light-1: #9BA0A5; --color-text-light-2: #7E858B; --color-text-light-3: #666D73; --color-footer: var(--color-nav-bg); --color-timeline: #1E2227; --color-input-text: var(--color-text-dark); --color-input-background: #0C0D10; --color-input-toggle-background: #262B30; --color-input-border: #262B30; --color-light: #ffffff0a; --color-light-border: #8A929933; --color-hover: #8A929914; --color-hover-opaque: #15181B; --color-active: #8A929926; --color-menu: #0D0F12; --color-card: #0D0F12; --color-markup-table-row: #8A92990f; --color-markup-code-block: #8A929914; --color-markup-code-inline: #8A929926; --color-button: #101215; --color-code-bg: #1e1f22; --color-shadow: #00000080; --color-shadow-opaque: #000000; --color-secondary-bg: #16191C; --color-expand-button: #262B30; --color-placeholder-text: var(--color-text-light-3); --color-editor-line-highlight: var(--color-primary-alpha-20); --color-editor-selection: var(--color-primary-alpha-40); --color-project-column-bg: var(--color-secondary-light-2); --color-caret: #BFD0E0; --color-reaction-bg: #8A929914; --color-reaction-hover-bg: var(--color-primary-light-4); --color-reaction-active-bg: var(--color-primary-light-5); --color-tooltip-text: #F2F3F4; --color-tooltip-bg: #0D0F12f5; --color-nav-bg: #08090B; --color-nav-hover-bg: #14171B; --color-nav-text: var(--color-text); --color-secondary-nav-bg: #0B0D0F; --color-label-text: var(--color-text); --color-label-bg: #8A92994b; --color-label-hover-bg: #8A9299a0; --color-label-active-bg: #8A9299; --color-accent: #BFD0E0; --color-small-accent: var(--color-primary-light-5); --color-highlight-fg: #BFD0E0; --color-highlight-bg: #1F2A35; --color-overlay-backdrop: #000000c0; --color-danger: var(--color-red); --color-transparency-grid-light: #1a1a1a; --color-transparency-grid-dark: #0f0f0f; --color-workflow-edge-hover: #6F777F; --color-syntax-keyword: #cf8e6d; --color-syntax-bool: #cf8e6d; --color-syntax-control: #cf8e6d; --color-syntax-name: #bcbec4; --color-syntax-type: #bcbec4; --color-syntax-number: #2aacb8; --color-syntax-operator: #bcbec4; --color-syntax-regexp: #6aab73; --color-syntax-string: #6aab73; --color-syntax-comment: #7a7e85; --color-syntax-invalid: #f75464; --color-syntax-link: var(--color-primary); --color-syntax-tag: #d5b778; --color-syntax-attribute: #c77dbb; --color-syntax-property: #c77dbb; --color-syntax-variable: #bcbec4; --color-syntax-string-special: #6aab73; --color-syntax-escape: #cf8e6d; --color-syntax-entity: #56a8f5; --color-syntax-preproc: #b3ae60; --color-syntax-preproc-file: #6aab73; --color-syntax-decorator: #b3ae60; --color-syntax-namespace: #bcbec4; --color-syntax-name-pseudo: #c77dbb; --color-syntax-comment-special: #5f826b; --color-syntax-text: #bcbec4; --color-syntax-text-alt: #a1a3a8; --color-syntax-punctuation: #bcbec4; --color-syntax-whitespace: #4b5059; --color-syntax-diff-fg: #ffffff; --color-syntax-deleted-bg: #4E2A2A; --color-syntax-inserted-bg: #2E4A2E; --color-syntax-emph: #d5b778; --color-syntax-strong: #cf8e6d; --color-syntax-heading: #cf8e6d; --color-syntax-subheading: #6aab73; --color-syntax-output: #7a7e85; --color-syntax-prompt: #cf8e6d; --color-syntax-traceback: #f75464; --color-syntax-matching-bracket-bg: #2aacb848; --color-syntax-nonmatching-bracket-bg: #f7546448; --color-code-sidebar-bg: #2b2d30; --color-editor-line-number: #4b5059; --color-border: var(--color-secondary); --color-border-secondary: #151719; --color-moon: #BFD0E0; --color-moon-alpha-15: rgba(191, 208, 224, 0.15); --color-moon-alpha-30: rgba(191, 208, 224, 0.30); --color-moon-alpha-50: rgba(191, 208, 224, 0.50); --glass-bg: rgba(13, 15, 18, 0.62); --glass-bg-strong: rgba(10, 12, 14, 0.96); --glass-border: rgba(255, 255, 255, 0.07); --glass-border-strong: rgba(255, 255, 255, 0.13); --glass-highlight: rgba(255, 255, 255, 0.10); --glass-blur: 18px; --marble: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1600' height='1600'%3E%3Cfilter id='m' x='0' y='0' width='100%25' height='100%25' color-interpolation-filters='sRGB'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.0032 0.005' numOctaves='4' seed='9' stitchTiles='stitch'/%3E%3CfeColorMatrix type='luminanceToAlpha'/%3E%3CfeComponentTransfer%3E%3CfeFuncA type='table' tableValues='0 0 0 0 0 0 0 0.3 1 0.3 0 0 0 0 0 0 0'/%3E%3C/feComponentTransfer%3E%3CfeColorMatrix values='0 0 0 0 0.70 0 0 0 0 0.76 0 0 0 0 0.84 0 0 0 1 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23m)'/%3E%3C/svg%3E"); --fonts-proportional: 'Onest', system-ui, -apple-system, 'Segoe UI', sans-serif; --fonts-monospace: 'JetBrains Mono', ui-monospace, monospace; --fonts-regular: 'Onest', system-ui, -apple-system, 'Segoe UI', sans-serif; --font-family-header: 'Tenor Sans', 'Optima', 'Candara', sans-serif; --font-family-prose: 'Mona Sans', 'Onest', system-ui, -apple-system, sans-serif; --border-radius: 0; --border-radius-medium: 0; --border-radius-full: 0; --transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1); --transition-base: 0.25s cubic-bezier(0.4, 0, 0.2, 1); accent-color: var(--color-accent); color-scheme: dark; } .emoji[aria-label="check mark"], .emoji[aria-label="currency exchange"], .emoji[aria-label="TOP arrow"], .emoji[aria-label="END arrow"], .emoji[aria-label="ON! arrow"], .emoji[aria-label="SOON arrow"], .emoji[aria-label="heavy dollar sign"], .emoji[aria-label="copyright"], .emoji[aria-label="registered"], .emoji[aria-label="trade mark"], .emoji[aria-label="multiply"], .emoji[aria-label="plus"], .emoji[aria-label="minus"], .emoji[aria-label="divide"], .emoji[aria-label="curly loop"], .emoji[aria-label="double curly loop"], .emoji[aria-label="wavy dash"], .emoji[aria-label="paw prints"], .emoji[aria-label="musical note"], .emoji[aria-label="musical notes"] { filter: invert(100%) hue-rotate(180deg); } body { background-color: var(--color-body); background-image: radial-gradient(ellipse 70% 45% at 50% -10%, rgba(191, 208, 224, 0.06) 0%, transparent 60%), linear-gradient(rgba(10, 11, 13, 0.99), rgba(10, 11, 13, 0.99)), var(--marble); background-size: auto, auto, 1600px 1600px; background-attachment: fixed; color: var(--color-text); font-family: var(--fonts-regular); font-weight: 400; font-size: 14px; line-height: 1.5; letter-spacing: 0; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } *, *::before, *::after { border-radius: 0 !important; } h1, h2, h3, h4, h5, h6, .ui.header { font-family: var(--font-family-header) !important; font-weight: 400 !important; letter-spacing: 0.03em; text-transform: none; color: var(--color-text-dark); } h1, .ui.header.large { font-size: 2em; } h2 { font-size: 1.55em; } h3 { font-size: 1.25em; } h4, h5, h6 { font-size: 1.1em; } h1, h2, .page-content.home .hero .ui.header.title, .repo-header .flex-text-block.tw-text-18 { text-shadow: 0 0 24px var(--color-moon-alpha-15); } .ui.attached.header, .ui.header.segment, .ui.top.attached.header { font-size: 18px; padding-top: 11px; padding-bottom: 11px; } .markup { font-family: var(--font-family-prose); font-size: 15px; line-height: 1.6; color: var(--color-text); } .markup h1, .markup h2, .markup h3, .markup h4, .markup h5, .markup h6 { font-family: var(--font-family-header) !important; font-weight: 400 !important; letter-spacing: 0.03em; margin-top: 1.6em; margin-bottom: 0.6em; } .markup h1 { font-size: 2.1em; } .markup h2 { font-size: 1.6em; } .markup h3 { font-size: 1.3em; } .markup h1, .markup h2 { padding-bottom: 0.25em; border-bottom: 1px solid var(--glass-border-strong); } .markup p, .markup li, .markup td, .markup th, .markup blockquote { font-family: var(--font-family-prose); } .markup table { font-size: 14px; } .repo-file-cell.name, .repo-file-cell.message, .latest-commit .commit-summary, #commits-table td.message, .commit-summary, .commit-body, .commit-header h3 { font-family: var(--font-family-prose); } .markup blockquote { border-left: 1px solid var(--color-secondary-dark-4); color: var(--color-text-light); font-style: italic; } .markup code, .markup pre, .markup kbd, .markup tt { font-family: var(--fonts-monospace); font-size: 0.86em; } .markup code:not(.chroma):not(pre code), .markup tt { background: var(--color-markup-code-inline) !important; color: var(--color-text-dark) !important; padding: 1px 5px; } .markup pre { border: 1px solid var(--glass-border) !important; } .markup table th, .markup table td { border-color: var(--glass-border-strong) !important; } .markup table tr:nth-child(2n) { background: var(--color-markup-table-row) !important; } a { color: var(--color-link, var(--color-primary-dark-1)); text-decoration: none; text-underline-offset: 3px; transition: color var(--transition-fast); } a:hover { color: var(--color-text-dark); text-decoration: underline; text-decoration-thickness: 1px; text-decoration-color: var(--color-moon-alpha-50); } .ui.button:hover, .item:hover, .file-tree-item:hover, a.ui.label:hover, a:hover .ui.avatar, .markup a:hover code { text-decoration: none; } :root { --color-link: var(--color-primary-dark-1); --color-link-hover: var(--color-text-dark); } :focus-visible { outline: 2px solid var(--color-moon) !important; outline-offset: 2px; } .ui.button:focus-visible, [role="button"]:focus-visible, .ui.input input:focus-visible, .ui.form input:focus-visible, .ui.form textarea:focus-visible { outline: 2px solid var(--color-moon) !important; outline-offset: -2px; } #navbar { background: rgba(8, 9, 11, 0.72); backdrop-filter: blur(20px) saturate(120%); -webkit-backdrop-filter: blur(20px) saturate(120%); border-bottom: 1px solid var(--glass-border); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.04); } #navbar .item { font-family: var(--fonts-regular); font-size: 14px; font-weight: 500; letter-spacing: 0; } #navbar .item.active { box-shadow: inset 0 -2px 0 var(--color-moon); background: transparent; } .ui.secondary.menu .item, .ui.tabular.menu .item { color: var(--color-text-light); font-family: var(--fonts-monospace); font-size: 12px; font-weight: 500; letter-spacing: 0.08em; text-transform: uppercase; border: none !important; background: transparent !important; transition: color var(--transition-base); position: relative; } .ui.secondary.menu .item:hover, .ui.tabular.menu .item:hover { color: var(--color-text-dark); } .ui.secondary.menu .active.item, .ui.tabular.menu .active.item { color: var(--color-text-dark) !important; background: transparent !important; font-weight: 600; } .ui.secondary.pointing.menu { border-bottom: 1px solid var(--glass-border-strong); } .ui.secondary.pointing.menu .item, .ui.tabular.menu .item { margin-bottom: -1px; padding: 12px 14px !important; } .ui.secondary.pointing.menu .item::after, .ui.tabular.menu .item::after { content: ''; display: block !important; position: absolute; left: 14px; right: 14px; bottom: -1px; height: 2px; background: var(--color-moon); transform: scaleX(0); transform-origin: center; transition: transform var(--transition-base), box-shadow var(--transition-base); border: 0; width: auto; top: auto; margin: 0; } .ui.secondary.pointing.menu .item:hover::after, .ui.tabular.menu .item:hover::after { transform: scaleX(1); background: var(--color-primary-light-1); } .ui.secondary.pointing.menu .active.item::after, .ui.tabular.menu .active.item::after { transform: scaleX(1); background: var(--color-moon); box-shadow: 0 0 12px var(--color-moon-alpha-50); } .ui.secondary.pointing.menu .item > .ui.label, .ui.tabular.menu .item > .ui.label { margin-left: 6px; font-size: 11px; letter-spacing: 0; } .ui.segment.sub-menu.repository-menu, .repository .ui.segment.sub-menu { background: rgba(255, 255, 255, 0.015) !important; border-bottom: 1px solid var(--glass-border); backdrop-filter: none !important; -webkit-backdrop-filter: none !important; box-shadow: none !important; } .repo-header .flex-text-block.tw-text-18 { font-family: var(--font-family-header); font-size: 24px; font-weight: 400; letter-spacing: 0.03em; color: var(--color-text-light-1); } .repo-header .flex-text-block.tw-text-18 a, .repo-header .flex-text-block.tw-text-18 .tw-font-semibold { font-weight: 400; } .repo-header .flex-text-block.tw-text-18 a { color: var(--color-text-dark); } .repo-header .flex-text-block.tw-text-18 a.tw-font-normal { color: var(--color-text-light-1); } .repo-header .flex-text-block.tw-text-18 a:hover { color: var(--color-moon); text-decoration: none; } .ui.button, .ui.basic.button { background: linear-gradient(180deg, rgba(255, 255, 255, 0.09), rgba(255, 255, 255, 0.02)), #14171B; border: 1px solid var(--glass-border-strong); color: var(--color-text-dark); font-family: var(--fonts-monospace); text-transform: uppercase; letter-spacing: 0.06em; font-size: 12px; font-weight: 500; transition: border-color var(--transition-base), background var(--transition-base), color var(--transition-base), box-shadow var(--transition-base); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.14), 0 1px 2px rgba(0, 0, 0, 0.5) !important; } .ui.button:hover, .ui.basic.button:hover { border-color: rgba(255, 255, 255, 0.24); color: var(--color-text-dark); background: linear-gradient(180deg, rgba(255, 255, 255, 0.17), rgba(255, 255, 255, 0.05)), #14171B !important; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.22), 0 4px 14px -6px rgba(191, 208, 224, 0.35) !important; } .ui.button:active, .ui.basic.button:active { background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.06)), #101215 !important; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.5) !important; } .ui.primary.button, .ui.green.button, .ui.blue.button, .ui.primary.buttons .button { background: linear-gradient(180deg, #E9ECEF 0%, #C2C9CF 50%, #A3ACB4 100%) !important; color: var(--color-primary-contrast) !important; border: 1px solid #C6CCD1; font-weight: 600; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.75), inset 0 -1px 0 rgba(0, 0, 0, 0.18), 0 2px 10px -2px rgba(0, 0, 0, 0.6) !important; } .ui.primary.button:hover, .ui.green.button:hover, .ui.blue.button:hover, .ui.primary.buttons .button:hover { background: linear-gradient(180deg, #F6F8F9 0%, #D5DBE0 50%, #B7BFC7 100%) !important; border-color: #DDE2E6; color: var(--color-primary-contrast) !important; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.85), inset 0 -1px 0 rgba(0, 0, 0, 0.18), 0 6px 20px -6px rgba(191, 208, 224, 0.45) !important; } .ui.primary.button:active, .ui.primary.buttons .button:active { background: linear-gradient(180deg, #B7BFC7 0%, #D5DBE0 100%) !important; box-shadow: inset 0 2px 4px rgba(0, 0, 0, 0.25) !important; } .ui.red.button, .ui.negative.button, .ui.red.buttons .button { background: linear-gradient(180deg, rgba(224, 112, 112, 0.10), rgba(224, 112, 112, 0.02)), #14171B !important; border: 1px solid var(--color-error-border); color: var(--color-error-text) !important; } .ui.red.button:hover, .ui.negative.button:hover, .ui.red.buttons .button:hover { background: linear-gradient(180deg, rgba(224, 112, 112, 0.22), rgba(224, 112, 112, 0.08)), #14171B !important; border-color: var(--color-error-text); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08) !important; } .ui.button.icon, .ui.icon.button { letter-spacing: 0; } .ui.buttons { gap: 0 !important; } .ui.buttons > .button, .ui.buttons > .ui.button { margin: 0 !important; } .ui.buttons > .button:not(:first-child), .ui.buttons > .ui.button:not(:first-child) { margin-left: -1px !important; } .ui.buttons > .button:hover, .ui.button.active, .ui.buttons .button.active { position: relative; z-index: 2; } .ui.button.active, .ui.buttons .button.active { background: linear-gradient(180deg, rgba(191, 208, 224, 0.22), rgba(191, 208, 224, 0.10)), #14171B !important; color: var(--color-text-dark) !important; border-color: var(--color-moon-alpha-50) !important; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18) !important; } .ui.basic.buttons { border-color: var(--glass-border-strong); } .ui.basic.buttons .button { border-left-color: var(--glass-border-strong); } .ui.labeled.button > .label { background: linear-gradient(180deg, rgba(255, 255, 255, 0.06), rgba(255, 255, 255, 0.015)), #111417; border: 1px solid var(--glass-border-strong); border-left: 1px solid rgba(0, 0, 0, 0.5); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08), 0 1px 2px rgba(0, 0, 0, 0.5); color: var(--color-text-dark); font-family: var(--fonts-monospace); font-weight: 500; padding: 0 10px; } .ui.labeled.button > .button:hover + .label { color: var(--color-moon); } .ui.input input, .ui.form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]), .ui.form textarea, .ui.selection.dropdown, .ui.form select { background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.05)), #121518 !important; border: 1px solid var(--glass-border-strong) !important; color: var(--color-input-text) !important; font-family: var(--fonts-regular); font-size: 14px; box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.45), inset 0 -1px 0 rgba(255, 255, 255, 0.04) !important; transition: border-color var(--transition-base), box-shadow var(--transition-base); } .ui.input input, .ui.form input:not([type="checkbox"]):not([type="radio"]):not([type="file"]) { padding: 10px 12px !important; } .ui.icon.input input { padding-right: 2.67142857em !important; } .ui.left.icon.input input { padding-left: 2.67142857em !important; padding-right: 12px !important; } .ui.icon.input > i.icon { color: var(--color-text-light-2); opacity: 1; transition: color var(--transition-base); } .ui.input input:focus, .ui.form input:focus, .ui.form textarea:focus, .ui.selection.dropdown:focus, .ui.selection.active.dropdown { border-color: var(--color-moon-alpha-50) !important; box-shadow: inset 0 1px 3px rgba(0, 0, 0, 0.6), 0 0 0 1px var(--color-moon-alpha-30), 0 0 18px var(--color-moon-alpha-15) !important; } .ui.input:focus-within > i.icon { color: var(--color-moon); } ::placeholder { color: var(--color-placeholder-text) !important; font-style: italic; opacity: 1; } .ui.action.input .ui.ui.button { border-color: var(--glass-border-strong); } input[type="checkbox"], input[type="radio"] { border-color: var(--glass-border-strong); background: linear-gradient(180deg, rgba(255, 255, 255, 0.02), rgba(255, 255, 255, 0.05)), #121518; box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.45); } input[type="checkbox"]:checked, input[type="checkbox"]:indeterminate, input[type="radio"]:checked { border-color: var(--color-primary-dark-2); background: linear-gradient(180deg, #D5DADF, #A3ABB2); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.5); } input[type="checkbox"]:checked::before { background: var(--color-primary-contrast); } .ui.card, .ui.segment, .ui.attached.segment, .ui.segments { background: var(--glass-bg) !important; border: 1px solid var(--glass-border); backdrop-filter: blur(var(--glass-blur)) saturate(120%); -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(120%); box-shadow: 0 24px 60px -36px rgba(0, 0, 0, 0.9) !important; } .ui.segment:not(.attached), .ui.card, .ui.segments, .ui.top.attached.segment, .ui.top.attached.header, .ui.attached.header:first-child { box-shadow: inset 0 1px 0 var(--glass-highlight), 0 24px 60px -36px rgba(0, 0, 0, 0.9) !important; } .ui.segments > .ui.segment, .ui.segments > .ui.attached.segment, .ui.segments > .ui.attached.header { backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none !important; } .ui.segments > .ui.attached.header:first-child, .ui.segments > .ui.top.attached.header { box-shadow: inset 0 1px 0 var(--glass-highlight) !important; } .ui.header.segment, .ui.attached.header, .ui.top.attached.header, .file-header.ui.top.attached.header, .diff-file-header, .ui.modal > .header { background: rgba(255, 255, 255, 0.03) !important; border-bottom: 1px solid var(--glass-border); position: relative; z-index: 1; } .file-header .file-info { font-family: var(--fonts-monospace); font-size: 12px; letter-spacing: 0.06em; text-transform: uppercase; color: var(--color-text-light); } .file-info-entry + .file-info-entry { border-left-color: var(--color-secondary-dark-3); } .ui.segment.code-view, .view-code, pre, code, .chroma { background-color: var(--color-code-bg) !important; color: #bcbec4 !important; border: 0px !important; } .ui.segment.code-view, .view-code { backdrop-filter: none; -webkit-backdrop-filter: none; } .lines-num { background-color: var(--color-code-sidebar-bg) !important; color: var(--color-editor-line-number) !important; } .file-view.code-view table, .file-view.code-view tbody, .file-view.code-view tr { background: transparent !important; background-color: transparent !important; border-collapse: collapse !important; border-spacing: 0 !important; border: 0 !important; border-bottom: 0 !important; border-bottom-color: transparent !important; } .file-view.code-view .lines-num, td.lines-num { background: var(--color-code-sidebar-bg) !important; background-color: var(--color-code-sidebar-bg) !important; } .file-view.code-view .lines-code, .file-view.code-view .lines-code.chroma, td.lines-code, td.lines-code.chroma { background: var(--color-code-bg) !important; background-color: var(--color-code-bg) !important; } .lines-code.chroma span, .chroma span { background: transparent !important; background-color: transparent !important; } .chroma .k, .chroma .kd, .chroma .kn, .chroma .kp, .chroma .kr, .chroma .kt { color: #cf8e6d !important; } .chroma .s, .chroma .s1, .chroma .s2, .chroma .sb, .chroma .sc { color: #6aab73 !important; } .chroma .sd { color: #5f826b !important; font-style: italic; } .chroma .c, .chroma .c1, .chroma .cm { color: #7a7e85 !important; } .chroma .m, .chroma .mb, .chroma .mf, .chroma .mh, .chroma .mi, .chroma .mo { color: #2aacb8 !important; } .chroma .nf, .chroma .fm { color: #56a8f5 !important; } .chroma .nd { color: #b3ae60 !important; } .chroma .nc { color: #bcbec4 !important; } .chroma .o, .chroma .ow { color: #bcbec4 !important; } .chroma .p { color: #bcbec4 !important; } .chroma .n { color: #bcbec4 !important; } .chroma .na { color: #c77dbb !important; } .chroma .nb { color: #8888c6 !important; } .chroma .nt { color: #d5b778 !important; } .chroma .nv, .chroma .vc, .chroma .vg, .chroma .vi { color: #bcbec4 !important; } .chroma .kc { color: #cf8e6d !important; } .chroma .nn { color: #bcbec4 !important; } .file-view.code-view td.lines-num { padding: 0 8px !important; text-align: right !important; } .file-view.code-view td.lines-code { padding: 0 1px 0 5px !important; } .ui.table { background: transparent; border: 1px solid var(--glass-border); } .ui.table thead th { background: rgba(255, 255, 255, 0.03); color: var(--color-text-light); border-bottom: 1px solid var(--glass-border); font-family: var(--fonts-monospace); text-transform: uppercase; letter-spacing: 0.08em; font-size: 11px; font-weight: 600; padding: 12px; } .ui.table tbody tr { border-bottom: 1px solid rgba(255, 255, 255, 0.05); transition: background var(--transition-fast); } .ui.table tbody tr:hover { background: var(--color-hover); } .ui.table td { padding: 10px 12px; } .ui.label { background: rgba(255, 255, 255, 0.04); border: 1px solid var(--glass-border-strong); color: var(--color-text-light); font-family: var(--fonts-monospace); font-size: 11px; font-weight: 500; letter-spacing: 0.04em; padding: 3px 8px; } .ui.label.primary, .ui.label.blue, .ui.basic.label.primary { background: var(--color-primary-alpha-20); border-color: var(--color-primary-alpha-50); color: var(--color-primary-dark-3); } .ui.label.circular, .ui.circular.label { padding: 2px 7px; min-width: 0; } a.sha, .ui.sha.label, .ui.label.sha, .ui .sha.label, .sha.label, .ui.label.commit-id-short, .commit-id-short { background: transparent !important; border: 0 !important; box-shadow: none !important; padding: 0 !important; margin: 0 !important; color: var(--color-text-light-2) !important; font-family: var(--fonts-monospace) !important; font-size: 12px !important; letter-spacing: 0.02em; } a.sha:hover, a.ui.sha.label:hover, a.commit-id-short:hover { color: var(--color-text-dark) !important; text-decoration: underline; } .ui.popup, .ui.tooltip, .tippy-box, [data-tooltip]::before, [data-tooltip]::after { background: var(--glass-bg-strong) !important; color: var(--color-text) !important; border: 1px solid var(--glass-border-strong) !important; box-shadow: inset 0 1px 0 var(--glass-highlight), 0 12px 32px -8px rgba(0, 0, 0, 0.8) !important; font-family: var(--fonts-regular); font-size: 13px; } .tippy-content { background: transparent !important; color: var(--color-text) !important; } .tippy-arrow { color: #0D0F12 !important; } .ui.popup::before { background: #0D0F12 !important; border: 1px solid var(--glass-border-strong) !important; } .ui.dropdown .menu, .overflow-menu-popup { background: var(--glass-bg-strong) !important; border: 1px solid var(--glass-border-strong) !important; backdrop-filter: blur(24px) saturate(120%); -webkit-backdrop-filter: blur(24px) saturate(120%); box-shadow: inset 0 1px 0 var(--glass-highlight), 0 20px 50px -12px rgba(0, 0, 0, 0.9) !important; } .ui.dropdown .menu > .item { background: transparent !important; color: var(--color-text) !important; border-top: 1px solid rgba(255, 255, 255, 0.04) !important; padding: 9px 14px !important; font-size: 12.5px; } .ui.dropdown .menu > .item:first-child { border-top: none !important; } .ui.dropdown .menu > .item:hover, .ui.dropdown .menu > .item.selected, .overflow-menu-popup > .item:hover { background: var(--color-hover) !important; color: var(--color-text-dark) !important; } .ui.dropdown .menu > .item.active { background: var(--color-active) !important; color: var(--color-text-dark) !important; box-shadow: inset 2px 0 0 var(--color-moon); } .ui.segment:has(.ui.dropdown.active), .ui.segments:has(.ui.dropdown.active), .ui.attached.header:has(.ui.dropdown.active), .ui.attached.menu:has(.ui.dropdown.active), .repo-button-row:has(.ui.dropdown.active), .file-header:has(.ui.dropdown.active), .diff-file-header:has(.ui.dropdown.active), #portfolio-controls:has(.ui.dropdown.active) { position: relative; z-index: 30; } .ui.dropdown .menu > .header { font-family: var(--font-family-header); font-size: 14px; letter-spacing: 0.02em; color: var(--color-text-light); } footer, .page-footer { background: rgba(8, 9, 11, 0.72) !important; backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); border-top: 1px solid var(--glass-border); font-size: 12px; } ::-webkit-scrollbar { width: 10px; height: 10px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: var(--color-secondary-dark-2); border: 3px solid transparent; background-clip: content-box; } ::-webkit-scrollbar-thumb:hover { background: var(--color-primary-light-1); background-clip: content-box; } ::-webkit-scrollbar-corner { background: transparent; } * { scrollbar-color: var(--color-secondary-dark-2) transparent; scrollbar-width: thin; } ::selection { background: var(--color-moon-alpha-30); color: var(--color-text-dark); } ::-moz-selection { background: var(--color-moon-alpha-30); color: var(--color-text-dark); } body, input, textarea { caret-color: var(--color-caret); } .ui.loader::before { border-color: var(--glass-border-strong) !important; } .ui.loader::after { border-color: var(--color-moon) transparent transparent !important; } .ui.message { background: var(--glass-bg) !important; border: 1px solid var(--glass-border-strong); color: var(--color-text); backdrop-filter: blur(var(--glass-blur)); -webkit-backdrop-filter: blur(var(--glass-blur)); box-shadow: inset 0 1px 0 var(--glass-highlight) !important; } .ui.negative.message, .ui.error.message { background: var(--color-error-bg) !important; border-color: var(--color-error-border); color: var(--color-error-text); } .ui.positive.message, .ui.success.message { background: var(--color-success-bg) !important; border-color: var(--color-success-border); color: var(--color-success-text); } .ui.warning.message { background: var(--color-warning-bg) !important; border-color: var(--color-warning-border); color: var(--color-warning-text); } .ui.info.message { background: var(--color-info-bg) !important; border-color: var(--color-info-border); color: var(--color-info-text); } .issue.is-open .issue-state-label, .ui.label.green { background: var(--color-success-bg) !important; border-color: var(--color-success-border) !important; color: var(--color-success-text) !important; } .issue.is-closed .issue-state-label, .ui.label.red { background: var(--color-error-bg) !important; border-color: var(--color-error-border) !important; color: var(--color-error-text) !important; } .heatmap rect, #user-heatmap rect { rx: 0 !important; ry: 0 !important; } #user-heatmap .ContributionCalendar-day[data-level="0"], .heatmap .ContributionCalendar-day[data-level="0"] { fill: #15181B !important; } #user-heatmap .ContributionCalendar-day[data-level="1"], .heatmap .ContributionCalendar-day[data-level="1"] { fill: #3A434A !important; } #user-heatmap .ContributionCalendar-day[data-level="2"], .heatmap .ContributionCalendar-day[data-level="2"] { fill: #5C6670 !important; } #user-heatmap .ContributionCalendar-day[data-level="3"], .heatmap .ContributionCalendar-day[data-level="3"] { fill: #8A9299 !important; } #user-heatmap .ContributionCalendar-day[data-level="4"], .heatmap .ContributionCalendar-day[data-level="4"] { fill: #BFD0E0 !important; } .ui.modal { background: var(--glass-bg-strong) !important; border: 1px solid var(--glass-border-strong); backdrop-filter: blur(24px) saturate(120%); -webkit-backdrop-filter: blur(24px) saturate(120%); box-shadow: inset 0 1px 0 var(--glass-highlight), 0 32px 80px -20px rgba(0, 0, 0, 0.9) !important; } .ui.modal > .header { color: var(--color-text-dark) !important; font-family: var(--font-family-header); font-size: 20px; } .ui.modal > .content { background: transparent !important; color: var(--color-text); } .ui.modal > .actions { background: rgba(255, 255, 255, 0.02) !important; border-top: 1px solid var(--glass-border); } .ui.dimmer { background: var(--color-overlay-backdrop) !important; backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px); } .ui.avatar, .avatar, img.avatar { border: 1px solid var(--glass-border-strong); box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.6); } .file-tree-item:hover { background: var(--color-hover) !important; } .file-tree-item.selected { background: var(--color-active) !important; box-shadow: inset 2px 0 0 var(--color-moon); } .ui.progress .bar, .ui.progress.small .bar { background: linear-gradient(90deg, var(--color-primary-light-1), var(--color-primary-dark-2)) !important; } kbd { font-family: var(--fonts-monospace); border: 1px solid var(--glass-border-strong); box-shadow: inset 0 -1px 0 var(--color-secondary-dark-2); background: rgba(255, 255, 255, 0.05); } .timeline-item .badge { border: 1px solid var(--glass-border-strong); } .page-content.home .hero .ui.header.title { font-size: 3em; letter-spacing: 0.14em; text-transform: uppercase; margin-bottom: 0.2em; } .page-content.home .hero .ui.large.text { color: var(--color-text-light); letter-spacing: 0.04em; } #portfolio-controls, #portfolio-controls *, .portfolio-card, .portfolio-card * { border-radius: 0 !important; } #portfolio-controls { position: relative; z-index: 10; background: var(--glass-bg) !important; border: 1px solid var(--glass-border) !important; backdrop-filter: blur(var(--glass-blur)) saturate(120%); -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(120%); box-shadow: inset 0 1px 0 var(--glass-highlight); } .portfolio-card { overflow: visible; z-index: 1; --glow-color: var(--color-primary); background: var(--glass-bg) !important; border: 1px solid var(--glass-border) !important; backdrop-filter: blur(var(--glass-blur)) saturate(120%); -webkit-backdrop-filter: blur(var(--glass-blur)) saturate(120%); box-shadow: inset 0 1px 0 var(--glass-highlight), 0 24px 60px -36px rgba(0, 0, 0, 0.9) !important; transition: border-color 0.5s cubic-bezier(0.4, 0, 0.2, 1), box-shadow 0.5s cubic-bezier(0.4, 0, 0.2, 1); transform: none !important; } .portfolio-card::before { content: ''; position: absolute; inset: 0; background: var(--glow-color, var(--color-primary)); opacity: 0; filter: blur(18px); z-index: -1; transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1); pointer-events: none; } .portfolio-card:hover { transform: none !important; border-color: var(--glass-border-strong) !important; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.18), 0 24px 60px -30px rgba(0, 0, 0, 0.95) !important; } .portfolio-card:hover::before { opacity: 0.28; } .portfolio-card .card-content, .portfolio-card .card-footer { background: transparent; position: relative; z-index: 1; } .portfolio-card .card-description { font-family: var(--font-family-prose); font-size: 15px; line-height: 1.55; } .portfolio-card .topic-tag { text-transform: uppercase; letter-spacing: 0.08em; font-size: 10.5px; } .portfolio-card .portfolio-link { text-transform: uppercase; letter-spacing: 0.08em; font-size: 12px; }