kepr.css

40.7 KB · raw

1/* Kepr 3: Kepr 2's look (kepr.uk, gold theme), ported only as far as the pages that exist use it. */23:root {4	--bg: #090706;5	--bg-surface: #0e0c09;6	--bg-elevated: #1b1710;7	--border: #2a2018;8	--text: #c8b898;9	--text-secondary: #7a6a50;10	--text-muted: #7a6a50;11	--text-faint: #4a3a28;12	--text-heading: #e8d8b8;13	--accent: #c89a5a;14	--accent-bright: #d9b88c;15	--accent-dim: #85663c;16	--accent-flash: #5a88c8;17	--accent-tint-04: rgba(200, 154, 90, 0.04);18	--accent-tint-12: rgba(200, 154, 90, 0.12);19	--sage: #7a9a68;20	--sans: "Quicksand", system-ui, sans-serif;21	--mono: "Martian Mono", ui-monospace, monospace;22}2324* {25	box-sizing: border-box;26	scrollbar-width: thin;27	scrollbar-color: var(--border) transparent;28}2930html,31body {32	margin: 0;33	padding: 0;34	background: var(--bg);35	color: var(--text);36	font-family: var(--sans);37	font-size: 16px;38	line-height: 1.6;39	overflow-x: hidden;40}4142a {43	color: inherit;44	text-decoration: none;45}46a:hover {47	text-decoration: underline;48	text-decoration-color: var(--accent);49	text-decoration-thickness: 1px;50	text-underline-offset: 4px;51}5253/* ----- top bar ------------------------------------------------------------ */5455body > nav {56	display: flex;57	align-items: center;58	padding: 24px 48px;59	font-size: 0.6875rem;60	letter-spacing: 0.04em;61}62.wordmark {63	display: flex;64	color: var(--accent);65}66.wordmark:hover {67	text-decoration: none;68}69.wordmark-icon {70	display: block;71	width: 32px;72	height: 32px;73	color: var(--accent);74}75.wordmark-icon polygon {76	fill: none;77	stroke: currentColor;78	stroke-linejoin: round;79}80.tri-outer polygon {81	stroke-width: 2;82}83.tri-inner polygon {84	stroke-width: 1.5;85}86.tri-outer,87.tri-inner {88	transform-origin: 16px 16px;89}90.tri-outer {91	animation:92		tri-ccw 12s linear infinite,93		accent-flash 9s ease-in-out infinite;94}95.tri-inner {96	animation:97		tri-cw 8s linear infinite,98		accent-flash 6.7s ease-in-out infinite;99}100@keyframes tri-ccw {101	to {102		transform: rotate(-360deg);103	}104}105@keyframes tri-cw {106	to {107		transform: rotate(360deg);108	}109}110@keyframes accent-flash {111	0%,112	84%,113	100% {114		color: var(--accent);115	}116	92% {117		color: var(--accent-flash);118	}119}120.wordmark-by {121	margin-left: 10px;122	font-size: 0.625rem;123	color: var(--text-faint);124	letter-spacing: 0.03em;125}126.nav-links {127	margin-left: auto;128	display: inline-flex;129	gap: 28px;130	font-family: var(--mono);131}132.nav-links a {133	color: var(--text-secondary);134}135136main {137	max-width: 980px;138	margin: 0 auto;139	padding: 24px 48px 120px;140}141142footer {143	text-align: center;144	padding: 80px 24px 48px;145}146footer .credit {147	font-family: var(--mono);148	font-size: 0.6875rem;149	color: var(--text-muted);150}151152.mono {153	font-family: var(--mono);154	font-size: 0.8125rem;155	color: var(--text-secondary);156}157.muted {158	color: var(--text-muted);159}160161@keyframes fadeUp {162	from {163		opacity: 0;164		transform: translateY(6px);165	}166	to {167		opacity: 1;168		transform: translateY(0);169	}170}171@keyframes fadeIn {172	from {173		opacity: 0;174	}175}176177/* ----- repo header -------------------------------------------------------- */178179.repo-head {180	margin: 20px 0 24px;181}182.repo-name {183	font-family: "Comfortaa", var(--sans);184	font-weight: 700;185	font-size: 4rem;186	line-height: 1.05;187	margin: -0.1em 0 10px;188	color: var(--text);189	overflow-wrap: anywhere;190	animation: fadeUp 280ms ease both;191}192.repo-contributor {193	margin: 4px 0 0;194	font-size: 0.8125rem;195	animation: fadeUp 280ms 40ms ease both;196}197.repo-contributor a:hover {198	color: var(--accent);199}200.repo-desc,201.repo-homepage {202	margin: 0 0 10px;203	font-size: 1.0625rem;204	color: var(--text-secondary);205	line-height: 1.75;206	animation: fadeUp 280ms 30ms ease both;207}208.repo-desc p {209	margin: 12px 0 0;210}211.repo-desc a,212.repo-homepage a {213	color: var(--accent);214}215.repo-desc code {216	font-family: var(--mono);217	font-size: 0.85em;218	color: var(--accent);219}220.lang-badges {221	display: flex;222	flex-wrap: wrap;223	gap: 6px;224	margin: 8px 0 6px;225}226.lang-badge {227	font-family: var(--mono);228	font-size: 0.6875rem;229	color: var(--accent-dim);230	background: var(--bg-surface);231	border: 1px solid var(--border);232	border-radius: 3px;233	padding: 1px 7px;234	letter-spacing: 0.02em;235}236.repo-meta {237	margin: 0;238	font-size: 0.875rem;239	color: var(--text-muted);240	line-height: 1.7;241	animation: fadeUp 280ms 60ms ease both;242}243.repo-tabbar {244	display: flex;245	align-items: center;246	justify-content: space-between;247	flex-wrap: wrap;248	gap: 14px 20px;249	margin-top: 22px;250}251.repo-tabs {252	display: flex;253	gap: 24px;254	flex-wrap: wrap;255	font-family: var(--mono);256	animation: fadeUp 280ms 90ms ease both;257}258.repo-tab {259	font-size: 0.6875rem;260	color: var(--text-muted);261	padding: 0 0 11px;262	border-bottom: 1px solid transparent;263	transition:264		color 140ms,265		border-color 140ms;266}267.repo-tab:hover {268	color: var(--accent);269	text-decoration: none;270}271.repo-tab.active {272	color: var(--accent);273	border-bottom-color: var(--accent);274}275.repo-panel {276	padding: 10px 0 16px;277	animation: fadeIn 220ms ease both;278}279.repo-panel[hidden] {280	display: none;281}282.repo-steal-btn {283	display: block;284	width: fit-content;285	max-width: 100%;286	font-family: var(--mono);287	font-size: 0.75rem;288	color: var(--text-muted);289	background: var(--bg-surface);290	border: 1px solid var(--border);291	border-radius: 3px;292	padding: 5px 11px;293	cursor: pointer;294	letter-spacing: 0.03em;295	white-space: nowrap;296	overflow: hidden;297	text-overflow: ellipsis;298	transition:299		color 120ms,300		border-color 120ms;301}302.repo-steal-btn:hover,303.repo-steal-btn.copied {304	color: var(--accent);305	border-color: var(--accent-dim);306}307.install-lines {308	display: flex;309	flex-direction: column;310	align-items: flex-end;311	gap: 6px;312	max-width: 100%;313	margin-left: auto;314	animation: fadeUp 280ms 120ms ease both;315}316.install-line {317	display: flex;318	align-items: center;319	gap: 12px;320	max-width: 100%;321	font-family: var(--mono);322	font-size: 0.75rem;323	color: var(--text-muted);324	background: var(--bg-surface);325	border: 1px solid var(--border);326	border-radius: 3px;327	padding: 5px 11px;328}329.install-line code {330	white-space: pre;331	overflow-x: auto;332	font-family: inherit;333}334.copy-btn {335	background: none;336	border: 0;337	padding: 0;338	cursor: pointer;339	font: inherit;340	font-size: 0.625rem;341	color: var(--text-faint);342	letter-spacing: 0.04em;343}344.copy-btn:hover,345.copy-btn.copied {346	color: var(--accent);347}348349/* ----- sections ----------------------------------------------------------- */350351.repo-section {352	margin: 36px 0 0;353	animation: fadeIn 320ms 80ms ease both;354}355.repo-section-toggle > summary,356.repo-details-toggle > summary {357	list-style: none;358	cursor: pointer;359	user-select: none;360}361.repo-section-toggle > summary::-webkit-details-marker,362.repo-details-toggle > summary::-webkit-details-marker {363	display: none;364}365.section-head {366	display: flex;367	align-items: baseline;368	gap: 12px;369	padding-bottom: 8px;370	border-bottom: 1px solid var(--border);371	margin-bottom: 4px;372}373.section-head::after,374.repo-details-head::after {375	content: "▸";376	font-size: 0.5625rem;377	opacity: 0.4;378	transition: transform 120ms;379}380.section-head::after {381	margin-left: auto;382}383details[open] > .section-head::after,384details[open] > .repo-details-head::after {385	transform: rotate(90deg);386}387.section-label {388	font-size: 0.6875rem;389	letter-spacing: 0.12em;390	color: var(--text-secondary);391	text-transform: uppercase;392}393.section-count {394	font-family: var(--mono);395	font-size: 0.6875rem;396	color: var(--accent);397}398399/* ----- timeline ----------------------------------------------------------- */400401.timeline {402	display: block;403	margin: 18px 0 4px;404	overflow: visible;405}406.timeline-line {407	stroke: var(--text-faint);408	stroke-width: 1;409	stroke-dasharray: 4 4;410}411.timeline .dot circle {412	fill: var(--accent);413	transition:414		fill-opacity 120ms,415		r 120ms;416}417.timeline .d0 circle {418	fill: var(--accent-dim);419	fill-opacity: 0.45;420}421.timeline .d1 circle {422	fill-opacity: 0.55;423}424.timeline .d2 circle {425	fill-opacity: 0.8;426}427.timeline .d3 circle {428	fill: var(--accent-bright);429	fill-opacity: 1;430}431.timeline .dot:hover circle,432.timeline .dot:focus circle {433	fill: var(--accent-bright);434	fill-opacity: 1;435}436.timeline-canvas {437	display: block;438	margin: 18px 0 4px;439	cursor: grab;440	touch-action: pan-y;441}442.timeline-tip {443	position: fixed;444	z-index: 200;445	max-width: 340px;446	padding: 0.45rem 0.7rem;447	background: #0f0c08;448	border: 1px solid var(--border);449	border-radius: 4px;450	pointer-events: none;451	line-height: 1.5;452}453.timeline-tip .tip-id {454	font-family: var(--mono);455	font-size: 12px;456	color: var(--accent);457}458.timeline-tip .tip-msg {459	margin-top: 3px;460	font-style: italic;461	font-size: 15px;462	color: var(--text-heading);463}464.timeline-tip .tip-meta {465	margin-top: 4px;466	font-family: var(--mono);467	font-size: 10px;468	color: var(--text-muted);469}470471/* ----- history ------------------------------------------------------------ */472473.history-row {474	position: relative;475	display: grid;476	grid-template-columns: 110px 1fr auto;477	align-items: baseline;478	gap: 0 10px;479	padding: 9px 8px;480	border-bottom: 1px solid var(--border);481	transition: background 100ms;482}483.history-row::before {484	content: "";485	position: absolute;486	left: 0;487	top: 0;488	bottom: 0;489	width: 2px;490	background: var(--accent);491	transform: scaleY(0);492	transition: transform 120ms ease;493}494.history-row:hover {495	background: var(--accent-tint-04);496	text-decoration: none;497}498.history-row:hover::before {499	transform: scaleY(1);500}501.history-id {502	font-family: var(--mono);503	font-size: 0.75rem;504	color: var(--text-secondary);505}506.history-msg {507	min-width: 0;508	line-height: 1.7;509	overflow: hidden;510	text-overflow: ellipsis;511	white-space: nowrap;512	transition: color 100ms;513}514.history-row:hover .history-msg {515	color: var(--accent);516}517.history-when {518	font-family: var(--mono);519	font-size: 0.6875rem;520	color: var(--text-muted);521	white-space: nowrap;522}523/* Kepr 2's history: four rows at a time, the rest a scroll away. */524.save-list {525	max-height: 180px;526	overflow-y: auto;527	scrollbar-width: thin;528	scrollbar-color: var(--border) transparent;529}530.pager {531	display: flex;532	justify-content: space-between;533	margin: 14px 0 0;534	font-size: 0.6875rem;535}536.pager a:last-child {537	margin-left: auto;538}539.pager a:hover {540	color: var(--accent);541}542543/* ----- atlas -------------------------------------------------------------- */544545.atlas-bar {546	display: flex;547	align-items: center;548	flex-wrap: wrap;549	gap: 8px 14px;550	margin: 10px 0 8px;551	font-size: 0.625rem;552}553.atlas-picker {554	position: relative;555}556.atlas-picker [hidden] {557	display: none;558}559.atlas-ref-tab {560	list-style: none;561	cursor: pointer;562	padding: 4px 8px;563	background: var(--bg);564	border: 1px solid rgba(200, 154, 90, 0.45);565	border-radius: 2px;566	font-size: 0.625rem;567	color: var(--accent);568}569.atlas-ref-tab::-webkit-details-marker {570	display: none;571}572.atlas-ref-tab:hover {573	color: var(--accent-dim);574}575.atlas-picker-popover {576	position: absolute;577	top: calc(100% + 6px);578	left: 0;579	z-index: 50;580	display: flex;581	flex-direction: column;582	width: min(420px, 90vw);583	max-height: 480px;584	background: var(--bg);585	border: 1px solid var(--text-faint);586	box-shadow: 0 18px 48px rgba(0, 0, 0, 0.48);587}588.atlas-picker-filter {589	padding: 8px 10px;590	background: var(--bg);591	border: 0;592	border-bottom: 1px solid var(--bg-elevated);593	outline: none;594	font-size: 0.6875rem;595	color: var(--text-heading);596}597.atlas-picker-filter::placeholder {598	color: var(--text-faint);599}600.atlas-picker-list {601	flex: 1 1 auto;602	min-height: 0;603	overflow: auto;604	scrollbar-width: thin;605	scrollbar-color: var(--border) transparent;606}607.atlas-picker-row {608	display: grid;609	grid-template-columns: 80px 1fr auto;610	align-items: center;611	gap: 8px;612	padding: 6px 10px;613	border-bottom: 1px solid rgba(42, 32, 24, 0.4);614	color: var(--text-muted);615}616.atlas-picker-row:hover {617	background: rgba(200, 154, 90, 0.06);618	text-decoration: none;619}620.atlas-picker-row.active {621	background: rgba(200, 154, 90, 0.1);622}623.atlas-picker-row:hover *,624.atlas-picker-row.active * {625	color: var(--accent);626}627.atlas-picker-id,628.atlas-picker-age {629	font-family: var(--mono);630	font-size: 0.5625rem;631	color: var(--text-faint);632	white-space: nowrap;633	overflow: hidden;634	text-overflow: ellipsis;635}636.atlas-picker-msg {637	font-size: 0.6875rem;638	white-space: nowrap;639	overflow: hidden;640	text-overflow: ellipsis;641}642.atlas-head-link {643	color: var(--accent);644}645.atlas-search-btn {646	margin-left: auto;647	padding: 4px 8px;648	background: transparent;649	border: 1px solid var(--border);650	border-radius: 2px;651	font: inherit;652	font-size: 0.625rem;653	color: var(--text-faint);654	cursor: pointer;655}656.atlas-search-btn:hover {657	color: var(--accent);658	border-color: var(--accent-dim);659}660.atlas-search-btn[hidden],661.atlas-filter[hidden] {662	display: none;663}664.atlas-filter {665	width: 220px;666	max-width: 100%;667	margin-left: auto;668	padding: 5px 10px;669	background: transparent;670	border: 1px solid var(--border);671	border-radius: 3px;672	color: var(--text);673	font-size: 0.6875rem;674}675.atlas-filter:focus {676	outline: none;677	border-color: var(--accent-dim);678}679.atlas-filter::placeholder {680	color: var(--text-faint);681}682/* Kepr 2's Atlas height: the tree and the panel each scroll inside it. */683.atlas {684	display: grid;685	grid-template-columns: minmax(0, 1fr);686	gap: 0 20px;687	height: 520px;688	border-top: 1px solid var(--bg-elevated);689	border-bottom: 1px solid var(--bg-elevated);690}691.atlas-tree,692.atlas-panel {693	min-height: 0;694	overflow-y: auto;695	scrollbar-width: thin;696	scrollbar-color: var(--border) transparent;697}698.atlas:has(> .atlas-panel:not([hidden])) {699	grid-template-columns: minmax(0, 1.25fr) minmax(0, 0.75fr);700}701.atlas [hidden] {702	display: none;703}704.atlas-folder > summary {705	list-style: none;706}707.atlas-folder > summary::-webkit-details-marker {708	display: none;709}710.atlas-children {711	padding-left: 14px;712	border-left: 1px solid var(--border);713	margin-left: 6px;714}715.atlas-row {716	position: relative;717	display: grid;718	grid-template-columns: minmax(90px, auto) 1fr auto;719	align-items: baseline;720	gap: 0 12px;721	padding: 6px 8px;722	border-bottom: 1px solid rgba(42, 32, 24, 0.62);723	cursor: pointer;724	transition: background 100ms;725}726.atlas-row:hover,727.atlas-row:focus-visible,728.atlas-row.selected {729	outline: none;730	background: var(--accent-tint-04);731	text-decoration: none;732}733.atlas-row.selected {734	box-shadow: inset 2px 0 0 var(--accent);735}736.atlas-name {737	color: var(--text-heading);738	font-size: 0.875rem;739	white-space: nowrap;740}741.atlas-folder > summary .atlas-name {742	color: var(--accent);743}744.atlas-desc {745	min-width: 0;746	color: var(--text-muted);747	font-size: 0.8125rem;748	overflow: hidden;749	text-overflow: ellipsis;750	white-space: nowrap;751}752.atlas-meta {753	font-size: 0.625rem;754	color: var(--text-faint);755	white-space: nowrap;756}757.atlas-panel {758	padding: 12px 0 12px 16px;759	border-left: 1px solid var(--border);760}761.atlas-hint {762	margin: 0;763	font-size: 0.625rem;764	color: var(--text-faint);765}766.atlas-info-name {767	margin: 0;768	font-weight: 400;769	font-size: 1.375rem;770	color: var(--text-heading);771	overflow-wrap: anywhere;772}773.atlas-info-path {774	margin: 0 0 12px;775	font-size: 0.625rem;776	color: var(--text-faint);777	overflow-wrap: anywhere;778}779.atlas-facts {780	display: grid;781	grid-template-columns: auto 1fr;782	gap: 3px 12px;783	margin: 0 0 12px;784	font-size: 0.625rem;785}786.atlas-facts dt {787	color: var(--text-faint);788}789.atlas-facts dd {790	margin: 0;791	color: var(--text);792}793.atlas-facts a {794	color: var(--accent);795}796.atlas-info-desc {797	font-size: 0.8125rem;798	color: var(--text-muted);799}800/* ----- README and rendered Markdown --------------------------------------- */801802.repo-details {803	margin: 36px 0 0;804	animation: fadeIn 320ms 80ms ease both;805}806.repo-details-toggle {807	border-bottom: 1px solid var(--border);808	padding-bottom: 24px;809}810.repo-details-head {811	display: flex;812	align-items: center;813	gap: 6px;814	padding: 8px 0;815	font-family: var(--mono);816	font-size: 0.6875rem;817	letter-spacing: 0.12em;818	color: var(--text-secondary);819	text-transform: uppercase;820}821.markdown {822	font-size: 1.05rem;823	line-height: 1.7;824	overflow-wrap: break-word;825}826.markdown h1,827.markdown h2,828.markdown h3,829.markdown h4 {830	font-weight: 400;831	margin: 1.4em 0 0.4em;832	color: var(--text-heading);833}834.markdown h1 {835	font-size: 1.5rem;836}837.markdown h2 {838	font-size: 1.3rem;839}840.markdown h3 {841	font-size: 1.15rem;842}843.markdown p {844	margin: 0.8em 0;845}846.markdown ul,847.markdown ol {848	margin: 0.8em 0 0.8em 1.5em;849	padding: 0;850}851.markdown a {852	color: var(--accent);853}854.markdown code {855	font-family: var(--mono);856	font-size: 0.82em;857	color: var(--accent);858	background: var(--bg-surface);859	padding: 0.15em 0.35em;860	border-radius: 3px;861}862.markdown pre {863	background: var(--bg-surface);864	border-radius: 4px;865	padding: 1em 1.2em;866	overflow-x: auto;867	margin: 1em 0;868}869.markdown pre code {870	background: none;871	padding: 0;872	color: var(--text);873	font-size: 0.85em;874}875.markdown blockquote {876	border-left: 3px solid var(--border);877	margin: 1em 0;878	padding: 0.1em 1em;879	color: var(--text-secondary);880}881.markdown hr {882	border: none;883	border-top: 1px solid var(--border);884	margin: 1.5em 0;885}886.markdown img {887	max-width: 100%;888}889.markdown table {890	border-collapse: collapse;891	display: block;892	overflow-x: auto;893}894.markdown th,895.markdown td {896	border: 1px solid var(--border);897	padding: 4px 10px;898}899900/* ----- file viewer -------------------------------------------------------- */901902.breadcrumb {903	margin: 0 0 4px;904	font-size: 0.75rem;905	overflow-wrap: anywhere;906}907.breadcrumb a:hover {908	color: var(--accent);909}910.file-page-title {911	font-size: 1.75rem;912	font-weight: 400;913	margin: 4px 0 12px;914	overflow-wrap: anywhere;915}916.file-meta,917.file-toggle {918	margin: 0 0 12px;919	font-size: 0.6875rem;920}921.file-meta a,922.file-toggle a.active {923	color: var(--accent);924}925.file-image img {926	max-width: 100%;927	background: var(--bg-surface);928	border: 1px solid var(--border);929}930.file-view {931	border: 1px solid var(--border);932	background: var(--bg-surface);933	overflow-x: auto;934}935.code {936	margin: 0;937	padding: 16px 0;938	font-family: var(--mono);939	font-size: 0.8125rem;940	line-height: 1.65;941	tab-size: 4;942}943/* A grid, so tab stops count from the start of the code rather than the line number. */944.code .line {945	display: grid;946	grid-template-columns: 6em 1fr;947	padding-right: 24px;948	scroll-margin-top: 40vh;949}950.code .line:target,951.code .line.hl {952	background: var(--accent-tint-12);953}954.code .lc {955	white-space: pre;956}957.code .ln {958	padding-right: 1.5em;959	text-align: right;960	color: var(--text-faint);961	user-select: none;962}963.code .ln:hover {964	color: var(--accent);965	text-decoration: none;966}967968/* Shiki's CSS-variables theme roles, in Kepr 2's highlight.js colours. */969.tk-comment {970	color: var(--text-muted);971	font-style: italic;972}973.tk-keyword {974	color: var(--accent);975}976.tk-string,977.tk-string-expression {978	color: var(--sage);979}980.tk-constant {981	color: var(--accent-bright);982}983.tk-function {984	color: var(--accent);985}986.tk-parameter {987	color: var(--text);988}989.tk-punctuation {990	color: var(--text-secondary);991}992.tk-link {993	color: var(--accent);994	text-decoration: underline;995}996.tk-inserted {997	color: var(--sage);998}999.tk-deleted {1000	color: #c45c5c;1001}1002.tk-i {1003	font-style: italic;1004}10051006/* ----- save page ---------------------------------------------------------- */10071008.save-id {1009	margin: 12px 0 0;1010	font-size: 0.75rem;1011	color: var(--text-secondary);1012}1013.save-flag {1014	margin: 12px 0 0;1015	padding: 8px 12px;1016	border: 1px solid #6a3a2a;1017	border-left: 2px solid #c45c5c;1018	background: rgba(196, 92, 92, 0.08);1019	color: var(--text-heading);1020}1021.save-flag-label {1022	margin-right: 8px;1023	font-size: 0.625rem;1024	letter-spacing: 0.12em;1025	text-transform: uppercase;1026	color: #c45c5c;1027}1028.save-message-head {1029	font-size: 2.25rem;1030	font-weight: 400;1031	line-height: 1.3;1032	margin: 12px 0 8px;1033	color: var(--text-heading);1034	overflow-wrap: anywhere;1035	animation: fadeUp 280ms ease both;1036}1037.save-message-body {1038	margin: 0 0 12px;1039	white-space: pre-wrap;1040	color: var(--text-secondary);1041}1042.save-facts {1043	display: grid;1044	grid-template-columns: max-content 1fr;1045	gap: 2px 16px;1046	margin: 16px 0;1047	font-size: 0.75rem;1048}1049.save-facts dt {1050	color: var(--text-faint);1051}1052.save-facts dd {1053	margin: 0;1054	overflow-wrap: anywhere;1055}1056.save-facts a,1057.save-links a,1058.diff-view a {1059	color: var(--accent);1060}1061.save-links {1062	display: flex;1063	flex-wrap: wrap;1064	gap: 8px 20px;1065	margin: 0;1066	font-size: 0.75rem;1067}1068.save-empty {1069	font-size: 0.75rem;1070}1071.change-row,1072.diff-head {1073	display: grid;1074	grid-template-columns: 1fr auto;1075	gap: 12px;1076	padding: 7px 8px;1077	border-bottom: 1px solid var(--border);1078	font-family: var(--mono);1079	font-size: 0.8125rem;1080}1081.change-row:hover {1082	background: var(--accent-tint-04);1083	text-decoration: none;1084}1085.change-path {1086	min-width: 0;1087	overflow-wrap: anywhere;1088}1089.change-added .change-path {1090	color: var(--sage);1091}1092.change-removed .change-path {1093	color: var(--text-muted);1094	text-decoration: line-through;1095}1096.change-modified .change-path {1097	color: var(--accent-bright);1098}1099.change-stat {1100	font-size: 0.75rem;1101	white-space: nowrap;1102}1103.diff-add {1104	color: var(--sage);1105}1106.diff-del {1107	color: #c45c5c;1108}1109.diff-note {1110	color: var(--text-faint);1111	font-size: 0.6875rem;1112}1113.diff-file {1114	margin: 0 0 20px;1115}1116.diff-head {1117	cursor: pointer;1118	list-style: none;1119	border: 1px solid var(--border);1120	background: var(--bg-surface);1121}1122.diff-head::-webkit-details-marker {1123	display: none;1124}1125.diff-file > .file-view {1126	border-top: 0;1127}1128.diff-file > .diff-note,1129.diff-view {1130	margin: 8px 0 0;1131	font-size: 0.6875rem;1132}1133.code.diff {1134	padding: 4px 0;1135}1136.diff .dl {1137	display: grid;1138	grid-template-columns: 3.5em 3.5em 1.5em 1fr;1139	padding-right: 24px;1140}1141.diff .dh {1142	display: block;1143	padding: 4px 1em;1144	color: var(--text-faint);1145	background: var(--bg-elevated);1146}1147.diff .ln {1148	padding-right: 0.75em;1149	text-align: right;1150	color: var(--text-faint);1151	user-select: none;1152}1153.diff .ds {1154	text-align: center;1155	color: var(--text-faint);1156	user-select: none;1157}1158.diff .dl-add {1159	background: rgba(122, 154, 104, 0.1);1160}1161.diff .dl-add .ds {1162	color: var(--sage);1163}1164.diff .dl-del {1165	background: rgba(196, 92, 92, 0.08);1166}1167.diff .dl-del .ds {1168	color: #c45c5c;1169}11701171/* ----- archives ----------------------------------------------------------- */11721173.archive-row {1174	padding: 12px 8px;1175	border-bottom: 1px solid var(--border);1176}1177.archive-save {1178	display: flex;1179	flex-wrap: wrap;1180	align-items: baseline;1181	gap: 0 10px;1182	margin: 0;1183}1184.archive-save .history-id {1185	flex: 0 0 110px;1186}1187.archive-msg {1188	flex: 1;1189}1190.archive-head {1191	font-size: 0.625rem;1192	letter-spacing: 0.08em;1193	color: var(--accent);1194	border: 1px solid var(--accent-dim);1195	border-radius: 2px;1196	padding: 0 6px;1197}1198.archive-save .history-id:hover {1199	color: var(--accent);1200}1201.archive-links {1202	margin: 6px 0;1203	font-size: 0.75rem;1204}1205.archive-links a {1206	color: var(--accent);1207}1208.archive-row .install-line {1209	justify-content: space-between;1210}12111212/* ----- phone -------------------------------------------------------------- */12131214@media (max-width: 768px) {1215	body > nav {1216		padding: 20px 16px;1217	}1218	.nav-links {1219		gap: 18px;1220	}1221	main {1222		padding: 16px 16px 80px;1223	}1224	.repo-name {1225		font-size: 2.75rem;1226	}1227	.install-lines {1228		align-items: stretch;1229		margin-left: 0;1230		width: 100%;1231	}1232	.history-row {1233		grid-template-columns: 1fr auto;1234	}1235	.history-id {1236		grid-column: 1 / -1;1237	}1238	.atlas-row {1239		grid-template-columns: 1fr auto;1240	}1241	.atlas-desc {1242		grid-column: 1 / -1;1243		grid-row: 2;1244	}1245	.atlas:has(> .atlas-panel:not([hidden])) {1246		grid-template-columns: minmax(0, 1fr);1247	}1248	.atlas-panel {1249		display: none;1250	}1251	.code .line {1252		grid-template-columns: 4.5em 1fr;1253	}1254	.save-message-head {1255		font-size: 1.625rem;1256	}1257	.archive-msg {1258		flex-basis: 100%;1259		order: 1;1260	}1261	.diff .dl {1262		grid-template-columns: 2.75em 2.75em 1.25em 1fr;1263	}1264	.code .ln {1265		padding-right: 1em;1266	}1267}12681269/* ----- builds ------------------------------------------------------------- */12701271.release {1272	padding: 20px 8px 24px;1273	border-bottom: 1px solid var(--border);1274}1275.release-head {1276	display: flex;1277	flex-wrap: wrap;1278	align-items: baseline;1279	gap: 0 14px;1280	margin: 0 0 8px;1281}1282.release-version {1283	font-family: "Martian Mono", monospace;1284	font-size: 1rem;1285	color: var(--accent);1286}1287.release-head .history-id:hover {1288	color: var(--accent);1289}1290.release-notes {1291	margin-bottom: 14px;1292}1293.release-file {1294	padding: 10px 0;1295	border-top: 1px dashed var(--border);1296}1297.release-file-head {1298	display: flex;1299	flex-wrap: wrap;1300	align-items: baseline;1301	gap: 4px 14px;1302	margin: 0;1303}1304.release-platform {1305	flex: 0 0 180px;1306}1307.release-download {1308	flex: 1;1309	font-size: 0.75rem;1310	color: var(--accent);1311	overflow-wrap: anywhere;1312}1313.release-meta,1314.release-sha {1315	font-size: 0.6875rem;1316	color: var(--text-muted);1317}1318.release-sha {1319	margin: 4px 0 0;1320	overflow-wrap: anywhere;1321}1322.release-hint {1323	margin: 4px 0 0;1324	font-size: 0.8125rem;1325}13261327/* ----- issues ------------------------------------------------------------- */13281329.issues-bar {1330	display: flex;1331	flex-wrap: wrap;1332	align-items: center;1333	gap: 8px 12px;1334	font-size: 0.75rem;1335	padding-bottom: 14px;1336	border-bottom: 1px solid var(--bg-elevated);1337}1338.issues-tab {1339	color: var(--text-faint);1340	border: 1px solid transparent;1341	border-radius: 999px;1342	padding: 4px 10px;1343}1344button.issues-tab {1345	font: inherit;1346	background: none;1347	cursor: pointer;1348}1349.issues-tab.active {1350	color: var(--accent);1351	border-color: var(--accent-tint-12);1352}1353.issues-new {1354	margin-left: auto;1355	color: var(--text-muted);1356}1357.issue-row {1358	display: flex;1359	flex-wrap: wrap;1360	align-items: baseline;1361	gap: 2px 10px;1362	padding: 10px 8px;1363	border-bottom: 1px solid var(--border);1364}1365.issue-row:hover {1366	text-decoration: none;1367	background: var(--accent-tint-04);1368}1369.issue-title {1370	flex: 1;1371	color: var(--text-heading);1372}1373.issues-new:hover,1374.issue-row:hover .issue-title {1375	color: var(--accent);1376}1377.issue-meta,1378.issue-post-head {1379	font-size: 0.6875rem;1380	color: var(--text-muted);1381}1382.issue-symbol--open {1383	color: var(--accent);1384}1385.issue-symbol--closed {1386	color: var(--text-faint);1387}1388.issue-post {1389	margin: 18px 0;1390	padding: 14px 18px;1391	border: 1px solid var(--border);1392	border-radius: 6px;1393	background: var(--bg-surface);1394}1395.issue-post--operator {1396	border-color: var(--accent-dim);1397}1398.issue-post-head {1399	display: flex;1400	flex-wrap: wrap;1401	gap: 4px 12px;1402	margin: 0 0 8px;1403}1404.issue-author {1405	color: var(--text);1406}1407.issue-badge {1408	color: var(--accent);1409	text-transform: uppercase;1410	letter-spacing: 0.08em;1411}1412.issue-text {1413	white-space: pre-wrap;1414	overflow-wrap: anywhere;1415}1416.issue-link {1417	font-size: 0.75rem;1418	overflow-wrap: anywhere;1419	color: var(--accent);1420}1421.issues-form {1422	display: flex;1423	flex-direction: column;1424	gap: 6px;1425	max-width: 640px;1426	margin-top: 18px;1427}1428.issues-label {1429	font-family: var(--mono);1430	font-size: 0.6875rem;1431	margin-top: 6px;1432	opacity: 0.8;1433}1434.issues-input,1435.issues-textarea {1436	font-family: var(--mono);1437	font-size: 0.75rem;1438	width: 100%;1439	padding: 6px 8px;1440	color: var(--text);1441	background: var(--bg);1442	border: 1px solid var(--border);1443	border-radius: 4px;1444	resize: vertical;1445}1446.issues-input:focus,1447.issues-textarea:focus {1448	outline: none;1449	border-color: var(--accent);1450}1451.issues-submit {1452	align-self: flex-start;1453	margin-top: 10px;1454	padding: 6px 14px;1455	font-family: var(--mono);1456	font-size: 0.75rem;1457	color: var(--bg);1458	background: var(--accent);1459	border: none;1460	border-radius: 4px;1461	cursor: pointer;1462}1463.issues-submit:hover {1464	opacity: 0.85;1465}1466.issues-error {1467	font-size: 0.75rem;1468	color: #c86a5a;1469}1470/* The honeypot: off-screen for people, still in the form for bots. */1471.issues-hp {1472	position: absolute;1473	left: -9999px;1474	height: 0;1475	overflow: hidden;1476	opacity: 0;1477}14781479/* ----- front page --------------------------------------------------------- */14801481/* Kepr 2's hero band, full width, reaching up behind the nav (32px mark + 48px padding). */1482body > nav {1483	position: relative;1484	z-index: 1;1485}1486.ticker {1487	position: relative;1488	height: 304px;1489	margin: -104px calc(50% - 50vw) 0;1490	padding: 96px 0 20px;1491	display: flex;1492	flex-direction: column;1493	justify-content: space-evenly;1494	overflow: hidden;1495	pointer-events: none;1496	user-select: none;1497	border-bottom: 1px solid var(--border);1498	font-family: var(--mono);1499	color: var(--text-secondary);1500	mask-image: linear-gradient(1501		to right,1502		transparent,1503		#000 48px,1504		#000 calc(100% - 48px),1505		transparent1506	);1507}1508.ticker-row {1509	white-space: nowrap;1510	line-height: 1.2;1511	opacity: var(--o);1512	animation: ticker-glow 83s var(--glow-at) ease-in-out infinite;1513}1514/* The drift's duration is set by kepr.js from the track's width, so every row keeps Kepr 2's1515   pace in px/s (--speed) however long its messages are; this is the no-JavaScript fallback. */1516.ticker-track {1517	display: inline-flex;1518	gap: 64px;1519	padding-right: 64px;1520	animation: ticker-drift 1500s linear infinite;1521}1522/* Kepr 2's depth bands: nearer rows are larger, brighter and faster. Each row takes its turn at1523   the glow, a few seconds out of every 83, spaced so one or two glow at a time. */1524.ticker-row:nth-child(1) {1525	font-size: 9px;1526	--o: 0.05;1527	--speed: 12;1528	--glow-at: -5s;1529}1530.ticker-row:nth-child(2) {1531	font-size: 18px;1532	--o: 0.1;1533	--speed: 23;1534	--glow-at: -41s;1535}1536.ticker-row:nth-child(3) {1537	font-size: 7px;1538	--o: 0.04;1539	--speed: 9;1540	--glow-at: -77s;1541}1542.ticker-row:nth-child(4) {1543	font-size: 13px;1544	--o: 0.07;1545	--speed: 17;1546	--glow-at: -29s;1547}1548.ticker-row:nth-child(5) {1549	font-size: 22px;1550	--o: 0.12;1551	--speed: 29;1552	--glow-at: -65s;1553}1554.ticker-row:nth-child(6) {1555	font-size: 8px;1556	--o: 0.045;1557	--speed: 10;1558	--glow-at: -17s;1559}1560.ticker-row:nth-child(7) {1561	font-size: 15px;1562	--o: 0.08;1563	--speed: 20;1564	--glow-at: -53s;1565}1566@keyframes ticker-drift {1567	to {1568		transform: translateX(-50%);1569	}1570}1571@keyframes ticker-glow {1572	0%,1573	10%,1574	100% {1575		color: var(--text-secondary);1576		opacity: var(--o);1577		text-shadow: none;1578	}1579	5% {1580		color: var(--accent);1581		opacity: calc(var(--o) * 3.5);1582		text-shadow: 0 0 3px var(--accent-tint-12);1583	}1584}15851586.headline {1587	display: grid;1588	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);1589	gap: 48px;1590	align-items: center;1591	padding: 56px 0 40px;1592}1593.headline h1 {1594	font-size: clamp(2rem, 5vw, 3.5rem);1595	font-weight: 400;1596	line-height: 1.15;1597	color: var(--text-heading);1598	margin: 0 0 20px;1599	animation: fadeUp 480ms ease both;1600}1601.headline-tagline {1602	margin: 0;1603	font-size: 0.9375rem;1604	line-height: 1.7;1605	color: var(--text-secondary);1606	animation: fadeUp 480ms 80ms ease both;1607}1608.headline-cloud {1609	display: flex;1610	flex-wrap: wrap;1611	justify-content: center;1612	align-items: center;1613	gap: 10px 22px;1614	padding: 20px;1615	animation: fadeIn 600ms 160ms ease both;1616}1617.tc-tag {1618	font-family: var(--mono);1619	letter-spacing: 0.03em;1620	white-space: nowrap;1621	color: var(--accent-dim);1622	transition:1623		color 0.2s,1624		opacity 0.2s,1625		text-shadow 0.2s;1626}1627.tc-tag:hover {1628	color: var(--accent);1629	opacity: 1;1630	text-shadow: 0 0 14px var(--accent-tint-12);1631}1632.tc-1 {1633	font-size: 10px;1634	opacity: 0.42;1635}1636.tc-2 {1637	font-size: 12px;1638	opacity: 0.56;1639}1640.tc-3 {1641	font-size: 15px;1642	opacity: 0.7;1643}1644.tc-4 {1645	font-size: 18px;1646	opacity: 0.85;1647	font-weight: 500;1648}1649.tc-5 {1650	font-size: 23px;1651	opacity: 1;1652	font-weight: 500;1653}16541655.featured-label {1656	font-size: 0.6875rem;1657	font-weight: 400;1658	letter-spacing: 0.08em;1659	text-transform: uppercase;1660	color: var(--text-secondary);1661	margin: 0 0 12px;1662}1663.landing-self-host {1664	margin: 32px 0 0;1665	font-size: 0.75rem;1666}1667.landing-self-host a {1668	color: var(--text-secondary);1669}16701671/* ----- repo cards (front page, browse, profile) --------------------------- */16721673.card-grid {1674	display: grid;1675	grid-template-columns: repeat(2, minmax(0, 1fr));1676	gap: 16px;1677}1678.repo-card {1679	display: flex;1680	flex-direction: column;1681	padding: 20px 22px 16px;1682	border: 1px solid var(--bg-elevated);1683	border-radius: 4px;1684	background: var(--bg);1685	transition:1686		border-color 120ms,1687		background 120ms;1688	animation: fadeUp 350ms ease both;1689}1690.repo-card:hover {1691	text-decoration: none;1692	border-color: var(--text-faint);1693	background: var(--accent-tint-04);1694}1695.repo-card-head {1696	display: flex;1697	align-items: baseline;1698	justify-content: space-between;1699	gap: 12px;1700}1701.repo-card-name {1702	font-size: 1.375rem;1703	line-height: 1.1;1704	color: var(--accent);1705	overflow: hidden;1706	text-overflow: ellipsis;1707	white-space: nowrap;1708}1709.repo-card-saves {1710	font-size: 0.6875rem;1711	white-space: nowrap;1712}1713.repo-card-desc {1714	margin: 8px 0 0;1715	font-size: 0.8125rem;1716	line-height: 1.5;1717	color: var(--text-secondary);1718	display: -webkit-box;1719	-webkit-line-clamp: 2;1720	-webkit-box-orient: vertical;1721	overflow: hidden;1722}1723.repo-card-cat {1724	margin: 10px 0 0;1725	font-size: 0.9375rem;1726	color: var(--text);1727}17281729/* ----- profile ------------------------------------------------------------ */17301731/* The cover runs the full width of the window while the page keeps its column. */1732.profile-cover {1733	position: relative;1734	height: 380px;1735	margin: -24px calc(50% - 50vw) 0;1736	overflow: hidden;1737	border-bottom: 1px solid var(--bg-surface);1738}1739.hex-backdrop {1740	position: absolute;1741	inset: 0;1742	display: flex;1743	flex-direction: row-reverse;1744	justify-content: center;1745	align-items: center;1746	gap: 13px;1747	pointer-events: none;1748	user-select: none;1749	font-family: var(--mono);1750	font-size: 13px;1751	line-height: 16px;1752	color: var(--accent-dim);1753}1754/* Characters top to bottom, columns right to left, each breathing on its own clock. */1755.hex-col {1756	writing-mode: vertical-rl;1757	text-orientation: upright;1758	letter-spacing: 3px;1759	opacity: 0.05;1760	animation: hex-breathe 17s ease-in-out infinite;1761	transition:1762		color 1.6s ease,1763		text-shadow 1.6s ease;1764}1765.hex-col:nth-child(3n) {1766	color: var(--accent);1767	animation-duration: 23s;1768	animation-delay: -7s;1769}1770.hex-col:nth-child(4n + 1) {1771	animation-duration: 29s;1772	animation-delay: -13s;1773}1774.hex-col:nth-child(5n + 2) {1775	animation-duration: 19s;1776	animation-delay: -3s;1777}1778.hex-col:nth-child(7n) {1779	animation-delay: -21s;1780}1781.hex-col.glow {1782	color: var(--accent-bright);1783	text-shadow: 0 0 6px var(--accent-tint-12);1784}1785@keyframes hex-breathe {1786	0%,1787	100% {1788		opacity: 0.05;1789	}1790	50% {1791		opacity: 0.22;1792	}1793}1794.profile-cover-fade {1795	position: absolute;1796	left: 0;1797	right: 0;1798	bottom: 0;1799	height: 55%;1800	background: linear-gradient(to bottom, transparent, var(--bg));1801	pointer-events: none;1802}1803.profile-identity {1804	position: absolute;1805	bottom: 40px;1806	left: 0;1807	right: 0;1808	max-width: 980px;1809	margin: 0 auto;1810	padding: 0 48px;1811}1812.profile-username {1813	margin: 0 0 8px;1814	font-family: "Sacramento", cursive;1815	font-weight: 400;1816	font-size: 3.625rem;1817	line-height: 1;1818	letter-spacing: -0.02em;1819	text-transform: lowercase;1820	color: var(--text-heading);1821	user-select: none;1822	animation: fadeUp 500ms ease both;1823}1824.profile-signature {1825	display: block;1826	max-height: 96px;1827	max-width: min(360px, 100%);1828}1829.profile-tagline {1830	margin: 0 0 6px;1831	font-family: var(--mono);1832	font-size: 0.75rem;1833	letter-spacing: 0.15em;1834	color: var(--text-faint);1835}1836.profile-op-badge {1837	display: block;1838	font-size: 0.6875rem;1839	letter-spacing: 0.18em;1840	color: var(--accent);1841}18421843.profile-portrait-section {1844	display: grid;1845	grid-template-columns: 320px minmax(0, 1fr);1846	gap: 40px;1847	align-items: start;1848	padding-top: 40px;1849}1850.profile-left {1851	display: flex;1852	flex-direction: column;1853	gap: 16px;1854}1855.profile-identity-card,1856.profile-languages-bar {1857	padding: 20px 24px;1858	border: 1px solid var(--bg-elevated);1859	border-radius: 4px;1860}1861.profile-identity-bio {1862	margin: 0;1863	font-size: 0.875rem;1864	line-height: 1.5;1865	color: var(--text-muted);1866}1867.profile-identity-location {1868	margin: 6px 0 0;1869	font-family: var(--mono);1870	font-size: 0.8125rem;1871	color: var(--text-muted);1872}1873.profile-website-pill {1874	display: inline-block;1875	max-width: 100%;1876	margin-top: 10px;1877	padding: 3px 8px;1878	overflow: hidden;1879	text-overflow: ellipsis;1880	white-space: nowrap;1881	border: 1px solid var(--text-faint);1882	border-radius: 3px;1883	background: var(--bg-surface);1884	font-family: var(--mono);1885	font-size: 0.6875rem;1886	color: var(--accent);1887}1888.profile-website-pill:hover {1889	border-color: var(--accent);1890	text-decoration: none;1891}1892.profile-stats-grid {1893	display: grid;1894	grid-template-columns: 1fr 1fr;1895	border: 1px solid var(--bg-elevated);1896	border-radius: 4px;1897	overflow: hidden;1898}1899.profile-stat-tile {1900	padding: 16px;1901	border-right: 1px solid var(--bg-elevated);1902	border-bottom: 1px solid var(--bg-elevated);1903}1904.profile-stat-tile:nth-child(2n) {1905	border-right: none;1906}1907.profile-stat-tile:nth-last-child(-n + 2) {1908	border-bottom: none;1909}1910.profile-stat-number {1911	margin-bottom: 4px;1912	font-weight: 600;1913	font-size: 1.75rem;1914	line-height: 1;1915	color: var(--accent);1916}1917.profile-stat-label,1918.profile-section-label {1919	font-family: var(--mono);1920	font-size: 0.625rem;1921	text-transform: uppercase;1922	letter-spacing: 0.08em;1923	color: var(--text-faint);1924}1925.profile-lang-bar {1926	display: block;1927	width: 100%;1928	height: 6px;1929	margin-bottom: 8px;1930	border-radius: 3px;1931	background: var(--bg-surface);1932}1933.profile-lang-bar rect {1934	fill: var(--accent);1935	opacity: 0.6;1936}1937.profile-lang-bar rect:nth-child(2) {1938	fill: var(--sage);1939}1940.profile-lang-bar rect:nth-child(3) {1941	fill: var(--accent-flash);1942	opacity: 0.45;1943}1944.profile-lang-bar rect:nth-child(4) {1945	fill: var(--accent-dim);1946}1947.profile-lang-labels {1948	display: flex;1949	flex-wrap: wrap;1950	gap: 10px;1951	font-family: var(--mono);1952	font-size: 0.625rem;1953	color: var(--text-muted);1954}1955.profile-section-label {1956	margin-bottom: 16px;1957	letter-spacing: 0.2em;1958}1959.profile-event {1960	display: grid;1961	grid-template-columns: 96px 12px minmax(0, 1fr) auto;1962	gap: 10px;1963	align-items: baseline;1964	padding: 7px 0;1965	border-bottom: 1px solid var(--bg-surface);1966	font-family: var(--mono);1967	font-size: 0.6875rem;1968	animation: fadeUp 300ms ease both;1969}1970.profile-event-repo,1971.profile-event-message {1972	overflow: hidden;1973	text-overflow: ellipsis;1974	white-space: nowrap;1975}1976.profile-event-repo,1977.profile-event-glyph {1978	color: var(--accent);1979}1980.profile-event-glyph {1981	font-size: 0.625rem;1982}1983.profile-event-message {1984	color: var(--text-muted);1985}1986.profile-event-message:hover {1987	color: var(--text-heading);1988}1989.profile-event-time {1990	font-size: 0.625rem;1991	white-space: nowrap;1992	color: var(--text-faint);1993}1994.profile-empty-state {1995	font-style: italic;1996	font-size: 0.8125rem;1997	color: var(--text-faint);1998}1999.profile-repos-section {2000	margin-top: 40px;2001	padding-top: 40px;2002	border-top: 1px solid var(--bg-surface);2003}20042005/* ----- docs and support --------------------------------------------------- */20062007.site-doc {2008	max-width: 72ch;2009	margin-top: 16px;2010}2011.site-doc h1 {2012	font-size: clamp(2rem, 5vw, 3rem);2013	font-weight: 400;2014	color: var(--text-heading);2015}2016.site-doc h2 {2017	margin-top: 2.4em;2018}20192020@media (max-width: 860px) {2021	.headline,2022	.profile-portrait-section {2023		grid-template-columns: minmax(0, 1fr);2024	}2025	.headline {2026		gap: 8px;2027		padding-top: 48px;2028	}2029	.card-grid {2030		grid-template-columns: minmax(0, 1fr);2031	}2032}2033@media (max-width: 768px) {2034	.fv-header {2035		flex-wrap: wrap;2036		height: auto;2037		padding: 8px 12px;2038		gap: 8px 12px;2039	}2040	.fv-body {2041		grid-template-columns: minmax(0, 1fr);2042	}2043	.fv-detail {2044		display: none;2045	}2046	.ticker {2047		height: 226px;2048		margin-top: -88px;2049		padding-top: 80px;2050	}2051	.profile-cover {2052		height: 280px;2053		margin-top: -16px;2054	}2055	.profile-identity {2056		bottom: 24px;2057		padding: 0 16px;2058	}2059	.profile-username {2060		font-size: 2.5rem;2061	}2062	.profile-event {2063		grid-template-columns: 72px 12px minmax(0, 1fr);2064	}2065	.profile-event-time {2066		display: none;2067	}2068}20692070/* ----- file viewer (Kepr 2's Atlas modal) -------------------------------- */20712072body:has(> .fv-overlay) {2073	overflow: hidden;2074}2075.fv-overlay {2076	position: fixed;2077	inset: 0;2078	z-index: 2000;2079	display: flex;2080	flex-direction: column;2081	background: rgba(8, 7, 5, 0.97);2082	outline: none;2083	animation: fv-in 200ms ease both;2084}2085@keyframes fv-in {2086	from {2087		opacity: 0;2088		transform: translateY(6px) scale(0.97);2089	}2090}2091.fv-header {2092	display: flex;2093	align-items: center;2094	gap: 16px;2095	flex-shrink: 0;2096	height: 48px;2097	padding: 0 20px;2098	background: var(--bg);2099	border-bottom: 1px solid var(--bg-elevated);2100}2101.fv-close {2102	background: none;2103	border: 0;2104	padding: 0 4px;2105	font-size: 1.375rem;2106	line-height: 1;2107	color: var(--text-faint);2108	cursor: pointer;2109}2110.fv-close:hover {2111	color: var(--accent);2112}2113.fv-title {2114	display: flex;2115	align-items: baseline;2116	gap: 8px;2117	flex: 1;2118	min-width: 0;2119}2120.fv-name {2121	font-size: 1.25rem;2122	color: var(--text-heading);2123	white-space: nowrap;2124}2125.fv-path {2126	font-size: 0.625rem;2127	color: var(--text-faint);2128	white-space: nowrap;2129	overflow: hidden;2130	text-overflow: ellipsis;2131}2132.fv-controls,2133.fv-nav {2134	display: flex;2135	align-items: center;2136	gap: 4px;2137	flex-shrink: 0;2138}2139.fv-ctrl-btn {2140	background: transparent;2141	border: 1px solid rgba(200, 154, 90, 0.2);2142	border-radius: 2px;2143	padding: 3px 7px;2144	font: inherit;2145	font-size: 0.625rem;2146	color: var(--text-faint);2147	cursor: pointer;2148	transition:2149		color 100ms,2150		border-color 100ms;2151}2152.fv-ctrl-btn:hover:not(:disabled),2153.fv-ctrl-btn.active {2154	color: var(--accent);2155	border-color: rgba(200, 154, 90, 0.5);2156	text-decoration: none;2157}2158.fv-ctrl-btn:disabled {2159	opacity: 0.3;2160	cursor: default;2161}2162.fv-pos {2163	min-width: 48px;2164	text-align: center;2165	font-size: 0.625rem;2166	color: var(--text-faint);2167}2168.fv-body {2169	flex: 1;2170	min-height: 0;2171	display: grid;2172	grid-template-columns: minmax(0, 1fr) 280px;2173}2174.fv-source {2175	min-height: 0;2176	overflow: auto;2177	padding: 16px 28px 32px;2178	font-family: var(--mono);2179	font-size: 0.6875rem;2180	color: var(--text-faint);2181}2182.fv-source .file-view {2183	margin: -16px -28px 0;2184	border: 0;2185	background: none;2186	overflow: visible;2187}2188.fv-source .code {2189	font-size: var(--fv-size);2190	color: var(--text);2191}2192.fv-wrap .fv-source .lc {2193	white-space: pre-wrap;2194	overflow-wrap: anywhere;2195}2196.fv-source .file-markdown {2197	font-family: var(--sans);2198	font-size: calc(var(--fv-size) + 2px);2199	color: var(--text);2200}2201.fv-detail .atlas-info-desc {2202	font-size: 0.8125rem;2203}2204.fv-detail {2205	overflow-y: auto;2206	padding: 18px 20px 24px;2207	background: var(--bg);2208	border-left: 1px solid var(--bg-elevated);2209}22102211/* Last in the file, after every animation it stops, so it wins without !important. */2212@media (prefers-reduced-motion: reduce) {2213	.tri-outer,2214	.tri-inner,2215	.repo-name,2216	.repo-contributor,2217	.repo-desc,2218	.repo-homepage,2219	.repo-meta,2220	.repo-tabs,2221	.install-lines,2222	.repo-section,2223	.repo-details,2224	.save-message-head,2225	.ticker-row,2226	.ticker-track,2227	.hex-col,2228	.headline h1,2229	.headline-tagline,2230	.headline-cloud,2231	.repo-card,2232	.profile-username,2233	.profile-event,2234	.fv-overlay,2235	.repo-panel {2236		animation: none;2237	}2238	.hex-col {2239		opacity: 0.12;2240	}2241}