@font-face {
    font-family: 'GTPlanar-Regular';
    src: url('/assets/fonts/GTPlanar-Regular.woff2') format('woff2'),
        url('/assets/fonts/GTPlanar-Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'GTPlanar-Italic15Regular';
    src: url('/assets/fonts/GTPlanar-Italic15Regular.woff2') format('woff2'),
        url('/assets/fonts/GTPlanar-Italic15Regular.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@font-face {
    font-family: 'GTPlanar-Medium';
    src: url('/assets/fonts/GTPlanar-Medium.woff2') format('woff2'),
        url('/assets/fonts/GTPlanar-Medium.woff') format('woff');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}
:root {
  /* Base margins */
  --margin: 1.0rem;
  --margin-outer: 1.5rem;
  --max-width: 1600px;
  --max-text-width: 800px;
  
  /* Border Radius */
  --radius: 5px;
  --radius-small: 3px;
  --radius-large: 8px;

  /* Button spacing */
  --button-spacing: 0.2rem;  /* Space between buttons in nav/filters */
  
  /* Grid spacing */
  --grid-gap: 1.5rem;  /* Space between grid items */

  /* Section spacing */
  --section-spacing-small: 3.0rem;  /* 30px */
  --section-spacing: 6.0rem;        /* 60px */
  --section-spacing-large: 8.0rem;
}  /* 80px */  @media (min-width: 768px) {:root {
    --margin-outer: 3.0rem;
    --grid-gap: 3.0rem;
    --section-spacing: 8.0rem;
    --section-spacing-large: 12.0rem
}
  }

/*
 * GT Planar Typography System
 * 
 * OpenType Stylistic Sets Enabled:
 * ─────────────────────────────────────────────────────────────────────────────
 * ss01: Single story 'a'          → Geometric single-bowl lowercase 'a'
 * ss02: Single story 'g'          → Simplified single-story lowercase 'g'
 * ss03: Curved Shapes             → Curved alternates for select characters
 * ss04: Flat shapes               → Flat, geometric alternates
 * ss05: Curved Numbers            → Curved variants for all numerals (0-9)
 * ss06: Flat C                    → Flat, geometric uppercase 'C'
 * ss07: Flat G                    → Flat, geometric uppercase 'G'
 * ss08: Flat S                    → Flat, geometric uppercase 'S'
 * ss09: Flat a                    → Flat, geometric lowercase 'a'
 * ss10: Flat c                    → Flat, geometric lowercase 'c'
 * ss11: Flat e                    → Flat, geometric lowercase 'e'
 * ss12: Flat single story g       → Flat geometry + single-story 'g'
 * ss13: Flat s                    → Flat, geometric lowercase 's'
 * ss14: Curved question mark      → Curved variant for '?' punctuation
 * ─────────────────────────────────────────────────────────────────────────────
 * 
 * These stylistic sets create a cohesive, geometric aesthetic that maintains
 * readability while providing a distinctive visual character. The combination
 * of flat shapes and curved elements creates visual interest and hierarchy.
 */

:root {
    --sans-serif-fallback: "Helvetica Neue", Helvetica, Arial, sans-serif;
    --sans-serif: 'GTPlanar-Regular', var(--sans-serif-fallback);
    --main-font: var(--sans-serif);
    --title-font: 'GTPlanar-Regular', var(--sans-serif-fallback);
    --small-font: 'GTPlanar-Regular', var(--sans-serif-fallback);
    --italic-font: 'GTPlanar-Italic15Regular', var(--sans-serif-fallback);

    /* Mobile sizes */
    --font-size--xs: 1.2rem;
    --line-height--xs: 1.25;
    --letter-spacing--xs: 0;

    --font-size--s: 1.4rem;
    --line-height--s: 1.25;
    --letter-spacing--s: 0.0125em;

    --font-size--m: 1.6rem;
    --line-height--m: 1.4;
    --letter-spacing--m: 0em;

    --font-size--l: 2.2rem;
    --line-height--l: 1.25;
    --letter-spacing--l: -0.02em;

    --font-size--xl: 3.2rem;
    --line-height--xl: 1.125;
    --letter-spacing--xl: -0.03em;

    --font-size--xxl: 5.6rem;
    --line-height--xxl: 0.95;
    --letter-spacing--xxl: -0.04em;
}

/* Desktop sizes (1024px+) */

@media (min-width: 1024px) {

:root {
        --font-size--xs: 1.2rem;
        --line-height--xs: 1.25;

        --font-size--s: 1.5rem;
        --line-height--s: 1.25;

        --font-size--m: 2.0rem;
        --line-height--m: 1.333;

        --font-size--l: 2.9rem;
        --line-height--l: 1.241;

        --font-size--xl: 4.0rem;
        --line-height--xl: 1.125;

        --font-size--xxl: 11.0rem;
        --line-height--xxl: 0.873
}
    }

/* Color */
:root {
    /* Brussels By Night Colors */
    --color-background: rgb(18, 18, 18);
    --color-card-background: rgb(40, 40, 40);
    --color-card-background-hover: rgb(50, 50, 50);
    --color-overlay-background: rgb(40, 40, 40);
    --color-curtain-background: rgba(18, 18, 18, 0.6);
    
    --color-brand: rgb(0, 68, 255);
    --color-brand-hover: rgb(30, 90, 255);
    
    --color-text: rgb(235, 235, 235);
    --color-text-muted: rgba(235, 235, 235, 0.6);
    
    --color-button-background: rgb(40, 40, 40);
    --color-button-background-hover: rgb(50, 50, 50);
    --color-button-background-active: var(--color-brand);
    --color-button-text: var(--color-text);
    --color-button-text-active: var(--color-text);
    
    /* Glass/Blur button */
    --color-button-glass: rgba(68, 68, 68, 0.5);
    --color-button-glass-hover: rgba(78, 78, 78, 0.6);
    --blur-button: 80px;
    
    --color-border: rgba(252, 252, 252, 0.12);
    --color-border-hover: rgba(252, 252, 252, 0.24);
    
    --color-selection: var(--color-brand);
    
    --opacity-text: 0.6;
    --opacity-hover: 0.8;
}

/* Light mode (if needed) */
body[data-inverted="false"] {
    --color-background: rgb(245, 245, 245);
    --color-text: rgb(18, 18, 18);
    --color-card-background: rgb(255, 255, 255);
}

:root {
  --anim-ease: cubic-bezier(0.4, 0, 0.2, 1);
  --anim-ease-out: cubic-bezier(0, 0, 0.2, 1);
  --anim-ease-in: cubic-bezier(0.4, 0, 1, 1);
  --anim-ease-in-out: cubic-bezier(0.4, 0, 0.6, 1);
  
  --anim-speed-fast: 0.15s;
  --anim-speed: 0.3s;
  --anim-speed-slow: 0.6s;
}

:root {
  --z-base: 1;
  --z-header: 100;
  --z-nav: 90;
  --z-overlay: 200;
  --z-overlay-button: 201;
  --z-modal: 300;
}

/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */

/* Document
   ========================================================================== */

/**
 * 1. Correct the line height in all browsers.
 * 2. Prevent adjustments of font size after orientation changes in iOS.
 */

html {
  line-height: 1.15; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
}

/* Sections
   ========================================================================== */

/**
 * Remove the margin in all browsers.
 */

body {
  margin: 0;
}

/**
 * Render the `main` element consistently in IE.
 */

main {
  display: block;
}

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */

h1 {
  font-size: 2em;
  margin: 0.67em 0;
}

/* Grouping content
   ========================================================================== */

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */

hr {
  box-sizing: content-box; /* 1 */
  height: 0; /* 1 */
  overflow: visible; /* 2 */
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

pre {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/* Text-level semantics
   ========================================================================== */

/**
 * Remove the gray background on active links in IE 10.
 */

a {
  background-color: transparent;
}

/**
 * 1. Remove the bottom border in Chrome 57-
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */

abbr[title] {
  border-bottom: none; /* 1 */
  text-decoration: underline; /* 2 */
  text-decoration: underline;
  -webkit-text-decoration: underline dotted currentColor;
          text-decoration: underline dotted currentColor; /* 2 */
}

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */

b,
strong {
  font-weight: bolder;
}

/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */

code,
kbd,
samp {
  font-family: monospace, monospace; /* 1 */
  font-size: 1em; /* 2 */
}

/**
 * Add the correct font size in all browsers.
 */

small {
  font-size: 80%;
}

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/* Embedded content
   ========================================================================== */

/**
 * Remove the border on images inside links in IE 10.
 */

img {
  border-style: none;
}

/* Forms
   ========================================================================== */

/**
 * 1. Change the font styles in all browsers.
 * 2. Remove the margin in Firefox and Safari.
 */

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-size: 100%; /* 1 */
  line-height: 1.15; /* 1 */
  margin: 0; /* 2 */
}

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */

button,
input { /* 1 */
  overflow: visible;
}

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */

button,
select { /* 1 */
  text-transform: none;
}

/**
 * Correct the inability to style clickable types in iOS and Safari.
 */

button,
[type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
}

/**
 * Remove the inner border and padding in Firefox.
 */

button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
}

/**
 * Restore the focus styles unset by the previous rule.
 */

button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
}

/**
 * Correct the padding in Firefox.
 */

fieldset {
  padding: 0.35em 0.75em 0.625em;
}

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */

legend {
  box-sizing: border-box; /* 1 */
  color: inherit; /* 2 */
  display: table; /* 1 */
  max-width: 100%; /* 1 */
  padding: 0; /* 3 */
  white-space: normal; /* 1 */
}

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */

progress {
  vertical-align: baseline;
}

/**
 * Remove the default vertical scrollbar in IE 10+.
 */

textarea {
  overflow: auto;
}

/**
 * 1. Add the correct box sizing in IE 10.
 * 2. Remove the padding in IE 10.
 */

[type="checkbox"],
[type="radio"] {
  box-sizing: border-box; /* 1 */
  padding: 0; /* 2 */
}

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */

[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
}

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */

[type="search"] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/**
 * Remove the inner padding in Chrome and Safari on macOS.
 */

[type="search"]::-webkit-search-decoration {
  -webkit-appearance: none;
}

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/* Interactive
   ========================================================================== */

/*
 * Add the correct display in Edge, IE 10+, and Firefox.
 */

details {
  display: block;
}

/*
 * Add the correct display in all browsers.
 */

summary {
  display: list-item;
}

/* Misc
   ========================================================================== */

/**
 * Add the correct display in IE 10+.
 */

template {
  display: none;
}

/**
 * Add the correct display in IE 10.
 */

[hidden] {
  display: none;
}


/**
 * Custom
 *  Resets margins and paddings for headers, ul, li, ol and p
 */
h1,
h2,
h3,
h4,
h5,
h6,
ul,
ol,
li,
p {
  margin: 0;
  padding: 0;
}

ul,
ol {
  list-style-type: none;
}
/* Base styles */

* {
  box-sizing: border-box;
  margin: 0;
  padding: 0;
}

html {
  background-color: var(--color-background);
  scroll-behavior: smooth;
}

body {
  background-color: var(--color-background);
  min-height: 100vh;
  overflow-x: hidden;
}

main {
  position: relative;
  z-index: var(--z-base);
}

/* Selection */
::-moz-selection {
  background-color: var(--color-selection);
  color: var(--color-text);
}
::selection {
  background-color: var(--color-selection);
  color: var(--color-text);
}

::-moz-selection {
  background-color: var(--color-selection);
  color: var(--color-text);
}

/* Focus styles */
.focus-visible {
  outline: 2px solid var(--color-brand);
  outline-offset: 2px;
}
:focus-visible {
  outline: 2px solid var(--color-brand);
  outline-offset: 2px;
}

button.focus-visible,
a.focus-visible {
  outline: 2px solid var(--color-brand);
  outline-offset: 4px;
}

button:focus-visible,
a:focus-visible {
  outline: 2px solid var(--color-brand);
  outline-offset: 4px;
}

/* Scrollbar */
::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

::-webkit-scrollbar-track {
  background: var(--color-background);
}

::-webkit-scrollbar-thumb {
  background: var(--color-card-background);
  border-radius: 0;
}

::-webkit-scrollbar-thumb:hover {
  background: var(--color-card-background-hover);
}

/* Remove default button styles */
button {
  background: none;
  border: none;
  padding: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
}

/* Image defaults */
img,
svg {
  display: block;
  max-width: 100%;
  height: auto;
}

/* List defaults */
ul,
ol {
  list-style: none;
}

/* Typographical base selectors. Define base styles on single element selectors here. */

* {
  -webkit-tap-highlight-color: transparent;
}

html {
  color: var(--color-text);
  font-family: var(--main-font);
  font-size: 62.5%;
}

body {
	-webkit-text-size-adjust: 100%;
	-ms-text-size-adjust: 100%;
	-webkit-font-smoothing: antialiased;
	-webkit-hyphenate-character: "-";
	-moz-osx-font-smoothing: grayscale;
	
	/*
	 * OpenType Font Feature Settings
	 * Enable all available stylistic sets for GT Planar
	 */
	font-feature-settings: 
		'kern' 1,  
		'ss01' 1,  
		'ss02' 1,  
		'ss03' 1,  
		'ss04' 1,  
		'ss05' 1,  
		'ss06' 1,  
		'ss07' 1,  
		'ss08' 1,  
		'ss09' 1,  
		'ss10' 1,  
		'ss11' 1,  
		'ss12' 1,  
		'ss13' 1,  
		'ss14' 1, "liga", "clig";  /* Stylistic Set 14: Curved question mark - Uses curved variant for '?' character */
	
	font-variant-ligatures: common-ligatures;
	text-rendering: optimizeLegibility;

	font-optical-sizing: auto;
	font-family: var(--main-font);
	font-size: var(--font-size--m);
	line-height: var(--line-height--m);
	letter-spacing: var(--letter-spacing--m);
	font-weight: 400;

	color: var(--color-text);
}

/* Typography scale classes */

.t-xs,
[data-fontsize="xs"] {
  font-family: var(--small-font);
  font-size: var(--font-size--xs);
  line-height: var(--line-height--xs);
  letter-spacing: var(--letter-spacing--xs);
}

.t-s,
[data-fontsize="s"] {
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  line-height: var(--line-height--s);
  letter-spacing: var(--letter-spacing--s);
}

.t-m,
.t-text,
[data-fontsize="m"],
[data-fontsize="default"] {
  font-family: var(--main-font);
  font-size: var(--font-size--m);
  line-height: var(--line-height--m);
  letter-spacing: var(--letter-spacing--m);
}

.t-l,
[data-fontsize="l"] {
  font-family: var(--title-font);
  font-size: var(--font-size--l);
  line-height: var(--line-height--l);
  letter-spacing: var(--letter-spacing--l);
}

.t-xl,
[data-fontsize="xl"] {
  font-family: var(--title-font);
  font-size: var(--font-size--xl);
  line-height: var(--line-height--xl);
  letter-spacing: var(--letter-spacing--xl);
}

.t-xxl,
[data-fontsize="xxl"] {
  font-family: var(--title-font);
  font-size: var(--font-size--xxl);
  line-height: var(--line-height--xxl);
  letter-spacing: var(--letter-spacing--xxl);
}

.t-num {
	font-feature-settings: "tnum" 1, "tnum";
	font-variant-numeric: tabular-nums;
}

.t-num--spaced {
	letter-spacing: -.025em;
}

/* Link styles */

a {
	color: inherit;
	text-decoration: none;
  	transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.t-link {
	cursor: pointer;
	color: inherit;
	opacity: 1;
  	transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.t-link:hover,
	.t-link:focus {
		opacity: var(--opacity-hover);
	}

.t-faded {
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
  opacity: var(--opacity-text);
}

.t-faded a:hover,
.t-faded a:focus {
	opacity: 1;
}

a.t-faded:hover,
	a.t-faded:focus {
		opacity: 1;
	}

p a {
  	color: inherit;
	text-decoration: underline;
  	transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

p a:hover,
	p a:focus {
		opacity: var(--opacity-hover);
	}

/* Rich text content */

.t-text,
.t-rich-text {
  max-width: var(--max-text-width);
}

.t-text p,
.t-rich-text p {
	margin-bottom: calc(var(--line-height--m) * 1em);
}

.t-text p:last-child, .t-rich-text p:last-child {
		margin-bottom: 0;
	}

.t-text h1,
.t-text h2,
.t-text h3 {
	margin-top: calc(var(--line-height--m) * 2em);
	margin-bottom: calc(var(--line-height--m) * 1em);
}

.t-text h1:first-child, .t-text h2:first-child, .t-text h3:first-child {
		margin-top: 0;
	}

.t-text a {	
	text-decoration: underline;
}

.t-text a:hover,
	.t-text a:focus {
		opacity: var(--opacity-hover);
	}

blockquote {
	margin: var(--margin-l) 0;
	padding-left: var(--margin-m);
	border-left: 2px solid var(--color-border);
	font-size: var(--font-size--l);
  	line-height: var(--line-height--l);
  	letter-spacing: var(--letter-spacing--l);
}

h1,
h2,
h3,
h4,
h5,
h6 {
	font-weight: normal;
	font-size: inherit;
}

b, em, strong, i {
	font-weight: normal;
	font-style: normal;
}

/* Type utilities */

.t-dont-wrap {
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}

.t-center {
  text-align: center !important;
}

.t-right {
  text-align: right !important;
}

.t-uppercase {
	text-transform: uppercase !important;
}

.t-default {
	text-transform: none !important;
}

.t-tight {
  margin: 0 !important;
}

/* Media
Base selectors for images, video, audio... */

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

/* purgecss start ignore */
img,
video {
  max-width: 100%;
  height: auto;
}

video {
  width: 100%;
  overflow: visible;
}

figure {
  margin: 0;
  padding: 0;
  width: 100%;
  height: auto;
}

figure figcaption {
  margin-top: 0.5em;
  /* margin-bottom: var(--margin); */
  width: 100%;
  display: block;
  text-align: left;
  /* opacity: var(--opacity-text); */
  font-size: var(--font-size--s);
  line-height: var(--line-height--s);
}

img[data-sizes="auto"] {
  display: block;
  width: 100%;
}

img.lazyload,
img.lazyloading,
iframe.lazyload,
iframe.lazyloading,
video.lazyload,
video.lazyloading {
  opacity: 0;
}

img.lazyloaded,
video.lazyloaded,
iframe.lazyloaded {
  opacity: 1;
  transition: opacity var(--anim-speed) cubic-bezier(.215,.61,.355,1) 0.15s, transform var(--anim-speed) cubic-bezier(.215,.61,.355,1) 0.35s;
}

.lazyscale {
  transform: scale(1.05);
  transform-origin: center center;
}

.lazyscale.lazyloaded {
  transform: scale(1);
}

body:not(.is-touch) .has-hoverstate-opacity {
    transition: opacity var(--anim-speed-fade) var(--anim-ease);
  }

body:not(.is-touch) .has-hoverstate-opacity:hover {
      opacity: 0.6;
    }

body:not(.is-touch) .has-hoverstate-grayscale {
    transition: all var(--anim-speed-fade) var(--anim-ease);
  }

body:not(.is-touch) .has-hoverstate-grayscale:hover {
      filter: gray;
      -webkit-filter: grayscale(1);
    }

body:not(.is-touch) .has-hoverstate-scale img,
    body:not(.is-touch) .has-hoverstate-scale video,
    body:not(.is-touch) .has-hoverstate-scale embed,
    body:not(.is-touch) .has-hoverstate-scale iframe {
      transition: all var(--anim-speed) var(--anim-ease);
      transform: scale(1);
    }

body:not(.is-touch) .has-hoverstate-scale:hover img,
      body:not(.is-touch) .has-hoverstate-scale:hover video,
      body:not(.is-touch) .has-hoverstate-scale:hover embed,
      body:not(.is-touch) .has-hoverstate-scale:hover iframe {
        transform: scale(1.02);
      }

body:not(.is-touch) .has-hoverstate-gallery {
      cursor: pointer;
  }

.m-image-blend-background > img {
    mix-blend-mode: multiply;
}

.m-hoverstate-image {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  transition: opacity var(--anim-speed-fade) var(--anim-ease);
}

.m-hoverstate-image > img {
      width: 100%;
      height: 100%;
      -o-object-fit: cover;
         object-fit: cover;
      font-family: "object-fit: cover";
  }

body:not(.is-touch) .has-hoverstate-image:hover .m-hoverstate-image {
      opacity: 1;
    }

.m-image-container,
.m-video-container {
  position: relative;
  overflow: hidden;
}

.m-embed-video-container {
  position: relative;
  padding-bottom: 56.25%;
}

/* Container for soundcloud embeds */
.m-embed-container {
  position: relative;
  width: 100%;
}

.m-embed-container iframe {
  position: relative;
  width: 100%;
  height: 100%;
}

.m-embed-video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;

}

.m-embed-video-container {
  position: relative;
  padding-bottom: 56.25%;
}

.m-embed-video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}


.m-placeholder {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  opacity: 1;
  transition: opacity var(--anim-speed) var(--anim-ease);
  -o-object-fit: cover;
     object-fit: cover;
}

/* Ensure actual image is above placeholder - only when placeholder exists */
.m-image-container[\:has\(.m-placeholder\)] .o-image,
.m-image-container[\:has\(.m-placeholder\)] .o-video {
  position: relative;
  z-index: 2;
}
.m-image-container:has(.m-placeholder) .o-image,
.m-image-container:has(.m-placeholder) .o-video {
  position: relative;
  z-index: 2;
}

/* Hide placeholder when image is loaded - using :has() for modern browsers */
.m-image-container[\:has\(.lazyloaded\)] .m-placeholder {
  opacity: 0;
  pointer-events: none;
}
.m-image-container:has(.lazyloaded) .m-placeholder {
  opacity: 0;
  pointer-events: none;
}


.m-image-container[data-fit="contain"] {
    -o-object-fit: contain;
       object-fit: contain;
    width: 100%;
    height: 100%;
    -o-object-position: center;
       object-position: center;
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
}

.m-image-container[data-fit="contain"] > img,
.m-image-container[data-fit="contain"] > video,
.m-image-container[data-fit="contain"] > iframe {
    width: 100%;
    height: 100%;
    max-width: 100%;
    padding: calc(var(--margin)*6);
}

@media(min-width: 1024px) {

.m-image-container[data-fit="contain"] > img,
.m-image-container[data-fit="contain"] > video,
.m-image-container[data-fit="contain"] > iframe {
      max-width: 75%
}
    }

[data-crop] {
  position: relative;
  overflow: hidden;
}

[data-crop] > img,
[data-crop] > video,
[data-crop] > iframe,
[data-crop] > .m-placeholder {
  width: 100%;
  height: 100%;

  -o-object-fit: cover;

     object-fit: cover;
  font-family: "object-fit: cover";
}

[data-ratio="auto"] {
  aspect-ratio: auto;
}

[data-ratio="2/3"],
[data-ratio="portrait"] {
  aspect-ratio: 2 / 3;
}

[data-ratio="3/2"],
[data-ratio="landscape"] {
  aspect-ratio: 3 / 2;
}

[data-ratio="3/4"] {
  aspect-ratio: 3 / 4;
}

[data-ratio="4/3"] {
  aspect-ratio: 4 / 3;
}

[data-ratio="1/1"],
[data-ratio="square"] {
  aspect-ratio: 1 / 1;
}

[data-ratio="16/9"] {
  aspect-ratio: 16 / 9;
}

/* Ensure images fill containers with aspect ratios */
[data-ratio]:not([data-ratio="auto"]) > img,
[data-ratio]:not([data-ratio="auto"]) > video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  font-family: "object-fit: cover";
}

/* Use CSS aspect-ratio property for custom aspect ratios */
[style*="--aspect-ratio"] {
  aspect-ratio: var(--aspect-ratio);
}

[style*="--aspect-ratio"] > img,
[style*="--aspect-ratio"] > video {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
  font-family: "object-fit: cover";
}


/* purgecss end ignore */
/* Container */

.g-container {
  width: 100%;
  max-width: var(--max-width);
  margin-left: auto;
  margin-right: auto;
  padding-left: var(--margin-outer);
  padding-right: var(--margin-outer);
}

.g-container--narrow {
  max-width: 1200px;
}

.g-container--wide {
  max-width: 1800px;
}

/* Grid utilities */

.g-grid {
  display: grid;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
}

@media (min-width: 768px) {

.g-grid--2 {
    grid-template-columns: repeat(2, 1fr)
}
  }

@media (min-width: 768px) {

.g-grid--3 {
    grid-template-columns: repeat(2, 1fr)
}
  }

@media (min-width: 1024px) {

.g-grid--3 {
    grid-template-columns: repeat(3, 1fr)
}
  }

@media (min-width: 768px) {

.g-grid--4 {
    grid-template-columns: repeat(2, 1fr)
}
  }

@media (min-width: 1024px) {

.g-grid--4 {
    grid-template-columns: repeat(4, 1fr)
}
  }

.c-site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: var(--z-header);
  padding: calc(var(--margin) * 2) 0;
  pointer-events: none;
  transition: background-color var(--anim-speed) var(--anim-ease);
}

  @media (min-width: 1024px) {.c-site-header {
    padding: calc(var(--margin) * 3) 0
}
  }


