/*! tailwindcss v4.1.17 | MIT License | https://tailwindcss.com */ @layer properties; @layer theme, base, components, utilities; @layer theme { :root, :host { --font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; --spacing: 0.25rem; --container-md: 28rem; --text-xs: 0.75rem; --text-xs--line-height: calc(1 / 0.75); --text-sm: 0.875rem; --text-sm--line-height: calc(1.25 / 0.875); --text-lg: 1.125rem; --text-lg--line-height: calc(1.75 / 1.125); --text-xl: 1.25rem; --text-xl--line-height: calc(1.75 / 1.25); --text-2xl: 1.5rem; --text-2xl--line-height: calc(2 / 1.5); --text-3xl: 1.875rem; --text-3xl--line-height: calc(2.25 / 1.875); --text-4xl: 2.25rem; --text-4xl--line-height: calc(2.5 / 2.25); --text-5xl: 3rem; --text-5xl--line-height: 1; --text-7xl: 4.5rem; --text-7xl--line-height: 1; --font-weight-medium: 500; --tracking-tighter: -0.05em; --tracking-tight: -0.025em; --tracking-wide: 0.025em; --leading-relaxed: 1.625; --radius-sm: 0.25rem; --radius-lg: 0.5rem; --ease-out: cubic-bezier(0, 0, 0.2, 1); --animate-bounce: bounce 1s infinite; --blur-md: 12px; --default-transition-duration: 150ms; --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); --default-font-family: var(--font-sans); --default-mono-font-family: var(--font-mono); --color-surface-0: var(--color-surface-0); --color-surface-1: var(--color-surface-1); --color-surface-2: var(--color-surface-2); --color-surface-3: var(--color-surface-3); --color-surface-4: var(--color-surface-4); --color-text-primary: var(--color-text-primary); --color-text-secondary: var(--color-text-secondary); --color-text-muted: var(--color-text-muted); --color-accent: var(--color-accent); --color-border: var(--color-border); } } @layer base { *, ::after, ::before, ::backdrop, ::file-selector-button { box-sizing: border-box; margin: 0; padding: 0; border: 0 solid; } html, :host { line-height: 1.5; -webkit-text-size-adjust: 100%; tab-size: 4; font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"); font-feature-settings: var(--default-font-feature-settings, normal); font-variation-settings: var(--default-font-variation-settings, normal); -webkit-tap-highlight-color: transparent; } hr { height: 0; color: inherit; border-top-width: 1px; } abbr:where([title]) { -webkit-text-decoration: underline dotted; text-decoration: underline dotted; } h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; } a { color: inherit; -webkit-text-decoration: inherit; text-decoration: inherit; } b, strong { font-weight: bolder; } code, kbd, samp, pre { font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace); font-feature-settings: var(--default-mono-font-feature-settings, normal); font-variation-settings: var(--default-mono-font-variation-settings, normal); font-size: 1em; } small { font-size: 80%; } sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sub { bottom: -0.25em; } sup { top: -0.5em; } table { text-indent: 0; border-color: inherit; border-collapse: collapse; } :-moz-focusring { outline: auto; } progress { vertical-align: baseline; } summary { display: list-item; } ol, ul, menu { list-style: none; } img, svg, video, canvas, audio, iframe, embed, object { display: block; vertical-align: middle; } img, video { max-width: 100%; height: auto; } button, input, select, optgroup, textarea, ::file-selector-button { font: inherit; font-feature-settings: inherit; font-variation-settings: inherit; letter-spacing: inherit; color: inherit; border-radius: 0; background-color: transparent; opacity: 1; } :where(select:is([multiple], [size])) optgroup { font-weight: bolder; } :where(select:is([multiple], [size])) optgroup option { padding-inline-start: 20px; } ::file-selector-button { margin-inline-end: 4px; } ::placeholder { opacity: 1; } @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) { ::placeholder { color: currentcolor; @supports (color: color-mix(in lab, red, red)) { color: color-mix(in oklab, currentcolor 50%, transparent); } } } textarea { resize: vertical; } ::-webkit-search-decoration { -webkit-appearance: none; } ::-webkit-date-and-time-value { min-height: 1lh; text-align: inherit; } ::-webkit-datetime-edit { display: inline-flex; } ::-webkit-datetime-edit-fields-wrapper { padding: 0; } ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field { padding-block: 0; } ::-webkit-calendar-picker-indicator { line-height: 1; } :-moz-ui-invalid { box-shadow: none; } button, input:where([type="button"], [type="reset"], [type="submit"]), ::file-selector-button { appearance: button; } ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { height: auto; } [hidden]:where(:not([hidden="until-found"])) { display: none !important; } } @layer utilities { .pointer-events-none { pointer-events: none; } .absolute { position: absolute; } .fixed { position: fixed; } .relative { position: relative; } .static { position: static; } .inset-0 { inset: calc(var(--spacing) * 0); } .top-0 { top: calc(var(--spacing) * 0); } .right-0 { right: calc(var(--spacing) * 0); } .bottom-0 { bottom: calc(var(--spacing) * 0); } .left-0 { left: calc(var(--spacing) * 0); } .-z-10 { z-index: calc(10 * -1); } .z-10 { z-index: 10; } .z-player { z-index: 400; } .z-sticky { z-index: 200; } .z-visualizer { z-index: 5; } .mx-auto { margin-inline: auto; } .mt-2 { margin-top: calc(var(--spacing) * 2); } .mt-3 { margin-top: calc(var(--spacing) * 3); } .mt-12 { margin-top: calc(var(--spacing) * 12); } .mt-16 { margin-top: calc(var(--spacing) * 16); } .mt-auto { margin-top: auto; } .mb-2 { margin-bottom: calc(var(--spacing) * 2); } .mb-3 { margin-bottom: calc(var(--spacing) * 3); } .mb-4 { margin-bottom: calc(var(--spacing) * 4); } .mb-6 { margin-bottom: calc(var(--spacing) * 6); } .mb-8 { margin-bottom: calc(var(--spacing) * 8); } .mb-12 { margin-bottom: calc(var(--spacing) * 12); } .ml-0\.5 { margin-left: calc(var(--spacing) * 0.5); } .ml-1 { margin-left: calc(var(--spacing) * 1); } .block { display: block; } .flex { display: flex; } .grid { display: grid; } .hidden { display: none; } .inline-block { display: inline-block; } .inline-flex { display: inline-flex; } .aspect-square { aspect-ratio: 1 / 1; } .h-4 { height: calc(var(--spacing) * 4); } .h-5 { height: calc(var(--spacing) * 5); } .h-6 { height: calc(var(--spacing) * 6); } .h-8 { height: calc(var(--spacing) * 8); } .h-10 { height: calc(var(--spacing) * 10); } .h-12 { height: calc(var(--spacing) * 12); } .h-14 { height: calc(var(--spacing) * 14); } .h-16 { height: calc(var(--spacing) * 16); } .h-48 { height: calc(var(--spacing) * 48); } .h-full { height: 100%; } .min-h-\[calc\(100vh-4rem\)\] { min-height: calc(100vh - 4rem); } .min-h-screen { min-height: 100vh; } .w-4 { width: calc(var(--spacing) * 4); } .w-5 { width: calc(var(--spacing) * 5); } .w-6 { width: calc(var(--spacing) * 6); } .w-8 { width: calc(var(--spacing) * 8); } .w-10 { width: calc(var(--spacing) * 10); } .w-12 { width: calc(var(--spacing) * 12); } .w-14 { width: calc(var(--spacing) * 14); } .w-20 { width: calc(var(--spacing) * 20); } .w-48 { width: calc(var(--spacing) * 48); } .w-full { width: 100%; } .max-w-md { max-width: var(--container-md); } .max-w-none { max-width: none; } .min-w-0 { min-width: calc(var(--spacing) * 0); } .flex-1 { flex: 1; } .flex-shrink-0 { flex-shrink: 0; } .scale-90 { --tw-scale-x: 90%; --tw-scale-y: 90%; --tw-scale-z: 90%; scale: var(--tw-scale-x) var(--tw-scale-y); } .transform { transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); } .animate-bounce { animation: var(--animate-bounce); } .cursor-pointer { cursor: pointer; } .grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); } .flex-col { flex-direction: column; } .flex-wrap { flex-wrap: wrap; } .items-center { align-items: center; } .justify-between { justify-content: space-between; } .justify-center { justify-content: center; } .gap-2 { gap: calc(var(--spacing) * 2); } .gap-3 { gap: calc(var(--spacing) * 3); } .gap-4 { gap: calc(var(--spacing) * 4); } .gap-6 { gap: calc(var(--spacing) * 6); } .gap-8 { gap: calc(var(--spacing) * 8); } .truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .overflow-hidden { overflow: hidden; } .rounded { border-radius: 0.25rem; } .rounded-full { border-radius: calc(infinity * 1px); } .rounded-lg { border-radius: var(--radius-lg); } .border { border-style: var(--tw-border-style); border-width: 1px; } .border-t { border-top-style: var(--tw-border-style); border-top-width: 1px; } .border-b { border-bottom-style: var(--tw-border-style); border-bottom-width: 1px; } .border-border { border-color: var(--color-border); } .border-text-primary { border-color: var(--color-text-primary); } .bg-accent { background-color: var(--color-accent); } .bg-surface-0\/60 { background-color: var(--color-surface-0); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-surface-0) 60%, transparent); } } .bg-surface-0\/80 { background-color: var(--color-surface-0); @supports (color: color-mix(in lab, red, red)) { background-color: color-mix(in oklab, var(--color-surface-0) 80%, transparent); } } .bg-surface-2 { background-color: var(--color-surface-2); } .bg-gradient-to-b { --tw-gradient-position: to bottom in oklab; background-image: linear-gradient(var(--tw-gradient-stops)); } .from-transparent { --tw-gradient-from: transparent; --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } .via-surface-1\/50 { --tw-gradient-via: var(--color-surface-1); @supports (color: color-mix(in lab, red, red)) { --tw-gradient-via: color-mix(in oklab, var(--color-surface-1) 50%, transparent); } --tw-gradient-via-stops: var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-via) var(--tw-gradient-via-position), var(--tw-gradient-to) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-via-stops); } .to-surface-0 { --tw-gradient-to: var(--color-surface-0); --tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position)); } .object-cover { object-fit: cover; } .p-2 { padding: calc(var(--spacing) * 2); } .p-4 { padding: calc(var(--spacing) * 4); } .px-2 { padding-inline: calc(var(--spacing) * 2); } .px-3 { padding-inline: calc(var(--spacing) * 3); } .px-4 { padding-inline: calc(var(--spacing) * 4); } .px-6 { padding-inline: calc(var(--spacing) * 6); } .py-1 { padding-block: calc(var(--spacing) * 1); } .py-2 { padding-block: calc(var(--spacing) * 2); } .py-3 { padding-block: calc(var(--spacing) * 3); } .py-12 { padding-block: calc(var(--spacing) * 12); } .py-16 { padding-block: calc(var(--spacing) * 16); } .py-24 { padding-block: calc(var(--spacing) * 24); } .pt-8 { padding-top: calc(var(--spacing) * 8); } .pt-12 { padding-top: calc(var(--spacing) * 12); } .pb-24 { padding-bottom: calc(var(--spacing) * 24); } .text-center { text-align: center; } .text-2xl { font-size: var(--text-2xl); line-height: var(--tw-leading, var(--text-2xl--line-height)); } .text-3xl { font-size: var(--text-3xl); line-height: var(--tw-leading, var(--text-3xl--line-height)); } .text-4xl { font-size: var(--text-4xl); line-height: var(--tw-leading, var(--text-4xl--line-height)); } .text-5xl { font-size: var(--text-5xl); line-height: var(--tw-leading, var(--text-5xl--line-height)); } .text-lg { font-size: var(--text-lg); line-height: var(--tw-leading, var(--text-lg--line-height)); } .text-sm { font-size: var(--text-sm); line-height: var(--tw-leading, var(--text-sm--line-height)); } .text-xl { font-size: var(--text-xl); line-height: var(--tw-leading, var(--text-xl--line-height)); } .text-xs { font-size: var(--text-xs); line-height: var(--tw-leading, var(--text-xs--line-height)); } .leading-relaxed { --tw-leading: var(--leading-relaxed); line-height: var(--leading-relaxed); } .font-medium { --tw-font-weight: var(--font-weight-medium); font-weight: var(--font-weight-medium); } .tracking-tight { --tw-tracking: var(--tracking-tight); letter-spacing: var(--tracking-tight); } .tracking-tighter { --tw-tracking: var(--tracking-tighter); letter-spacing: var(--tracking-tighter); } .tracking-wide { --tw-tracking: var(--tracking-wide); letter-spacing: var(--tracking-wide); } .text-surface-0 { color: var(--color-surface-0); } .text-text-muted { color: var(--color-text-muted); } .text-text-primary { color: var(--color-text-primary); } .text-text-secondary { color: var(--color-text-secondary); } .tabular-nums { --tw-numeric-spacing: tabular-nums; font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,); } .opacity-0 { opacity: 0%; } .opacity-10 { opacity: 10%; } .grayscale { --tw-grayscale: grayscale(100%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); } .backdrop-blur-md { --tw-backdrop-blur: blur(var(--blur-md)); -webkit-backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); backdrop-filter: var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,); } .transition-all { transition-property: all; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); } .transition-colors { transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); } .transition-opacity { transition-property: opacity; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); } .transition-transform { transition-property: transform, translate, scale, rotate; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); } .duration-300 { --tw-duration: 300ms; transition-duration: 300ms; } .duration-500 { --tw-duration: 500ms; transition-duration: 500ms; } .group-hover\:translate-x-1 { &:is(:where(.group):hover *) { @media (hover: hover) { --tw-translate-x: calc(var(--spacing) * 1); translate: var(--tw-translate-x) var(--tw-translate-y); } } } .group-hover\:scale-100 { &:is(:where(.group):hover *) { @media (hover: hover) { --tw-scale-x: 100%; --tw-scale-y: 100%; --tw-scale-z: 100%; scale: var(--tw-scale-x) var(--tw-scale-y); } } } .group-hover\:scale-110 { &:is(:where(.group):hover *) { @media (hover: hover) { --tw-scale-x: 110%; --tw-scale-y: 110%; --tw-scale-z: 110%; scale: var(--tw-scale-x) var(--tw-scale-y); } } } .group-hover\:text-accent { &:is(:where(.group):hover *) { @media (hover: hover) { color: var(--color-accent); } } } .group-hover\:opacity-100 { &:is(:where(.group):hover *) { @media (hover: hover) { opacity: 100%; } } } .group-hover\:grayscale-0 { &:is(:where(.group):hover *) { @media (hover: hover) { --tw-grayscale: grayscale(0%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); } } } .after\:absolute { &::after { content: var(--tw-content); position: absolute; } } .after\:bottom-0 { &::after { content: var(--tw-content); bottom: calc(var(--spacing) * 0); } } .after\:left-0 { &::after { content: var(--tw-content); left: calc(var(--spacing) * 0); } } .after\:h-px { &::after { content: var(--tw-content); height: 1px; } } .after\:w-0 { &::after { content: var(--tw-content); width: calc(var(--spacing) * 0); } } .after\:bg-accent { &::after { content: var(--tw-content); background-color: var(--color-accent); } } .after\:transition-all { &::after { content: var(--tw-content); transition-property: all; transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); transition-duration: var(--tw-duration, var(--default-transition-duration)); } } .after\:duration-300 { &::after { content: var(--tw-content); --tw-duration: 300ms; transition-duration: 300ms; } } .hover\:scale-105 { &:hover { @media (hover: hover) { --tw-scale-x: 105%; --tw-scale-y: 105%; --tw-scale-z: 105%; scale: var(--tw-scale-x) var(--tw-scale-y); } } } .hover\:border-accent { &:hover { @media (hover: hover) { border-color: var(--color-accent); } } } .hover\:border-text-muted { &:hover { @media (hover: hover) { border-color: var(--color-text-muted); } } } .hover\:bg-accent { &:hover { @media (hover: hover) { background-color: var(--color-accent); } } } .hover\:bg-surface-3 { &:hover { @media (hover: hover) { background-color: var(--color-surface-3); } } } .hover\:text-surface-0 { &:hover { @media (hover: hover) { color: var(--color-surface-0); } } } .hover\:text-text-primary { &:hover { @media (hover: hover) { color: var(--color-text-primary); } } } .hover\:text-text-secondary { &:hover { @media (hover: hover) { color: var(--color-text-secondary); } } } .hover\:grayscale-0 { &:hover { @media (hover: hover) { --tw-grayscale: grayscale(0%); filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); } } } .hover\:after\:w-full { &:hover { @media (hover: hover) { &::after { content: var(--tw-content); width: 100%; } } } } .sm\:flex { @media (width >= 40rem) { display: flex; } } .md\:mx-72 { @media (width >= 48rem) { margin-inline: calc(var(--spacing) * 72); } } .md\:flex { @media (width >= 48rem) { display: flex; } } .md\:h-64 { @media (width >= 48rem) { height: calc(var(--spacing) * 64); } } .md\:w-64 { @media (width >= 48rem) { width: calc(var(--spacing) * 64); } } .md\:grid-cols-2 { @media (width >= 48rem) { grid-template-columns: repeat(2, minmax(0, 1fr)); } } .md\:grid-cols-3 { @media (width >= 48rem) { grid-template-columns: repeat(3, minmax(0, 1fr)); } } .md\:grid-cols-\[auto_1fr\] { @media (width >= 48rem) { grid-template-columns: auto 1fr; } } .md\:flex-row { @media (width >= 48rem) { flex-direction: row; } } .md\:gap-8 { @media (width >= 48rem) { gap: calc(var(--spacing) * 8); } } .md\:text-4xl { @media (width >= 48rem) { font-size: var(--text-4xl); line-height: var(--tw-leading, var(--text-4xl--line-height)); } } .md\:text-7xl { @media (width >= 48rem) { font-size: var(--text-7xl); line-height: var(--tw-leading, var(--text-7xl--line-height)); } } .md\:text-xl { @media (width >= 48rem) { font-size: var(--text-xl); line-height: var(--tw-leading, var(--text-xl--line-height)); } } .lg\:grid-cols-3 { @media (width >= 64rem) { grid-template-columns: repeat(3, minmax(0, 1fr)); } } .xl\:grid-cols-4 { @media (width >= 80rem) { grid-template-columns: repeat(4, minmax(0, 1fr)); } } } html { scroll-padding-top: 4rem; } :root { --color-surface-0: #0a0a0a; --color-surface-1: #121212; --color-surface-2: #1a1a1a; --color-surface-3: #232323; --color-surface-4: #2c2c2c; --color-text-primary: #e8e8e8; --color-text-secondary: #888888; --color-text-muted: #555555; --color-accent: #ffffff; --color-accent-dim: #666666; --color-accent-glow: rgba(255, 255, 255, 0.1); --color-border: #2a2a2a; --font-mono: "JetBrains Mono", "Fira Code", "SF Mono", monospace; --duration-fast: 150ms; --duration-normal: 300ms; --duration-slow: 500ms; --duration-page: 400ms; --ease-out: cubic-bezier(0, 0, 0.2, 1); --radius-sm: 0.125rem; --radius-md: 0.25rem; --radius-lg: 0.5rem; --radius-full: 9999px; } @layer base { html { font-family: var(--font-mono); background: var(--color-surface-0); color: var(--color-text-primary); letter-spacing: 0.02em; line-height: 1.6; -webkit-font-smoothing: antialiased; } body { min-height: 100vh; } ::selection { background: var(--color-accent); color: var(--color-surface-0); } ::-webkit-scrollbar { width: 8px; height: 8px; } ::-webkit-scrollbar-track { background: var(--color-surface-1); } ::-webkit-scrollbar-thumb { background: var(--color-surface-3); border-radius: var(--radius-full); } ::-webkit-scrollbar-thumb:hover { background: var(--color-surface-4); } :focus-visible { outline: 2px solid var(--color-accent); outline-offset: 2px; } a { color: var(--color-text-primary); text-decoration: none; transition: color var(--duration-fast) var(--ease-out); } a:hover { color: var(--color-accent); } } @layer components { .htmx-request #main-content { opacity: 0; transform: translateY(8px); transition: all var(--duration-page) var(--ease-out); } .htmx-settling #main-content { opacity: 1; transform: translateY(0); } .fade-in-up { opacity: 0; transform: translateY(24px); transition: all var(--duration-slow) var(--ease-out); } .fade-in-up.is-visible { opacity: 1; transform: translateY(0); } .link-hover { position: relative; } .link-hover::after { content: ""; position: absolute; bottom: -2px; left: 0; width: 100%; height: 1px; background: var(--color-accent); transform: scaleX(0); transform-origin: right; transition: transform var(--duration-normal) var(--ease-out); } .link-hover:hover::after { transform: scaleX(1); transform-origin: left; } .audio-player { background: var(--color-surface-1); border-top: 1px solid var(--color-border); } .audio-player__progress { appearance: none; width: 100%; height: 4px; background: var(--color-surface-3); cursor: pointer; } .audio-player__progress::-webkit-slider-thumb { appearance: none; width: 12px; height: 12px; background: var(--color-accent); border-radius: var(--radius-full); } .track-card { background: rgba(18, 18, 18, 0.6); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); border: 1px solid var(--color-border); transition: all var(--duration-normal) var(--ease-out); } .track-card:hover { background: rgba(18, 18, 18, 0.8); border-color: var(--color-surface-4); transform: translateY(-2px); } .track-card__cover { aspect-ratio: 1; object-fit: cover; filter: grayscale(20%); transition: filter var(--duration-normal); } .track-card:hover .track-card__cover { filter: grayscale(0%); } .prose { color: var(--color-text-secondary); line-height: 1.75; } .prose h1, .prose h2, .prose h3, .prose h4 { color: var(--color-text-primary); font-weight: 500; margin-top: 2em; margin-bottom: 0.5em; } .prose h1 { font-size: 2rem; } .prose h2 { font-size: 1.5rem; } .prose h3 { font-size: 1.25rem; } .prose p { margin-bottom: 1.25em; } .prose a { text-decoration: underline; text-underline-offset: 2px; } .prose strong { color: var(--color-text-primary); font-weight: 600; } .prose ul, .prose ol { margin-bottom: 1.25em; padding-left: 1.5em; } .prose li { margin-bottom: 0.5em; } .prose code { background: var(--color-surface-2); padding: 0.2em 0.4em; border-radius: var(--radius-sm); font-size: 0.9em; } .prose pre { background: var(--color-surface-1); border: 1px solid var(--color-border); border-radius: var(--radius-lg); padding: 1em; overflow-x: auto; margin: 1.5em 0; } .prose pre code { background: none; padding: 0; } } @layer utilities { .container-narrow { max-width: 48rem; margin-inline: auto; padding-inline: 1.5rem; } .container-wide { max-width: 80rem; margin-inline: auto; padding-inline: 1.5rem; } .z-sticky { z-index: 200; } .z-visualizer { z-index: -1; opacity: 0.25; } .z-player { z-index: 400; } } @media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; } } @property --tw-scale-x { syntax: "*"; inherits: false; initial-value: 1; } @property --tw-scale-y { syntax: "*"; inherits: false; initial-value: 1; } @property --tw-scale-z { syntax: "*"; inherits: false; initial-value: 1; } @property --tw-rotate-x { syntax: "*"; inherits: false; } @property --tw-rotate-y { syntax: "*"; inherits: false; } @property --tw-rotate-z { syntax: "*"; inherits: false; } @property --tw-skew-x { syntax: "*"; inherits: false; } @property --tw-skew-y { syntax: "*"; inherits: false; } @property --tw-border-style { syntax: "*"; inherits: false; initial-value: solid; } @property --tw-gradient-position { syntax: "*"; inherits: false; } @property --tw-gradient-from { syntax: ""; inherits: false; initial-value: #0000; } @property --tw-gradient-via { syntax: ""; inherits: false; initial-value: #0000; } @property --tw-gradient-to { syntax: ""; inherits: false; initial-value: #0000; } @property --tw-gradient-stops { syntax: "*"; inherits: false; } @property --tw-gradient-via-stops { syntax: "*"; inherits: false; } @property --tw-gradient-from-position { syntax: ""; inherits: false; initial-value: 0%; } @property --tw-gradient-via-position { syntax: ""; inherits: false; initial-value: 50%; } @property --tw-gradient-to-position { syntax: ""; inherits: false; initial-value: 100%; } @property --tw-leading { syntax: "*"; inherits: false; } @property --tw-font-weight { syntax: "*"; inherits: false; } @property --tw-tracking { syntax: "*"; inherits: false; } @property --tw-ordinal { syntax: "*"; inherits: false; } @property --tw-slashed-zero { syntax: "*"; inherits: false; } @property --tw-numeric-figure { syntax: "*"; inherits: false; } @property --tw-numeric-spacing { syntax: "*"; inherits: false; } @property --tw-numeric-fraction { syntax: "*"; inherits: false; } @property --tw-blur { syntax: "*"; inherits: false; } @property --tw-brightness { syntax: "*"; inherits: false; } @property --tw-contrast { syntax: "*"; inherits: false; } @property --tw-grayscale { syntax: "*"; inherits: false; } @property --tw-hue-rotate { syntax: "*"; inherits: false; } @property --tw-invert { syntax: "*"; inherits: false; } @property --tw-opacity { syntax: "*"; inherits: false; } @property --tw-saturate { syntax: "*"; inherits: false; } @property --tw-sepia { syntax: "*"; inherits: false; } @property --tw-drop-shadow { syntax: "*"; inherits: false; } @property --tw-drop-shadow-color { syntax: "*"; inherits: false; } @property --tw-drop-shadow-alpha { syntax: ""; inherits: false; initial-value: 100%; } @property --tw-drop-shadow-size { syntax: "*"; inherits: false; } @property --tw-backdrop-blur { syntax: "*"; inherits: false; } @property --tw-backdrop-brightness { syntax: "*"; inherits: false; } @property --tw-backdrop-contrast { syntax: "*"; inherits: false; } @property --tw-backdrop-grayscale { syntax: "*"; inherits: false; } @property --tw-backdrop-hue-rotate { syntax: "*"; inherits: false; } @property --tw-backdrop-invert { syntax: "*"; inherits: false; } @property --tw-backdrop-opacity { syntax: "*"; inherits: false; } @property --tw-backdrop-saturate { syntax: "*"; inherits: false; } @property --tw-backdrop-sepia { syntax: "*"; inherits: false; } @property --tw-duration { syntax: "*"; inherits: false; } @property --tw-translate-x { syntax: "*"; inherits: false; initial-value: 0; } @property --tw-translate-y { syntax: "*"; inherits: false; initial-value: 0; } @property --tw-translate-z { syntax: "*"; inherits: false; initial-value: 0; } @property --tw-content { syntax: "*"; initial-value: ""; inherits: false; } @keyframes bounce { 0%, 100% { transform: translateY(-25%); animation-timing-function: cubic-bezier(0.8, 0, 1, 1); } 50% { transform: none; animation-timing-function: cubic-bezier(0, 0, 0.2, 1); } } @layer properties { @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { *, ::before, ::after, ::backdrop { --tw-scale-x: 1; --tw-scale-y: 1; --tw-scale-z: 1; --tw-rotate-x: initial; --tw-rotate-y: initial; --tw-rotate-z: initial; --tw-skew-x: initial; --tw-skew-y: initial; --tw-border-style: solid; --tw-gradient-position: initial; --tw-gradient-from: #0000; --tw-gradient-via: #0000; --tw-gradient-to: #0000; --tw-gradient-stops: initial; --tw-gradient-via-stops: initial; --tw-gradient-from-position: 0%; --tw-gradient-via-position: 50%; --tw-gradient-to-position: 100%; --tw-leading: initial; --tw-font-weight: initial; --tw-tracking: initial; --tw-ordinal: initial; --tw-slashed-zero: initial; --tw-numeric-figure: initial; --tw-numeric-spacing: initial; --tw-numeric-fraction: initial; --tw-blur: initial; --tw-brightness: initial; --tw-contrast: initial; --tw-grayscale: initial; --tw-hue-rotate: initial; --tw-invert: initial; --tw-opacity: initial; --tw-saturate: initial; --tw-sepia: initial; --tw-drop-shadow: initial; --tw-drop-shadow-color: initial; --tw-drop-shadow-alpha: 100%; --tw-drop-shadow-size: initial; --tw-backdrop-blur: initial; --tw-backdrop-brightness: initial; --tw-backdrop-contrast: initial; --tw-backdrop-grayscale: initial; --tw-backdrop-hue-rotate: initial; --tw-backdrop-invert: initial; --tw-backdrop-opacity: initial; --tw-backdrop-saturate: initial; --tw-backdrop-sepia: initial; --tw-duration: initial; --tw-translate-x: 0; --tw-translate-y: 0; --tw-translate-z: 0; --tw-content: ""; } } }