@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;500;600;700&family=JetBrains+Mono:ital,wght@0,300;0,400;0,500;1,400&display=swap'); gitea-theme-meta-info { --theme-display-name: "neogothic"; } :root { --is-dark-theme: true; --color-primary: #8A9299; --color-primary-dark-1: #A3ABB2; --color-primary-dark-2: #BCC3C9; --color-primary-dark-3: #D5DADF; --color-primary-dark-4: #EEF0F2; --color-primary-light-1: #6B757D; --color-primary-light-2: #4E5962; --color-primary-light-3: #3A434A; --color-primary-light-4: #272E33; --color-primary-alpha-10: rgba(138, 146, 153, 0.10); --color-primary-alpha-20: rgba(138, 146, 153, 0.20); --color-primary-alpha-30: rgba(138, 146, 153, 0.30); --color-primary-alpha-40: rgba(138, 146, 153, 0.40); --color-primary-alpha-50: rgba(138, 146, 153, 0.50); --color-primary-alpha-60: rgba(138, 146, 153, 0.60); --color-accent: #A89064; --color-accent-alpha-20: rgba(168, 144, 100, 0.20); --color-accent-alpha-40: rgba(168, 144, 100, 0.40); --color-body: #0A0B0D; --color-box-body: rgba(14, 16, 19, 0.88); --color-box-header: rgba(10, 12, 14, 0.94); --color-footer: #08090B; --color-navbar: rgba(8, 9, 11, 0.97); --color-menu: #0D0E11; --color-card: rgba(14, 16, 19, 0.75); --color-text: #E2E4E6; --color-text-light: #9BA0A5; --color-text-light-2: #6D7378; --color-text-light-3: #484D52; --color-link: #A3ABB2; --color-link-hover: #D5DADF; --color-border: #1E2227; --color-border-secondary: #151719; --color-secondary: #151719; --color-secondary-alpha-6: rgba(21, 23, 25, 0.6); --color-input-background: #0C0D10; --color-input-text: #E2E4E6; --color-input-border: #1E2227; --color-input-border-hover: #8A9299; --color-code-bg: #1e1f22; --color-code-sidebar-bg: #2b2d30; --color-editor-line-number: #4b5059; --fonts-proportional: 'JetBrains Mono', monospace; --fonts-monospace: 'JetBrains Mono', monospace; --fonts-regular: 'JetBrains Mono', monospace; --font-family-header: 'Cinzel', serif; --transition-fast: 0.15s cubic-bezier(0.4, 0, 0.2, 1); --transition-base: 0.25s cubic-bezier(0.4, 0, 0.2, 1); --transition-slow: 0.4s cubic-bezier(0.4, 0, 0.2, 1); } body { background-color: var(--color-body); background-image: radial-gradient(ellipse 80% 50% at 50% -20%, rgba(138, 146, 153, 0.03) 0%, transparent 50%), linear-gradient(180deg, var(--color-body) 0%, #080909 100%); background-attachment: fixed; color: var(--color-text); font-family: var(--fonts-regular); font-weight: 400; font-size: 13px; letter-spacing: 0.01em; -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; } h1, h2, h3, h4, h5, h6, .ui.header { font-family: var(--font-family-header) !important; font-weight: 500; letter-spacing: 0.12em; text-transform: uppercase; color: var(--color-text); } h1, .ui.header.large { font-size: 1.8em; } h2 { font-size: 1.4em; } h3 { font-size: 1.15em; } a { color: var(--color-link); text-decoration: none; transition: color var(--transition-fast); } a:hover { color: var(--color-link-hover); } * { border-radius: 0px !important; } .ui.menu, .ui.secondary.menu, .following.bar { background: var(--color-navbar) !important; border-bottom: 1px solid var(--color-border); backdrop-filter: blur(16px) saturate(180%); -webkit-backdrop-filter: blur(16px) saturate(180%); } .ui.secondary.menu .item { color: var(--color-text-light); font-family: var(--fonts-monospace); text-transform: uppercase; font-size: 0.8em; font-weight: 400; letter-spacing: 0.1em; border: none !important; margin: 0 4px; padding: 14px 8px; transition: color var(--transition-base); position: relative; } .ui.secondary.menu .item::after { content: ''; position: absolute; bottom: 0; left: 50%; width: 0; height: 1px; background: var(--color-primary); transition: all var(--transition-base); transform: translateX(-50%); } .ui.secondary.menu .item:hover { color: var(--color-text); } .ui.secondary.menu .item:hover::after { width: 100%; } .ui.secondary.menu .active.item { color: var(--color-text) !important; background: transparent !important; border: none !important; } .ui.secondary.menu .active.item::after { width: 100%; background: var(--color-accent); height: 2px; } .ui.container.fluid.padded { border-bottom: 1px solid var(--color-border); background: transparent; } .ui.button, .ui.basic.button { background: var(--color-primary-light-4); border: 1px solid var(--color-primary-alpha-50); color: var(--color-text); font-family: var(--fonts-monospace); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.85em; transition: all var(--transition-base); box-shadow: none !important; } .ui.button:hover { border-color: var(--color-primary); color: var(--color-text); background: var(--color-primary-alpha-30); } .ui.primary.button, .ui.green.button, .ui.blue.button { background: linear-gradient(180deg, var(--color-primary) 0%, var(--color-primary-light-1) 100%) !important; color: var(--color-body) !important; border: 1px solid var(--color-primary); font-weight: 500; box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.08) !important; } .ui.primary.button:hover { background: linear-gradient(180deg, var(--color-primary-dark-1) 0%, var(--color-primary) 100%) !important; border-color: var(--color-primary-dark-1); } .ui.buttons { gap: 0 !important; } .ui.buttons > .button, .ui.buttons > .ui.button { margin: 0 !important; font-size: 0.85rem !important; background: transparent !important; border: 1px solid var(--color-border) !important; color: var(--color-text-light) !important; } .ui.buttons > .button:not(:first-child), .ui.buttons > .ui.button:not(:first-child) { margin-left: -1px !important; } .ui.buttons > .button:hover, .ui.buttons > .ui.button:hover { z-index: 2; border-color: var(--color-primary) !important; color: var(--color-text) !important; } .ui.buttons .button.active, .ui.button.active { background: var(--color-primary-alpha-20) !important; color: var(--color-text) !important; border-color: var(--color-primary) !important; z-index: 3; } .ui.input input, .ui.form input[type="text"], .ui.form input[type="email"], .ui.form input[type="password"], .ui.form textarea { background: var(--color-input-background) !important; border: 1px solid var(--color-border) !important; color: var(--color-text) !important; padding: 12px 14px !important; font-family: var(--fonts-regular); font-size: 0.95em; transition: all var(--transition-base); } .ui.icon.input > i.icon { color: var(--color-text-light-2); opacity: 1; transition: color var(--transition-base); } .ui.icon.input input { padding-right: 2.67142857em !important; } .ui.left.icon.input input { padding-left: 2.67142857em !important; padding-right: 14px !important; } .ui.input input:focus, .ui.form input:focus, .ui.form textarea:focus { border-color: var(--color-primary) !important; box-shadow: 0 0 0 1px var(--color-primary-alpha-30) !important; outline: none; } .ui.input:focus-within > i.icon { color: var(--color-primary); } .ui.input input::placeholder, .ui.form input::placeholder, .ui.form textarea::placeholder { color: var(--color-text-light-3); font-style: italic; font-weight: 300; } .ui.card, .ui.segment, .ui.attached.segment { background: var(--color-box-body) !important; border: 1px solid var(--color-border); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px); box-shadow: 0 4px 24px rgba(0, 0, 0, 0.25), inset 0 1px 0 rgba(255, 255, 255, 0.02) !important; } .ui.header.segment, .ui.top.attached.header { background: var(--color-box-header) !important; border-bottom: 1px solid var(--color-border); } .ui.segment.code-view, .view-code, pre, code, .chroma { background-color: var(--color-code-bg) !important; color: #bcbec4 !important; border: 0px !important; } .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; } .ui.table { background: transparent; border: 1px solid var(--color-border); } .ui.table thead th { background: rgba(138, 146, 153, 0.04); color: var(--color-text-light); border-bottom: 1px solid var(--color-border); font-family: var(--fonts-regular); text-transform: uppercase; letter-spacing: 0.08em; font-size: 0.75em; font-weight: 500; padding: 14px 12px; } .ui.table tbody tr { border-bottom: 1px solid var(--color-border-secondary); transition: background var(--transition-fast); } .ui.table tbody tr:hover { background: rgba(138, 146, 153, 0.03); } .ui.table td { padding: 12px; } .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.label { background: transparent; border: 1px solid var(--color-border); color: var(--color-text-light); font-family: var(--fonts-monospace); font-size: 0.75em; letter-spacing: 0.05em; padding: 5px 10px; } .ui.label.primary, .ui.label.blue { background: var(--color-primary-alpha-20); border-color: var(--color-primary-alpha-40); color: var(--color-primary-dark-2); } .ui.popup, .ui.tooltip, .tippy-box, [data-tooltip]:before, [data-tooltip]:after { background: var(--color-menu) !important; color: var(--color-text) !important; border: 1px solid var(--color-border) !important; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4) !important; font-family: var(--fonts-regular); font-size: 0.85em; } .tippy-content { background: var(--color-menu) !important; color: var(--color-text) !important; } .tippy-arrow { color: var(--color-menu) !important; } .ui.popup:before { background: var(--color-menu) !important; border: 1px solid var(--color-border) !important; } .ui.dropdown .menu { background: var(--color-menu) !important; border: 1px solid var(--color-border) !important; box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4); } .ui.dropdown .menu > .item { background: transparent !important; color: var(--color-text) !important; border-top: 1px solid var(--color-border-secondary) !important; padding: 10px 14px !important; } .ui.dropdown .menu > .item:first-child { border-top: none !important; } .ui.dropdown .menu > .item:hover { background: var(--color-primary-alpha-10) !important; } footer { background: var(--color-footer) !important; border-top: 1px solid var(--color-border); } .theme-selector-footer { margin-left: 15px !important; padding: 0 10px; } .theme-selector-footer form { display: inline-flex !important; align-items: center !important; gap: 6px !important; } .theme-selector-footer select, .theme-selector-footer .ui.dropdown { background: var(--color-menu) !important; border: 1px solid var(--color-border) !important; color: var(--color-text) !important; min-width: 100px !important; padding: 4px 8px !important; font-size: 0.75em !important; height: auto !important; min-height: unset !important; } .theme-selector-footer .ui.button { padding: 4px 10px !important; font-size: 0.7em !important; margin: 0 !important; } ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: transparent; } ::-webkit-scrollbar-thumb { background: var(--color-border); border: 2px solid transparent; background-clip: content-box; } ::-webkit-scrollbar-thumb:hover { background: var(--color-primary-light-2); background-clip: content-box; } ::-webkit-scrollbar-corner { background: transparent; } ::selection { background: rgba(138, 146, 153, 0.35); color: var(--color-text); } ::-moz-selection { background: rgba(138, 146, 153, 0.35); color: var(--color-text); } .ui.loader::before { border-color: var(--color-border) !important; } .ui.loader::after { border-color: var(--color-primary) transparent transparent !important; } .ui.message { background: var(--color-box-body) !important; border: 1px solid var(--color-border); color: var(--color-text); box-shadow: none !important; } .ui.negative.message, .ui.error.message { background: rgba(139, 58, 58, 0.15) !important; border-color: rgba(139, 58, 58, 0.4); color: #E07070; } .ui.positive.message, .ui.success.message { background: rgba(88, 139, 58, 0.15) !important; border-color: rgba(88, 139, 58, 0.4); color: #7CB05C; } .ui.warning.message { background: rgba(168, 144, 100, 0.15) !important; border-color: rgba(168, 144, 100, 0.4); color: var(--color-accent); } .repository .repo-header { background: transparent !important; } .repository .ui.secondary.menu, .repository .ui.tabular.menu, .repository .ui.menu { background: transparent !important; border-bottom: 1px solid var(--color-border); backdrop-filter: none !important; } .issue.is-open .issue-state-label { background: rgba(88, 139, 58, 0.2) !important; color: #7CB05C !important; } .issue.is-closed .issue-state-label { background: rgba(139, 58, 58, 0.2) !important; color: #E07070 !important; } .heatmap rect { rx: 0 !important; ry: 0 !important; } .heatmap .ContributionCalendar-day[data-level="0"] { fill: var(--color-border-secondary) !important; } .heatmap .ContributionCalendar-day[data-level="1"] { fill: rgba(138, 146, 153, 0.25) !important; } .heatmap .ContributionCalendar-day[data-level="2"] { fill: rgba(138, 146, 153, 0.45) !important; } .heatmap .ContributionCalendar-day[data-level="3"] { fill: rgba(138, 146, 153, 0.65) !important; } .heatmap .ContributionCalendar-day[data-level="4"] { fill: var(--color-primary) !important; } .ui.modal { background: var(--color-box-body) !important; border: 1px solid var(--color-border); box-shadow: 0 16px 64px rgba(0, 0, 0, 0.5) !important; } .ui.modal > .header { background: var(--color-box-header) !important; border-bottom: 1px solid var(--color-border); color: var(--color-text) !important; font-family: var(--font-family-header); letter-spacing: 0.1em; text-transform: uppercase; } .ui.modal > .content { background: transparent !important; color: var(--color-text); } .ui.modal > .actions { background: var(--color-box-header) !important; border-top: 1px solid var(--color-border); } .ui.dimmer { background: rgba(0, 0, 0, 0.75) !important; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); } .ui.avatar, .avatar, img.avatar { border: 1px solid var(--color-border) !important; } .file-tree-item:hover { background: var(--color-primary-alpha-10) !important; } .file-tree-item.selected { background: var(--color-primary-alpha-20) !important; } .diff-file-header { background: var(--color-box-header) !important; border-bottom: 1px solid var(--color-border); } .add-code, .diff-line-add { background: rgba(88, 139, 58, 0.12) !important; } .del-code, .diff-line-del { background: rgba(139, 58, 58, 0.12) !important; } .ui.tabular.menu { border-bottom: 1px solid var(--color-border); } .ui.tabular.menu .item { border: none !important; background: transparent !important; color: var(--color-text-light); padding: 12px 16px; margin-bottom: -1px; } .ui.tabular.menu .item:hover { color: var(--color-text); } .ui.tabular.menu .active.item { background: transparent !important; color: var(--color-text) !important; border-bottom: 2px solid var(--color-accent) !important; } #portfolio-controls, #portfolio-controls *, .portfolio-card, .portfolio-card * { border-radius: 0px !important; } .portfolio-card { overflow: visible; z-index: 1; --glow-color: var(--color-primary); transition: border-color 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(12px); z-index: -1; transition: opacity 0.6s cubic-bezier(0.4, 0, 0.2, 1); pointer-events: none; } .portfolio-card:hover { transform: none !important; box-shadow: none !important; border-color: var(--color-secondary) !important; } .portfolio-card:hover::before { opacity: 0.25; } .portfolio-card .card-content, .portfolio-card .card-footer { background: var(--color-box-body); position: relative; z-index: 1; }