.c-site-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: calc(var(--margin) * 2);
}

.c-site-header a,
.c-site-header nav,
.c-site-header button {
  pointer-events: auto;
}

/* Logo */
.c-site-logo {
  font-size: var(--font-size--s);
  letter-spacing: 0.02em;
  text-decoration: none;
  color: inherit;
  display: inline-flex;
  align-items: center;
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}
@media (min-width: 1024px) {
.c-site-logo {
    font-size: var(--font-size--m)
}
  }
.c-site-logo:hover {
    opacity: var(--opacity-hover);
  }

.c-site-logo__mini {
  display: none;
}

@media (max-width: 1023px) {
  .c-site-logo__full {
    display: none;
  }

  .c-site-logo__mini {
    display: inline-flex;
  }
}

/* Navigation */
.c-site-nav {
  display: none;
  margin-left: auto;
}
@media (min-width: 1024px) {
.c-site-nav {
    display: block
}
  }

.c-site-nav__list {
  display: flex;
  align-items: center;
  gap: var(--button-spacing);
  list-style: none;
  margin: 0;
  padding: 0;
}

.c-site-nav__list a {
  text-decoration: none;
  white-space: nowrap;
}

.c-site-nav__list a[aria-current="page"] {
    background-color: var(--color-brand);
  }

