@import "tailwindcss";
@theme {
	--font-script: Rancho, ui-serif;
	--font-sans: "Linux Biolinum", "Merriweather Sans", ui-sans-serif;
	--font-sansugly: "Arial", "Linux Biolinum", "Merriweather Sans", ui-sans-serif;
	--font-serif: "Linux Libertine", ui-serif;
	--font-didone: "Playfair", ui-serif;

	--color-background: oklch(0.985 0.001 106.423);
	--color-background-darker: oklch(0.97 0.001 106.424);
	--color-background-dark: oklch(0.923 0.003 48.717);

	--color-border-main: oklch(0.97 0.001 106.424);
	--color-border-secondary: oklch(0.923 0.003 48.717);

	--color-text: oklch(0.21 0.034 264.665);
	--color-text-strong: oklch(0 0 0);
	--color-text-muted: oklch(0.373 0.034 259.733);
	--color-text-disabled: oklch(0.872 0.01 258.338);
	--color-text-subtle: oklch(0.707 0.022 261.325);

	--color-accent-blue-500: oklch(0.623 0.214 259.815);
	--color-accent-blue-100: oklch(0.932 0.032 255.585);
}

/*
  The default border color has changed to `currentColor` in Tailwind CSS v4,
  so we've added these compatibility styles to make sure everything still
  looks the same as it did with Tailwind CSS v3.

  If we ever want to remove these styles, we need to add an explicit border
  color utility to any element that depends on these defaults.
*/
@layer base {
	*,
	::after,
	::before,
	::backdrop,
	::file-selector-button {
		border-color: var(--color-gray-200, currentColor);
	}
}

@utility font-variant-small-caps {
	font-variant-caps: small-caps;
	font-variant: small-caps;
	display: inline-block;
}

