﻿/*#region CSS Reset*/ /* Pantone Cloud Dancer color: #F0EEE9 */
:root
{
	color-scheme: light dark;
	--color-background: light-dark(var(--uchu-yang), var(--uchu-yin-8));
	--color-foreground: light-dark(var(--uchu-yin-8), var(--uchu-yang));
	--color-foreground-inverse: light-dark(var(--uchu-yang), var(--uchu-yin-8));
	--color-muted: light-dark(#555555, #d0d0d0);
	--color-border: light-dark(#d0d0d0, #404040);
	--color-surface: light-dark(#f2f2f2, #1f1f1f);
	--color-surface-alt: light-dark(#f7f7f7, #252525);
	--color-primary: light-dark(var(--uchu-green-5), oklch(68% 0.18 145));
	--color-hyperlinks: light-dark(var(--uchu-green-9), oklch(78% 0.13 145));
	--color-background-footer: light-dark(#333333, #111111);
	--color-title: light-dark(#222222, #f5f5f5);
	--font-family-san-serif: system-ui, sans-serif;
	--font-family-serif: "miller-text", Charter, 'Bitstream Charter', 'Sitka Text', Cambria, serif;
}

html[data-theme="light"]
{
	color-scheme: light;
	--color-background: var(--uchu-yang);
	--color-foreground: var(--uchu-yin-8);
	--color-foreground-inverse: var(--uchu-yang);
	--color-muted: #555555;
	--color-border: #d0d0d0;
	--color-surface: #f2f2f2;
	--color-surface-alt: #f7f7f7;
	--color-primary: var(--uchu-green-5);
	--color-hyperlinks: var(--uchu-green-9);
	--color-background-footer: #333333;
	--color-title: #ffffff;
}

html[data-theme="dark"]
{
	color-scheme: dark;
	--color-background: var(--uchu-yin-8);
	--color-foreground: var(--uchu-yang);
	--color-foreground-inverse: var(--uchu-yin-9);
	--color-muted: #cccccc;
	--color-border: #404040;
	--color-surface: #1f1f1f;
	--color-surface-alt: #252525;
	--color-primary: oklch(68% 0.18 145);
	--color-hyperlinks: oklch(78% 0.13 145);
	--color-background-footer: #111111;
	--color-title: #f5f5f5;
}

Components (split per widget so changes don’t collide)

	buttons.css

	forms.css (inputs, selects, validation states)

	tables.css

	navigation.css (top nav, side nav, breadcrumbs)

	cards.css

	modal.css

	alerts-badges.css

	pagination.css

	tabs-accordions.css

	media.css (avatars, thumbnails)

Utilities & Helpers

	utilities.css (display, position, overflow, text, visibility, pointer-events)

	accessibility.css (focus rings, skip links, reduced motion support)

	print.css (print-specific tweaks)

	animations.css (keyframes + motion tokens)

	overrides.css (last-resort hacks, kept tiny)

Theming & State

	theme.light.css

	theme.dark.css (prefers-color-scheme support)

	high-contrast.css

	states.css (loading, disabled, success/error/warning info states)


wwwroot/
└─ css/
	├─ core/
	│	├─ reset.css
	│	├─ variables.css
	│	├─ typography.css
	│	└─ base.css
	├─ layout/
	│	├─ layout.css
	│	├─ grid.css
	│	├─ spacing.css
	│	└─ breakpoints.css
	├─ components/
	│	├─ buttons.css
	│	├─ forms.css
	│	├─ tables.css
	│	├─ navigation.css
	│	├─ cards.css
	│	├─ modal.css
	│	├─ alerts-badges.css
	│	├─ pagination.css
	│	└─ tabs-accordions.css
	├─ utilities/
	│	├─ utilities.css
	│	├─ accessibility.css
	│	├─ animations.css
	│	├─ print.css
	│	└─ overrides.css
	├─ themes/
	│	├─ theme.light.css
	│	├─ theme.dark.css
	│	└─ high-contrast.css
	├─ pages/
	│	├─ home.css
	│	├─ account.css
	│	└─ admin.css
	└─ vendor/
		├─ vendor.normalize.css
		└─ vendor-overrides.css
*/


/* https://piccalil.li/blog/a-more-modern-css-reset/ */
/* Box sizing rules */
*,
*::before,
*::after
{
	box-sizing: border-box;
}

pre
{
	white-space: pre-wrap;
}

/* Prevent font size inflation */
html
{
	-moz-text-size-adjust: none;
	-webkit-text-size-adjust: none;
	text-size-adjust: none;
	word-break: break-word;
}

/* Remove default margin in favour of better control in authored CSS */
body, h1, h2, h3, h4, p,
figure, blockquote, dl, dd
{
	margin-block-end: 0;
}

/* Remove list styles on ul, ol elements with a list role, which suggests default styling will be removed */
ul[role='list'],
ol[role='list']
{
	list-style: none;
}

/* Set core body defaults */
body
{
	min-height: 100vh;
	line-height: 1.5;
}

/* Set shorter line heights on headings and interactive elements */
h1, h2, h3, h4,
button, input, label
{
	line-height: 1.1;
}

/* Balance text wrapping on headings */
h1, h2,
h3, h4
{
	text-wrap: balance;
}

/* A elements that don't have a class get default styles */
a:not([class])
{
	text-decoration-skip-ink: auto;
	color: currentColor;
	fdisplay: inline-block; /* ensures consistent rendering */
	transition: box-shadow 0.1s;
	/*	&:hover
{
	text-decoration-color: var(--uchu-green-9);
	text-decoration: none;
	background-color: var(--color-primary);
}
*/

	&:hover
{
	box-shadow: 0 0 0 5px var(--color-primary);
	background-color: var(--color-primary);
}



}

/* Make images easier to work with */
img,
picture
{
	max-width: 100%;
	display: block;
}

/* Inherit fonts for inputs and buttons */
input, button,
textarea, select
{
	font-family: inherit;
	font-size: inherit;
}

	/* Make sure textareas without a rows attribute are not tiny */
	textarea:not([rows])
	{
		min-height: 10em;
	}

/* Anything that has been anchored to should have extra scroll margin */
:target
{
	scroll-margin-block: 5ex;
}



/*#endregion CSS Reset*/

/*#region Utopia Variables*/

/* @link https://utopia.fyi/grid/calculator?c=280,16,1.2,1240,20,1.333,6,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */

:root
{
	--grid-max-width: 65ch;
	--grid-gutter: var(--space-s-l, clamp(1rem, 0.5625rem + 2.5vw, 2.5rem));
	--grid-columns: 12;
}

/* @link https://utopia.fyi/space/calculator?c=280,16,1.2,1240,20,1.333,6,2,&s=0.75|0.5|0.25,1.5|2|3|4|6,s-l&g=s,l,xl,12 */

:root
{
	--space-3xs: clamp(0.25rem, 0.2318rem + 0.1042vw, 0.3125rem);
	--space-2xs: clamp(0.5rem, 0.4635rem + 0.2083vw, 0.625rem);
	--space-xs: clamp(0.75rem, 0.6953rem + 0.3125vw, 0.9375rem);
	--space-s: clamp(1rem, 0.9271rem + 0.4167vw, 1.25rem);
	--space-m: clamp(1.5rem, 1.3906rem + 0.625vw, 1.875rem);
	--space-l: clamp(2rem, 1.8542rem + 0.8333vw, 2.5rem);
	--space-xl: clamp(3rem, 2.7813rem + 1.25vw, 3.75rem);
	--space-2xl: clamp(4rem, 3.7083rem + 1.6667vw, 5rem);
	--space-3xl: clamp(6rem, 5.5625rem + 2.5vw, 7.5rem);
	/* One-up pairs */
	--space-3xs-2xs: clamp(0.25rem, 0.1406rem + 0.625vw, 0.625rem);
	--space-2xs-xs: clamp(0.5rem, 0.3724rem + 0.7292vw, 0.9375rem);
	--space-xs-s: clamp(0.75rem, 0.6042rem + 0.8333vw, 1.25rem);
	--space-s-m: clamp(1rem, 0.7448rem + 1.4583vw, 1.875rem);
	--space-m-l: clamp(1.5rem, 1.2083rem + 1.6667vw, 2.5rem);
	--space-l-xl: clamp(2rem, 1.4896rem + 2.9167vw, 3.75rem);
	--space-xl-2xl: clamp(3rem, 2.4167rem + 3.3333vw, 5rem);
	--space-2xl-3xl: clamp(4rem, 2.9792rem + 5.8333vw, 7.5rem);
	/* Custom pairs */
	--space-s-l: clamp(1rem, 0.5625rem + 2.5vw, 2.5rem);
}

/* @link https://utopia.fyi/type/calculator?c=280,16,1.2,1240,24,1.333,6,2,&s=0.75,1.5,s-l&g=s,l,xl,12 */

:root
{
	--step--2: clamp(0.6944rem, 0.6508rem + 0.2495vw, 0.8442rem);
	--step--1: clamp(0.8333rem, 0.7482rem + 0.4866vw, 1.1253rem);
	--step-0: clamp(1rem, 0.8542rem + 0.8333vw, 1.5rem);
	--step-1: clamp(1.2rem, 0.9668rem + 1.3325vw, 1.9995rem);
	--step-2: clamp(1.44rem, 1.0826rem + 2.0422vw, 2.6653rem);
	--step-3: clamp(1.728rem, 1.1957rem + 3.0415vw, 3.5529rem);
	--step-4: clamp(2.0736rem, 1.2971rem + 4.4373vw, 4.736rem);
	--step-5: clamp(2.4883rem, 1.3728rem + 6.3746vw, 6.3131rem);
	--step-6: clamp(2.986rem, 1.4024rem + 9.0489vw, 8.4153rem);

	/* Material Design colors (light mode) */
	--md-surface:                   #fefbff;
	--md-surface-container-highest: #e6e1e5;
	--md-on-surface:                #1c1b1f;
	--md-on-surface-variant:        #49454f;
	--md-outline-variant:           #cac4d0;
	--md-primary:                   #6750a4;

	/* Component tokens */
	--state-hover: .08;
	--state-focus: .12;
	--shape-xs: 4px;
	--gap: var(--space-s);
	--indicator-rest: 1px;
	--indicator-active: 2px;
	--ring-size: 3px;
	--ease: cubic-bezier(.4, 0, .2, 1);
	--dur: 150ms;
	--field-size: clamp(3.5rem, 2cqi + 3.25rem, 4rem);
	--label-space: 1.65rem;

	/* Radio Specific Tokens */
	--radio-radius: 12px; 
	--radio-gutter: 16px;
}

@media (prefers-color-scheme: dark) {
	:root {
		--md-surface:                   #1c1b1f;
		--md-surface-container-highest: #36343b;
		--md-on-surface:                #e6e1e5;
		--md-on-surface-variant:        #cac4d0;
		--md-outline-variant:           #938f99;
		--md-primary:                   #d0bcff;
	}

	select, option {
		background-color: var(--md-surface);
		color: var(--md-on-surface);
	}
	
	/* Dark mode hover for clear button */
	.md-clear-btn:hover {
		background-color: rgba(255,255,255,0.1);
	}
}

/*#endregion Utopia Variables*/

/* https://oklch.com/ */

/* https://uchu.style/ */

:root
{
	/*** gray ***/
	--uchu-gray-1-raw: 95.57% 0.003 286.35;
	--uchu-gray-1: oklch(var(--uchu-gray-1-raw));
	--uchu-gray-2-raw: 92.04% 0.002 197.12;
	--uchu-gray-2: oklch(var(--uchu-gray-2-raw));
	--uchu-gray-3-raw: 88.28% 0.003 286.34;
	--uchu-gray-3: oklch(var(--uchu-gray-3-raw));
	--uchu-gray-4-raw: 84.68% 0.002 197.12;
	--uchu-gray-4: oklch(var(--uchu-gray-4-raw));
	--uchu-gray-5-raw: 80.73% 0.002 247.84;
	--uchu-gray-5: oklch(var(--uchu-gray-5-raw));
	--uchu-gray-6-raw: 75.03% 0.002 247.85;
	--uchu-gray-6: oklch(var(--uchu-gray-6-raw));
	--uchu-gray-7-raw: 69.01% 0.003 286.32;
	--uchu-gray-7: oklch(var(--uchu-gray-7-raw));
	--uchu-gray-8-raw: 63.12% 0.004 219.55;
	--uchu-gray-8: oklch(var(--uchu-gray-8-raw));
	--uchu-gray-9-raw: 56.82% 0.004 247.89;
	--uchu-gray-9: oklch(var(--uchu-gray-9-raw));
	/*** red ***/
	--uchu-red-1-raw: 88.98% 0.052 3.28;
	--uchu-red-1: oklch(var(--uchu-red-1-raw));
	--uchu-red-2-raw: 78.78% 0.109 4.54;
	--uchu-red-2: oklch(var(--uchu-red-2-raw));
	--uchu-red-3-raw: 69.86% 0.162 7.82;
	--uchu-red-3: oklch(var(--uchu-red-3-raw));
	--uchu-red-4-raw: 62.73% 0.209 12.37;
	--uchu-red-4: oklch(var(--uchu-red-4-raw));
	--uchu-red-5-raw: 58.63% 0.231 19.6;
	--uchu-red-5: oklch(var(--uchu-red-5-raw));
	--uchu-red-6-raw: 54.41% 0.214 19.06;
	--uchu-red-6: oklch(var(--uchu-red-6-raw));
	--uchu-red-7-raw: 49.95% 0.195 18.34;
	--uchu-red-7: oklch(var(--uchu-red-7-raw));
	--uchu-red-8-raw: 45.8% 0.177 17.7;
	--uchu-red-8: oklch(var(--uchu-red-8-raw));
	--uchu-red-9-raw: 41.17% 0.157 16.58;
	--uchu-red-9: oklch(var(--uchu-red-9-raw));
	/*** pink ***/
	--uchu-pink-1-raw: 95.8% 0.023 354.27;
	--uchu-pink-1: oklch(var(--uchu-pink-1-raw));
	--uchu-pink-2-raw: 92.14% 0.046 352.31;
	--uchu-pink-2: oklch(var(--uchu-pink-2-raw));
	--uchu-pink-3-raw: 88.9% 0.066 354.39;
	--uchu-pink-3: oklch(var(--uchu-pink-3-raw));
	--uchu-pink-4-raw: 85.43% 0.09 354.1;
	--uchu-pink-4: oklch(var(--uchu-pink-4-raw));
	--uchu-pink-5-raw: 82.23% 0.112 355.33;
	--uchu-pink-5: oklch(var(--uchu-pink-5-raw));
	--uchu-pink-6-raw: 76.37% 0.101 355.37;
	--uchu-pink-6: oklch(var(--uchu-pink-6-raw));
	--uchu-pink-7-raw: 70.23% 0.092 354.96;
	--uchu-pink-7: oklch(var(--uchu-pink-7-raw));
	--uchu-pink-8-raw: 64.11% 0.084 353.91;
	--uchu-pink-8: oklch(var(--uchu-pink-8-raw));
	--uchu-pink-9-raw: 57.68% 0.074 353.14;
	--uchu-pink-9: oklch(var(--uchu-pink-9-raw));
	/*** purple ***/
	--uchu-purple-1-raw: 89.1% 0.046 305.24;
	--uchu-purple-1: oklch(var(--uchu-purple-1-raw));
	--uchu-purple-2-raw: 78.68% 0.091 305;
	--uchu-purple-2: oklch(var(--uchu-purple-2-raw));
	--uchu-purple-3-raw: 68.5% 0.136 303.78;
	--uchu-purple-3: oklch(var(--uchu-purple-3-raw));
	--uchu-purple-4-raw: 58.47% 0.181 302.06;
	--uchu-purple-4: oklch(var(--uchu-purple-4-raw));
	--uchu-purple-5-raw: 49.39% 0.215 298.31;
	--uchu-purple-5: oklch(var(--uchu-purple-5-raw));
	--uchu-purple-6-raw: 46.11% 0.198 298.4;
	--uchu-purple-6: oklch(var(--uchu-purple-6-raw));
	--uchu-purple-7-raw: 42.77% 0.181 298.49;
	--uchu-purple-7: oklch(var(--uchu-purple-7-raw));
	--uchu-purple-8-raw: 39.46% 0.164 298.29;
	--uchu-purple-8: oklch(var(--uchu-purple-8-raw));
	--uchu-purple-9-raw: 36.01% 0.145 298.35;
	--uchu-purple-9: oklch(var(--uchu-purple-9-raw));
	/*** blue ***/
	--uchu-blue-1-raw: 89.66% 0.046 260.67;
	--uchu-blue-1: oklch(var(--uchu-blue-1-raw));
	--uchu-blue-2-raw: 80.17% 0.091 258.88;
	--uchu-blue-2: oklch(var(--uchu-blue-2-raw));
	--uchu-blue-3-raw: 70.94% 0.136 258.06;
	--uchu-blue-3: oklch(var(--uchu-blue-3-raw));
	--uchu-blue-4-raw: 62.39% 0.181 258.33;
	--uchu-blue-4: oklch(var(--uchu-blue-4-raw));
	--uchu-blue-5-raw: 54.87% 0.222 260.33;
	--uchu-blue-5: oklch(var(--uchu-blue-5-raw));
	--uchu-blue-6-raw: 51.15% 0.204 260.17;
	--uchu-blue-6: oklch(var(--uchu-blue-6-raw));
	--uchu-blue-7-raw: 47.36% 0.185 259.89;
	--uchu-blue-7: oklch(var(--uchu-blue-7-raw));
	--uchu-blue-8-raw: 43.48% 0.17 260.2;
	--uchu-blue-8: oklch(var(--uchu-blue-8-raw));
	--uchu-blue-9-raw: 39.53% 0.15 259.87;
	--uchu-blue-9: oklch(var(--uchu-blue-9-raw));
	/*** green ***/
	--uchu-green-1-raw: 93.96% 0.05 148.74;
	--uchu-green-1: oklch(var(--uchu-green-1-raw));
	--uchu-green-2-raw: 88.77% 0.096 147.71;
	--uchu-green-2: oklch(var(--uchu-green-2-raw));
	--uchu-green-3-raw: 83.74% 0.139 146.57;
	--uchu-green-3: oklch(var(--uchu-green-3-raw));
	--uchu-green-4-raw: 79.33% 0.179 145.62;
	--uchu-green-4: oklch(var(--uchu-green-4-raw));
	--uchu-green-5-raw: 75.23% 0.209 144.64;
	--uchu-green-5: oklch(var(--uchu-green-5-raw));
	--uchu-green-6-raw: 70.03% 0.194 144.71;
	--uchu-green-6: oklch(var(--uchu-green-6-raw));
	--uchu-green-7-raw: 64.24% 0.175 144.92;
	--uchu-green-7: oklch(var(--uchu-green-7-raw));
	--uchu-green-8-raw: 58.83% 0.158 145.05;
	--uchu-green-8: oklch(var(--uchu-green-8-raw));
	--uchu-green-9-raw: 52.77% 0.138 145.41;
	--uchu-green-9: oklch(var(--uchu-green-9-raw));
	/*** yellow ***/
	--uchu-yellow-1-raw: 97.05% 0.039 91.2;
	--uchu-yellow-1: oklch(var(--uchu-yellow-1-raw));
	--uchu-yellow-2-raw: 95% 0.07 92.39;
	--uchu-yellow-2: oklch(var(--uchu-yellow-2-raw));
	--uchu-yellow-3-raw: 92.76% 0.098 92.58;
	--uchu-yellow-3: oklch(var(--uchu-yellow-3-raw));
	--uchu-yellow-4-raw: 90.92% 0.125 92.56;
	--uchu-yellow-4: oklch(var(--uchu-yellow-4-raw));
	--uchu-yellow-5-raw: 89% 0.146 91.5;
	--uchu-yellow-5: oklch(var(--uchu-yellow-5-raw));
	--uchu-yellow-6-raw: 82.39% 0.133 91.5;
	--uchu-yellow-6: oklch(var(--uchu-yellow-6-raw));
	--uchu-yellow-7-raw: 75.84% 0.122 92.21;
	--uchu-yellow-7: oklch(var(--uchu-yellow-7-raw));
	--uchu-yellow-8-raw: 69.14% 0.109 91.04;
	--uchu-yellow-8: oklch(var(--uchu-yellow-8-raw));
	--uchu-yellow-9-raw: 62.29% 0.097 91.9;
	--uchu-yellow-9: oklch(var(--uchu-yellow-9-raw));
	/*** orange ***/
	--uchu-orange-1-raw: 93.83% 0.037 56.93;
	--uchu-orange-1: oklch(var(--uchu-orange-1-raw));
	--uchu-orange-2-raw: 88.37% 0.07258208750520016 55.80328658240742;
	--uchu-orange-2: oklch(var(--uchu-orange-2-raw));
	--uchu-orange-3-raw: 83.56% 0.10753627570574478 56.492594564236946;
	--uchu-orange-3: oklch(var(--uchu-orange-3-raw));
	--uchu-orange-4-raw: 78.75% 0.14163582809066333 54.32911089172009;
	--uchu-orange-4: oklch(var(--uchu-orange-4-raw));
	--uchu-orange-5-raw: 74.61% 0.171 51.56;
	--uchu-orange-5: oklch(var(--uchu-orange-5-raw));
	--uchu-orange-6-raw: 69.33% 0.157 52.18;
	--uchu-orange-6: oklch(var(--uchu-orange-6-raw));
	--uchu-orange-7-raw: 63.8% 0.142 52.1;
	--uchu-orange-7: oklch(var(--uchu-orange-7-raw));
	--uchu-orange-8-raw: 58.28% 0.128 52.2;
	--uchu-orange-8: oklch(var(--uchu-orange-8-raw));
	--uchu-orange-9-raw: 52.49% 0.113 51.98;
	--uchu-orange-9: oklch(var(--uchu-orange-9-raw));
	/*** general ***/
	--uchu-yin-1-raw: 91.87% 0.003 264.54;
	--uchu-yin-1: oklch(var(--uchu-yin-1-raw));
	--uchu-yin-2-raw: 84.61% 0.004 286.31;
	--uchu-yin-2: oklch(var(--uchu-yin-2-raw));
	--uchu-yin-3-raw: 76.89% 0.004 247.87;
	--uchu-yin-3: oklch(var(--uchu-yin-3-raw));
	--uchu-yin-4-raw: 69.17% 0.004 247.88;
	--uchu-yin-4: oklch(var(--uchu-yin-4-raw));
	--uchu-yin-5-raw: 61.01% 0.005 271.34;
	--uchu-yin-5: oklch(var(--uchu-yin-5-raw));
	--uchu-yin-6-raw: 52.79% 0.005 271.32;
	--uchu-yin-6: oklch(var(--uchu-yin-6-raw));
	--uchu-yin-7-raw: 43.87% 0.005 271.3;
	--uchu-yin-7: oklch(var(--uchu-yin-7-raw));
	--uchu-yin-8-raw: 35.02% 0.005 236.66;
	--uchu-yin-8: oklch(var(--uchu-yin-8-raw));
	--uchu-yin-9-raw: 25.11% 0.006 258.36;
	--uchu-yin-9: oklch(var(--uchu-yin-9-raw));
	--uchu-yin-raw: 14.38% 0.007 256.88;
	--uchu-yin: oklch(var(--uchu-yin-raw));
	--uchu-yang-raw: 99.4% 0 0;
	--uchu-yang: oklch(var(--uchu-yang-raw));
}

/*#region Colors, Font Sizes etc*/

body
{
	font-size: var(--step-0);
	/* TODO: line-height needs to be proportional to the font-size */
	line-height: 1.3;
	font-family: var(--font-family-serif);
	background-color: var(--color-background);
	color: var(--color-foreground);
}

p
{

	/* TODO: line-height needs to be proportional to the font-size */
	line-height: 1.3;
	font-family: var(--font-family-serif);
}

/*#endregion Colors, Font Sizes etc*/


/* debugging shit */
section.talk-subjects
{
	display: none;
}
/* debugging shit */






/*#region Main*/

main
{
	box-sizing: content-box;
	max-inline-size: var(--grid-max-width);
	margin-inline: auto;
	padding-inline: var(--grid-gutter);
}

h1, h2, h3, h4
{
	text-wrap: balance;
	font-weight: bold;
	font-family: var(--font-family-san-serif);
}

p, li, td, dd, caption, figcaption, blockquote
{
	text-wrap: pretty;
}

p, h2, h3, h4
{
	margin-bottom: var(--grid-gutter);
}

strong
{
	font-weight: bold;
}

a
{
	color: var(--color-hyperlinks);
	text-decoration: underline;
	text-decoration-thickness: 0.125rem;
	text-underline-offset: 0.25rem;
	text-decoration-color: var(--color-primary);
}

footer a
{
	color: var(--color-primary);
	text-decoration: none;
}

footer ul, footer ol
{
	list-style: none;
}

::selection
{
	background-color: var(--color-primary);
}

/*#endregion Main*/

.button
{
	cursor: default;
	font-size: 1rem;
	line-height: 1;
	box-sizing: border-box;
	font-family: system-ui, sans-serif;
}

/*.button
{
	padding: var(--space-3xs) var(--space-2xs);
	font-weight: bolder;
	border: 2px solid var(--color-primary);
	fborder-radius: 0.2rem;
	fmargin-right: var(--space-xs);
	list-style: none;
	display: inline-block;
	box-shadow: 3px 4px 0px 1px #000;
	color: var(--color-primary);
	text-transform: capitalize;
	text-decoration: none;
	transition: ease 0.1s;
}
*/
/*#region Article*/
article p:first-of-type
{
	font-size: var(--step-1);
	font-weight: bold;
	fline-height: TODO;
}

	article p:first-of-type::first-line
	{
		text-transform: uppercase; /* Converts text to uppercase */
	}

article > aside > ul
{
	margin: var(--grid-gutter);
	padding: 0;
	list-style: none;
}

	article > aside > ul > li:not(:last-child)
	{
		margin-bottom: 1rem;
	}

article > aside
{
	box-shadow: 0.3rem 0.3rem 0px 0px #444;
}

article > aside.downloads-box
{

/*	border: 3px solid black;
	border-radius: 1rem;
*/
}

	article > aside > h1
	{
		background: #0c0;
		color: #fff;
		color: #000;
		font-weight: bold;
		text-transform: uppercase;
		text-align: center;
		padding: 0.5rem 1rem;
	}

	article > aside.downloads-box
	{
		background-color: antiquewhite;
		display: flex;
		flex-direction: column;
		color: #000;
	}

	& .file-info
	{
		padding: 1rem;
	}
	.file-info {
  display: grid;
  grid-template-columns: auto 1fr;
  grid-template-rows: auto auto;
  align-items: baseline;
}

.icon {
  /* Make the icon span both rows so it stays left-aligned */
  grid-row: 1 / span 2;
  margin-right: 8px; /* Space between icon and text */
}

.text-content {
  display: flex;
  flex-direction: column;
}

.filename {
  /* The filename will naturally align with the icon’s baseline */
}

.file-details {
  margin-top: 4px; /* Space between filename and file details */
}


		article > aside.downloads-box a.button
		{
			align-self: center; /* Centers only the button */
			margin-top: 10px; /* Optional spacing */
			margin-bottom: 1rem;
		}

.download-container
{
	padding: .5rem .5rem;
	display: flex;
	align-items: flex-start; /* Align to the top */
	ffont-size: 1rem; /* Set the font size here */
	line-height: 1.5rem;
	font-family: sans-serif;
}

	.download-container a
	{
		font-weight: bold;
		text-decoration: underline;
		text-decoration-color: #fff;
	}

.dicon
{
	width: 2.5em; /* Adjust the icon size relative to the font size */
	height: 2.5em;
	margin-right: 0.5em; /* Space between icon and text */
	background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3C!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools --%3E%3Csvg width='800px' height='800px' viewBox='0 0 24 24' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 15V16.2C21 17.8802 21 18.7202 20.673 19.362C20.3854 19.9265 19.9265 20.3854 19.362 20.673C18.7202 21 17.8802 21 16.2 21H7.8C6.11984 21 5.27976 21 4.63803 20.673C4.07354 20.3854 3.6146 19.9265 3.32698 19.362C3 18.7202 3 17.8802 3 16.2V15M17 10L12 15M12 15L7 10M12 15V3' stroke='%23ffffff' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat no-repeat;
	background-position: center center;
	background-size: cover;
	color: #fff;
}

.download-description
{
	font-size: 60%;
}

.download-filesize
{
	display: flex;
	align-items: center;
}

	.download-filesize::before
	{
		content: "";
		width: 1.5em;
		height: 1.5em;
		margin-right: 0.5em;
		background-image: url("data:image/svg+xml,%3C%3Fxml version='1.0' encoding='utf-8'%3F%3E%3Csvg width='800px' height='800px' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Crect x='0' fill='none' width='20' height='20'/%3E%3Cg%3E%3Cstyle%3E.st0%7Bfill-rule:evenodd;clip-rule:evenodd;%7D%3C/style%3E%3Cpath d='M5.8 14H5v1h.8c.3 0 .5-.2.5-.5s-.2-.5-.5-.5zM11 2H3v16h13V7l-5-5zM7.2 14.6c0 .8-.6 1.4-1.4 1.4H5v1H4v-4h1.8c.8 0 1.4.6 1.4 1.4v.2zm4.1.5c0 1-.8 1.9-1.9 1.9H8v-4h1.4c1 0 1.9.8 1.9 1.9v.2zM15 14h-2v1h1.5v1H13v1h-1v-4h3v1zm0-2H4V3h7v4h4v5zm-5.6 2H9v2h.4c.6 0 1-.4 1-1s-.5-1-1-1z'/%3E%3C/g%3E%3C/svg%3E");
		background-repeat: no-repeat no-repeat;
		background-position: center center;
		background-size: cover;
		display: inline-block;
	}

.dinfo
{
	display: flex;
	flex-direction: column; /* Stack the text vertically */
}

/*
article > p:first-of-type
{
	color: var(--slot3);
	ffont-family: var(--fontFamilyAccent);
	font-size: 1.2rem;
	letter-spacing: -1.5px;
	line-height: 1.1;
	margin-bottom: 1rem;
	margin-top: 2rem;
	max-width: 1000px;
	padding-top: 1.5rem
}

	article > p:first-of-type b, .fxL > p:first-of-type strong
	{
		ffont-family: var(--fontFamilyHeading)
	}

	article > p:first-of-type:first-letter
	{
		color: black;
		float: left;
		ffont-family: var(--fontFamilyHeading);
		font-size: 7rem;
		line-height: 1;
		margin: -2rem -1rem;
		position: static;
		text-shadow: -1px -1px 0 red,1px -1px 0 red,-1px 1px 0 red,1px 1px 0 red,18px -8px 1px red;
	}
*/

article > ul:not([class])
{
	list-style-type: none;
}

	article > ul:not([class]) > li
	{
		position: relative;
		padding-left: 1.5em;
		contain: content;
	}

		article > ul:not([class]) > li::before
		{
			content: '';
			position: absolute;
			left: 0;
			top: 0.7rem;
			width: .7rem;
			height: .7rem;
			border-radius: 30%;
			background-color: #0c0;
			transform: translateY(-50%);
			box-shadow: 1px 2px 0px 0px #000;
		}

table
{
	border-collapse: collapse;
	text-align: left;
	width: 100%;
}

th
{
	background-color: var(--color-surface);
	color: var(--color-foreground);
	font-weight: bold;
	padding: 0.625rem 0.9375rem;
	border-bottom: 0.125rem solid var(--color-border);
}

tr
{
	border-bottom: 0.0625rem solid var(--color-border);
}

	tr:nth-child(even)
	{
		background-color: var(--color-surface-alt);
	}

td
{
	padding: 0.625rem 0.9375rem;
	vertical-align: top;
}

tr:hover
{
	background-color: var(--color-surface);
}

/*#endregion Article*/


/*#region Google Search Box*/

form.gsc-search-box
{
	margin: 0 !important;
}

table.gsc-search-box tr:hover
{
	background-color: unset;
}


table.gsc-search-box td
{
	padding: 0 !important;
}

.gsc-control-cse
{
	padding: 0 !important;
}

.gsc-search-button-v2 svg
{
	fill: #000 !important;
	width: 1rem !important;
	height: 1rem !important;
}

.gsc-search-button-v2:hover
{
	background-color: #fff !important;
	border: none !important;
}

.gsc-search-button-v2
{
	box-shadow: 3px 4px 0px 1px #000;
	transition: ease 0.1s;
	background-color: var(--color-primary) !important;
	color: #000 !important;
	border: none !important;
	padding: var(--space-3xs) var(--space-2xs) !important;
	font-size: 1rem !important;
}

.gsc-control-cse, .gsc-input-box
{
	background-color: unset !important;
	border-style: none !important;
	height: 100% !important;
}

table.gsc-search-box td.gsc-input
{
	padding-right: 0 !important;
	color: black;
	border-radius: 2px !important;
}

table.gsc-search-box, table.gsc-search-box tr
{
	margin-bottom: 0 !important;
	border-bottom: none;
}

.gsib_a
{
	padding: 0 !important;
}

.gsib_b
{
	display: none;
}


input.gsc-input
{
	background: #fff !important;
	padding: 4px 14px !important;
	border-radius: 2px !important;
}

/*#endregion Google Search Box*/


article aside
{
	float: right;
	clear: right;
	width: 100%;
	background: #000;
	color: #fff;
	max-width: 22rem;
	margin-right: clamp(-20rem, calc(((var(--grid-max-width) - 100vw) / 2) + var(--grid-gutter)), 0px);
	background-position-x: calc( ( (var(--grid-max-width) - 100vw) / 2 ) + var(--grid-gutter) );
	margin-left: var(--grid-gutter);
}

@media screen and (max-width: calc(280px + 22rem) )
{
	article aside
	{
		float: none;
		width: 100%;
		max-width: none;
		margin-left: 0;
		margin-right: 0;

		& ul
		{
			padding-bottom: var(--grid-gutter);
		}
	}
}

section.talk-subjects
{
	background-color: var(--color-primary);
}

/*#region Header*/
header li
{
	display: inline-block;
}

.header-a svg
{
	color: var(--color-primary);
}



#register.button-primary
{
	background: var(--color-primary);
	color: #000;
}

	#register.button-primary:hover
	{
		background-color: #fff;
	}

.button-secondary
{
	fbackground: #0c0;
	color: #0c0;
}

#login.button-secondary:hover
{
	background-color: var(--color-primary);
	color: #000;
}

#login.button-secondary
{
	fbackground: #0c0;
	color: var(--color-primary);
}


.logo-svg
{
	width: var(--space-xl);
	height: var(--space-xl);
}

header
{
	position: relative;
	z-index: 1;
}

.header
{
	overflow: hidden;
	padding: var(--grid-gutter);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--space-lg, 1.5rem);
	color: #fff;
}

.logo-svg
{
	transform: rotate(-15deg);
}

.header-a svg, .header-b svg
{
	fwidth: 3rem;
	fheight: 3rem;
	fstroke: #fff;
	vertical-align: middle;
}

.header a
{
	color: white;
	text-align: center;
	fpadding: 12px;
	text-decoration: none;
	border-radius: 4px;
}

	.header a.logo
	{
		font-size: 25px;
		color: white;
		display: flex;
		align-items: center;
		justify-content: center;
		margin: 0 var(--space-lg, 1.5rem);
		flex: 0 0 auto;
		fwidth: 1rem;
		ftext-align: center;
	}

	.header a:hover
	{
		color: #aeaeae;
	}

	.header a.active
	{
		color: #aeaeae;
	}

.header-a,
.header-b
{
	display: flex;
	align-items: center;
	fpadding: var(--grid-gutter);
	flex: 1 1 0;
}

.header-a
{
	justify-content: flex-start;
	gap: var(--space-md, 1rem);
}

.header-b
{
	justify-content: flex-end;
	gap: var(--space-sm, .75rem);
}

h1
{
	font-size: var(--step-6);
	font-family: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
	font-weight: 800;
	letter-spacing: -0.2rem;
	text-transform: uppercase;
	text-shadow: .1rem .1rem .1rem #919191, .2rem .2rem .1rem #919191, .3rem .3rem .1rem #919191, .4rem .4rem .1rem #919191, .5rem .5rem .1rem #919191, .6rem .6rem .6rem rgba(60,60,60,0.4), 1rem 1rem 1rem rgba(60,60,60,0.2), 1.5rem 1.5rem 3.5rem rgba(60,60,60,0.2), 2.0rem 2.0rem 6.0rem rgba(60,60,60,0.4);
	text-align: center;
	color: var(--color-foreground);
	line-height: 1.0;
	ffont-family: Bahnschrift, 'DIN Alternate', 'Franklin Gothic Medium', 'Nimbus Sans Narrow', sans-serif-condensed, sans-serif !important;
}

	h1.title
	{
		margin: 0 auto;
		text-align: center;
		line-height: .9;
		color: var(--color-title);
		background: linear-gradient(to bottom, #3338, #fff0), url(/sitefiles/1/gqstyletest4.jpg) top center / cover no-repeat;
		margin-bottom: var(--space-2xl);
		font-size: var(--step-6);
		ffont-family: system-ui,-apple-system,Segoe UI,Roboto,Ubuntu,Cantarell,Noto Sans,sans-serif,BlinkMacSystemFont,"Segoe UI",Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol";
		font-weight: 800;
		letter-spacing: -0.2rem;
		text-transform: uppercase;
		text-shadow: .1rem .1rem .1rem #919191, .2rem .2rem .1rem #919191, .3rem .3rem .1rem #919191, .4rem .4rem .1rem #919191, .5rem .5rem .1rem #919191, .6rem .6rem .6rem rgba(60,60,60,0.4), 1rem 1rem 1rem rgba(60,60,60,0.2), 1.5rem 1.5rem 3.5rem rgba(60,60,60,0.2), 2.0rem 2.0rem 6.0rem rgba(60,60,60,0.4);
		padding: var(--grid-gutter) 20vw;
		padding-top: calc(6rem + var(--grid-gutter));
		width: 100vw;
		position: relative;
		left: 50%;
		right: 50%;
		margin-left: -50vw;
		margin-right: -50vw;
	}


/*#endregion Header*/

/*#region Categories*/
.categories
{
	padding: 0;
	margin: 0;
	display: flex; /* Required for gap to work */
	flex-wrap: wrap; /* Optional: wrap items if needed */
	gap: var(--space-2xs);
	list-style: none;
}

		.categories li a
		{
			color: var(--uchu-green-8);
			background-color: var(--uchu-green-1);
			border: none;
			text-transform: uppercase;
			text-decoration: none;
			font-family: var(--font-family-san-serif);
		}
/*#endregion Categories*/

html, body
{
	height: 100%;
	margin: 0;
	display: grid;
	grid-template-rows: 1fr auto;
}

/*#region Footer*/
footer
{
	color: var(--color-primary);
	background-color: var(--color-background-footer);
	font-family: system-ui, sans-serif;
	margin-top: 4rem;
}

.footer-columns
{
	display: grid;
	gap: var(--grid-gutter);
	grid-template-columns: repeat(auto-fit, minmax(var(--space-3xl), 1fr));
	padding: var(--grid-gutter);
	margin: 0;
}

footer svg, .nav-item svg
{
	width: 1.5rem;
	height: 1.5rem;
}

.footer-columns li.footer-column:first-child
{
	grid-column: span 2;
	font-size: var(--step-2);
	line-height: 2.5rem; /* TODO */
	font-weight: bold;
	letter-spacing: -.1rem;
}
/*#endregion Footer*/

/* Clamp vertical spacing above and below text */
/* https://piccalil.li/blog/why-im-excited-about-text-box-trim-as-a-designer/ */
@supports (text-box: cap alphabetic)
{
	.prose :is(h1, h2, h3, h4, p, ul, ol, li, blockquote, figure)
	{
		--flow-space: var(--space-l);
		text-box: cap alphabetic
	}
}



main
{
	box-sizing: border-box;
	/* The “container” can only grow up to 60rem in width… */
	max-inline-size: var(--grid-max-width);
	/* …and it’s centered in the viewport. */
	margin-inline: auto;
	/* Optional padding on each side. */
	padding-inline: var(--grid-gutter);
	/* Let the image overflow the container (when bigger than 60rem). */
	overflow: visible;
	position: relative;
}

figure
{
	margin: 0; /* Remove default figure margins */
}

header
{
	height: 9rem;
}

.hero-figure
{
	margin-inline: calc(-1 * var(--grid-gutter));
	width: calc(100% + 2 * var(--grid-gutter));
}

.hero-image, h1
{
	display: block;
	/* 
    1) Make width flexible with clamp:
       - min: 100%  (never smaller than container)
       - mid: 100vw (grow to viewport width on large screens)
       - max: 2 * var(--grid-max-width) (cap growth at double)
  */
	width: clamp( 100%, 100vw - 4 * var(--grid-gutter), /* fill the entire browser width */
	calc(2 * var(--grid-max-width) - 4 * var(--grid-gutter)) /* cap at 2× container width */
	);
	/* Override any “max-width: 100%” reset so we can exceed the container */
	max-width: none;
	/*
    2) The centering trick:
       By default, a block-level element’s left edge is at the parent’s left (0).
       We push it right by 50% of the parent’s width, then pull it left by
       50% of *its own* width using a transform.
       
       For left: 50% to work, the element needs position other than static.
  */
	position: relative;
	left: 50%;
	transform: translateX(-50%);
	/* 
    3) Optional: If you prefer using margin instead of position/transform,
       you can do:
         margin-left: 50%;
         transform: translateX(-50%);
       with position: static or relative. Either approach is fine.
  */

	border-radius: 1rem;
	max-height: 60vh;
	object-fit: cover;
	object-position: top;
}

a.button svg
{
	block-size: 1cap;
}

a.button, button
{
	/* Configuration */
	--button-padding: 0.7em 1.2em;
	--button-gap: 0.1em;
	--button-bg: #342a21;
	--button-color: #ddd;
	--button-hover-bg: var(--uchu-green-5);
	--button-hover-color: #ffffff;
	--button-border-width: 3px;
	--button-border-style: solid;
	--button-border-color: var(--button-bg);
	--button-radius: 2em;
	/* Layout and spacing */
	display: inline-flex;
	align-items: center;
	gap: var(--button-gap);
	padding: var(--button-padding);
	/* Colours */
	background: var(--button-bg);
	color: var(--button-color);
	/* Stroke and radius */
	border: var(--button-border-width) var(--button-border-style) var(--button-border-color);
	border-radius: var(--button-radius);
	/* Typography */
	text-decoration: none;
	text-box-trim: cap;
	font-weight: var(--button-font-weight, 700);
	font-size: var(--button-font-size, 1em);
	letter-spacing: 0.05ch;
	font-family: sans-serif;
	line-height: 1.1;
	/* Interactive */
	cursor: pointer;
	/* Nested Pseudo-classes */
	&:hover
	{
		background: var(--button-hover-bg);
		border-color: var(--button-hover-bg);
		color: var(--button-hover-color);
	}

	&:focus
	{
		outline: var(--button-outline-width, var(--button-border-width)) var(--button-outline-style, var(--button-border-style)) var(--button-outline-color, var(--button-border-color));
		outline-offset: var(--button-outline-offset, calc(var(--button-border-width) * 2));
	}

	&:active
	{
		transform: scale(98%);
	}

	/* SVG Icon Styling */
	& svg
	{
		height: var(--button-icon-size, 1.5cap);
		width: auto;
		flex: none;
	}

	/* Button Variants */
	&[data-button-variant="primary"]
	{
		--button-bg: #f3de8a;
		--button-color: #342a21;
		--button-border-color: currentColor;
		--button-hover-bg: #f1d979;
		--button-hover-color: #342a21;
	}

	&[data-button-variant="positive"]
	{
		--button-bg: #2d936c;
		--button-border-color: #107350;
		--button-hover-bg: #359d75;
	}

	&[data-button-variant="negative"]
	{
		--button-bg: #b33c48;
		--button-border-color: #a62f3d;
		--button-hover-bg: #c24a56;
	}

	&[data-button-variant="ghost"]
	{
		--button-bg: transparent;
		--button-border-color: #333;
		--button-color: #333;
	}
}

/*#region Carousel*/

.carousel
{
	position: relative;
	width: 100%; /* Full width of container */
	margin: auto;
	overflow: hidden;
}

	/* Hide radio inputs */
	.carousel input
	{
		display: none;
	}

.slides
{
	width: 100%;
	position: relative;
}

/* Set all slides to be hidden by default */
.slide
{
	display: none;
	width: 100%;
}

/* Show only the active slide */
#slide1:checked ~ .slides .slide:nth-of-type(1),
#slide2:checked ~ .slides .slide:nth-of-type(2),
#slide3:checked ~ .slides .slide:nth-of-type(3)
{
	display: block;
}

.slide img
{
	width: 100%;
	height: auto;
	display: block;
}

/* Navigation arrows styling */
.nav
{
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	z-index: 10;
}

	.nav label
	{
		position: absolute;
		top: 50%;
		transform: translateY(-50%);
		color: #fff;
		width: 40px;
		height: 40px;
		display: flex;
		align-items: center;
		justify-content: center;
		cursor: pointer;
		z-index: 100;
		opacity: 0;
		transition: opacity 0.3s;
	}

.carousel:hover .nav label
{
	opacity: 1;
}

.nav label svg
{
	color: #fff;
	stroke: currentColor;
}

/* Position arrows */
.prev
{
	left: 10px;
}

.next
{
	right: 10px;
}

/* Show only relevant navigation controls based on active slide */
.nav-controls
{
	display: none;
	width: 100%;
	height: 100%;
	position: absolute;
	top: 0;
	left: 0;
}

#slide1:checked ~ .nav .nav-slide1,
#slide2:checked ~ .nav .nav-slide2,
#slide3:checked ~ .nav .nav-slide3
{
	display: block;
}

/* Dot indicators */
.dots
{
	text-align: center;
	width: 100%;
	padding: 15px 0;
	z-index: 10;
}

	.dots label
	{
		cursor: pointer;
		height: 10px;
		width: 10px;
		margin: 0 5px;
		background-color: #bbb;
		border-radius: 50%;
		display: inline-block;
		transition: background-color 0.3s;
	}

/* Active dot styling */
#slide1:checked ~ .dots label[for="slide1"],
#slide2:checked ~ .dots label[for="slide2"],
#slide3:checked ~ .dots label[for="slide3"]
{
	background-color: var(--uchu-green-5);
}

/*#endregion Carousel*/

.author-list
{
	display: flex;
	align-items: center;
	margin-right: 4rem;
}

.avatar
{
	width: 4rem; /* Adjust size as needed */
	height: 4rem; /* Adjust size as needed */
	border-radius: 50%;
	overflow: hidden;
	border: .2rem solid white; /* White border for separation */
	margin-left: -1.5rem; /* Controls the overlap */
	text-decoration: none; /* Removes underline from links */
	background-color: #777; /* fallback if PNG has transparency */
}

	.avatar:first-child
	{
		margin-left: 0; /* No overlap for the first avatar */
	}

	.avatar img
	{
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

header .header-avatar
{
	margin-left: 0;
	flex-shrink: 0;
	border-radius: 50%;
	overflow: hidden;
}

header .header-avatar .avatar-initials
{
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	height: 100%;
	color: #fff;
	background-color: #555;
	font-weight: 600;
	font-size: 1.2rem;
	text-transform: uppercase;
}

.editor-info
{
	margin-top: 2rem;
	display: flex;
	align-items: center;
	justify-content: center; /* horizontally center the whole lot */
	gap: 1rem; /* space between elements */
	padding: 8px 0;
	font-family: sans-serif;
	text-transform: uppercase;
	color: var(--uchu-gray-8);
	font-weight: 700;
	font-size: var(--step--1);
}

	.editor-info .label
	{

/*		font-weight: 600;
		font-size: 14px;
*/
	}

.last-updated small
{
	display: inline-flex;
	align-items: center;
	gap: 4px; /* space between icon and text */
}

.last-updated svg
{
	display: block; /* ensures svg aligns correctly */
}

.video-container
{
	position: relative;
	width: 100%;
	cursor: pointer;
	display: inline-block;
}

	.video-container img
	{
		width: 100%;
		height: auto;
		display: block;
	}

.play-button {
    position: absolute; /* Positions the play button relative to .video-container */
    top: 50%;           /* Centers vertically */
    left: 50%;          /* Centers horizontally */
    transform: translate(-50%, -50%); /* Offsets to center */
    width: 68px;        /* Adjust size as needed */
    height: 48px;       /* Adjust size as needed */
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1;         /* Ensures the play button appears above other elements */
}

.play-button svg {
    width: 100%;
    height: auto;
}

.file-info p
{
	margin: 0;
}

.filename
{
	line-height: 1;
	font-size: var(--step-0) !important;
	font-family: monospace;
	padding-bottom: .5rem;
}

.file-info
{
	display: flex;
	gap: 1rem;
	align-items: flex-start;
	font-size: var(--step--1);
	line-height: 1.25;
}

.file-icon
{
	display: flex;
	align-items: center;
	flex: none;
	block-size: 1lh;

	> svg
	{
		inline-size: 1.5em;
		flex: none;
	}

}

.text-content > p
{
	font-size: inherit;
}

.dropdown
{
	position: relative;
	display: inline-block;
	margin-left: 4rem;
}
/* The three-dot button */
.dropbtn
{
	background: none;
	border: none;
	font-size: 24px;
	cursor: pointer;
	padding: 8px;
	color: #333;
}
/* Dropdown content (hidden by default) */
.dropdown-content
{
	display: none;
	position: absolute;
	right: 0; /* Aligns dropdown to the right of the button */
	background-color: #fff;
	min-width: 160px;
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.2);
	z-index: 1;
	border: 1px solid #ccc;
}
	/* Dropdown links styling */
	.dropdown-content a
	{
		color: #333;
		padding: 12px 16px;
		text-decoration: none;
		display: block;
		white-space: nowrap;
	}
		/* Hover effect for links */
		.dropdown-content a:hover
		{
			background-color: #f1f1f1;
		}
/* Show the dropdown on hover */
.dropdown:hover .dropdown-content
{
	display: block;
}

/* HTML: <div class="zig-zag-line"></div> */
.zig-zag-line
{
	--a: 90deg; /* control the angle */
	--s: 3rem; /* size of the zig-zag */
	--b: .5rem; /* control the thickness */

	background: var(--uchu-green-5);
	height: calc(var(--b) + var(--s)/(2*tan(var(--a)/2)));
	width: 20%;
	--_g: var(--s) repeat-x conic-gradient(from calc(var(--a)/-2) at bottom, #0000,#000 1deg calc(var(--a) - 1deg),#0000 var(--a));
	mask: 50% calc(-1*var(--b))/var(--_g) exclude,50%/var(--_g);
	margin: 0 auto;
}

li > ul > li
{
	list-style-type: square;
}

textarea
{
	width: 100%;
}

article > ul:not(.categories) > li:not(:first-child)
{
	margin-top: 1rem;
}

ul.categories a
{
	font-size: 1rem;
}

/* "بايت الشرق الأوسط" (Bayt al-Sharq al-Awsaṭ) Byte Middle East */

/*#region Cards*/
.card
{
	background-color: var(--color-surface);
	border: 1px solid var(--color-border);
	border-radius: 0.5rem;
	box-shadow: 0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px 0 rgba(0, 0, 0, 0.06);
	overflow: hidden;
	margin-bottom: var(--space-m);
}

.card > table
{
	margin-bottom: 0;
	width: 100%;
}

.card > table th
{
	background-color: var(--color-surface-alt);
}

.card-wide
{
	width: clamp(100%, 100vw - 4 * var(--grid-gutter), calc(2 * var(--grid-max-width) - 4 * var(--grid-gutter)));
	max-width: none;
	position: relative;
	left: 50%;
	transform: translateX(-50%);
}
/*#endregion Cards*/
/*#region Material Design Components*/
/* --- MATERIAL TEXTBOX & SELECT STYLES --- */
.md3-field {
	position: relative;
	display: block;
	contain: layout style;
	container-type: inline-size;
	font: inherit;
	min-block-size: var(--field-size);
	margin-bottom: var(--space-m);
	
	&::before, &::after { z-index: 0; pointer-events: none; }
	& > .md-line { z-index: 1; pointer-events: none; }
	
	& > input,
	& > select {
		position: relative;
		z-index: 1;
		display: block;
		inline-size: 100%;
		min-block-size: var(--field-size);
		padding: .75rem var(--gap);
		border: 0;
		outline: 0;
		background: transparent;
		color: var(--md-on-surface);
		line-height: 1.5;
		caret-color: var(--md-primary);
		font-size: var(--step-0);
		font-family: inherit;
		transition: padding-top var(--dur) var(--ease), padding-bottom var(--dur) var(--ease);
	}

	& > input::placeholder { font-size: var(--step-0); opacity: 0; }
	& > select { appearance: none; -webkit-appearance: none; cursor: pointer; padding-inline-end: 3rem; }

	/* Trailing Icon (Arrow for Select) */
	& > .md-icon {
		position: absolute;
		right: var(--gap);
		top: 50%;
		transform: translateY(-50%);
		pointer-events: none;
		z-index: 2;
		color: var(--md-on-surface-variant);
		display: flex;
		align-items: center;
		justify-content: center;
		transition: transform var(--dur) var(--ease);
	}
	
	& > label {
		position: absolute;
		left: var(--gap);
		top: 50%;
		transform: translateY(-50%);
		transform-origin: left center;
		color: var(--md-on-surface-variant);
		line-height: 1;
		cursor: text;
		pointer-events: none;
		font-size: var(--step-0);
		z-index: 1;
		transition: color var(--dur) var(--ease), top var(--dur) var(--ease), font-size var(--dur) var(--ease), transform var(--dur) var(--ease), left var(--dur) var(--ease);
	}
	
	&:is(:focus-within, :has(input:not(:placeholder-shown)), :has(select:valid)) {
		& > input, & > select { padding-top: var(--label-space); padding-bottom: .5rem; }
		& > label { font-size: var(--step--2); top: .5rem; transform: none; color: var(--md-on-surface-variant); }
	}
	
	&:focus-within > label { color: var(--md-primary); }
	&:focus-within > .md-icon { transform: translateY(-50%) rotate(180deg); color: var(--md-primary); }
	&:focus-within { z-index: 1; }
	
	&:has(:focus-visible)::after {
		content: "";
		position: absolute;
		inset: 0;
		border-radius: var(--shape-xs);
		box-shadow: 0 0 0 var(--ring-size) color-mix(in srgb, var(--md-primary) 40%, transparent);
	}
}

/* --- NEW: Leading & Trailing Icons for Inputs --- */

/* Leading Icon Positioning */
.md-icon-leading {
	position: absolute;
	left: var(--gap);
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	color: var(--md-on-surface-variant);
	display: flex;
	pointer-events: none;
}

/* Adjust Input Padding & Label when Leading Icon exists */
/* 24px is standard icon size. Padding = gap + icon + gap (optional small space) */
.md3-field.md3-has-icon-start input {
	padding-inline-start: calc(var(--gap) * 1.5 + 24px);
}
.md3-field.md3-has-icon-start label {
	left: calc(var(--gap) * 1.5 + 24px);
}

/* Clear Button (Trailing) */
.md-clear-btn {
	position: absolute;
	right: .5rem; /* Slightly tighter than gap for touch targets */
	top: 50%;
	transform: translateY(-50%);
	background: transparent;
	border: none;
	color: var(--md-on-surface-variant);
	cursor: pointer;
	padding: 8px;
	border-radius: 50%;
	z-index: 3; /* Higher than label/input */
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.2s ease, background-color 0.2s ease;
	display: flex;
	align-items: center;
	justify-content: center;
}
.md-clear-btn:hover {
	background-color: rgba(0,0,0,0.08);
}

/* Show Clear Button when input has text */
.md3-field:has(input:not(:placeholder-shown)) .md-clear-btn {
	opacity: 1;
	pointer-events: auto;
}
/* Adjust input padding when clear button might appear */
.md3-field:has(.md-clear-btn) input {
	padding-inline-end: 3rem;
}


.md3-filled {
	isolation: isolate;
	&::before {
		content: "";
		position: absolute;
		inset: 0;
		background: var(--md-surface-container-highest);
		border-start-start-radius: var(--shape-xs);
		border-start-end-radius: var(--shape-xs);
		transition: background var(--dur) var(--ease);
	}
	&:hover::before { background: color-mix(in srgb, var(--md-primary) calc(var(--state-hover) * 100%), var(--md-surface-container-highest)); }
	&:focus-within::before { background: color-mix(in srgb, var(--md-primary) calc(var(--state-focus) * 100%), var(--md-surface-container-highest)); }
	& .md-line {
		position: absolute;
		inset-inline: 0;
		inset-block-end: 0;
		block-size: var(--indicator-rest);
		background: var(--md-outline-variant);
		transition: background var(--dur) var(--ease), block-size var(--dur) var(--ease);
	}
	&:hover .md-line { background: var(--md-on-surface-variant); }
	&:focus-within .md-line { block-size: var(--indicator-active); background: var(--md-primary); }
	&:has(:focus-visible)::after { border-end-start-radius: 0; border-end-end-radius: 0; }
}

/* --- RADIO STYLES --- */
fieldset.RadioGroup { 
	border: 0; padding: 0; margin: 0; margin-top: var(--space-s);
}
fieldset.RadioGroup > legend.Title { 
	margin-block-end: 12px; font-weight: 500; color: var(--md-on-surface); font-size: var(--step-0);
}
.Help { margin: -8px 0 16px 0; color: var(--md-on-surface-variant); font-size: var(--step--2); }
.Choices { list-style: none; display: grid; gap: 12px; margin: 0; padding: 0; }
.RadioOption input[type="radio"] { position: absolute; width: 1px; height: 1px; opacity: 0; pointer-events: none; }
.RadioOption {
	position: relative; display: grid; grid-template-columns: 40px 1fr; align-items: center; gap: var(--radio-gutter);
	padding: 16px 20px; border: 1px solid var(--md-outline-variant); border-radius: var(--radio-radius);
	background: transparent; cursor: pointer; transition: border-color var(--dur) var(--ease), background var(--dur) var(--ease);
	user-select: none; color: var(--md-on-surface);
}
.RadioOption:hover { background: color-mix(in srgb, var(--md-primary) calc(var(--state-hover) * 100%), transparent); }
.RadioOption:has(input:checked) {
	border-color: var(--md-primary);
	background: color-mix(in srgb, var(--md-primary) calc(var(--state-focus) * 100%), transparent);
}
.RadioOption:has(input:focus-visible) { outline: 2px solid var(--md-primary); outline-offset: 2px; }

/* Bullet */
.Bullet {
	width: 24px; height: 24px; border-radius: 50%; border: 2px solid var(--md-on-surface-variant);
	position: relative; display: grid; place-items: center;
	transition: border-color var(--dur) var(--ease), border-width var(--dur) var(--ease);
}
.Bullet::after {
	content: ""; width: 12px; height: 12px; border-radius: 50%; transform: scale(0); background: var(--md-primary);
	transition: transform var(--dur) cubic-bezier(0.4, 0.0, 0.2, 1);
}
.RadioOption:hover .Bullet { border-color: var(--md-primary); border-width: 4px; }
.RadioOption:has(input:checked) .Bullet { border-color: var(--md-primary); border-width: 4px; }
.RadioOption:has(input:checked) .Bullet::after { transform: scale(1); }
.RadioOption .Label { font-weight: 500; font-size: var(--step-0); line-height: 1.2; }

@media (prefers-reduced-motion: reduce) {
	.md3-field *, .md3-field::before, .md3-field::after, .RadioOption, .Bullet, .Bullet::after {
		transition: none !important; animation: none !important;
	}
}
/*#endregion Material Design Components*/