.c-site-nav__list a[aria-current="page"]:hover,
    .c-site-nav__list a[aria-current="page"]:focus {
      background-color: var(--color-brand-hover);
    }

/* Join Button */
.c-site-header__join {
  display: none;
}
@media (min-width: 1024px) {
.c-site-header__join {
    display: inline-flex
}
  }

/* Language Switcher */
.c-lang-switch {
  display: none;
  align-items: center;
  gap: calc(var(--margin) * 0.5);
}
@media (min-width: 1024px) {
.c-lang-switch {
    display: flex
}
  }

.c-lang-switch__link {
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  text-transform: uppercase;
  text-decoration: none;
  opacity: var(--opacity-text);
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.c-lang-switch__link:hover {
    opacity: 1;
  }

.c-lang-switch__link.is-active {
    opacity: 1;
  }

/* Mobile Menu Toggle */
.c-nav-toggle {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0;
  margin-left: auto;
}
@media (min-width: 1024px) {
.c-nav-toggle {
    display: none
}
  }

.c-nav-toggle__icon {
  position: relative;
  width: 24px;
  height: 2px;
  background-color: var(--color-text);
  transition: background-color var(--anim-speed-fast) var(--anim-ease);
}

.c-nav-toggle__icon::before,
  .c-nav-toggle__icon::after {
    content: '';
    position: absolute;
    left: 0;
    width: 100%;
    height: 2px;
    background-color: var(--color-text);
    transition: transform var(--anim-speed) var(--anim-ease);
  }

.c-nav-toggle__icon::before {
    top: -8px;
  }

.c-nav-toggle__icon::after {
    bottom: -8px;
  }

.c-nav-toggle[aria-expanded="true"] .c-nav-toggle__icon {
  background-color: transparent;
}

.c-nav-toggle[aria-expanded="true"] .c-nav-toggle__icon::before {
    transform: translateY(8px) rotate(45deg);
  }

.c-nav-toggle[aria-expanded="true"] .c-nav-toggle__icon::after {
    transform: translateY(-8px) rotate(-45deg);
  }

/* Mobile Navigation Overlay */
.c-nav-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: calc(var(--z-header) - 1);
  background-color: var(--color-background);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  padding: calc(var(--margin) * 4);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--anim-speed) var(--anim-ease);
}
.c-nav-overlay[aria-hidden="false"] {
    opacity: 1;
    pointer-events: auto;
  }