@layer components {
	html {
		font-size: 20px;
		scroll-behavior: auto !important;
	}

	@media (max-width: 1280px) {
		html {
			font-size: 16px;
		}
	}

	@media (max-width: 640px) {
		html {
			font-size: 12px;
		}
	}

	@media print {
		html {
			font-size: 14px;
		}
	}

	body {
		@apply bg-stone-50;
	}

	.container-normal {
		@apply w-full max-w-(--breakpoint-xl) mx-auto px-3 py-4 relative;
	}

	.stdlink {
		@apply underline decoration-dotted hover:decoration-solid;
	}

	nav a[aria-current="page"] {
		@apply font-bold text-red-500;
	}

	.diagonal-strike {
		@apply relative inline-block;
	}

	.diagonal-strike::before {
		@apply border-slate-50 border-t-[3px];
		position: absolute;
		content: "";
		left: 10%;
		top: 50%;
		right: 0;
		width: 60%;

		-webkit-transform: rotate(-65deg);
		-moz-transform: rotate(-65deg);
		-ms-transform: rotate(-65deg);
		-o-transform: rotate(-65deg);
		transform: rotate(-65deg);
	}

	.text {
		@apply font-serif relative;
		--text-color-rgb: 53, 53, 53;
		color: rgb(var(--text-color-rgb));
	}

	.text .count {
		@apply print:hidden hidden lg:block w-[2rem] -ml-[2rem] shrink grow-0 relative;
	}

	.text .fulltext {
		@apply max-w-[80ch] mr-8 grow relative;
	}

	.text .notes {
		@apply relative max-w-[80ch] pr-4 shrink grow-0 print:hidden;
	}

	.text .eanchor-page,
	.text .aq,
	.text .ul,
	.text .dul,
	.text .ink,
	.text .it,
	.text .tl,
	.text .pe,
	.text .gr,
	.text .hb,
	.text .ru,
	.text .nr,
	.text .align,
	.text .er,
	.text .b,
	.text .i,
	.text .subst,
	.text .insertion,
	.text .insertion-marker,
	.text .ddel,
	.text .del,
	.text .fn,
	.text .anchor {
		@apply inline;
	}

	.address {
		@apply contents;
	}

	.text .b {
		@apply font-bold;
	}

	.text .i {
		@apply italic;
	}

	.text .aq {
		@apply font-sansugly;
	}

	.text .ink {
		@apply text-blue-900;
	}

	.text .line {
		@apply inline-block;
	}

	.text p {
		@apply !indent-4;
	}

	.text .line.tab-1 {
		@apply inline-block w-4;
	}

	.text .line.tab-2 {
		@apply inline-block w-8;
	}

	.text .line.tab-3 {
		@apply inline-block w-12;
	}

	.text .line.tab-4 {
		@apply inline-block w-16;
	}

	.text .line.tab-5 {
		@apply inline-block w-20;
	}

	.text .line.tab-6 {
		@apply inline-block w-24;
	}

	.text .line.tab-7 {
		@apply inline-block w-28;
	}

	.text .line.tab-8 {
		@apply inline-block w-32;
	}

	.text br.index-1 {
		@apply hidden;
	}

	.text .page.index-1 {
		@apply hidden;
	}

	.text .ul {
		@apply underline;
	}

	.text .dul {
		@apply underline decoration-double decoration-[1px];
	}

	.text .it {
		@apply italic;
	}

	.traditions,
	.tradition,
	.text,
	.text * {
		@apply clear-both;
	}

	.text .align.pos-right {
		@apply text-right;
		float: right;
	}

	.text .align.pos-center {
		@apply text-center inline-block;
		width: w-full;
		position: relative;
		left: 50%;
		transform: translateX(-50%);
	}

	.text .insertion::before {
		@apply text-slate-700;
		margin-right: -0.2em;
		content: "⌞";
	}

	.text .insertion::after {
		@apply text-slate-700;
		margin-left: -0.4ch;
		content: "⌟";
	}

	.text .insertion-marker {
		@apply text-nowrap;
	}

	.text .insertion-marker::before {
		@apply text-slate-700 text-nowrap text-sm relative bottom-[-0.15rem] -ml-[0.4ch] pr-[0.4ch] inline-block;
	}

	.text .insertion.pos-left .insertion-marker::before {
		content: "🠊";
	}

	.text .insertion.pos-right .insertion-marker::before {
		content: "🠜";
	}

	.text .insertion.pos-top .insertion-marker::before {
		@apply bottom-0 text-xs;
		content: "🠟";
	}

	.text .insertion.pos-bottom .insertion-marker::before {
		@apply bottom-0 text-xs;
		content: "🠝";
	}
	.text .nr::before {
		@apply text-slate-700;
		content: "⸰";
	}

	.text .nr::after {
		@apply text-slate-700;
		content: "⸰";
	}

	.text .tl::before {
		@apply text-slate-700 font-sans;
		content: "◌";
	}

	.text .pe {
		@apply text-stone-600;
	}

	.text .del {
		@apply line-through relative;
	}

	.text .del .del::before {
		content: "";
		@apply absolute inset-x-0 top-[65%] h-[1px] bg-black w-full;
	}

	.text .ddel {
		@apply line-through relative;
	}

	.text .ddel::before {
		content: "";
		@apply absolute inset-x-0 top-[65%] h-[1px] bg-black w-full;
	}

	.text .ddel {
		@apply relative;
	}

	.text .ddel::before {
		top: 55%;
	}

	.text .ddel::after {
		top: 45%;
	}

	.text .sidenote {
		@apply border-l-4 border-slate-200 pl-2 my-4;
	}

	.text .hand {
		@apply inline !font-didone text-[0.9rem];
		/* darker blue hue */
		--text-color-rgb: 0, 0, 39;
		color: rgb(var(--text-color-rgb));
	}

	.text .er {
		background-image: repeating-linear-gradient(
			-45deg,
			rgba(var(--text-color-rgb), 0.5),
			transparent 1px,
			transparent 6px
		);

		-webkit-box-decoration-break: clone;
		box-decoration-break: clone;

		color: transparent;

		text-shadow: 0 0 rgb(var(--text-color-rgb));
	}

	.text .sidenote-page::before {
		content: "S. ";
	}

	.text .note-sidenote-meta.margin-note {
		@apply mt-1;
	}

	.text .sidenote-page::after {
		content: "; ";
	}

	.text .note-sidenote-meta > div,
	.text .inline-sidenote-meta > div {
		@apply inline;
	}

	.text .note-sidenote-meta .sidenote-pos,
	.text .inline-sidenote-meta .sidenote-pos {
		@apply !hidden;
	}

	.text .note-note {
		@apply block;
	}

	.text .margin-note {
		@apply absolute;
	}

	.text .margin-note.note-sidenote-meta,
	.text .margin-note.note-hand {
		@apply w-[13rem] invisible;
	}

	.text div[class^="note-"],
	.text div[class*=" note-"] {
		@apply text-sm text-slate-800;
	}

	.text .page {
		@apply font-sans text-sm text-slate-600 invisible;
	}

	.text .note-hand {
		@apply text-blue-950;
	}

	.text .note-hand.margin-note {
		@apply -mt-1;
	}

	.text .eanchor-page-inside::before {
		content: "|";
		@apply text-slate-600 font-sans text-sm relative bottom-[0.15rem] pr-[1ch] print:hidden;
	}

	.text .page-counter {
		@apply hidden text-slate-600 font-sans text-sm relative bottom-[0.15rem] pr-[1ch] print:inline;
	}

	.text .inline-sidenote-meta,
	.text .inline-hand {
		@apply text-sm text-slate-800 hidden print:block;
	}

	.text .page-counter::before {
		content: "[";
	}

	.text .page-counter::after {
		content: "]";
	}

	@page {
		size: A4;
	}
}
