@font-face { font-family: "Ubuntu"; font-style: normal; font-weight: 400; font-display: swap; src: url("/fonts/ubuntu/Ubuntu-Regular-latin.woff2") format("woff2"); }
@font-face { font-family: "Space Mono"; font-style: normal; font-weight: 400; font-display: swap; src: url("/fonts/space-mono/i7dPIFZifjKcF5UAWdDRYEF8RQ.woff2") format("woff2"); }
@font-face { font-family: "Space Mono"; font-style: normal; font-weight: 700; font-display: swap; src: url("/fonts/space-mono/i7dMIFZifjKcF5UAWdDRaPpZUFWaHg.woff2") format("woff2"); }
:root { color-scheme: light dark; font-family: "Ubuntu", Arial, sans-serif; font-synthesis: none; }
* { box-sizing: border-box; }
[hidden] { display: none !important; }
.visually-hidden { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0 0 0 0) !important; white-space: nowrap !important; border: 0 !important; }
html { background: #f9faf6; scroll-behavior: smooth; }
body { margin: 0; min-width: 320px; min-height: 100vh; background: #f9faf6; color: #2e3430; }
button, input { font: inherit; }
a { color: inherit; }
.boot { display: grid; min-height: 100vh; place-items: center; color: #5b605c; }
.app-shell { --bg: #f9faf6; --surface: #fff; --surface-2: #f2f4f0; --surface-3: #e5e9e4; --border: #7b827c; --text: #2e3430; --muted: #5b605c; --accent: #48664b; --accent-contrast: #e9ffe6; --accent-2: #745f20; --lavender: #5c5e6e; --danger: #aa371c; --shadow: 0 12px 40px rgba(46,52,48,.08); --code-bg: #f6f8f4; --code-text: #26302a; --code-gutter: #59615b; --code-keyword: #8b3f5c; --code-function: #5c527f; --code-string: #41683f; --code-comment: #59615b; --code-literal: #7b5200; --code-type: #315f52; --code-property: #5c527f; --code-tag: #6e4935; --code-attribute: #7b5200; --code-selection: rgba(72,102,75,.1); --code-selection-strong: rgba(72,102,75,.17); --diff-add-bg: #d9edd8; --diff-delete-bg: #f7ddd6; --diff-hunk-bg: #e6e6fa; --diff-hunk-text: #4c4d60; --diff-line-number: #59615b; min-height: 100vh; color-scheme: light; background: radial-gradient(circle at 12% 8%, rgba(201,235,201,.72), transparent 25rem), radial-gradient(circle at 88% 4%, rgba(230,230,250,.72), transparent 25rem), linear-gradient(135deg, #fff 0%, var(--bg) 34rem); color: var(--text); }
.app-shell[data-theme="dark"] { --bg: #151a16; --surface: #202720; --surface-2: #2b342b; --surface-3: #364036; --border: #778278; --text: #f3f6f1; --muted: #c3cbc3; --accent: #a8d0a8; --accent-contrast: #1b2a1d; --accent-2: #e0c573; --lavender: #c9c9e6; --danger: #ffad99; --shadow: 0 16px 44px rgba(0,0,0,.22); --code-bg: #111611; --code-text: #e6ebe4; --code-gutter: #aab5aa; --code-keyword: #e7a0b7; --code-function: #c2b8ec; --code-string: #b9d8a8; --code-comment: #aab5aa; --code-literal: #e4c67f; --code-type: #9ed5c0; --code-property: #d2c4ea; --code-tag: #e5ab93; --code-attribute: #e4c67f; --code-selection: rgba(168,208,168,.13); --code-selection-strong: rgba(168,208,168,.21); --diff-add-bg: rgba(104,170,104,.2); --diff-delete-bg: rgba(205,103,83,.2); --diff-hunk-bg: rgba(173,165,215,.18); --diff-hunk-text: #d8d2f2; --diff-line-number: #aab5aa; color-scheme: dark; background: radial-gradient(circle at 12% 4%, rgba(72,102,75,.28), transparent 28rem), radial-gradient(circle at 88% 2%, rgba(92,94,110,.24), transparent 25rem), linear-gradient(150deg, #1b211c 0%, var(--bg) 34rem); }
.skip-link { position: fixed; top: .6rem; left: .6rem; z-index: 30; padding: .7rem 1rem; transform: translateY(-150%); border-radius: .5rem; background: var(--accent); color: var(--bg); }
.skip-link:focus { transform: none; }
.topbar { position: sticky; top: 0; z-index: 20; display: flex; min-height: 5rem; align-items: center; justify-content: space-between; padding: 0 clamp(1rem, 4vw, 4.5rem); border-bottom: 1px solid color-mix(in srgb, var(--border) 72%, transparent); background: color-mix(in srgb, var(--bg) 74%, transparent); backdrop-filter: blur(24px); }
.wordmark { display: flex; align-items: center; gap: .75rem; text-decoration: none; }
.wordmark .mark { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid var(--border); border-radius: .7rem; background: color-mix(in srgb, var(--accent) 14%, var(--surface)); color: var(--accent); box-shadow: var(--shadow); }
.wordmark strong, .wordmark small { display: block; line-height: 1.08; }
.wordmark strong { letter-spacing: -.02em; }
.wordmark small { margin-top: .25rem; color: var(--muted); font: 700 .72rem "Space Mono", monospace; letter-spacing: .11em; text-transform: uppercase; }
.topnav { display: flex; align-items: center; gap: .3rem; padding: .28rem; border-radius: .7rem; background: color-mix(in srgb, var(--surface) 86%, transparent); box-shadow: var(--shadow); }
.topnav a, .topnav button { min-height: 2.65rem; padding: .6rem .75rem; border: 1px solid transparent; border-radius: .55rem; background: transparent; color: var(--muted); text-decoration: none; cursor: pointer; }
.nav-link { display: inline-flex; align-items: center; gap: .45rem; }
.lucide { width: 1.05rem; height: 1.05rem; flex: 0 0 auto; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.mark .lucide { width: 1.35rem; height: 1.35rem; }
.topnav a:hover, .topnav button:hover { background: var(--surface-2); color: var(--text); }
.context-bar { display: flex; min-height: 3.5rem; align-items: center; justify-content: space-between; gap: 1rem; padding: .6rem clamp(1rem, 4vw, 4.5rem); border-bottom: 1px solid var(--border); background: color-mix(in srgb, var(--surface) 84%, transparent); backdrop-filter: blur(16px); }
.breadcrumbs { display: flex; min-width: 0; align-items: center; gap: .5rem; overflow: hidden; color: var(--muted); font-size: .9rem; }
.breadcrumbs a, .breadcrumbs span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.breadcrumbs a { color: var(--accent); text-decoration: none; }
.crumb-separator { opacity: .45; }
.context-actions { display: flex; flex: 0 0 auto; gap: .5rem; }
main { width: min(1480px, 100%); min-height: calc(100vh - 12rem); margin: 0 auto; padding: clamp(1.25rem, 4vw, 4rem); }
.view { display: grid; gap: 1.25rem; }
.eyebrow { color: var(--accent); font: 700 .72rem "Space Mono", monospace; letter-spacing: .16em; text-transform: uppercase; }
.section { display: grid; gap: 1rem; }
.section-heading, .panel-heading { display: flex; align-items: center; justify-content: space-between; gap: 1rem; }
.section-heading h2, .panel-heading h2 { margin: 0; font-size: 1rem; letter-spacing: -.01em; }
.section-heading span, .panel-heading span { color: var(--muted); font: .8rem "Space Mono", monospace; }
.repo-search { width: min(24rem, 45vw); margin-left: auto; padding: .72rem .9rem; border: 1px solid var(--border); border-radius: .7rem; background: var(--surface-3); color: var(--text); transition: background .16s ease, box-shadow .16s ease; }
.repo-search:focus { background: var(--surface); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 24%, transparent); }
.repo-search::placeholder { color: var(--muted); }
.repo-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 310px), 1fr)); gap: .9rem; }
.repo-card { position: relative; display: grid; min-height: 19rem; padding: 1.5rem; overflow: hidden; border: 1px solid var(--border); border-radius: 1rem; background: linear-gradient(145deg, var(--surface), color-mix(in srgb, var(--surface-2) 72%, var(--surface))); color: inherit; box-shadow: var(--shadow); transition: transform .18s ease, border-color .18s ease, box-shadow .18s ease; }
.repo-card::before { position: absolute; inset: 0 0 auto; height: 4px; background: linear-gradient(90deg, var(--accent), color-mix(in srgb, var(--lavender) 65%, var(--accent))); content: ""; }
.repo-card:hover { transform: translateY(-4px); border-color: var(--accent); box-shadow: 0 18px 48px color-mix(in srgb, var(--text) 14%, transparent); }
.repo-card-top { display: flex; align-items: center; justify-content: space-between; }
.repo-icon { display: grid; width: 2.75rem; height: 2.75rem; place-items: center; border: 1px solid color-mix(in srgb, var(--accent) 65%, var(--border)); border-radius: .7rem; background: color-mix(in srgb, var(--accent) 12%, var(--surface)); color: var(--accent); }
.visibility { color: var(--muted); font: 750 .72rem "Space Mono", monospace; letter-spacing: .1em; }
.repo-card-title { align-self: end; margin: 2rem 0 .55rem; color: var(--text); font-size: 1.4rem; font-weight: 750; letter-spacing: -.03em; text-decoration: none; }
.repo-card-title:hover { color: var(--accent); text-decoration: underline; text-underline-offset: .2em; }
.repo-card > p { margin: 0; color: var(--muted); line-height: 1.55; }
.repo-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .65rem; margin-top: 1.2rem; color: var(--muted); font-size: .8rem; }
.repo-meta code, code { font-family: "Space Mono", monospace; }
.latest { display: grid; align-self: end; gap: .2rem; margin-top: 1rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.latest strong { overflow: hidden; font-size: .82rem; text-overflow: ellipsis; white-space: nowrap; }
.latest span { color: var(--muted); font-size: .8rem; }
.card-feature-actions, .page-feature-actions { display: flex; flex-wrap: wrap; gap: .55rem; margin-top: 1rem; }
.card-feature-actions { align-self: end; padding-top: 1rem; border-top: 1px solid var(--border); }
.feature-button { background: var(--surface-2); color: var(--accent); font-weight: 700; }
.feature-button:hover { background: color-mix(in srgb, var(--accent) 20%, var(--surface)); }
.external-indicator { width: .78rem; height: .78rem; opacity: .8; }
.page-header { display: grid; grid-template-columns: auto minmax(0, 1fr); gap: 1rem 1.25rem; padding: clamp(1.5rem, 4vw, 3.2rem); border: 1px solid var(--border); border-radius: 1rem; background: radial-gradient(circle at 12% 20%, color-mix(in srgb, var(--accent) 20%, transparent), transparent 42%), radial-gradient(circle at 88% 18%, color-mix(in srgb, var(--lavender) 18%, transparent), transparent 34%), linear-gradient(135deg, var(--surface), var(--surface-2)); box-shadow: var(--shadow); }
.page-header-icon { display: grid; width: 3.25rem; height: 3.25rem; place-items: center; border: 1px solid var(--accent); border-radius: .85rem; color: var(--accent); }
.page-header-icon .lucide { width: 1.5rem; height: 1.5rem; }
.page-header-copy { min-width: 0; }
.page-feature-actions { grid-column: 2; }
.page-header h1, .file-header h1, .commit-header h1 { margin: .45rem 0 .7rem; font-size: clamp(2rem, 4vw, 3.8rem); letter-spacing: -.055em; line-height: 1; }
.page-header p { max-width: 720px; margin: 0; color: var(--muted); font-size: 1.02rem; line-height: 1.6; }
.repository-overview-header { display: grid; gap: .25rem; }
.repository-summary { display: flex; min-height: 2.75rem; align-items: center; gap: .65rem; }
.repository-summary-icon { display: grid; width: 2.2rem; height: 2.2rem; flex: 0 0 auto; place-items: center; border: 1px solid color-mix(in srgb, var(--accent) 62%, var(--border)); border-radius: .6rem; background: color-mix(in srgb, var(--accent) 10%, var(--surface)); color: var(--accent); }
.repository-summary h1 { min-width: 0; margin: 0; overflow: hidden; font-size: clamp(1.3rem, 2vw, 1.65rem); letter-spacing: -.035em; line-height: 1.15; text-overflow: ellipsis; white-space: nowrap; }
.repository-visibility { padding: .2rem .45rem; border: 1px solid var(--border); border-radius: 999px; color: var(--muted); font: 700 .62rem "Space Mono", monospace; letter-spacing: .04em; text-transform: uppercase; }
.repo-nav { display: flex; gap: .25rem; overflow-x: auto; border-bottom: 1px solid var(--border); }
.repo-nav a { flex: 0 0 auto; padding: .7rem .85rem; border-bottom: 2px solid transparent; color: var(--muted); text-decoration: none; }
.repo-nav a[aria-current="page"] { border-color: var(--accent); color: var(--text); }
.split-layout { display: grid; grid-template-columns: minmax(0, 2fr) minmax(260px, .75fr); gap: 1rem; align-items: start; }
.panel { overflow: hidden; border: 1px solid var(--border); border-radius: 1rem; background: var(--surface); box-shadow: var(--shadow); }
.panel-heading { min-height: 3.3rem; padding: .8rem 1rem; border-bottom: 1px solid var(--border); background: var(--surface-2); }
.about-panel > p { padding: 0 1.15rem; color: var(--muted); line-height: 1.6; }
.about-feature-actions { display: grid; gap: .5rem; padding: 0 1rem .2rem; }
.about-feature-actions .button { min-height: 2.35rem; justify-content: flex-start; padding: .45rem .65rem; font-size: .78rem; }
.clone-box { display: block; overflow: auto; margin: 1rem; padding: .8rem; border: 1px solid var(--border); border-radius: .5rem; background: var(--bg); color: var(--accent); font-size: .78rem; white-space: nowrap; }
.clone-control { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: stretch; margin: 1rem; overflow: hidden; border: 1px solid var(--border); border-radius: .55rem; background: var(--bg); }
.clone-control code { overflow: hidden; padding: .8rem; color: var(--accent); font-size: .78rem; text-overflow: ellipsis; white-space: nowrap; }
.icon-copy-button { display: grid; min-width: 2.85rem; place-items: center; border: 0; border-left: 1px solid var(--border); background: var(--surface-2); color: var(--text); cursor: pointer; }
.icon-copy-button:hover { background: color-mix(in srgb, var(--accent) 18%, var(--surface)); color: var(--accent); }
.media-panel { display: grid; }
.media-copy { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; }
.media-copy p { margin: 0; color: var(--muted); }
.media-panel video { display: block; width: 100%; max-height: min(72vh, 52rem); border-top: 1px solid var(--border); background: #000; }
.readme-content { max-width: 980px; padding: clamp(1.25rem, 3vw, 2.4rem); line-height: 1.7; }
.readme-content h1, .readme-content h2 { padding-bottom: .45rem; border-bottom: 1px solid var(--border); letter-spacing: -.035em; }
.readme-content h1 { font-size: 2rem; }
.readme-content h2 { margin-top: 2rem; font-size: 1.45rem; }
.readme-content h3 { margin-top: 1.7rem; }
.readme-content p, .readme-content li, .readme-content blockquote { color: color-mix(in srgb, var(--text) 88%, var(--muted)); }
.readme-content a { color: var(--accent); text-underline-offset: .18em; }
.readme-content :not(pre) > code { padding: .12rem .3rem; border-radius: .3rem; background: var(--surface-2); font-size: .86em; }
.readme-content blockquote { margin-left: 0; padding-left: 1rem; border-left: 3px solid var(--border); }
.readme-code-frame { margin: 1.25rem 0; overflow: hidden; border: 1px solid var(--border); border-radius: .7rem; background: var(--code-bg); box-shadow: 0 10px 28px color-mix(in srgb, var(--text) 10%, transparent); }
.readme-code-toolbar { display: flex; min-height: 3rem; align-items: center; justify-content: space-between; gap: 1rem; padding: .35rem .45rem .35rem .85rem; border-bottom: 1px solid var(--border); background: var(--surface-2); }
.readme-code-title, .readme-code-actions { display: inline-flex; align-items: center; gap: .55rem; }
.readme-code-title { color: var(--text); }
.readme-code-title strong { font-size: .78rem; letter-spacing: .01em; }
.readme-code-language { color: var(--muted); font: 700 .68rem "Space Mono", monospace; letter-spacing: .05em; text-transform: uppercase; }
.code-copy-button { display: grid; width: 2.75rem; height: 2.75rem; padding: 0; place-items: center; border: 1px solid transparent; border-radius: .45rem; background: transparent; color: var(--muted); cursor: pointer; transition: background .15s ease, border-color .15s ease, color .15s ease; }
.code-copy-button:hover { border-color: var(--border); background: var(--surface); color: var(--accent); }
.code-copy-button[data-copy-state="success"] { border-color: color-mix(in srgb, var(--accent) 68%, var(--border)); background: color-mix(in srgb, var(--accent) 17%, var(--surface)); color: var(--accent); }
.code-copy-button[data-copy-state="error"] { border-color: color-mix(in srgb, var(--danger) 68%, var(--border)); background: color-mix(in srgb, var(--danger) 12%, var(--surface)); color: var(--danger); }
.readme-code { max-width: 100%; margin: 0; overflow: auto; padding: 1rem; border: 0; border-radius: 0; background: var(--code-bg); color: var(--code-text); font: .82rem/1.65 "Space Mono", monospace; tab-size: 2; white-space: pre; }
.readme-code:focus-visible { outline-offset: -3px; }
.readme-terminal { --code-bg: #101712; --code-text: #f3f6f1; --code-keyword: #e7a0b7; --code-function: #c2b8ec; --code-string: #b9d8a8; --code-comment: #b3bdb4; --code-literal: #e4c67f; --code-type: #9ed5c0; --code-property: #d2c4ea; --code-tag: #e5ab93; --code-attribute: #e4c67f; --danger: #ffad99; border-color: #536257; background: var(--code-bg); box-shadow: 0 14px 34px rgba(15, 24, 17, .2); }
.readme-terminal .readme-code-toolbar { border-color: #536257; background: #1d271f; }
.readme-terminal .readme-code-title { color: #f3f6f1; }
.readme-terminal .readme-code-language { color: #bdc9bf; }
.readme-terminal .code-copy-button { color: #c9d4cb; }
.readme-terminal .code-copy-button:hover { border-color: #718276; background: #2a372d; color: #b9d8a8; }
.readme-terminal .code-copy-button[data-copy-state="success"] { border-color: #8fbd95; background: #263b2a; color: #c5edc8; }
.readme-terminal .code-copy-button[data-copy-state="error"] { border-color: #d7806c; background: #3b2723; color: #ffc0b1; }
.readme-table-wrap { overflow-x: auto; margin: 1rem 0; }
.readme-table { width: 100%; border-collapse: collapse; font-size: .88rem; }
.readme-table th, .readme-table td { padding: .65rem .75rem; border: 1px solid var(--border); text-align: left; }
.readme-table th { background: var(--surface-2); }
.readme-table td:not(:first-child) { font-variant-numeric: tabular-nums; }
.readme-image { display: block; max-width: 100%; max-height: 38rem; margin: 1rem auto; object-fit: contain; }
.file-finder { width: min(720px, calc(100vw - 2rem)); max-height: min(720px, calc(100vh - 2rem)); padding: 0; border: 1px solid var(--border); border-radius: 1rem; background: var(--surface); color: var(--text); box-shadow: 0 2rem 7rem rgba(0,0,0,.38); }
.file-finder::backdrop { background: rgba(2, 8, 5, .74); backdrop-filter: blur(5px); }
.file-finder header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border-bottom: 1px solid var(--border); }
.file-finder h2 { margin: .2rem 0 0; font-size: 1.15rem; }
.file-finder-input { width: calc(100% - 2rem); margin: 1rem; padding: .8rem 1rem; border: 1px solid var(--border); border-radius: .55rem; background: var(--bg); color: var(--text); }
.file-finder-results { display: grid; overflow: auto; max-height: 28rem; padding: 0 1rem 1rem; }
.file-finder-result { overflow: hidden; padding: .7rem .8rem; border-radius: .4rem; color: var(--text); font: .8rem "Space Mono", monospace; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.file-finder-result:hover { background: var(--surface-2); color: var(--accent); }
.finder-hint { margin: 0; padding: .8rem; color: var(--muted); font-size: .8rem; }
.ref-switcher { width: min(620px, calc(100vw - 2rem)); max-height: min(720px, calc(100vh - 2rem)); padding: 0; border: 1px solid var(--border); border-radius: 1rem; background: var(--surface); color: var(--text); box-shadow: 0 2rem 7rem rgba(0,0,0,.38); }
.ref-switcher::backdrop { background: rgba(2, 8, 5, .74); backdrop-filter: blur(5px); }
.ref-switcher header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem; border-bottom: 1px solid var(--border); }
.ref-switcher h2 { margin: .2rem 0 0; font-size: 1.15rem; }
.ref-switcher-list { display: grid; overflow: auto; max-height: 32rem; padding: .65rem; }
.ref-switcher-row { display: grid; min-height: 2.9rem; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: .7rem; padding: .55rem .65rem; border-radius: .45rem; color: inherit; text-decoration: none; }
.ref-switcher-row:hover, .ref-switcher-row.current { background: var(--surface-2); }
.ref-switcher-row.current { box-shadow: inset 2px 0 var(--accent); }
.ref-switcher-row code { color: var(--muted); font-size: .72rem; }
.ref-switcher-all { padding: .8rem; color: var(--accent); font-size: .8rem; text-align: center; }
.tree-list, .commit-list, .refs-list, .changes-list { display: grid; }
.tree-columns { display: grid; grid-template-columns: minmax(0, 1fr) auto 6rem; gap: .75rem; padding: .55rem 1rem .5rem 3.55rem; border-bottom: 1px solid var(--border); color: var(--muted); font-size: .7rem; }
.latest-commit { display: grid; min-height: 3.3rem; grid-template-columns: auto auto minmax(0, 1fr) auto auto; align-items: center; gap: .65rem; padding: .65rem 1rem; border-bottom: 1px solid var(--border); color: inherit; text-decoration: none; }
.latest-commit:hover { background: var(--surface-2); }
.commit-avatar { display: grid; width: 1.8rem; height: 1.8rem; place-items: center; border-radius: 50%; background: color-mix(in srgb, var(--accent) 18%, var(--surface)); color: var(--accent); font: 800 .68rem "Space Mono", monospace; }
.latest-commit strong { font-size: .78rem; }
.latest-subject { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.latest-commit code, .latest-commit time { color: var(--muted); font-size: .7rem; }
.tree-row, .commit-row, .ref-row, .change-row { display: grid; min-height: 3.1rem; align-items: center; gap: .75rem; padding: .65rem 1rem; border-bottom: 1px solid var(--border); color: inherit; text-decoration: none; }
.tree-row:last-child, .commit-row:last-child, .ref-row:last-child, .change-row:last-child { border-bottom: 0; }
.tree-row:hover, .commit-row:hover, .ref-row:hover { background: var(--surface-2); }
.tree-row { grid-template-columns: 1.25rem minmax(0, 1fr) auto auto; font-size: .9375rem; }
.tree-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.tree-row code, .tree-row .size { color: var(--muted); font-size: .78rem; }
.repository-icon { display: block; overflow: visible; fill: none; stroke: currentColor; stroke-width: 1.35; stroke-linecap: round; stroke-linejoin: round; }
.file-icon { width: 1.125rem; height: 1.125rem; color: var(--accent); }
.file-icon.tree { color: var(--accent-2); }
.commit-row { grid-template-columns: minmax(0, 1fr) auto; }
.commit-row > div { display: grid; min-width: 0; gap: .25rem; }
.commit-row strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.commit-row span { color: var(--muted); font-size: .75rem; }
.commit-row code { color: var(--accent); font-size: .72rem; }
.ref-row { grid-template-columns: auto minmax(10rem, .5fr) minmax(0, 1fr) auto; }
.ref-name { overflow: hidden; font-weight: 700; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.ref-name:hover { color: var(--accent); text-decoration: underline; }
.ref-actions { display: flex; align-items: center; gap: .4rem; }
.ref-actions .button { min-height: 2rem; padding: .3rem .55rem; font-size: .72rem; }
.ref-row > span:nth-child(3) { overflow: hidden; color: var(--muted); font-size: .8rem; text-overflow: ellipsis; white-space: nowrap; }
.ref-kind { padding: .25rem .4rem; border-radius: .3rem; background: color-mix(in srgb, var(--accent) 13%, transparent); color: var(--accent); font: 700 .62rem "Space Mono", monospace; text-transform: uppercase; }
.ref-kind.tag { background: color-mix(in srgb, var(--accent-2) 14%, transparent); color: var(--accent-2); }
.pagination { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: .8rem; padding: 1rem; border-top: 1px solid var(--border); }
.pagination > :last-child { justify-self: end; }
.page-number { color: var(--muted); font: .78rem "Space Mono", monospace; }
.button { display: inline-flex; min-height: 2.55rem; align-items: center; justify-content: center; gap: .45rem; padding: .55rem .9rem; border: 1px solid var(--border); border-radius: .7rem; background: var(--surface); color: var(--text); font-size: .86rem; font-weight: 650; text-decoration: none; cursor: pointer; }
.button:hover { border-color: var(--accent); background: var(--surface-2); }
.button.primary { border-color: var(--accent); background: var(--accent); color: var(--accent-contrast); font-weight: 750; }
.file-header, .commit-header { display: flex; align-items: end; justify-content: space-between; gap: 1rem; padding: 1.4rem 0; }
.source-workspace { display: grid; min-width: 0; grid-template-columns: 19.5rem minmax(0, 1fr); gap: 1rem; align-items: start; }
.source-workspace.tree-hidden { grid-template-columns: minmax(0, 1fr); }
.source-main, .file-view, .source-main-stack { min-width: 0; }
.source-main-stack { display: grid; gap: 1rem; }
.file-tree-sidebar { position: sticky; top: 9rem; overflow: hidden; max-height: calc(100vh - 10rem); border: 1px solid var(--border); border-radius: .75rem; background: var(--surface); }
.file-tree-sidebar[hidden], .show-file-tree[hidden] { display: none; }
.file-tree-header { display: grid; min-height: 3.1rem; grid-template-columns: 1fr auto auto; align-items: center; gap: .5rem; padding: .55rem .65rem .55rem .85rem; border-bottom: 1px solid var(--border); background: var(--surface-2); }
.file-tree-header code { color: var(--muted); font-size: .72rem; }
.tree-finder { position: relative; padding: .55rem .6rem; border-bottom: 1px solid var(--border); }
.tree-finder-input { width: 100%; min-height: 2.15rem; padding: .42rem .65rem .42rem 1.9rem; border: 1px solid var(--border); border-radius: .42rem; background: var(--bg); color: var(--text); font-size: .8rem; }
.tree-search-icon { position: absolute; top: 1.08rem; left: 1.15rem; z-index: 1; width: .9rem; height: .9rem; color: var(--muted); pointer-events: none; }
.tree-finder-results { position: absolute; top: calc(100% - .2rem); right: .6rem; left: .6rem; z-index: 12; display: grid; overflow: auto; max-height: min(24rem, 55vh); padding: .35rem; border: 1px solid var(--border); border-radius: .5rem; background: var(--surface); box-shadow: 0 1rem 3rem rgba(0,0,0,.4); }
.tree-finder-results[hidden] { display: none; }
.tree-finder-results .file-finder-result { padding: .55rem .6rem; font-size: .72rem; }
.file-tree-header button { min-height: 2rem; padding: .35rem .55rem; border: 0; border-radius: .4rem; background: transparent; color: var(--muted); font-size: .75rem; cursor: pointer; }
.file-tree-body { overflow: auto; max-height: calc(100vh - 13.2rem); padding: .45rem .4rem .65rem; }
.side-tree-row { display: flex; min-width: 0; min-height: 2.125rem; align-items: center; gap: .35rem; border-radius: .38rem; }
.side-tree-row:hover, .side-tree-row.current { background: var(--surface-2); }
.side-tree-row.current { box-shadow: inset 3px 0 var(--accent); }
.side-tree-row.current .side-tree-link { color: var(--accent); font-weight: 650; }
.tree-toggle { display: grid; flex: 0 0 1.25rem; width: 1.25rem; height: 1.75rem; padding: 0; place-items: center; border: 0; border-radius: .3rem; background: transparent; color: var(--muted); cursor: pointer; }
.tree-toggle:hover { background: var(--border); color: var(--text); }
.tree-chevron { width: .75rem; height: .75rem; transition: transform .12s ease; }
.tree-toggle[aria-expanded="true"] .tree-chevron { transform: rotate(90deg); }
.tree-toggle-spacer { flex: 0 0 1.25rem; width: 1.25rem; }
.side-tree-icon { flex: 0 0 1rem; width: 1rem; height: 1rem; color: var(--muted); }
.side-tree-icon.folder { color: var(--accent-2); }
.side-tree-icon.file { color: color-mix(in srgb, var(--muted) 88%, var(--text)); }
.side-tree-link { overflow: hidden; flex: 1; padding: .38rem .2rem .38rem 0; color: var(--text); font-size: .9375rem; line-height: 1.4; text-decoration: none; text-overflow: ellipsis; white-space: nowrap; }
.side-tree-children { margin-left: .625rem; padding-left: .625rem; border-left: 1px solid color-mix(in srgb, var(--border) 72%, transparent); }
.side-tree-children[hidden] { display: none; }
.tree-loading, .tree-more { display: block; padding: .5rem .7rem; color: var(--muted); font-size: .8rem; }
.tree-more { color: var(--accent); text-decoration: none; }
.file-stats { display: flex; flex: 0 0 auto; gap: .8rem; color: var(--muted); font-size: .8rem; }
.code-panel { overflow: hidden; border: 1px solid var(--border); border-radius: .75rem; background: var(--code-bg); color: var(--code-text); box-shadow: 0 1.5rem 5rem rgba(0, 0, 0, .18); }
.file-view { overflow: hidden; }
.file-header { min-height: 3.3rem; align-items: center; padding: .65rem 1rem; border-bottom: 1px solid var(--border); background: var(--surface-2); }
.file-title-group { display: flex; min-width: 0; flex: 1; align-items: center; gap: .7rem; }
.file-header h1 { overflow: hidden; margin: 0; font-size: 1.05rem; letter-spacing: -.01em; text-overflow: ellipsis; white-space: nowrap; }
.code-panel.embedded { border: 0; border-radius: 0; box-shadow: none; }
.image-preview { display: grid; min-height: 18rem; place-items: center; padding: clamp(1rem, 4vw, 3rem); background: repeating-conic-gradient(#111a16 0 25%, #0b100e 0 50%) 50% / 22px 22px; }
.image-preview img { display: block; max-width: 100%; max-height: 72vh; object-fit: contain; }
.view[aria-busy="true"] { cursor: progress; }
.source-code { overflow: auto; max-height: 74vh; margin: 0; padding: .8rem 0; color: var(--code-text); font: 14px/1.65 "Space Mono", monospace; tab-size: 4; }
.paged-source { display: grid; }
.large-file-toolbar { display: flex; min-height: 3rem; align-items: center; justify-content: space-between; gap: 1rem; padding: .45rem .75rem .45rem 1rem; border-bottom: 1px solid var(--border); color: var(--code-gutter); font-size: .8rem; }
.large-file-toolbar .button { min-height: 2rem; border-color: color-mix(in srgb, var(--code-gutter) 45%, transparent); border-radius: .35rem; background: transparent; color: var(--code-text); font-size: .75rem; }
.source-pagination { border-top-color: var(--border); color: var(--code-text); }
.source-pagination .button { background: transparent; color: var(--code-text); }
.code-line { display: grid; min-width: max-content; grid-template-columns: 4.5rem auto; }
.code-line:target { background: var(--code-selection); }
.code-line.selected { background: var(--code-selection-strong); box-shadow: inset 2px 0 var(--accent); }
.line-number { position: sticky; left: 0; z-index: 1; padding: 0 1rem; background: var(--code-bg); color: var(--code-gutter); text-align: right; text-decoration: none; user-select: none; }
.line-code { padding-right: 2rem; white-space: pre; }
.tok-text, .tok-variable { color: var(--code-text); }
.tok-keyword, .tok-operator { color: var(--code-keyword); }
.tok-function { color: var(--code-function); }
.tok-string { color: var(--code-string); }
.tok-comment { color: var(--code-comment); font-style: italic; }
.tok-constant, .tok-escape { color: var(--code-literal); }
.tok-type, .tok-constructor, .tok-namespace { color: var(--code-type); }
.tok-variable-builtin, .tok-variable-parameter, .tok-variable-other-member, .tok-label { color: var(--code-property); }
.tok-punctuation { color: var(--code-gutter); }
.tok-tag, .tok-special { color: var(--code-tag); }
.tok-attribute, .tok-markup { color: var(--code-attribute); }
.tok-diff-plus { color: var(--code-string); }
.tok-diff-minus { color: var(--danger); }
.tok-diff-delta { color: var(--code-function); }
.commit-identity { padding: clamp(1.1rem, 3vw, 2rem); }
.commit-title { display: flex; align-items: start; justify-content: space-between; gap: 1rem; }
.commit-title h1 { max-width: 1050px; margin: .4rem 0 0; font-size: clamp(1.45rem, 3vw, 2.35rem); letter-spacing: -.035em; line-height: 1.2; }
.commit-title > code { flex: 0 0 auto; padding: .35rem .55rem; border: 1px solid var(--border); border-radius: .4rem; color: var(--accent); font-size: .78rem; }
.commit-message { max-width: 1000px; margin: 1.25rem 0 0; padding: 1rem; border: 1px solid var(--border); border-radius: .5rem; background: var(--bg); color: var(--text); font: .9rem/1.65 "Space Mono", monospace; white-space: pre-wrap; }
.commit-authorship { display: grid; gap: .45rem; margin-top: 1.25rem; }
.identity-line { display: flex; flex-wrap: wrap; align-items: baseline; gap: .55rem; color: var(--muted); font-size: .84rem; }
.identity-line strong { color: var(--text); }
.identity-label { width: 5.5rem; color: var(--muted); font: 700 .7rem "Space Mono", monospace; letter-spacing: .06em; text-transform: uppercase; }
.commit-references { display: flex; flex-wrap: wrap; gap: 1.2rem; margin-top: 1.15rem; padding-top: 1rem; border-top: 1px solid var(--border); }
.commit-parents, .commit-tree-ref { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; color: var(--muted); font-size: .8rem; }
.commit-reference { padding: .25rem .45rem; border-radius: .35rem; background: var(--surface-2); color: var(--accent); font: .75rem "Space Mono", monospace; text-decoration: none; }
.commit-reference:hover { text-decoration: underline; }
.commit-full-oid { display: flex; min-width: 0; align-items: center; gap: .7rem; margin-top: .85rem; color: var(--muted); font-size: .75rem; }
.commit-full-oid code { overflow: hidden; color: var(--text); text-overflow: ellipsis; }
.commit-summary { display: flex; flex-wrap: wrap; overflow: visible; padding: .85rem 1rem; gap: .6rem 1.5rem; }
.commit-stat { display: flex; align-items: baseline; gap: .4rem; }
.commit-stat strong { font: 750 .95rem "Space Mono", monospace; }
.commit-stat span { color: var(--muted); font-size: .8rem; }
.commit-stat.addition strong, .diff-count.additions { color: #7ee2a8; }
.commit-stat.deletion strong, .diff-count.deletions { color: #ff9c8d; }
.commit-files-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-top: .5rem; }
.commit-files-heading h2 { margin: 0; font-size: 1.15rem; }
.commit-files-heading span { color: var(--muted); font-size: .8rem; }
.commit-file-filter { width: min(26rem, 45vw); margin-left: auto; padding: .6rem .75rem; border: 1px solid var(--border); border-radius: .5rem; background: var(--surface); color: var(--text); }
.commit-files { display: grid; gap: 1rem; }
.diff-file { content-visibility: auto; contain-intrinsic-size: 3.5rem 28rem; }
.diff-file-header { display: grid; min-height: 3.5rem; grid-template-columns: auto auto minmax(0, 1fr) auto auto auto; align-items: center; gap: .7rem; padding: .65rem .8rem; background: var(--surface-2); cursor: pointer; list-style: none; }
.diff-file-header::-webkit-details-marker { display: none; }
.diff-file-header::before { color: var(--muted); content: "›"; font-size: 1.1rem; transform: rotate(0); transition: transform .15s ease; }
.diff-file[open] > .diff-file-header::before { transform: rotate(90deg); }
.diff-path { overflow: hidden; font: .84rem "Space Mono", monospace; text-overflow: ellipsis; white-space: nowrap; }
.diff-count { font: 700 .74rem "Space Mono", monospace; }
.diff-file-action { min-height: 2rem; padding: .35rem .6rem; font-size: .75rem; }
.change-kind { min-width: 2rem; padding: .25rem .38rem; border-radius: .3rem; background: color-mix(in srgb, var(--accent-2) 14%, transparent); color: var(--accent-2); font: 800 .68rem "Space Mono", monospace; text-align: center; }
.change-kind.added { color: #7ee2a8; }
.change-kind.deleted { color: #ff9c8d; }
.change-kind.renamed, .change-kind.copied { color: #8fd6ff; }
.diff-body { overflow: auto; max-height: min(72vh, 54rem); background: var(--code-bg); color: var(--code-text); }
.diff-loading, .diff-unavailable { display: flex; min-height: 7rem; align-items: center; justify-content: center; gap: .8rem; padding: 1rem; color: var(--muted); font-size: .82rem; }
.diff-unavailable { flex-direction: column; }
.diff-table { display: grid; min-width: max-content; padding: .55rem 0; font: 13.5px/1.55 "Space Mono", monospace; }
.diff-line { display: grid; min-width: 100%; grid-template-columns: 4rem 4rem minmax(max-content, 1fr); }
.diff-line.addition { background: var(--diff-add-bg); }
.diff-line.deletion { background: var(--diff-delete-bg); }
.diff-line.hunk { background: var(--diff-hunk-bg); color: var(--diff-hunk-text); }
.diff-line.meta { color: var(--muted); }
.diff-line-number { padding: 0 .75rem; border-right: 1px solid color-mix(in srgb, var(--border) 65%, transparent); color: var(--diff-line-number); text-align: right; text-decoration: none; user-select: none; }
a.diff-line-number:hover { color: var(--accent); text-decoration: underline; }
.diff-code { min-height: 1.55em; padding: 0 1rem 0 .55rem; white-space: pre; }
.diff-marker { display: inline-block; width: 1.2rem; color: var(--muted); user-select: none; }
.loading-card, .empty-state { display: grid; min-height: 19rem; place-content: center; justify-items: center; gap: 1rem; padding: 3rem; text-align: center; }
.standalone-state { border: 1px solid var(--border); border-radius: 1rem; background: var(--surface); }
.empty-state.embedded-state { border: 0; border-radius: 0; background: transparent; }
.code-panel.embedded > .empty-state { color: var(--code-text); }
.code-panel.embedded > .empty-state p { color: color-mix(in srgb, var(--code-text) 72%, var(--code-bg)); }
.empty-state.embedded-list-state { min-height: 8rem; padding: 1.25rem; border: 0; border-radius: 0; background: transparent; }
.loading-card { grid-template-columns: auto auto; min-height: 10rem; justify-items: start; text-align: left; }
.loading-card p, .empty-state p { max-width: 560px; margin: .35rem 0 0; color: var(--muted); }
.loader { width: 1.2rem; height: 1.2rem; border: 2px solid var(--border); border-top-color: var(--accent); border-radius: 50%; animation: spin .7s linear infinite; }
.empty-glyph { display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid color-mix(in srgb, var(--danger) 40%, var(--border)); border-radius: 50%; color: var(--danger); font: 800 1.2rem "Space Mono", monospace; }
.empty-state h1 { margin: 0; }
footer { display: flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 2rem clamp(1rem, 4vw, 4.5rem); border-top: 1px solid var(--border); color: var(--muted); font-size: .78rem; }
footer a { color: var(--accent); }
.focus-ring:focus-visible, a:focus-visible, button:focus-visible, [tabindex]:focus-visible { outline: 2px solid var(--accent); outline-offset: 3px; }
.latest-commit:focus-visible, .tree-row:focus-visible, .commit-row:focus-visible, .diff-file-header:focus-visible { outline-offset: -3px; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (max-width: 820px) {
  .topbar { min-height: 4rem; }
  .topnav > a { display: none; }
  .context-bar { align-items: start; flex-direction: column; }
  .breadcrumbs { width: 100%; }
  .context-actions { width: 100%; overflow-x: auto; }
  .context-actions .button { min-height: 2.75rem; flex: 1 0 auto; }
  main { padding: 1rem; }
  .section-heading { align-items: stretch; flex-wrap: wrap; }
  .repo-search { order: 3; width: 100%; }
  .split-layout { grid-template-columns: 1fr; }
  .source-workspace { grid-template-columns: 1fr; }
  .file-tree-sidebar { position: static; max-height: 22rem; }
  .file-tree-body { max-height: 18rem; }
  .side-tree-row { min-height: 2.75rem; }
  .tree-toggle, .tree-toggle-spacer { flex-basis: 2.5rem; width: 2.5rem; height: 2.5rem; }
  .file-tree-header button { min-height: 2.5rem; }
  .side-tree-link { padding-block: .55rem; }
  .page-header { grid-template-columns: 1fr; }
  .page-header-icon { width: 2.8rem; height: 2.8rem; }
  .page-feature-actions { grid-column: 1; }
  .media-copy { align-items: stretch; flex-direction: column; }
  .file-header { align-items: center; }
  .commit-title { align-items: stretch; flex-direction: column; }
  .commit-title > code { align-self: start; }
  .identity-label { width: 100%; }
  .commit-files-heading { align-items: stretch; flex-wrap: wrap; }
  .commit-file-filter { order: 3; width: 100%; }
  .diff-file-header { grid-template-columns: auto auto minmax(0, 1fr) auto auto; }
  .diff-file-action { display: none; }
  .diff-count.deletions { display: none; }
  .diff-line { grid-template-columns: 3rem 3rem minmax(max-content, 1fr); }
  .ref-row { grid-template-columns: auto minmax(0, 1fr) auto; }
  .ref-row > span:nth-child(3) { display: none; }
  .ref-actions .button { display: none; }
  .tree-row { grid-template-columns: auto minmax(0, 1fr) auto; }
  .tree-row code { display: none; }
  .tree-columns { grid-template-columns: 1fr 6rem; padding-left: 3.55rem; }
  .tree-columns span:nth-child(2) { display: none; }
  .code-line { grid-template-columns: 3.5rem auto; }
  .large-file-toolbar { align-items: start; flex-direction: column; }
  footer { align-items: start; flex-direction: column; }
}
@media (max-width: 480px) {
  .file-stats code { display: none; }
  .file-header { padding-inline: .75rem; }
  .commit-summary { gap: .6rem 1rem; }
  .commit-page-total { display: none; }
  .diff-file-header { grid-template-columns: auto auto minmax(0, 1fr); }
  .diff-count { display: none; }
}
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition: none !important; animation-duration: .01ms !important; } }