@media (min-width: 1024px) {
.c-nav-overlay {
    display: none
}
  }

.c-nav-overlay__nav {
  margin-bottom: calc(var(--margin) * 6);
}

.c-nav-overlay__list {
  display: flex;
  flex-direction: column;
  gap: calc(var(--margin) * 1.5);
  list-style: none;
  margin: 0;
  padding: 0;
  align-items: center;
}

.c-nav-overlay__list a {
  font-size: var(--font-size--l);
  text-decoration: none;
  min-width: 200px;
  text-align: center;
}

.c-nav-overlay__list a[aria-current="page"] {
    background-color: var(--color-brand);
  }

.c-nav-overlay__list a[aria-current="page"]:hover,
    .c-nav-overlay__list a[aria-current="page"]:focus {
      background-color: var(--color-brand-hover);
    }

.c-nav-overlay__lang {
  display: flex;
  gap: calc(var(--margin) * 2);
}

.c-nav-overlay__lang-link {
  font-size: var(--font-size--m);
  text-transform: uppercase;
  text-decoration: none;
  opacity: var(--opacity-text);
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.c-nav-overlay__lang-link:hover {
    opacity: 1;
  }

.c-nav-overlay__lang-link.is-active {
    opacity: 1;
    color: var(--color-brand);
  }

/* Main content area */

.c-site-main {
  min-height: 100vh;
}

body.site-page-home .c-site-main {
  padding-top: 0;
  padding-bottom: 0;
  min-height: auto;
}
.c-site-footer {
  position: relative;
  margin-top: calc(var(--margin) * 12);
  padding: calc(var(--margin) * 8) 0;
  background-color: var(--color-brand);
  color: var(--color-text);
}

  @media (min-width: 1024px) {.c-site-footer {
    margin-top: calc(var(--margin) * 16);
    padding: calc(var(--margin) * 12) 0
}
  }

.c-site-footer__illustration {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 120px;
  height: 120px;
  background-color: var(--color-brand);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.6;
}

@media (min-width: 1024px) {

.c-site-footer__illustration {
    width: 160px;
    height: 160px
}
  }

.c-site-footer__illustration svg {
  width: 80%;
  height: 80%;
  fill: currentColor;
}

.c-site-footer__inner {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
  align-items: start;
  padding-bottom: calc(var(--margin) * 4);
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
}

@media (min-width: 768px) {

.c-site-footer__inner {
    grid-template-columns: repeat(2, 1fr)
}
  }

@media (min-width: 1024px) {

.c-site-footer__inner {
    grid-template-columns: repeat(4, 1fr);
    gap: calc(var(--margin) * 6)
}
  }

.c-site-footer__col {
  display: flex;
  flex-direction: column;
  gap: calc(var(--margin) * 1);
}

.c-site-footer__label {
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  text-transform: uppercase;
  opacity: var(--opacity-text);
  margin-bottom: calc(var(--margin) * 0.5);
}

.c-site-footer__text {
  font-size: var(--font-size--m);
  line-height: var(--line-height--m);
}

.c-site-footer__links {
  display: flex;
  flex-direction: column;
  gap: calc(var(--margin) * 0.5);
}

.c-site-footer a {
  text-decoration: none;
  color: inherit;
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.c-site-footer a:hover,
  .c-site-footer a:focus {
    opacity: var(--opacity-hover);
  }

/* Copyright bar */
.c-site-footer__copyright {
  padding-top: calc(var(--margin) * 4);
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  text-align: center;
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  opacity: var(--opacity-text);
}

/* Overlay Modal (for future use) */
.c-overlay-modal {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-modal);
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--anim-speed) var(--anim-ease);
}
.c-overlay-modal:not([hidden]) {
    opacity: 1;
    pointer-events: auto;
  }

.c-overlay-modal__backdrop {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background-color: rgba(0, 0, 0, 0.8);
  cursor: pointer;
}

.c-overlay-modal__content {
  position: relative;
  z-index: 1;
  max-width: 800px;
  max-height: 90vh;
  width: 90%;
  background-color: var(--color-overlay-background);
  border-radius: var(--radius);
  padding: calc(var(--margin) * 4);
  overflow-y: auto;
}

/* Page-level styles */

.c-page-content {
  min-height: 100vh;
}

.c-page-title {
  font-family: var(--title-font);
  font-size: var(--font-size--xxl);
  line-height: var(--line-height--xxl);
  letter-spacing: var(--letter-spacing--xxl);
  margin-bottom: calc(var(--margin) * 4);
}

@media (min-width: 1024px) {

.c-page-title {
    margin-bottom: calc(var(--margin) * 6)
}
  }

.c-section-heading {
  font-family: var(--title-font);
  font-size: var(--font-size--xxl);
  line-height: var(--line-height--xxl);
  letter-spacing: var(--letter-spacing--xxl);
  margin-bottom: calc(var(--margin) * 6);
}

@media (min-width: 1024px) {

.c-section-heading {
    margin-bottom: calc(var(--margin) * 8)
}
  }

.c-section-intro {
  margin-bottom: calc(var(--margin) * 4);
  font-size: var(--font-size--l);
}

@media (min-width: 1024px) {

.c-section-intro {
    margin-bottom: calc(var(--margin) * 6)
}
  }

/* Transitions */
.transition-fade {
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.transition-fade.is-animating {
  opacity: 0;
}

/* Page Hero Section with Animated Gradient */

.c-page-hero {
  position: sticky;
  top: 0;
  left: 0;
  right: 0;
  z-index: calc(var(--z-base) + 1);
  height: 300px;
  display: flex;
  align-items: flex-end;
  overflow: hidden;
  background-color: var(--color-background);
}

@media (min-width: 768px) {

.c-page-hero {
    height: 400px
}
  }

@media (min-width: 1024px) {

.c-page-hero {
    height: 450px
}
  }

/* Animated gradient background - Inner Glow Effect */
.c-page-hero__gradient {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: 1;
  background: radial-gradient(
    circle at center,
    transparent 0%,
    transparent 30%,
    rgba(0, 68, 255, 0.2) 60%,
    rgba(0, 68, 255, 0.4) 100%
  );
  animation: gradientPulse 6s ease-in-out infinite;
}

.c-page-hero__gradient::before,
.c-page-hero__gradient::after {
  content: '';
  position: absolute;
  top: -20%;
  right: -20%;
  bottom: -20%;
  left: -20%;
  background: radial-gradient(
    circle at center,
    transparent 0%,
    transparent 40%,
    rgba(0, 68, 255, 0.25) 70%,
    rgba(0, 68, 255, 0.5) 100%
  );
  animation: gradientFloat 10s ease-in-out infinite;
}

.c-page-hero__gradient::before {
  animation-delay: 0s;
}

.c-page-hero__gradient::after {
  animation-delay: 6s;
  animation-duration: 15s;
}

/* Additional gradient orb for more movement */
.c-page-hero__gradient-orb {
  position: absolute;
  top: -10%;
  right: -10%;
  bottom: -10%;
  left: -10%;
  background: radial-gradient(
    ellipse at center,
    transparent 0%,
    transparent 35%,
    rgba(0, 68, 255, 0.15) 65%,
    rgba(0, 68, 255, 0.35) 100%
  );
  animation: gradientFloat 8s ease-in-out infinite reverse;
}

/* Content wrapper */
.c-page-hero__content {
  position: relative;
  z-index: 2;
  width: 100%;
  padding-bottom: calc(var(--margin) * 4);
}
@media (min-width: 1024px) {
.c-page-hero__content {
    padding-bottom: calc(var(--margin) * 6)
}
  }

/* Title styling */
.c-page-hero__title {
  font-family: var(--title-font);
  font-size: var(--font-size--xxl);
  line-height: var(--line-height--xxl);
  letter-spacing: var(--letter-spacing--xxl);
  margin: 0;
}

/* Animations */
@keyframes gradientPulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.5;
    transform: scale(1.2);
  }
}

@keyframes gradientFloat {
  0%, 100% {
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
  33% {
    opacity: 0.7;
    transform: scale(1.15) rotate(5deg);
  }
  66% {
    opacity: 0.8;
    transform: scale(0.9) rotate(-5deg);
  }
}

/* Main content positioning */
.c-page-hero + .c-page-content {
  position: relative;
  z-index: calc(var(--z-base) + 2);
  background-color: var(--color-background);
  margin-top: calc(var(--margin) * -2);
  padding-top: calc(var(--margin) * 2);

  /* @media (min-width: 1024px) {
    margin-top: calc(var(--margin) * -2);
    padding-top: calc(var(--margin) * 2);
  } */
}

/* Button component */

/* Default button - Glass style with small size */
.c-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: calc(var(--margin) * 1) calc(var(--margin) * 2);
  background-color: var(--color-button-glass);
  backdrop-filter: blur(var(--blur-button));
  -webkit-backdrop-filter: blur(var(--blur-button));
  color: var(--color-text);
  border-radius: var(--radius-small);
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  letter-spacing: var(--letter-spacing--s);
  line-height: 1;
  cursor: pointer;
  transition: background-color var(--anim-speed-fast) var(--anim-ease), 
              opacity var(--anim-speed-fast) var(--anim-ease);
  text-decoration: none;
  border: none;
}
.c-btn:hover,
  .c-btn:focus {
    background-color: var(--color-button-glass-hover);
    opacity: 1;
  }
.c-btn:active {
    background-color: var(--color-button-glass);
    opacity: 0.9;
  }

/* Important button - Blue background for primary CTAs */
.c-btn--important {
  background-color: var(--color-brand);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.c-btn--important:hover,
  .c-btn--important:focus {
    background-color: var(--color-brand-hover);
  }
.c-btn--important:active {
    background-color: var(--color-brand);
  }

/* Bracket button (for filters and special UI elements) */

.c-bracket-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: calc(var(--margin) * 1.5) calc(var(--margin) * 2.5);
  background-color: transparent;
  color: var(--color-text);
  border: 1px solid var(--color-border);
  border-radius: var(--radius);
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  line-height: 1;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  cursor: pointer;
  transition: all var(--anim-speed-fast) var(--anim-ease);
  text-decoration: none;
  white-space: nowrap;
}

.c-bracket-btn::before,
  .c-bracket-btn::after {
    content: '';
    position: absolute;
    width: 8px;
    height: 100%;
    border: 1px solid var(--color-border);
    transition: border-color var(--anim-speed-fast) var(--anim-ease);
  }

.c-bracket-btn::before {
    left: -1px;
    border-right: none;
  }

.c-bracket-btn::after {
    right: -1px;
    border-left: none;
  }

.c-bracket-btn:hover,
  .c-bracket-btn:focus {
    border-color: var(--color-border-hover);
    background-color: var(--color-card-background);
  }

.c-bracket-btn:hover::before,
    .c-bracket-btn:hover::after,
    .c-bracket-btn:focus::before,
    .c-bracket-btn:focus::after {
      border-color: var(--color-border-hover);
    }

.c-bracket-btn.is-active,
  .c-bracket-btn[aria-pressed="true"] {
    background-color: var(--color-text);
    color: var(--color-background);
    border-color: var(--color-text);
  }

.c-bracket-btn.is-active::before,
    .c-bracket-btn.is-active::after,
    .c-bracket-btn[aria-pressed="true"]::before,
    .c-bracket-btn[aria-pressed="true"]::after {
      border-color: var(--color-text);
    }

.c-bracket-btn--small {
  padding: calc(var(--margin) * 1) calc(var(--margin) * 1.5);
  font-family: var(--small-font);
  font-size: var(--font-size--xs);
  border-radius: var(--radius-small);
}

.c-bracket-btn--large {
  padding: calc(var(--margin) * 2) calc(var(--margin) * 3.5);
}

/* Filter components */

.c-filter-bar {
  display: flex;
  flex-wrap: wrap;
  gap: var(--button-spacing);
  margin-bottom: var(--margin);
}

@media (min-width: 768px) {

.c-filter-bar {
    margin-bottom: calc(var(--margin) * 2)
}
  }

/* Filter buttons use exact same styles as nav buttons */
/* Inherits all styles from .c-btn */
.c-filter-btn.is-active {
    background-color: var(--color-brand);
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
  }
.c-filter-btn.is-active:hover,
    .c-filter-btn.is-active:focus {
      background-color: var(--color-brand-hover);
    }

/* Sidebar filter list */
.c-filter-list {
  display: flex;
  flex-direction: column;
  /* gap: calc(var(--margin) * 0.5); */
}

.c-filter-link {
  display: flex;
  align-items: center;
  gap: var(--margin);
  /* padding: calc(var(--margin) * 0.5) 0; */
  font-family: var(--title-font);
  font-size: var(--font-size--l);
  line-height: var(--line-height--l);
  letter-spacing: var(--letter-spacing--l);
  color: var(--color-text);
  text-transform: uppercase;
  cursor: pointer;
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
  background: transparent;
  border: none;
  text-align: left;
  width: 100%;
}

.c-filter-link:hover,
  .c-filter-link:focus {
    opacity: var(--opacity-hover);
    color: var(--color-brand);
  }

.c-filter-link.is-active {
    opacity: 1;
    color: var(--color-brand);
  }

.c-filter-link.is-active .c-filter-link__marker {
    opacity: 1;
    color: var(--color-brand);
  }

.c-filter-link__marker {
  opacity: 0;
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
  font-family: var(--title-font);
}

/* CTA Card Component */

.c-cta-card {
  position: relative;
  display: block;
  background-color: var(--color-card-background);
  border-radius: var(--radius);
  padding: var(--margin);
  margin-bottom: var(--margin);
  text-decoration: none;
  color: var(--color-text);
  transition: background-color var(--anim-speed-fast) var(--anim-ease);
}

@media (min-width: 768px) {

.c-cta-card {
    padding: var(--margin)
}
  }

.c-cta-card:hover {
    background-color: var(--color-card-background-hover);
  }

.c-cta-card__content {
  max-width: 80%;
}

.c-cta-card__title {
  display: block;
  margin-bottom: var(--margin);
}

.c-cta-card__subtitle {
  display: block;
  opacity: var(--opacity-text);
}

.c-cta-card__arrow {
  position: absolute;
  top: var(--margin);
  right: var(--margin);
  font-size: var(--font-size--xxl);
  color: var(--color-brand);
}

/* Large variant - used for prominent CTAs */
@media (min-width: 768px) {
.c-cta-card--large {
    display: grid;
    grid-template-columns: 1fr auto;
    align-items: center
}
  }

/* Home page components */

.c-home {
  position: relative;
}

/* Hero */
.c-hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.c-hero__inner {
  position: relative;
  z-index: 2;
  text-align: center;
  padding: calc(var(--margin) * 4) var(--margin-outer);
}

.c-hero__title {
  margin-bottom: calc(var(--margin) * 3);
  font-family: var(--title-font);
  font-size: var(--font-size--xxl);
  line-height: var(--line-height--xxl);
  letter-spacing: var(--letter-spacing--xxl);
}

.c-hero__subheading {
  font-size: var(--font-size--l);
  max-width: 600px;
  margin: 0 auto;
}

@media (min-width: 1024px) {

.c-hero__subheading {
    font-size: var(--font-size--xl)
}
  }

.c-hero__background {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  z-index: 1;
  opacity: 0.3;
}

.c-hero__bg-image {
  width: 100%;
  height: 100%;
  -o-object-fit: cover;
     object-fit: cover;
}

.c-hero__animations {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 80%;
  height: 80%;
  z-index: 1;
  /* Placeholder for animations */
}

.c-hero__featured {
  position: absolute;
  top: calc(var(--margin) * 4);
  left: calc(var(--margin) * 2);
  z-index: 3;
  max-width: 300px;
}

@media (min-width: 1024px) {

.c-hero__featured {
    top: auto;
    bottom: calc(var(--margin) * 4);
    left: calc(var(--margin) * 4)
}
  }

.c-hero__featured-card {
  display: block;
  background-color: var(--color-card-background);
  border-radius: var(--radius);
  overflow: hidden;
  padding: calc(var(--margin) * 2);
  transition: background-color var(--anim-speed-fast) var(--anim-ease);
}

.c-hero__featured-card:hover {
    background-color: var(--color-card-background-hover);
  }

.c-hero__featured-date,
.c-hero__featured-cat {
  display: block;
  margin-bottom: var(--margin);
  opacity: var(--opacity-text);
}

.c-hero__featured-title {
  display: block;
  font-size: var(--font-size--l);
  margin-bottom: calc(var(--margin) * 2);
}

.c-hero__featured-image {
  width: 100%;
  aspect-ratio: 3 / 2;
  overflow: hidden;
}

/* Home sections */
.c-home-sections {
  position: relative;
}

.c-home-section {
  padding: calc(var(--margin) * 8) 0;
}

@media (min-width: 1024px) {

.c-home-section {
    padding: calc(var(--margin) * 12) 0
}
  }

.c-home-section--alt {
  background-color: var(--color-card-background);
}

.c-home-section__inner {
  display: flex;
  flex-direction: column;
  gap: calc(var(--margin) * 4);
}

@media (min-width: 768px) {

.c-home-section__inner {
    flex-direction: row;
    justify-content: space-between;
    align-items: center
}
  }

.c-home-section__text {
  flex: 1;
  max-width: 800px;
}

.c-home-section__cta {
  flex-shrink: 0;
}

/* Scrolling banner */
.c-banner {
  position: relative;
  padding: calc(var(--margin) * 4) 0;
  overflow: hidden;
  border-top: 1px solid var(--color-border);
  border-bottom: 1px solid var(--color-border);
}

.c-banner__track {
  display: flex;
  align-items: center;
  gap: calc(var(--margin) * 3);
  animation: scroll 30s linear infinite;
  white-space: nowrap;
}

.c-banner__word {
  font-family: var(--title-font);
  font-size: var(--font-size--xxl);
  letter-spacing: var(--letter-spacing--xxl);
  line-height: 1em;
  /* text-transform: uppercase; */
}

.c-banner__star {
  color: var(--color-brand);
  font-size: var(--font-size--xl);
}

@keyframes scroll {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(-50%);
  }
}

/* CTAs */
.c-home-ctas {
  padding: calc(var(--margin) * 8) 0;
}
@media (min-width: 1024px) {
.c-home-ctas {
    padding: calc(var(--margin) * 12) 0
}
  }

/* CTA card styles moved to c.cta-card.css */

/* Partner logos */
.c-home-partners {
  padding: calc(var(--margin) * 8) 0;
  overflow: hidden;
}

.c-home-partners__track {
  display: flex;
  align-items: center;
  gap: calc(var(--margin) * 6);
}

.c-home-partners__logo {
  flex-shrink: 0;
  width: 150px;
  height: 80px;
  display: flex;
  align-items: center;
  justify-content: center;
  opacity: 0.6;
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.c-home-partners__logo:hover {
    opacity: 1;
  }

.c-home-partners__logo img {
    max-width: 100%;
    max-height: 100%;
    -o-object-fit: contain;
       object-fit: contain;
  }

/* News page components */

.c-article-list {
  display: grid;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
  margin-bottom: calc(var(--margin) * 8);
}

@media (min-width: 768px) {

.c-article-list {
    gap: calc(var(--margin) * 4)
}
  }

.c-article-card {
  display: block;
  background-color: var(--color-card-background);
  border-radius: var(--radius);
  overflow: hidden;
  transition: background-color var(--anim-speed-fast) var(--anim-ease);
}

.c-article-card:hover {
    background-color: var(--color-card-background-hover);
  }

.c-article-card[data-categories] {
    /* Filtering handled by JS */
  }

.c-article-card__link {
  display: flex;
  flex-direction: column;
  gap: calc(var(--margin) * 2);
  padding: calc(var(--margin) * 3);
}

@media (min-width: 768px) {

.c-article-card__link {
    flex-direction: row;
    align-items: center;
    padding: calc(var(--margin) * 4)
}
  }

.c-article-card__content {
  flex: 1;
}

.c-article-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--margin) * 1.5);
  margin-bottom: calc(var(--margin) * 1.5);
}

.c-article-card__cat,
.c-article-card__date {
  opacity: var(--opacity-text);
}

.c-article-card__title {
  margin-bottom: 0;
}

.c-article-card__image {
  flex-shrink: 0;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

@media (min-width: 768px) {

.c-article-card__image {
    width: 200px;
    aspect-ratio: 1 / 1
}
  }

.c-newsletter-cta {
  margin-top: calc(var(--margin) * 8);
}

/* Work page components */

.c-case-list {
  display: flex;
  flex-direction: column;
  gap: calc(var(--margin) * 6);
}

@media (min-width: 1024px) {

.c-case-list {
    gap: calc(var(--margin) * 12)
}
  }

.c-case-card {
  display: grid;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
}

@media (min-width: 768px) {

.c-case-card {
    grid-template-columns: 1fr 1fr;
    gap: calc(var(--margin) * 6);
    align-items: center
}
  }

@media (min-width: 768px) {
      .c-case-card:nth-child(even) .c-case-card__content {
        order: 2;
      }
      .c-case-card:nth-child(even) .c-case-card__image {
        order: 1;
      }
    }

.c-case-card__content {
  position: relative;
}

.c-case-card__title {
  margin-bottom: calc(var(--margin) * 3);
}

.c-case-card__intro {
  margin-bottom: calc(var(--margin) * 3);
  max-width: 600px;
}

.c-case-card__toggle {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 60px;
  height: 60px;
  background-color: transparent;
  border: 1px solid var(--color-text);
  color: var(--color-text);
  font-size: var(--font-size--xxl);
  line-height: 1;
  cursor: pointer;
  transition: all var(--anim-speed-fast) var(--anim-ease);
}

.c-case-card__toggle:hover,
  .c-case-card__toggle:focus {
    background-color: var(--color-text);
    color: var(--color-background);
  }

.c-case-card__plus {
  font-family: var(--title-font);
  transform: translateY(-2px);
}

.c-case-card__image {
  width: 100%;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background-color: var(--color-card-background);
  border-radius: var(--radius);
}

/* About page components */

.c-about-intro {
  margin-bottom: calc(var(--margin) * 8);
}

@media (min-width: 1024px) {

.c-about-intro {
    margin-bottom: calc(var(--margin) * 12)
}
  }

/* .c-about-intro__text {
  max-width: 1000px;
} */

.c-about-body {
  margin-bottom: calc(var(--margin) * 8);
  padding-bottom: calc(var(--margin) * 8);
  border-bottom: 1px solid var(--color-border);
}

@media (min-width: 1024px) {

.c-about-body {
    margin-bottom: calc(var(--margin) * 12);
    padding-bottom: calc(var(--margin) * 12)
}
  }

.c-about-body__grid {
  display: grid;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
}

@media (min-width: 768px) {

.c-about-body__grid {
    grid-template-columns: 1fr 2fr
}
  }

.c-about-body__contact {
  display: flex;
  flex-direction: column;
  gap: var(--grid-gap);
}

.c-about-body__contact-label {
  text-transform: uppercase;
  opacity: var(--opacity-text);
}

/* Team */
.c-team-section__title {
  margin-bottom: calc(var(--margin) * 6);
}
@media (min-width: 1024px) {
.c-team-section__title {
    margin-bottom: calc(var(--margin) * 8)
}
  }

.c-team-grid {
  display: grid;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
  grid-template-columns: repeat(2, 1fr);
}

@media (min-width: 768px) {

.c-team-grid {
    grid-template-columns: repeat(4, 1fr);
    gap: var(--grid-gap)
}
  }

.c-team-member {
  display: flex;
  flex-direction: column;
}

.c-team-member__photo {
  width: 100%;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background-color: var(--color-card-background);
  border-radius: var(--radius);
  margin-bottom: var(--margin);
}

.c-team-member__photo img {
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover;
  }

.c-team-member__photo--empty {
  background-color: var(--color-card-background);
}
/* Resources page components */

.c-resources-layout {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
}

@media (min-width: 1024px) {

.c-resources-layout {
    grid-template-columns: repeat(6, 1fr)
}
  }

@media (min-width: 1024px) {

.c-resources-layout__filters {
    grid-column: 1 / 3;
    position: sticky;
    top: calc(var(--margin) * 4);
    align-self: start
}
  }

@media (min-width: 1024px) {

.c-resources-layout__content {
    grid-column: 3 / 7
}
  }

.c-resources-intro {
  margin-bottom: calc(var(--margin) * 6);
  max-width: 800px;
}

@media (min-width: 1024px) {

.c-resources-intro {
    margin-bottom: calc(var(--margin) * 8)
}
  }

.c-resources-intro__label {
  margin-bottom: calc(var(--margin) * 2);
}

.c-resources-intro__text {
  opacity: var(--opacity-text);
}

.c-resource-grid {
  display: grid;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
  grid-template-columns: 1fr;
}

@media (min-width: 768px) {

.c-resource-grid {
    grid-template-columns: repeat(2, 1fr)
}
  }

.c-resource-card {
  background-color: var(--color-card-background);
  border-radius: var(--radius);
  overflow: hidden;
  transition: background-color var(--anim-speed-fast) var(--anim-ease);
}

.c-resource-card:hover {
    background-color: var(--color-card-background-hover);
  }

.c-resource-card[data-categories] {
    /* Filtering handled by JS */
  }

.c-resource-card__link {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  min-height: 240px;
  padding: calc(var(--margin) * 3);
  height: 100%;
}

.c-resource-card__header {
  display: flex;
  flex-wrap: wrap;
  gap: var(--margin);
  justify-content: space-between;
  margin-bottom: calc(var(--margin) * 2);
}

.c-resource-card__cat {
  opacity: var(--opacity-text);
}

.c-resource-card__badge {
  padding: calc(var(--margin) * 0.5) calc(var(--margin) * 1);
  background-color: var(--color-brand);
  color: var(--color-text);
}

.c-resource-card__title {
  margin-bottom: auto;
  padding-bottom: calc(var(--margin) * 2);
}

.c-resource-card__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  padding-top: calc(var(--margin) * 2);
  border-top: 1px solid var(--color-border);
}

.c-resource-card__type {
  display: flex;
  align-items: center;
  gap: var(--margin);
  opacity: var(--opacity-text);
}

.c-resource-card__type-icon {
  font-size: 0.6em;
  color: var(--color-brand);
}

.c-resource-card__action {
  opacity: var(--opacity-text);
}

/* Members page components */

.c-members-layout {
  display: grid;
  grid-template-columns: 1fr;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
}

@media (min-width: 1024px) {

.c-members-layout {
    grid-template-columns: repeat(6, 1fr)
}
  }

@media (min-width: 1024px) {

.c-members-layout__filters {
    grid-column: 1 / 3;
    position: sticky;
    top: calc(var(--margin) * 4);
    align-self: start
}
  }

@media (min-width: 1024px) {

.c-members-layout__content {
    grid-column: 3 / 7
}
  }

.c-members-filters__label {
  margin-bottom: calc(var(--margin) * 3);
  opacity: var(--opacity-text);
}

/* Members table */
.c-members-table {
  display: flex;
  flex-direction: column;
}

.c-members-table__header {
  display: none;
  padding-bottom: 0.66rem; 
  margin-bottom: 0.66rem;
  border-bottom: 1px solid var(--color-border);
  opacity: var(--opacity-text);
}

@media (min-width: 768px) {

.c-members-table__header {
    display: flex;
    justify-content: space-between
}
  }

.c-members-table__row {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: var(--margin);
  padding: 0.66rem 0;
  border-bottom: 1px solid var(--color-border);
  transition: color var(--anim-speed-fast) var(--anim-ease);
}

.c-members-table__row[data-categories] {
    /* Filtering handled by JS */
  }

.c-members-table__row--linked:hover {
    color: var(--color-brand);
  }

.c-members-table__type {
  opacity: var(--opacity-text);
  text-align: right;
  flex-shrink: 0;
}

/* Join CTA */
.c-join-cta {
  margin-top: calc(var(--margin) * 8);
}
@media (min-width: 1024px) {
.c-join-cta {
    margin-top: calc(var(--margin) * 12)
}
  }

/* CTA card styles moved to c.cta-card.css */

/* Overlay component for articles, case studies, and resources */

.c-overlay {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: var(--z-overlay);
  display: flex;
  align-items: flex-start;
  justify-content: center;
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}

/* Curtain / backdrop with blur */
.c-overlay__curtain {
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  background-color: var(--color-curtain-background);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
}

/* Modal panel */
.c-overlay__inner {
  position: relative;
  width: 100%;
  max-width: 850px;
  min-height: 100vh;
  background-color: var(--color-overlay-background);
  border-radius: var(--radius-large);
  margin: calc(var(--margin) * 6) var(--margin-outer);
  padding: calc(var(--margin) * 6) calc(var(--margin) * 4) calc(var(--margin) * 4);
}
@media (min-width: 1024px) {
.c-overlay__inner {
    margin: calc(var(--margin) * 8) auto;
    padding: calc(var(--margin) * 8) calc(var(--margin) * 6) calc(var(--margin) * 6)
}
  }

.c-overlay__controls {
  position: absolute;
  top: calc(var(--margin) * 2);
  right: calc(var(--margin) * 2);
  z-index: var(--z-overlay-button);
}

.c-overlay__close {
  display: flex;
  align-items: center;
  gap: var(--margin);
  padding: calc(var(--margin) * 1.5);
  background-color: transparent;
  color: var(--color-text);
  border: none;
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  text-transform: uppercase;
  cursor: pointer;
  text-decoration: none;
  transition: opacity var(--anim-speed-fast) var(--anim-ease);
}

.c-overlay__close svg {
    width: 24px;
    height: 24px;
  }

.c-overlay__close:hover,
  .c-overlay__close:focus {
    opacity: var(--opacity-hover);
  }

/* Article detail */
.c-article-detail,
.c-case-detail,
.c-resource-detail {
  max-width: 100%;
}

.c-article-detail__meta,
.c-case-detail__meta {
  margin-bottom: calc(var(--margin) * 2);
  display: flex;
  flex-wrap: wrap;
  gap: calc(var(--margin) * 1.5);
  align-items: center;
}

.c-article-detail__categories {
  display: flex;
  flex-wrap: wrap;
  gap: var(--margin);
}

.c-article-detail__cat {
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  text-transform: uppercase;
  opacity: var(--opacity-text);
}

.c-article-detail__date,
.c-case-detail__date {
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  text-transform: uppercase;
  opacity: var(--opacity-text);
}

.c-article-detail__title,
.c-case-detail__title,
.c-resource-detail__title {
  margin-bottom: calc(var(--margin) * 4);
}

@media (min-width: 1024px) {

.c-article-detail__title,
.c-case-detail__title,
.c-resource-detail__title {
    margin-bottom: calc(var(--margin) * 6)
}
  }

.c-article-detail__cover,
.c-case-detail__cover,
.c-resource-detail__cover {
  margin-bottom: calc(var(--margin) * 4);
  width: 100%;
}

@media (min-width: 1024px) {

.c-article-detail__cover,
.c-case-detail__cover,
.c-resource-detail__cover {
    margin-bottom: calc(var(--margin) * 6)
}
  }

.c-article-detail__intro,
.c-case-detail__intro {
  margin-bottom: calc(var(--margin) * 4);
  font-size: var(--font-size--l);
}

@media (min-width: 1024px) {

.c-article-detail__intro,
.c-case-detail__intro {
    margin-bottom: calc(var(--margin) * 6)
}
  }

.c-article-detail__body,
.c-case-detail__body,
.c-resource-detail__body {
  margin-bottom: calc(var(--margin) * 4);
}

@media (min-width: 1024px) {

.c-article-detail__body,
.c-case-detail__body,
.c-resource-detail__body {
    margin-bottom: calc(var(--margin) * 6)
}
  }

.c-article-detail__section,
.c-case-detail__section {
  margin-top: calc(var(--margin) * 6);
  padding-top: calc(var(--margin) * 6);
  border-top: 1px solid var(--color-border);
}

@media (min-width: 1024px) {

.c-article-detail__section,
.c-case-detail__section {
    margin-top: calc(var(--margin) * 8);
    padding-top: calc(var(--margin) * 8)
}
  }

.c-article-detail__section-label,
.c-case-detail__section-label {
  font-family: var(--small-font);
  font-size: var(--font-size--s);
  text-transform: uppercase;
  opacity: var(--opacity-text);
  margin-bottom: calc(var(--margin) * 2);
}

.c-article-detail__section-items,
.c-case-detail__section-items {
  display: grid;
  grid-gap: var(--grid-gap);
  gap: var(--grid-gap);
}

@media (min-width: 768px) {

.c-article-detail__section-items,
.c-case-detail__section-items {
    grid-template-columns: repeat(2, 1fr);
    gap: calc(var(--margin) * 6)
}
  }

.c-article-detail__section-title,
.c-case-detail__section-title {
  margin-bottom: calc(var(--margin) * 2);
}

.c-resource-detail__download,
.c-resource-detail__link {
  margin-top: calc(var(--margin) * 4);
}

/* Visibility utilities */

.u-visually-hidden {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.u-visually-hidden-focusable:focus,
.u-visually-hidden-focusable:active {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
}

.u-hidden {
  display: none !important;
}

@media (max-width: 767px) {
  .u-hidden-mobile {
    display: none !important;
  }
}

@media (min-width: 768px) {
  .u-hidden-tablet {
    display: none !important;
  }
}

@media (min-width: 1024px) {
  .u-hidden-desktop {
    display: none !important;
  }
}

/* Settings */

/* Base */

/* Group */

/* Components - Structure */

/* Components - UI Elements */

/* Components - Pages */

/* Utilities */

