:root { /* Semantic palette */ --surface-base: var(--color-surface); --surface-alt: var(--color-surface-alt); --surface-raised: var(--color-card); --surface-raised-private: var(--color-card-private); --surface-raised-critical: var(--color-card-critical); --surface-panel: var(--color-panel); --surface-panel-hover: var(--color-panel-hover); --surface-sunken: var(--color-surface-sunken); --surface-muted: var(--color-surface-muted); --surface-veil: var(--color-overlay-veil); --surface-inverse: var(--color-page); --surface-overlay: var(--color-overlay); --surface-overlay-muted: var(--color-overlay-muted); --surface-overlay-strong: var(--color-overlay-strong); --surface-overlay-darker: var(--color-overlay-darker); --surface-overlay-black: var(--color-overlay-black); --surface-overlay-banner-base: var(--color-page); --surface-overlay-banner: var(--surface-overlay-banner-base); --surface-overlay-banner-opaque: var(--surface-overlay-banner-base); --surface-overlay-banner-strong: color-mix( in srgb, var(--surface-overlay-banner-base) 82%, transparent ); --surface-overlay-banner-bottom: color-mix( in srgb, var(--surface-overlay-banner-base) 50%, transparent ); --surface-overlay-banner-channel-mid: color-mix( in srgb, var(--surface-overlay-banner-base) 24%, transparent ); --surface-overlay-banner-channel-faint: color-mix( in srgb, var(--surface-overlay-banner-base) 10%, transparent ); --surface-overlay-banner-soft: color-mix( in srgb, var(--surface-overlay-banner-base) 56%, transparent ); --surface-overlay-banner-faint: color-mix( in srgb, var(--surface-overlay-banner-base) 18%, transparent ); --surface-overlay-banner-transparent: transparent; --surface-overlay-banner-gradient-header: linear-gradient( to bottom, var(--surface-overlay-banner-opaque) 0%, var(--surface-overlay-banner-strong) 38%, var(--surface-overlay-banner-soft) 70%, var(--surface-overlay-banner-faint) 88%, var(--surface-overlay-banner-transparent) 100% ); --surface-overlay-banner-gradient-channel: linear-gradient( to top, var(--surface-overlay-banner-bottom) 0%, var(--surface-overlay-banner-channel-mid) 28%, var(--surface-overlay-banner-channel-faint) 42%, var(--surface-overlay-banner-transparent) 50% ); --surface-overlay-banner-gradient: var( --surface-overlay-banner-gradient-header ); --surface-overlay-panel: var(--color-overlay-panel); --surface-overlay-panel-soft: var(--color-overlay-panel-soft); --surface-overlay-panel-tint: var(--color-overlay-panel-tint); --surface-overlay-panel-glass: var(--color-overlay-panel-glass); --surface-overlay-panel-glass-soft: var(--color-overlay-panel-glass-soft); --surface-modal-backdrop: var(--color-modal-backdrop); --surface-modal: var(--color-modal-surface); --blur-modal-backdrop: 18px; --blur-modal-alert: 14px; --blur-thumbnail-blur: 18px; --modal-nav-backdrop-blur: 6px; --app-header-centerline-offset: calc( var(--space-sm) + (var(--space-2xl-plus) / 2) ); --border-default: var(--color-border); --border-subtle: var(--color-border-subtle); --border-strong: var(--color-border-translucent-stronger); --border-overlay: var(--color-border-translucent); --border-overlay-strong: var(--color-border-translucent-strongest); --border-overlay-glow: var(--color-border-translucent-glow); --border-neutral-soft: var(--color-border-neutral-soft); --border-info-soft: var(--color-border-info-soft); --border-sidebar-strong: var(--color-border-sidebar-strong); --border-width-hairline: 1px; --border-width-fine: 0.5px; --text-primary: var(--color-text); --text-inverse: var(--color-text-inverse); --text-muted: var(--color-text-muted); --text-muted-strong: var(--color-muted-strong); --text-subtle: var(--color-subtle-text); --text-frosted-primary: var(--color-text-frosted); --text-frosted-strong: var(--color-text-frosted-strong); --text-frosted-soft: var(--color-text-frosted-soft); --status-info: var(--color-info); --status-info-strong: var(--color-info-strong); --status-info-surface: var(--color-info-glass); --status-info-border: var(--color-info-border); --status-info-on: var(--color-info-on); --status-success: var(--color-success); --status-success-strong: var(--color-success-strong); --status-success-surface: var(--color-success-surface); --status-success-border: var(--color-success-border); --status-success-on: var(--color-success-on); --status-warning: var(--color-warning); --status-warning-strong: var(--color-warning-strong); --status-warning-surface: var(--color-warning-surface); --status-warning-border: var(--color-warning-border); --status-warning-on: var(--color-warning-on); --status-danger: var(--color-critical); --status-danger-strong: var(--color-critical-strong); --status-danger-surface: var(--color-danger-surface); --status-danger-border: var(--color-danger-border); --status-danger-on: var(--color-danger-on); --status-private: var(--color-private); --status-private-strong: var(--color-private-strong); --status-private-surface: var(--color-private-surface); --status-private-border: var(--color-private-border); --status-private-on: var(--color-private-on); --status-neutral: var(--color-muted); --status-neutral-strong: var(--color-muted-strong); --status-neutral-surface: var(--color-neutral-surface); --status-neutral-border: var(--color-neutral-border); --status-neutral-on: var(--color-neutral-on); /* Messaging & notifications */ --message-bubble-background: var(--surface-sunken); --message-bubble-border: var(--border-subtle); --message-bubble-text: var(--text-primary); --message-bubble-meta: var(--text-muted); --message-bubble-outgoing-background: var(--surface-overlay-panel); --message-bubble-outgoing-border: var(--border-overlay); --unread-badge-background: var(--status-info-strong); --unread-badge-text: var(--text-inverse); --reply-highlight-background: var(--status-info-surface); --reply-highlight-border: var(--status-info-border); --reply-highlight-text: var(--status-info-on); --reply-highlight-icon: var(--status-info-on); --notification-banner-accent: var(--color-accent-strong); --notification-banner-accent-strong: var(--color-accent); --notification-banner-border: var(--surface-overlay-panel-tint); --notification-banner-background: var(--surface-overlay-panel); --notification-banner-text: var(--text-primary); --notification-banner-icon: var(--text-primary); --notification-banner-critical-accent: var(--status-danger-strong); --notification-banner-critical-accent-strong: var(--status-danger); --notification-banner-critical-border: var(--color-ring-critical-soft); --notification-banner-critical-background: var(--surface-raised-critical); --notification-banner-critical-text: var(--status-danger-on); --notification-banner-success-accent: var(--status-success-strong); --notification-banner-success-accent-strong: var(--status-success); --notification-banner-success-border: var(--status-success-border); --notification-banner-success-background: var(--status-success-surface); --notification-banner-success-text: var(--status-success-on); --notification-banner-info-accent: var(--status-info-strong); --notification-banner-info-accent-strong: var(--status-info); --notification-banner-info-border: var(--status-info-border); --notification-banner-info-background: var(--status-info-surface); --notification-banner-info-text: var(--status-info-on); --notification-banner-warning-accent: var(--status-warning-strong); --notification-banner-warning-accent-strong: var(--status-warning); --notification-banner-warning-border: var(--status-warning-border); --notification-banner-warning-background: var(--status-warning-surface); --notification-banner-warning-text: var(--status-warning-on); /* Layout & stacking */ --scrollbar-width: 0.5rem; --scrollbar-track: var(--color-white-soft); --scrollbar-thumb: var(--color-white-softer); --scrollbar-thumb-hover: var(--color-white-softest); --z-app-header: 40; --z-overlay-nav: 60; --z-overlay-floating: 70; --z-overlay-popover: 140; --z-overlay-toast: 180; --z-sidebar-overlay: 10; --z-sidebar: 20; --z-modal-root: 100; --z-modal-overlay: 110; --z-modal-content: 120; --z-modal-player: 130; --z-modal-top-root: 140; --z-modal-top-overlay: 150; --z-modal-top-content: 160; --z-modal-peak-root: 165; --z-modal-peak-overlay: 175; --z-modal-peak-content: 185; --z-modal-always-top: 200; --overlay-backdrop-color: var(--color-overlay-backdrop); --overlay-backdrop-blur: 12px; --sidebar-width-expanded-base: 16rem; --sidebar-dropup-content-width: 0px; --sidebar-width-expanded: max( var(--sidebar-width-expanded-base), var(--sidebar-dropup-content-width) ); --sidebar-width-collapsed: 4rem; --sidebar-width: var(--sidebar-width-expanded); --sidebar-control-size: 2.75rem; --sidebar-content-gap: 1rem; --space-sidebar-shell-inline: var(--space-lg); --space-sidebar-shell-block-start: var(--space-sm); --space-sidebar-shell-block-end: 1.75rem; --space-sidebar-scroll-gap: 1.75rem; --space-sidebar-panel-gap: 1.35rem; --space-sidebar-panel-padding-block: 1.35rem; --space-sidebar-panel-padding-inline: 1.1rem; --space-sidebar-footer-gap: 0.85rem; --space-sidebar-trigger-padding-block: 0.78rem; --space-sidebar-popover-offset: 0.85rem; --space-sidebar-popover-padding-block: 0.85rem; --space-sidebar-popover-padding-inline: 0.65rem; --space-sidebar-popover-gap: 0.45rem; --space-sidebar-dropup-scroll-reserve: calc( var(--scrollbar-thin-width) + var(--space-sm) + var(--space-2xs) ); --sidebar-dropup-max-height: calc(3rem * 6); --space-sidebar-nav-padding-block: 0.7rem; --space-sidebar-nav-padding-inline-start: var(--space-xs); --space-sidebar-nav-padding-inline-end: calc( var(--space-lg) + var(--space-2xs) ); --space-sidebar-subnav-padding-block: 0.55rem; --space-sidebar-nav-translate: 0.35rem; --grid-card-min-width: 20rem; /* Breakpoints (sync with Tailwind screen settings) */ --breakpoint-lg: 64rem; --popover-backdrop-blur: 12px; --overlay-panel-radius: var(--radius-lg); --overlay-panel-shadow: var(--shadow-lg); --overlay-panel-padding-inline: var(--popup-padding-inline); --overlay-panel-padding-block: var(--popup-padding-block); --toast-translate: -1.5rem; --sidebar-mobile-gutter: 3rem; --popup-padding-inline: 1rem; --popup-padding-block: 0.75rem; --video-modal-primary-fr: 1.85fr; --video-modal-secondary-min: 320px; --video-modal-secondary-max: 35rem; --video-modal-secondary-fr: 1fr; --video-modal-layout-max: calc( var(--layout-player-max-width) + var(--video-modal-secondary-max) + var(--space-2xl-plus) ); --revert-modal-sidebar-min: 240px; --revert-modal-sidebar-width: 280px; --popover-inline-safe-max: calc(100vw - var(--space-xl)); /* Progress primitives */ --progress-height-sm: 0.25rem; --progress-height-md: 0.5rem; --progress-radius: var(--radius-full); --progress-track-color: var(--color-border-subtle); --progress-fill-color: var(--color-info); --progress-transition-duration: var(--motion-duration-fast); --progress-transition-ease: var(--motion-ease-out); /* Spacing scale */ --space-4xs: 0.0625rem; --space-3xs: 0.125rem; --space-2xs: 0.25rem; --space-xs: 0.5rem; --space-xs-snug: 0.4rem; --space-sm: 0.75rem; --space-md: 1rem; --space-md-plus: 1.25rem; --space-lg: 1.5rem; --space-xl: 2rem; --space-xl-compact: 2.25rem; --space-xl-plus: 2.5rem; --space-2xl: 3rem; --space-2xl-plus: 3.5rem; /* Measurement primitives */ --size-2px: 2px; --size-3px: 3px; --size-12px: 12px; --size-24px: 24px; --size-30px: 30px; --size-32px: 32px; --size-64px: 64px; --size-80px: 80px; --size-96px: 96px; --size-128px: 128px; --size-140px: 140px; --size-168px: 168px; --size-256px: 256px; --size-5-75rem: 5.75rem; --size-6rem: 6rem; --size-7rem: 7rem; --size-8rem: 8rem; --size-12rem: 12rem; --size-12-5rem: 12.5rem; --size-14rem: 14rem; --size-16rem: 16rem; --size-18rem: 18rem; --size-20rem: 20rem; --size-28rem: 28rem; --size-34rem: 34rem; --size-40rem: 40rem; --size-45rem: 45rem; --size-70rem: 70rem; /* Border radii */ --radius-sm: 0.25rem; --radius-md: 0.5rem; --radius-lg: 0.75rem; --radius-xl: 1rem; --radius-full: 9999px; --radius-modal-xl: 1.75rem; --radius-sidebar-shell: 1.5rem; --radius-sidebar-panel: 1.1rem; --radius-sidebar-nav: 0.95rem; --radius-toggle-thumb: 0.5625rem; /* Component sizing */ --menu-min-width: 12rem; --header-search-max-inline: var(--size-34rem); --modal-max-width: 62.5rem; --modal-sheet-inline-max: var(--modal-max-width); --modal-shell-max-height: 90vh; --modal-sheet-max-height: 92vh; --modal-body-max-height: calc(92vh - 4rem); --profile-modal-inline-max: var(--size-70rem); --player-modal-module-scroll-min-height: var(--size-14rem); --player-modal-module-scroll-max-height: var(--size-28rem); --modal-pane-max-height: 48vh; --modal-pane-min-height: 20rem; --moderation-badge-max-inline: var(--size-28rem); --notification-banner-max-inline: var(--size-28rem); --profile-modal-nav-min-width: max-content; --profile-modal-nav-max-width: max-content; --profile-modal-scrollbar-offset: var(--space-2xs); --modal-embed-height: 80vh; --profile-history-max-height: 26.25rem; --comment-avatar-size: var(--space-xl-plus); --comment-composer-min-height: var(--size-7rem); --video-modal-reaction-label-min-inline: var(--size-6rem); --video-modal-item-media-min: var(--size-5-75rem); --video-modal-item-media-max: var(--size-8rem); --video-card-compact-media-min: var(--size-8rem); --video-card-compact-media-max: var(--size-12-5rem); --similar-card-media-width: var(--size-168px); --similar-card-media-width-sm: var(--size-140px); --docs-popover-scroll-height: var(--size-45rem); --profile-modal-active-min-width: var(--size-12rem); --status-log-min-height: 5rem; --layout-player-max-width: 68.75rem; --layout-docs-max-width: 92.5rem; --icon-size-sm: var(--font-size-lg); --icon-size-md: var(--space-md-plus); --icon-size-lg: var(--space-xl-plus); --avatar-size-lg: var(--space-2xl-plus); --form-textarea-min-height: 8rem; --scrollbar-thin-width: 0.4rem; --modal-progress-height: calc(var(--space-3xs) * 3); --video-modal-action-min-width: 2.75rem; --outline-thick-width: 0.1875rem; --icon-button-ring-width: var(--outline-thick-width); /* Form controls */ --form-select-icon-offset: var(--space-sm); --form-select-icon-gap: var(--space-xs-snug); --form-select-icon-hit-area: var(--space-xl-plus); --form-select-icon-size: 0.6rem; --form-select-divider-width: var(--border-width-hairline); --form-checkbox-checkmark-offset: calc(var(--space-3xs) * -1); /* Utility measurements */ --breakpoint-edge-offset: 0.02px; --offscreen-offset: -9999px; /* Motion */ --motion-card-enter-translate: var(--space-xs); --motion-fade-in-translate: var(--space-md-plus); --motion-login-option-hover-translate: calc(var(--size-3px) * -1); --motion-video-card-hover-translate: -0.35rem; --motion-video-card-backdrop-translate: 0.15rem; /* Shadows */ --shadow-sm: 0 0.0625rem 0.125rem 0 var(--color-shadow-floating); --shadow-md: 0 0.25rem 0.375rem -0.0625rem var(--color-shadow-floating); --shadow-lg: 0 0.625rem 0.9375rem -0.1875rem var(--color-shadow-elevated); --shadow-badge-offset-y: var(--size-12px); --shadow-badge-blur: var(--size-30px); --shadow-notification-offset-y: var(--size-32px); --shadow-notification-blur: var(--size-64px); --shadow-modal: 0 2.75rem 6rem -1.25rem var(--color-shadow-modal); --shadow-sidebar-shell: 0 1.875rem 3.75rem -1.5rem var(--color-shadow-sidebar); --shadow-sidebar-accent: 0 1.65rem 3.25rem -1.35rem var(--color-sidebar-glow); --shadow-sidebar-trigger: 0 1.25rem 2.5rem -1.35rem var(--color-shadow-panel); --shadow-sidebar-dropup: 0 1.75rem 3.25rem -1.45rem var(--color-sidebar-glow); --shadow-sidebar-panel: 0 2.25rem 4.5rem -1.85rem var(--color-shadow-sidebar); --shadow-sidebar-focus-ring: 0 0 0 0.125rem var(--color-sidebar-glow), 0 0 0 0.25rem var(--color-sidebar-hover-strong); --shadow-popover-zap: 0 22px 48px -18px var(--color-shadow-intense); --shadow-video-modal: 0 1rem 2.25rem var(--color-shadow-elevated); --blur-video-card-backdrop-strong: var(--size-24px); --video-modal-ambient-blur-min: var(--size-128px); --video-modal-ambient-blur-max: var(--size-256px); /* Typography */ --font-family-sans: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif; --font-family-mono: "Fira Code", "SFMono-Regular", ui-monospace, monospace; --font-size-4xs: 0.65rem; --font-size-3xs: 0.6875rem; --font-size-2xs: 0.7rem; --font-size-xs: 0.75rem; --font-size-sm: 0.875rem; --font-size-base: 1rem; --font-size-lg: 1.125rem; --font-size-xl: 1.5rem; --font-size-2xl: 2rem; --font-size-xl-plus: 1.875rem; --font-size-modal-title-base: 1.25rem; --font-size-sidebar-nav: 0.95rem; --font-size-sidebar-subnav: 0.85rem; --font-size-sidebar-trigger: 0.9rem; --link-underline-thickness: var(--size-2px); --line-height-tight: 1.1; --line-height-snug: 1.25; --line-height-base: 1.5; --line-height-relaxed: 1.75; --tracking-extra-wide: 0.2em; /* Beacon UI tokens */ --grid-border-width: calc(var(--space-2xs) / 4); --grid-canvas-padding-top: var(--grid-border-width); --grid-viewport-min-height: calc(var(--space-xl) - var(--space-sm)); --grid-cell-padding-block: var(--space-sm); --grid-cell-padding-inline: var(--space-md); --grid-header-font-size: var(--font-size-xs); --grid-header-letter-spacing: 0.08em; --grid-overlay-margin: 10%; --grid-overlay-padding-block: var(--space-md); --grid-overlay-padding-inline: var(--space-xl); --grid-overlay-radius: var(--radius-lg); --grid-overlay-font-size: var(--font-size-lg); --grid-overlay-text-opacity: 0.66; --grid-resizer-width: calc(var(--space-2xs) * 1.25); --grid-resize-overlay-width: var(--grid-border-width); --grid-sort-indicator-size: calc(var(--space-lg) - var(--space-2xs)); --grid-sort-indicator-offset: var(--space-xs); --grid-sort-indicator-stroke: calc(var(--space-2xs) / 2); --grid-sort-indicator-thickness: var(--grid-border-width); --notify-padding-block: var(--space-md); --notify-padding-inline: var(--space-2xl); --notify-font-size: var(--font-size-base); --notify-dismiss-size: calc(var(--space-xl) + var(--space-xs)); --notify-dismiss-size-compact: calc(var(--space-lg) + var(--space-2xs)); --notify-dismiss-font-size: var(--font-size-sm); --notify-dismiss-radius: var(--radius-full); --notify-dismiss-color: var(--color-subtle); --notify-dismiss-background: var(--color-overlay-panel); --notify-dismiss-background-hover: var(--color-overlay-panel-soft); --z-notify: 1200; /* Motion */ --motion-duration-fast: 120ms; --motion-duration-base: 160ms; --motion-duration-slow: 280ms; --motion-ease-out: cubic-bezier(0.16, 1, 0.3, 1); --motion-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); --modal-motion-duration: var(--motion-duration-base); } :root[data-theme="light"] { /* Light theme palette */ --color-page: rgb(247 248 252); --color-page-alt: rgb(242 244 248); --color-surface: rgb(255 255 255); --color-surface-alt: rgb(248 250 252); --color-bg: var(--color-surface); --color-card: rgb(255 255 255); --color-card-private: rgb(243 236 255); --color-card-critical: rgb(255 236 238); --color-panel: rgb(252 253 255); --color-panel-hover: rgb(239 242 249); --color-border: rgb(210 219 236); --color-border-subtle: rgb(229 234 242); --color-accent: rgb(99 102 241); --color-accent-strong: rgb(79 70 229); --color-accent-pressed: rgb(67 56 202); --color-accent-override: rgb(84 0 17); --color-accent-strong-override: rgb(254 0 50); --color-accent-pressed-override: rgb(169 0 33); --color-primary: var(--color-accent-strong); --color-secondary: var(--color-accent); --color-logo-accent: var(--color-accent-strong); --color-logo-wordmark: rgb(40 54 77); --color-logo-wordmark-inverse: var(--color-white); --color-logo-background: rgb(15 23 42); --color-logo-background-inverse: var(--color-white); --color-info: rgb(59 130 246); --color-info-strong: rgb(37 99 235); --color-info-pressed: rgb(29 78 216); --color-info-glass: rgb(59 130 246 / 0.14); --color-info-border: rgb(59 130 246 / 0.35); --color-info-on: rgb(227 242 255); --color-muted-strong: rgb(71 85 105); --color-text: rgb(24 31 44); --color-text-strong: rgb(12 16 26); --color-text-inverse: rgb(255 255 255); --color-text-muted: rgb(102 112 133); --color-muted: rgb(136 146 166); --color-muted-alt: rgb(120 130 150); --color-subtle-text: rgb(136 146 166); --color-subtle: rgb(243 245 250); --color-surface-sunken: rgb(232 235 244); --color-surface-muted: rgb(236 240 249); --color-critical: rgb(220 54 70); --color-critical-strong: rgb(185 32 55); --color-danger-surface: rgb(252 226 230); --color-danger-border: rgb(220 54 70 / 0.35); --color-danger-on: rgb(96 18 31); --color-warning: rgb(234 179 8); --color-warning-strong: rgb(202 138 4); --color-warning-surface: rgb(253 224 71 / 0.35); --color-warning-border: rgb(234 179 8 / 0.35); --color-warning-glass: rgb(253 224 71 / 0.18); --color-warning-on: rgb(92 55 2); --color-success: rgb(22 163 74); --color-success-strong: rgb(21 128 61); --color-success-surface: rgb(222 250 236); --color-success-border: rgb(34 197 94 / 0.3); --color-success-on: rgb(18 84 48); --color-private: rgb(139 92 246); --color-private-strong: rgb(124 58 237); --color-private-surface: rgb(237 233 254); --color-private-border: rgb(139 92 246 / 0.32); --color-private-on: rgb(74 29 150); --color-neutral-700: rgb(71 85 105); --color-neutral-600: rgb(102 112 133); --color-neutral-surface: rgb(232 236 244); --color-neutral-border: rgb(205 213 226); --color-neutral-on: rgb(62 72 92); --color-white: rgb(255 255 255); --color-black: rgb(0 0 0); --color-overlay: rgb(15 23 42 / 0.3); --color-overlay-black: rgb(15 23 42 / 0.7); --color-overlay-muted: rgb(60 75 105 / 0.18); --color-overlay-strong: rgb(15 23 42 / 0.56); --color-overlay-darker: rgb(12 18 32 / 0.68); --color-overlay-panel: rgb(248 250 255 / 0.92); --color-overlay-panel-soft: rgb(244 247 255 / 0.78); --color-overlay-panel-tint: rgb(146 170 211 / 0.24); --color-overlay-panel-glass: rgb(255 255 255 / 0.85); --color-overlay-panel-glass-soft: rgb(246 249 255 / 0.7); --color-overlay-panel-gradient-start: rgb(255 255 255 / 0.95); --color-overlay-panel-gradient-end: rgb(232 236 244 / 0.92); --color-modal-backdrop: rgb(15 23 42 / 0.28); --color-modal-surface: rgb(255 255 255 / 0.94); --color-overlay-veil: rgb(103 112 133 / 0.45); --color-overlay-banner-bottom: rgb(255 255 255 / 0.6); --color-overlay-banner-transparent: rgb(255 255 255 / 0); --color-overlay-backdrop: rgb(15 23 42 / 0.2); --scrollbar-track: color-mix( in srgb, var(--color-sidebar-border-strong) 40%, transparent ); --scrollbar-thumb: color-mix(in srgb, var(--color-accent) 64%, transparent); --scrollbar-thumb-hover: color-mix( in srgb, var(--color-accent-strong) 76%, transparent ); --color-sidebar-surface: rgb(255 255 255 / 0.9); --color-sidebar-surface-alt: rgb(236 240 247 / 0.72); --color-sidebar-border: rgb(184 194 212 / 0.28); --color-sidebar-border-strong: rgb(148 163 184 / 0.36); --color-sidebar-hover: color-mix( in srgb, var(--color-accent) 16%, transparent ); --color-sidebar-hover-strong: color-mix( in srgb, var(--color-accent-strong) 24%, transparent ); --color-sidebar-glow: color-mix( in srgb, var(--color-accent) 36%, transparent ); --color-sidebar-accent-start: color-mix( in srgb, var(--color-accent-strong) 88%, transparent ); --color-sidebar-accent-end: color-mix( in srgb, var(--color-accent) 82%, transparent ); --color-sidebar-text-muted: var(--color-text-muted); --sidebar-icon-filter: brightness(0) saturate(100%); --color-surface-tint-subtle: rgb(15 23 42 / 0.08); --color-border-translucent: rgb(148 163 184 / 0.18); --color-border-translucent-strong: rgb(148 163 184 / 0.22); --color-border-translucent-bright: rgb(148 163 184 / 0.28); --color-border-translucent-stronger: rgb(148 163 184 / 0.32); --color-border-translucent-strongest: rgb(148 163 184 / 0.36); --color-border-translucent-glow: rgb(148 163 184 / 0.45); --color-border-translucent-medium: rgb(148 163 184 / 0.2); --color-border-neutral-soft: rgb(148 163 184 / 0.25); --color-border-info-soft: rgb(59 130 246 / 0.32); --color-border-sidebar-strong: rgb(102 112 133 / 0.75); --color-ring-private: rgb(139 92 246 / 0.5); --color-ring-private-hover: rgb(168 85 247 / 0.6); --color-ring-critical: rgb(220 54 70 / 0.35); --color-ring-critical-soft: rgb(220 54 70 / 0.3); --color-ring-critical-hover: rgb(220 54 70 / 0.4); --color-ring-critical-strong: rgb(220 54 70 / 0.5); --color-ring-alert: rgb(239 68 68 / 0.48); --color-gradient-visibility-start: rgb(99 102 241 / 0.28); --color-gradient-visibility-end: rgb(129 140 248 / 0.24); --color-white-soft: rgb(255 255 255 / 0.08); --color-white-softer: rgb(255 255 255 / 0.24); --color-white-softest: rgb(255 255 255 / 0.32); --color-shadow-floating: rgb(15 23 42 / 0.18); --color-shadow-elevated: rgb(15 23 42 / 0.16); --color-shadow-panel: rgb(15 23 42 / 0.12); --color-shadow-notification: rgb(15 23 42 / 0.14); --color-shadow-intense: rgb(15 23 42 / 0.22); --color-shadow-sidebar: rgb(15 23 42 / 0.28); --color-shadow-modal: rgb(15 23 42 / 0.28); --color-divider-strong: rgb(203 213 225 / 0.6); --color-text-frosted-strong: rgb(40 54 77 / 0.85); --color-text-frosted: rgb(61 74 98 / 0.8); --color-text-frosted-soft: rgb(82 96 122 / 0.72); } :root[data-theme="dark"], :root:not([data-theme]) { /* Dark theme palette */ --color-page: rgb(6 10 18); --color-page-alt: rgb(8 12 22); --color-surface: rgb(10 14 26); --color-surface-alt: rgb(14 20 34); --color-bg: var(--color-surface); --color-card: rgb(18 26 44); --color-card-private: rgb(38 28 62); --color-card-critical: rgb(58 20 28); --color-panel: rgb(16 24 40); --color-panel-hover: rgb(24 34 52); --color-border: rgb(61 80 112); --color-border-subtle: rgb(38 52 76); --color-accent: rgb(129 140 248); --color-accent-strong: rgb(99 102 241); --color-accent-pressed: rgb(79 70 229); --color-accent-override: rgb(84 0 17); --color-accent-strong-override: rgb(254 0 50); --color-accent-pressed-override: rgb(169 0 33); --color-primary: var(--color-accent-strong); --color-secondary: rgb(56 189 248); --color-logo-accent: var(--color-accent-strong); --color-logo-wordmark: rgb(198 207 222); --color-logo-wordmark-inverse: var(--color-white); --color-logo-background: rgb(12 18 30); --color-logo-background-inverse: var(--color-white); --color-info: rgb(96 165 250); --color-info-strong: rgb(56 132 255); --color-info-pressed: rgb(37 99 235); --color-info-glass: rgb(56 132 255 / 0.22); --color-info-border: rgb(96 165 250 / 0.42); --color-info-on: rgb(235 244 255); --color-muted-strong: rgb(206 215 232); --color-text: rgb(226 232 240); --color-text-strong: rgb(244 247 255); --color-text-inverse: rgb(12 18 30); --color-text-muted: rgb(165 179 201); --color-muted: rgb(148 163 184); --color-muted-alt: rgb(128 139 162); --color-subtle-text: rgb(168 180 205); --color-subtle: rgb(28 38 58); --color-surface-sunken: rgb(13 19 32 / 0.92); --color-surface-muted: rgb(18 26 44 / 0.82); --color-critical: rgb(239 83 98); --color-critical-strong: rgb(220 38 38); --color-danger-surface: rgb(220 38 38 / 0.28); --color-danger-border: rgb(220 38 38 / 0.45); --color-danger-on: rgb(255 228 233); --color-warning: rgb(250 204 21); --color-warning-strong: rgb(234 179 8); --color-warning-surface: rgb(253 224 71 / 0.22); --color-warning-border: rgb(250 204 21 / 0.42); --color-warning-glass: rgb(253 224 71 / 0.2); --color-warning-on: rgb(26 18 0); --color-success: rgb(34 197 94); --color-success-strong: rgb(22 163 74); --color-success-surface: rgb(22 163 74 / 0.24); --color-success-border: rgb(34 197 94 / 0.45); --color-success-on: rgb(210 252 228); --color-private: rgb(168 85 247); --color-private-strong: rgb(139 92 246); --color-private-surface: rgb(124 58 237 / 0.26); --color-private-border: rgb(168 85 247 / 0.45); --color-private-on: rgb(239 230 255); --color-neutral-700: rgb(58 75 110); --color-neutral-600: rgb(90 105 133); --color-neutral-surface: rgb(99 114 144 / 0.24); --color-neutral-border: rgb(99 114 144 / 0.35); --color-neutral-on: rgb(210 220 238); --color-white: rgb(255 255 255); --color-black: rgb(0 0 0); --color-overlay: rgb(8 11 20 / 0.72); --color-overlay-black: rgb(0 0 0 / 0.88); --color-overlay-muted: rgb(12 18 30 / 0.6); --color-overlay-strong: rgb(8 12 24 / 0.82); --color-overlay-darker: rgb(5 8 16 / 0.9); --color-overlay-panel: rgb(14 20 34 / 0.92); --color-overlay-panel-soft: rgb(18 26 42 / 0.78); --color-overlay-panel-tint: rgb(56 93 160 / 0.36); --color-overlay-panel-glass: rgb(14 24 42 / 0.86); --color-overlay-panel-glass-soft: rgb(16 28 48 / 0.72); --color-overlay-panel-gradient-start: rgb(18 26 44 / 0.92); --color-overlay-panel-gradient-end: rgb(10 16 30 / 0.92); --color-modal-backdrop: rgb(5 8 14 / 0.68); --color-modal-surface: rgb(14 22 38 / 0.88); --color-overlay-veil: rgb(4 6 12 / 0.94); --color-overlay-banner-bottom: rgb(0 0 0 / 0.6); --color-overlay-banner-transparent: rgb(0 0 0 / 0); --color-overlay-backdrop: rgb(5 8 14 / 0.75); --scrollbar-track: color-mix( in srgb, var(--color-sidebar-surface-alt) 54%, transparent ); --scrollbar-thumb: color-mix(in srgb, var(--color-accent) 72%, transparent); --scrollbar-thumb-hover: color-mix( in srgb, var(--color-accent-strong) 84%, transparent ); --color-sidebar-surface: rgb(12 18 30 / 0.94); --color-sidebar-surface-alt: rgb(10 18 32 / 0.8); --color-sidebar-border: rgb(86 106 142 / 0.26); --color-sidebar-border-strong: rgb(112 133 170 / 0.42); --color-sidebar-hover: color-mix( in srgb, var(--color-accent) 22%, transparent ); --color-sidebar-hover-strong: color-mix( in srgb, var(--color-accent-strong) 32%, transparent ); --color-sidebar-glow: color-mix( in srgb, var(--color-accent) 42%, transparent ); --color-sidebar-accent-start: color-mix( in srgb, var(--color-accent) 92%, transparent ); --color-sidebar-accent-end: color-mix( in srgb, var(--color-accent-strong) 88%, transparent ); --color-sidebar-text-muted: var(--color-text-muted); --sidebar-icon-filter: brightness(0) invert(1); --color-surface-tint-subtle: rgb(94 113 161 / 0.12); --color-border-translucent: rgb(99 114 144 / 0.22); --color-border-translucent-strong: rgb(110 130 170 / 0.28); --color-border-translucent-bright: rgb(148 163 184 / 0.35); --color-border-translucent-stronger: rgb(148 163 184 / 0.38); --color-border-translucent-strongest: rgb(198 207 222 / 0.45); --color-border-translucent-glow: rgb(129 140 248 / 0.55); --color-border-translucent-medium: rgb(99 114 144 / 0.28); --color-border-neutral-soft: rgb(99 114 144 / 0.3); --color-border-info-soft: rgb(96 165 250 / 0.35); --color-border-sidebar-strong: rgb(32 46 68 / 0.88); --color-ring-private: rgb(168 85 247 / 0.55); --color-ring-private-hover: rgb(192 132 252 / 0.65); --color-ring-critical: rgb(239 83 98 / 0.42); --color-ring-critical-soft: rgb(239 83 98 / 0.35); --color-ring-critical-hover: rgb(239 83 98 / 0.5); --color-ring-critical-strong: rgb(220 38 38 / 0.6); --color-ring-alert: rgb(220 38 38 / 0.6); --color-gradient-visibility-start: rgb(129 140 248 / 0.4); --color-gradient-visibility-end: rgb(192 132 252 / 0.32); --color-white-soft: rgb(255 255 255 / 0.1); --color-white-softer: rgb(255 255 255 / 0.3); --color-white-softest: rgb(255 255 255 / 0.4); --color-shadow-floating: rgb(8 11 30 / 0.55); --color-shadow-elevated: rgb(8 11 30 / 0.45); --color-shadow-panel: rgb(15 23 42 / 0.35); --color-shadow-notification: rgb(15 23 42 / 0.3); --color-shadow-intense: rgb(250 204 21 / 0.48); --color-shadow-sidebar: rgb(0 0 0 / 0.45); --color-shadow-modal: rgb(8 11 30 / 0.55); --color-divider-strong: rgb(15 23 42 / 0.35); --color-text-frosted-strong: rgb(226 232 240 / 0.94); --color-text-frosted: rgb(226 232 240 / 0.9); --color-text-frosted-soft: rgb(226 232 240 / 0.82); } *, ::before, ::after { --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; } ::backdrop { --tw-border-spacing-x: 0; --tw-border-spacing-y: 0; --tw-translate-x: 0; --tw-translate-y: 0; --tw-rotate: 0; --tw-skew-x: 0; --tw-skew-y: 0; --tw-scale-x: 1; --tw-scale-y: 1; --tw-pan-x: ; --tw-pan-y: ; --tw-pinch-zoom: ; --tw-scroll-snap-strictness: proximity; --tw-gradient-from-position: ; --tw-gradient-via-position: ; --tw-gradient-to-position: ; --tw-ordinal: ; --tw-slashed-zero: ; --tw-numeric-figure: ; --tw-numeric-spacing: ; --tw-numeric-fraction: ; --tw-ring-inset: ; --tw-ring-offset-width: 0px; --tw-ring-offset-color: #fff; --tw-ring-color: rgb(59 130 246 / 0.5); --tw-ring-offset-shadow: 0 0 #0000; --tw-ring-shadow: 0 0 #0000; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; --tw-blur: ; --tw-brightness: ; --tw-contrast: ; --tw-grayscale: ; --tw-hue-rotate: ; --tw-invert: ; --tw-saturate: ; --tw-sepia: ; --tw-drop-shadow: ; --tw-backdrop-blur: ; --tw-backdrop-brightness: ; --tw-backdrop-contrast: ; --tw-backdrop-grayscale: ; --tw-backdrop-hue-rotate: ; --tw-backdrop-invert: ; --tw-backdrop-opacity: ; --tw-backdrop-saturate: ; --tw-backdrop-sepia: ; --tw-contain-size: ; --tw-contain-layout: ; --tw-contain-paint: ; --tw-contain-style: ; } /* ! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com */ /* 1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4) 2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116) */ *, ::before, ::after { box-sizing: border-box; /* 1 */ border-width: 0; /* 2 */ border-style: solid; /* 2 */ border-color: #e5e7eb; /* 2 */ } ::before, ::after { --tw-content: ''; } /* 1. Use a consistent sensible line-height in all browsers. 2. Prevent adjustments of font size after orientation changes in iOS. 3. Use a more readable tab size. 4. Use the user's configured `sans` font-family by default. 5. Use the user's configured `sans` font-feature-settings by default. 6. Use the user's configured `sans` font-variation-settings by default. 7. Disable tap highlights on iOS */ html, :host { line-height: 1.5; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ -moz-tab-size: 4; /* 3 */ -o-tab-size: 4; tab-size: 4; /* 3 */ font-family: var(--font-family-sans); /* 4 */ font-feature-settings: normal; /* 5 */ font-variation-settings: normal; /* 6 */ -webkit-tap-highlight-color: transparent; /* 7 */ } /* 1. Remove the margin in all browsers. 2. Inherit line-height from `html` so users can set them as a class directly on the `html` element. */ body { margin: 0; /* 1 */ line-height: inherit; /* 2 */ } /* 1. Add the correct height in Firefox. 2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655) 3. Ensure horizontal rules are visible by default. */ hr { height: 0; /* 1 */ color: inherit; /* 2 */ border-top-width: 1px; /* 3 */ } /* Add the correct text decoration in Chrome, Edge, and Safari. */ abbr:where([title]) { -webkit-text-decoration: underline dotted; text-decoration: underline dotted; } /* Remove the default font size and weight for headings. */ h1, h2, h3, h4, h5, h6 { font-size: inherit; font-weight: inherit; } /* Reset links to optimize for opt-in styling instead of opt-out. */ a { color: inherit; text-decoration: inherit; } /* Add the correct font weight in Edge and Safari. */ b, strong { font-weight: bolder; } /* 1. Use the user's configured `mono` font-family by default. 2. Use the user's configured `mono` font-feature-settings by default. 3. Use the user's configured `mono` font-variation-settings by default. 4. Correct the odd `em` font sizing in all browsers. */ code, kbd, samp, pre { font-family: var(--font-family-mono); /* 1 */ font-feature-settings: normal; /* 2 */ font-variation-settings: normal; /* 3 */ font-size: 1em; /* 4 */ } /* 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; } /* 1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297) 2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016) 3. Remove gaps between table borders by default. */ table { text-indent: 0; /* 1 */ border-color: inherit; /* 2 */ border-collapse: collapse; /* 3 */ } /* 1. Change the font styles in all browsers. 2. Remove the margin in Firefox and Safari. 3. Remove default padding in all browsers. */ button, input, optgroup, select, textarea { font-family: inherit; /* 1 */ font-feature-settings: inherit; /* 1 */ font-variation-settings: inherit; /* 1 */ font-size: 100%; /* 1 */ font-weight: inherit; /* 1 */ line-height: inherit; /* 1 */ letter-spacing: inherit; /* 1 */ color: inherit; /* 1 */ margin: 0; /* 2 */ padding: 0; /* 3 */ } /* Remove the inheritance of text transform in Edge and Firefox. */ button, select { text-transform: none; } /* 1. Correct the inability to style clickable types in iOS and Safari. 2. Remove default button styles. */ button, input:where([type='button']), input:where([type='reset']), input:where([type='submit']) { -webkit-appearance: button; /* 1 */ background-color: transparent; /* 2 */ background-image: none; /* 2 */ } /* Use the modern Firefox focus style for all focusable elements. */ :-moz-focusring { outline: auto; } /* Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737) */ :-moz-ui-invalid { box-shadow: none; } /* Add the correct vertical alignment in Chrome and Firefox. */ progress { vertical-align: baseline; } /* Correct the cursor style of increment and decrement buttons in Safari. */ ::-webkit-inner-spin-button, ::-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. */ ::-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 */ } /* Add the correct display in Chrome and Safari. */ summary { display: list-item; } /* Removes the default spacing and border for appropriate elements. */ blockquote, dl, dd, h1, h2, h3, h4, h5, h6, hr, figure, p, pre { margin: 0; } fieldset { margin: 0; padding: 0; } legend { padding: 0; } ol, ul, menu { list-style: none; margin: 0; padding: 0; } /* Reset default styling for dialogs. */ dialog { padding: 0; } /* Prevent resizing textareas horizontally by default. */ textarea { resize: vertical; } /* 1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300) 2. Set the default placeholder color to the user's configured gray 400 color. */ input::-moz-placeholder, textarea::-moz-placeholder { opacity: 1; /* 1 */ color: #9ca3af; /* 2 */ } input::placeholder, textarea::placeholder { opacity: 1; /* 1 */ color: #9ca3af; /* 2 */ } /* Set the default cursor for buttons. */ button, [role="button"] { cursor: pointer; } /* Make sure disabled buttons don't get the pointer cursor. */ :disabled { cursor: default; } /* 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) */ img, video { max-width: 100%; height: auto; } /* Make elements with the HTML hidden attribute stay hidden by default */ [hidden]:where(:not([hidden="until-found"])) { display: none; } html { font-size: 80%; } @media (min-width: 768px) { html { font-size: 100%; } } @media (min-width: 1024px) { html { font-size: 75%; } } *, *::before, *::after { scrollbar-width: thin; scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track); } *::-webkit-scrollbar { width: var(--scrollbar-width); height: var(--scrollbar-width); } *::-webkit-scrollbar-track { background: var(--scrollbar-track); } *::-webkit-scrollbar-thumb { background: var(--scrollbar-thumb); border-radius: var(--radius-sm); } *::-webkit-scrollbar-thumb:hover { background: var(--scrollbar-thumb-hover); } body { --app-header-centerline: calc( env(safe-area-inset-top, 0) + var(--app-header-centerline-offset) ); font-family: var(--font-family-sans); background-color: var(--color-page); color: var(--color-text-strong); line-height: 1.5; margin: 0; padding: 0; overflow-x: hidden; } :root[data-theme-accent="override"] { --color-accent: var(--color-accent-override); --color-accent-strong: var(--color-accent-strong-override); --color-accent-pressed: var(--color-accent-pressed-override); } #uiOverlay { position: fixed; inset: 0; pointer-events: none; z-index: var(--z-overlay-popover); } #uiOverlay > * { pointer-events: auto; } #nip71TagsFieldset > legend, #editNip71TagsFieldset > legend { margin-left: 0; padding: 0; } #app { background-color: var(--color-page); color: inherit; } html.modal-open, body.modal-open { overflow: hidden; height: 100%; } body.modal-open #app { overflow: hidden; } body.modal-open #sidebar { pointer-events: none; opacity: 0; visibility: hidden; z-index: var(--z-sidebar-overlay); } [ng\:cloak], [ng-cloak], [data-ng-cloak], [x-ng-cloak], .ng-cloak, .x-ng-cloak, .ng-hide:not(.ng-hide-animate) { display: none !important; } ng\:form { display: block; } .\!container { width: 100% !important; } .container { width: 100%; } @media (min-width: 400px) { .\!container { max-width: 400px !important; } .container { max-width: 400px; } } @media (min-width: 480px) { .\!container { max-width: 480px !important; } .container { max-width: 480px; } } @media (min-width: 640px) { .\!container { max-width: 640px !important; } .container { max-width: 640px; } } @media (min-width: 768px) { .\!container { max-width: 768px !important; } .container { max-width: 768px; } } @media (min-width: 1024px) { .\!container { max-width: 1024px !important; } .container { max-width: 1024px; } } @media (min-width: 1280px) { .\!container { max-width: 1280px !important; } .container { max-width: 1280px; } } @media (min-width: 1536px) { .\!container { max-width: 1536px !important; } .container { max-width: 1536px; } } .ds-header { display: flex; align-items: center; justify-content: flex-start; padding-top: var(--space-sm); padding-bottom: var(--space-sm); } .app-shell__header { position: sticky; top: env(safe-area-inset-top, 0); z-index: var(--z-app-header); padding-top: calc(var(--space-sm) + env(safe-area-inset-top, 0)); padding-bottom: var(--space-sm); background-color: transparent; background-image: var(--surface-overlay-banner-gradient-header); background-repeat: no-repeat; background-size: 100% 100%; } .ds-metric-probe { position: absolute; top: 0; left: 0; visibility: hidden; pointer-events: none; contain: layout size style; inline-size: 0; block-size: var(--ds-metric-probe-length, 0); overflow: hidden; } .ds-header__logo { height: var(--space-2xl-plus); width: auto; max-width: none; } .focus-ring { outline: 2px solid transparent; outline-offset: 2px; } .focus-ring:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .author-pic { display: block; height: 100%; width: 100%; border-radius: var(--radius-full); -o-object-fit: cover; object-fit: cover; } .header-icon-toggle { outline: 2px solid transparent; outline-offset: 2px; } .header-icon-toggle:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .header-icon-toggle { display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-full); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-timing-function: cubic-bezier(0, 0, 0.2, 1); width: var(--icon-size-lg); height: var(--icon-size-lg); min-width: var(--icon-size-lg); min-height: var(--icon-size-lg); padding: 0; border: none; background: transparent; color: var(--color-text-muted); line-height: 1; } .header-icon-toggle[data-theme-state="light"] { color: var(--color-text-strong); } .header-icon-toggle[data-theme-state="dark"] { color: var(--color-text); } .header-icon-toggle__icon-wrapper { display: inline-flex; align-items: center; justify-content: center; inline-size: var(--space-lg); block-size: var(--space-lg); } .header-icon-toggle__icon { inline-size: 100%; block-size: 100%; display: none; fill: currentColor; } .header-icon-toggle__icon-wrapper:not([data-theme-icon-state]), .header-icon-toggle__icon-wrapper[data-theme-icon-state="light"] { color: inherit; } .header-icon-toggle__icon-wrapper[data-theme-icon-state="light"] .header-icon-toggle__icon--dark { display: block; } .header-icon-toggle__icon-wrapper[data-theme-icon-state="dark"] .header-icon-toggle__icon--light { display: block; } .header-icon-toggle__icon-wrapper:not([data-theme-icon-state]) .header-icon-toggle__icon--dark { display: block; } #profileUnreadDot { position: absolute; top: var(--space-2xs); right: var(--space-2xs); width: var(--space-sm); height: var(--space-sm); border-radius: var(--radius-full); border: var(--border-width-hairline) solid var(--color-page); background-color: var(--status-danger); display: none; pointer-events: none; } #profileUnreadDot.is-visible { display: block; } .header-icon-toggle[data-theme-state="light"]:hover, .header-icon-toggle[data-theme-state="light"]:focus-visible { color: var(--color-text); } .header-icon-toggle[data-theme-state="dark"]:hover, .header-icon-toggle[data-theme-state="dark"]:focus-visible { color: var(--color-text-strong); } .header-icon-toggle[aria-pressed="true"] { color: var(--color-text-strong); } .header-icon-toggle[aria-pressed="true"]:hover, .header-icon-toggle[aria-pressed="true"]:focus-visible { color: var(--color-text-strong); } .bv-modal.header-search__region { display: none; } .profile-pane.header-search__region { display: none; } .header-search__region { display: none; flex: 1 1 0%; justify-content: center; } @media (min-width: 768px) { .header-search__region { display: flex; } } .header-search__region { min-width: 0; padding-inline: clamp(var(--space-md), 4vw, var(--space-3xl)); } .header-search { display: flex; align-items: center; gap: 0.75rem; border-radius: var(--radius-full); border-width: 1px; border-color: var(--border-default); --tw-border-opacity: 0.4; background-color: var(--surface-overlay-panel); padding-left: 1rem; padding-right: 1rem; --tw-shadow: var(--shadow-sm); --tw-shadow-colored: var(--shadow-sm); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); backdrop-filter: blur(var(--popover-backdrop-blur)); -webkit-backdrop-filter: blur(var(--popover-backdrop-blur)); padding-block: calc(var(--space-sm) * 0.9); inline-size: min(100%, var(--header-search-max-inline)); } .header-search:focus-within { border-color: var(--color-accent-strong); } .header-search__icon { display: block; height: 1.25rem; width: 1.25rem; background-color: currentColor; mask-repeat: no-repeat; mask-position: center; mask-size: contain; -webkit-mask-repeat: no-repeat; -webkit-mask-position: center; -webkit-mask-size: contain; } .header-search__icon--filter { mask-image: url("../assets/svg/filter.svg"); -webkit-mask-image: url("../assets/svg/filter.svg"); } .header-search__icon--submit { mask-image: url("../assets/svg/search.svg"); -webkit-mask-image: url("../assets/svg/search.svg"); } .header-search__filter { outline: 2px solid transparent; outline-offset: 2px; } .header-search__filter:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .header-search__filter { display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; border-radius: var(--radius-full); border-width: 1px; border-color: transparent; background-color: transparent; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); color: var(--color-accent); inline-size: calc(var(--icon-size-lg) * 0.9); block-size: calc(var(--icon-size-lg) * 0.9); min-inline-size: calc(var(--icon-size-lg) * 0.9); min-block-size: calc(var(--icon-size-lg) * 0.9); } .header-search__filter:hover, .header-search__filter:focus-visible { color: var(--color-accent-strong); } .header-search__input { flex: 1 1 0%; -webkit-appearance: none; -moz-appearance: none; appearance: none; background-color: transparent; font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--text-primary); outline: 2px solid transparent; outline-offset: 2px; } .header-search__input::-moz-placeholder { color: var(--text-muted); } .header-search__input::placeholder { color: var(--text-muted); } .header-search__input { min-width: 0; } .header-search__input:focus-visible { outline: 2px solid transparent; outline-offset: 2px; --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } .header-search__submit { outline: 2px solid transparent; outline-offset: 2px; } .header-search__submit:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .header-search__submit { display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-full); border-width: 1px; border-color: transparent; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); background-color: var(--color-accent-strong); color: var(--color-white); inline-size: calc(var(--icon-size-lg) * 0.9); block-size: calc(var(--icon-size-lg) * 0.9); min-inline-size: calc(var(--icon-size-lg) * 0.9); min-block-size: calc(var(--icon-size-lg) * 0.9); padding: 0; } .header-search__submit:hover { background-color: var(--color-accent); } .header-search__submit:focus-visible { background-color: var(--color-accent-pressed); } .bv-logo { --logo-wordmark-color: var(--color-logo-wordmark); --logo-accent-color: var(--color-logo-accent); --logo-background-color: var(--color-logo-background); } .bv-logo[data-variant="inverse"] { --logo-wordmark-color: var(--color-logo-wordmark-inverse); --logo-background-color: var(--color-logo-background-inverse); } .bv-logo[data-wordmark="current"] { --logo-wordmark-color: currentColor; } .bv-logo[data-accent="current"] { --logo-accent-color: currentColor; } .bv-logo[data-background="transparent"] { --logo-background-color: transparent; } .bv-logo__wordmark { fill: var(--logo-wordmark-color); color: var(--logo-wordmark-color); } .bv-logo__accent { fill: var(--logo-accent-color); color: var(--logo-accent-color); } .bv-logo__background { fill: var(--logo-background-color); color: var(--logo-background-color); } .markdown-prose { color: var(--color-text); max-width: none; } .markdown-prose :where(p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; margin-bottom: 1rem; } .markdown-prose :where([class~="lead"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-lead); font-size: 1.25em; line-height: 1.6; margin-top: 1.2em; margin-bottom: 1.2em; } .markdown-prose :where(a):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--color-primary); text-decoration: none; font-weight: 500; } .markdown-prose :where(strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-bold); font-weight: 600; } .markdown-prose :where(a strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } .markdown-prose :where(blockquote strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } .markdown-prose :where(thead th strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } .markdown-prose :where(ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: decimal; margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em; } .markdown-prose :where(ol[type="A"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-alpha; } .markdown-prose :where(ol[type="a"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-alpha; } .markdown-prose :where(ol[type="A" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-alpha; } .markdown-prose :where(ol[type="a" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-alpha; } .markdown-prose :where(ol[type="I"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-roman; } .markdown-prose :where(ol[type="i"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-roman; } .markdown-prose :where(ol[type="I" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: upper-roman; } .markdown-prose :where(ol[type="i" s]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: lower-roman; } .markdown-prose :where(ol[type="1"]):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: decimal; } .markdown-prose :where(ul):not(:where([class~="not-prose"],[class~="not-prose"] *)) { list-style-type: disc; margin-top: 1.25em; margin-bottom: 1.25em; padding-inline-start: 1.625em; } .markdown-prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { font-weight: 400; color: var(--tw-prose-counters); } .markdown-prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *))::marker { color: var(--tw-prose-bullets); } .markdown-prose :where(dt):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; margin-top: 1.25em; } .markdown-prose :where(hr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-color: var(--color-border-subtle); border-top-width: 1px; margin-top: 2rem; margin-bottom: 2rem; } .markdown-prose :where(blockquote):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 500; font-style: italic; color: var(--color-muted); border-inline-start-width: 0.25rem; border-inline-start-color: var(--tw-prose-quote-borders); quotes: "\201C""\201D""\2018""\2019"; margin-top: 1rem; margin-bottom: 1rem; padding-inline-start: 1em; border-left-width: 4px; border-left-color: var(--color-border-subtle); padding-left: 1rem; } .markdown-prose :where(blockquote p:first-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { content: open-quote; } .markdown-prose :where(blockquote p:last-of-type):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { content: close-quote; } .markdown-prose :where(h1):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 700; font-size: var(--font-size-2xl); margin-top: 0.5rem; margin-bottom: 1rem; line-height: 1.1111111; } .markdown-prose :where(h1 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 900; color: inherit; } .markdown-prose :where(h2):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 700; font-size: var(--font-size-xl); margin-top: 1.25rem; margin-bottom: 0.75rem; line-height: 1.3333333; } .markdown-prose :where(h2 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 800; color: inherit; } .markdown-prose :where(h3):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; font-size: var(--font-size-lg); margin-top: 1rem; margin-bottom: 0.75rem; line-height: 1.6; } .markdown-prose :where(h3 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 700; color: inherit; } .markdown-prose :where(h4):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; margin-top: 1.5em; margin-bottom: 0.5em; line-height: 1.5; } .markdown-prose :where(h4 strong):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 700; color: inherit; } .markdown-prose :where(img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; margin-bottom: 1rem; border-radius: var(--radius-md); max-width: 100%; height: auto; } .markdown-prose :where(picture):not(:where([class~="not-prose"],[class~="not-prose"] *)) { display: block; margin-top: 2em; margin-bottom: 2em; } .markdown-prose :where(video):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; } .markdown-prose :where(kbd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 500; font-family: inherit; color: var(--tw-prose-kbd); box-shadow: 0 0 0 1px var(--tw-prose-kbd-shadows), 0 3px 0 var(--tw-prose-kbd-shadows); font-size: 0.875em; border-radius: 0.3125rem; padding-top: 0.1875em; padding-inline-end: 0.375em; padding-bottom: 0.1875em; padding-inline-start: 0.375em; } .markdown-prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--color-secondary); font-weight: 500; font-size: var(--font-size-sm); background-color: var(--color-page-alt); padding: 0.2rem 0.4rem; border-radius: var(--radius-md); font-family: var(--font-family-mono); } .markdown-prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { content: none; } .markdown-prose :where(code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { content: none; } .markdown-prose :where(a code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } .markdown-prose :where(h1 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } .markdown-prose :where(h2 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; font-size: 0.875em; } .markdown-prose :where(h3 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; font-size: 0.9em; } .markdown-prose :where(h4 code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } .markdown-prose :where(blockquote code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } .markdown-prose :where(thead th code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: inherit; } .markdown-prose :where(pre):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--color-text-strong); background-color: var(--color-page-alt); overflow-x: auto; font-weight: 400; font-size: var(--font-size-sm); line-height: 1.7142857; margin-top: 0; margin-bottom: 1rem; border-radius: var(--radius-md); padding-top: 0.8571429em; padding-inline-end: 1.1428571em; padding-bottom: 0.8571429em; padding-inline-start: 1.1428571em; padding: 1rem; font-family: var(--font-family-mono); } .markdown-prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *)) { background-color: transparent; border-width: 0; border-radius: 0; padding: 0; font-weight: inherit; color: inherit; font-size: inherit; font-family: inherit; line-height: inherit; } .markdown-prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::before { content: none; } .markdown-prose :where(pre code):not(:where([class~="not-prose"],[class~="not-prose"] *))::after { content: none; } .markdown-prose :where(table):not(:where([class~="not-prose"],[class~="not-prose"] *)) { width: 100%; table-layout: auto; margin-top: 2em; margin-bottom: 2em; font-size: 0.875em; line-height: 1.7142857; } .markdown-prose :where(thead):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-th-borders); } .markdown-prose :where(thead th):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-headings); font-weight: 600; vertical-align: bottom; padding-inline-end: 0.5714286em; padding-bottom: 0.5714286em; padding-inline-start: 0.5714286em; } .markdown-prose :where(tbody tr):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-bottom-width: 1px; border-bottom-color: var(--tw-prose-td-borders); } .markdown-prose :where(tbody tr:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-bottom-width: 0; } .markdown-prose :where(tbody td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { vertical-align: baseline; } .markdown-prose :where(tfoot):not(:where([class~="not-prose"],[class~="not-prose"] *)) { border-top-width: 1px; border-top-color: var(--tw-prose-th-borders); } .markdown-prose :where(tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { vertical-align: top; } .markdown-prose :where(th, td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-align: start; } .markdown-prose :where(figure > *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; margin-bottom: 0; } .markdown-prose :where(figcaption):not(:where([class~="not-prose"],[class~="not-prose"] *)) { color: var(--tw-prose-captions); font-size: 0.875em; line-height: 1.4285714; margin-top: 0.8571429em; } .markdown-prose { --tw-prose-body: var(--color-text); --tw-prose-headings: var(--color-text-strong); --tw-prose-lead: #4b5563; --tw-prose-links: var(--color-primary); --tw-prose-bold: var(--color-text-strong); --tw-prose-counters: var(--color-text-muted); --tw-prose-bullets: var(--color-text-muted); --tw-prose-hr: var(--color-border-subtle); --tw-prose-quotes: var(--color-muted); --tw-prose-quote-borders: #e5e7eb; --tw-prose-captions: #6b7280; --tw-prose-kbd: #111827; --tw-prose-kbd-shadows: rgb(17 24 39 / 10%); --tw-prose-code: var(--color-secondary); --tw-prose-pre-code: #e5e7eb; --tw-prose-pre-bg: #1f2937; --tw-prose-th-borders: var(--color-border-subtle); --tw-prose-td-borders: var(--color-border-subtle); --tw-prose-invert-body: #d1d5db; --tw-prose-invert-headings: #fff; --tw-prose-invert-lead: #9ca3af; --tw-prose-invert-links: #fff; --tw-prose-invert-bold: #fff; --tw-prose-invert-counters: #9ca3af; --tw-prose-invert-bullets: #4b5563; --tw-prose-invert-hr: #374151; --tw-prose-invert-quotes: #f3f4f6; --tw-prose-invert-quote-borders: #374151; --tw-prose-invert-captions: #9ca3af; --tw-prose-invert-kbd: #fff; --tw-prose-invert-kbd-shadows: rgb(255 255 255 / 10%); --tw-prose-invert-code: #fff; --tw-prose-invert-pre-code: #d1d5db; --tw-prose-invert-pre-bg: rgb(0 0 0 / 50%); --tw-prose-invert-th-borders: #4b5563; --tw-prose-invert-td-borders: #374151; font-size: 1rem; line-height: 1.6; } .markdown-prose :where(picture > img):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; margin-bottom: 0; } .markdown-prose :where(li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.5rem; margin-bottom: 0.5rem; } .markdown-prose :where(ol > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0.375em; } .markdown-prose :where(ul > li):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0.375em; } .markdown-prose :where(.prose > ul > li p):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; } .markdown-prose :where(.prose > ul > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; } .markdown-prose :where(.prose > ul > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 1.25em; } .markdown-prose :where(.prose > ol > li > p:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; } .markdown-prose :where(.prose > ol > li > p:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 1.25em; } .markdown-prose :where(ul ul, ul ol, ol ul, ol ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.75em; margin-bottom: 0.75em; } .markdown-prose :where(dl):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 1.25em; margin-bottom: 1.25em; } .markdown-prose :where(dd):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0.5em; padding-inline-start: 1.625em; } .markdown-prose :where(hr + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } .markdown-prose :where(h2 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } .markdown-prose :where(h3 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } .markdown-prose :where(h4 + *):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } .markdown-prose :where(thead th:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0; } .markdown-prose :where(thead th:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-end: 0; } .markdown-prose :where(tbody td, tfoot td):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-top: 0.5714286em; padding-inline-end: 0.5714286em; padding-bottom: 0.5714286em; padding-inline-start: 0.5714286em; } .markdown-prose :where(tbody td:first-child, tfoot td:first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-start: 0; } .markdown-prose :where(tbody td:last-child, tfoot td:last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { padding-inline-end: 0; } .markdown-prose :where(figure):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 2em; margin-bottom: 2em; } .markdown-prose :where(.prose > :first-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; } .markdown-prose :where(.prose > :last-child):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-bottom: 0; } .markdown-prose { font-family: var(--font-family-sans); } .markdown-prose :where(h4, h5, h6):not(:where([class~="not-prose"],[class~="not-prose"] *)) { font-weight: 600; margin-top: 0.75rem; margin-bottom: 0.5rem; } .markdown-prose :where(ul, ol):not(:where([class~="not-prose"],[class~="not-prose"] *)) { margin-top: 0; margin-bottom: 1rem; padding-left: 1.25rem; } .markdown-prose :where(a:hover):not(:where([class~="not-prose"],[class~="not-prose"] *)) { text-decoration: underline; } .markdown-prose { max-width: none; line-height: 1.625; color: var(--text-primary); --tw-prose-body: var(--color-text); --tw-prose-headings: var(--color-text-strong); --tw-prose-invert-headings: var(--color-text-strong); --tw-prose-lead: var(--color-text); --tw-prose-links: var(--color-accent-strong); --tw-prose-bold: var(--color-text-strong); --tw-prose-counters: var(--color-text-muted); --tw-prose-bullets: var(--color-text-muted); --tw-prose-hr: var(--color-border-translucent-strong); --tw-prose-quotes: var(--color-text-strong); --tw-prose-quote-borders: var(--color-border-subtle); --tw-prose-captions: var(--color-text-muted); --tw-prose-code: var(--color-text-strong); --tw-prose-pre-code: var(--color-text); --tw-prose-pre-bg: var(--surface-muted); --tw-prose-th-borders: var(--color-border); --tw-prose-td-borders: var(--color-border-subtle); } .markdown-prose :where(h1, h2, h3, h4, h5, h6) { color: var(--color-text-strong); } .markdown-prose :where(h1, h2, h3, h4, h5, h6) strong { color: inherit; } .markdown-prose a { color: var(--color-accent-strong); text-decoration-color: color-mix( in srgb, var(--color-accent-strong) 65%, transparent ); text-decoration-thickness: var(--link-underline-thickness); text-underline-offset: 0.2em; } .markdown-prose a:hover, .markdown-prose a:focus-visible { color: var(--color-accent); text-decoration-line: underline; } .markdown-prose blockquote { border-radius: var(--radius-md); border-left-width: 4px; border-color: var(--border-subtle); background-color: var(--surface-muted); --tw-bg-opacity: 0.5; padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem; color: var(--text-muted); } .markdown-prose :where(pre, code) { font-family: var(--font-family-mono); } .markdown-prose code { border-radius: var(--radius-md); background-color: var(--surface-muted); padding-left: 0.25rem; padding-right: 0.25rem; padding-top: 0.125rem; padding-bottom: 0.125rem; color: var(--color-accent-strong); } .markdown-prose pre { overflow-x: auto; border-radius: var(--radius-lg); border-width: 1px; border-color: var(--border-subtle); background-color: var(--surface-muted); padding: 1rem; color: var(--text-primary); } .markdown-prose pre code { background-color: transparent; color: inherit; padding: 0; } .\!popover { position: relative; display: inline-flex; } .popover { position: relative; display: inline-flex; } .popover-panel, .popover__panel { outline: 2px solid transparent; outline-offset: 2px; } .popover-panel:focus-visible, .popover__panel:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .popover-panel, .popover__panel { pointer-events: none; z-index: var(--z-overlay-popover); min-width: var(--menu-min-width); max-width: var(--popover-inline-safe-max); --tw-scale-x: .95; --tw-scale-y: .95; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); border-radius: var(--overlay-panel-radius); border-width: 1px; border-color: var(--border-default); --tw-border-opacity: 0.4; background-color: var(--surface-overlay-panel); padding-left: var(--overlay-panel-padding-inline); padding-right: var(--overlay-panel-padding-inline); padding-top: var(--overlay-panel-padding-block); padding-bottom: var(--overlay-panel-padding-block); font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--text-primary); opacity: 0; --tw-shadow: var(--overlay-panel-shadow); --tw-shadow-colored: var(--overlay-panel-shadow); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); --tw-shadow-color: var(--surface-overlay-panel); --tw-shadow: var(--tw-shadow-colored); transition-property: opacity; transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); position: var(--popover-strategy, fixed); left: var(--popover-left, 0); top: var(--popover-top, 0); max-width: var(--popover-max-width, none); max-height: var(--popover-max-height, none); } .popover-panel[data-state="open"], .popover__panel[data-state="open"] { pointer-events: auto; --tw-scale-x: 1; --tw-scale-y: 1; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); opacity: 1; } .popover-panel[data-state="closed"], .popover__panel[data-state="closed"] { pointer-events: none; --tw-scale-x: .95; --tw-scale-y: .95; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); opacity: 0; } .search-filter-chip { display: inline-flex; align-items: center; gap: 0.5rem; border-radius: var(--radius-full); border-width: 1px; border-color: var(--border-subtle); background-color: var(--surface-alt); padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.25rem; padding-bottom: 0.25rem; font-size: var(--font-size-xs); line-height: var(--line-height-tight); font-weight: 500; color: var(--text-primary); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); } .search-filter-chip[data-state="on"] { border-color: var(--color-accent-strong); background-color: var(--color-accent-strong); color: var(--color-white); } [data-popover-arrow="true"] { left: var(--popover-arrow-left, auto); right: var(--popover-arrow-right, auto); top: var(--popover-arrow-top, auto); bottom: var(--popover-arrow-bottom, auto); } .ds-overlay-backdrop { position: fixed; inset: 0; display: flex; align-items: center; justify-content: center; background: var(--overlay-backdrop-color); backdrop-filter: blur(var(--overlay-backdrop-blur)); -webkit-backdrop-filter: blur(var(--overlay-backdrop-blur)); } .popover-panel[data-variant="zap"], .popover__panel[data-variant="zap"] { background: var(--color-overlay-veil); color: var(--color-subtle); border: var(--border-width-hairline) solid var(--color-border-translucent-stronger); box-shadow: var(--shadow-popover-zap); backdrop-filter: blur(var(--popover-backdrop-blur)); -webkit-backdrop-filter: blur(var(--popover-backdrop-blur)); } .\!btn { outline: 2px solid transparent; outline-offset: 2px; } .\!btn:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .\!btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; border-radius: var(--radius-full); border-width: 1px; border-color: transparent; background-color: var(--color-accent-strong); padding-left: 1.25rem; padding-right: 1.25rem; padding-top: 0.625rem; padding-bottom: 0.625rem; font-size: var(--font-size-base); line-height: var(--line-height-base); font-weight: 600; color: var(--color-white); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .btn { outline: 2px solid transparent; outline-offset: 2px; } .btn:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; border-radius: var(--radius-full); border-width: 1px; border-color: transparent; background-color: var(--color-accent-strong); padding-left: 1.25rem; padding-right: 1.25rem; padding-top: 0.625rem; padding-bottom: 0.625rem; font-size: var(--font-size-base); line-height: var(--line-height-base); font-weight: 600; color: var(--color-white); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .\!btn[data-size="sm"] { padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.375rem; padding-bottom: 0.375rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); } .btn[data-size="sm"], .btn-ghost[data-size="sm"] { padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.375rem; padding-bottom: 0.375rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); } .\!btn[data-size="sm"] { gap: 0.375rem; } .btn[data-size="sm"], .btn-ghost[data-size="sm"] { gap: 0.375rem; } .\!btn:hover { background-color: var(--color-accent); } .btn:hover { background-color: var(--color-accent); } .\!btn:focus-visible { background-color: var(--color-accent-pressed); } .btn:focus-visible { background-color: var(--color-accent-pressed); } .\!btn:disabled { pointer-events: none; cursor: not-allowed; opacity: 0.6; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .btn:disabled { pointer-events: none; cursor: not-allowed; opacity: 0.6; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .btn-link { outline: 2px solid transparent; outline-offset: 2px; } .btn-link:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .btn-link { display: inline-flex; align-items: center; gap: 0.25rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); font-weight: 600; color: var(--color-accent); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); } .btn-link:hover, .btn-link:focus-visible { color: var(--color-accent-strong); text-decoration-line: underline; } .progress, [data-progress-meter] { --progress-height: var(--progress-height-md); --progress-track: var(--progress-track-color); --progress-fill: var(--progress-fill-color); --progress-radius-current: var(--progress-radius); display: block; width: 100%; height: var(--progress-height); border: none; border-radius: var(--progress-radius-current); overflow: hidden; background-color: var(--progress-track); -webkit-appearance: none; -moz-appearance: none; appearance: none; } .progress::-webkit-progress-bar, [data-progress-meter]::-webkit-progress-bar { background-color: var(--progress-track); border-radius: var(--progress-radius-current); } .progress::-webkit-progress-value, [data-progress-meter]::-webkit-progress-value { background-color: var(--progress-fill); border-radius: var(--progress-radius-current); -webkit-transition: width var(--progress-transition-duration) var(--progress-transition-ease); transition: width var(--progress-transition-duration) var(--progress-transition-ease); } .progress::-moz-progress-bar, [data-progress-meter]::-moz-progress-bar { background-color: var(--progress-fill); border-radius: var(--progress-radius-current); -moz-transition: width var(--progress-transition-duration) var(--progress-transition-ease); transition: width var(--progress-transition-duration) var(--progress-transition-ease); } .progress[data-variant="surface"], [data-progress-meter][data-variant="surface"], .progress.progress--surface, [data-progress-meter].progress--surface { --progress-track: var(--color-panel); } .progress[data-variant="accent"], [data-progress-meter][data-variant="accent"], .progress.progress--accent, [data-progress-meter].progress--accent { --progress-fill: var(--color-info-strong); } .btn-ghost { outline: 2px solid transparent; outline-offset: 2px; } .btn-ghost:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .btn-ghost { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; border-radius: var(--radius-full); border-width: 1px; border-color: transparent; background-color: var(--color-accent-strong); padding-left: 1.25rem; padding-right: 1.25rem; padding-top: 0.625rem; padding-bottom: 0.625rem; font-size: var(--font-size-base); line-height: var(--line-height-base); font-weight: 600; color: var(--color-white); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .btn-ghost[data-size="sm"] { padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.375rem; padding-bottom: 0.375rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); gap: 0.375rem; } .btn-ghost:hover { background-color: var(--color-accent); } .btn-ghost:focus-visible { background-color: var(--color-accent-pressed); } .btn-ghost:disabled { pointer-events: none; cursor: not-allowed; opacity: 0.6; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } body.iframe-form button.btn-ghost { align-self: flex-start; margin-top: var(--space-md); } .btn-ghost { border-width: 1px; border-color: var(--border-default); --tw-border-opacity: 0.6; background-color: transparent; color: var(--text-primary); --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } @media (prefers-reduced-motion: reduce) { .btn-ghost { transition-property: none; } } .btn-ghost:hover { background-color: var(--surface-panel-hover); color: var(--text-primary); } .btn-ghost:focus-visible { background-color: var(--surface-panel-hover); } .btn-ghost:disabled { pointer-events: none; opacity: 0.5; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .btn-ghost[data-variant="critical"] { border-width: 1px; border-color: var(--color-critical); --tw-border-opacity: 0.6; color: var(--color-critical); } .btn-ghost[data-variant="critical"]:hover, .btn-ghost[data-variant="critical"]:focus-visible { background-color: var(--color-critical); --tw-bg-opacity: 0.2; color: var(--color-critical-strong); } .login-option { outline: 2px solid transparent; outline-offset: 2px; } .login-option:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .login-option { position: relative; display: flex; height: 100%; width: 100%; flex-direction: column; gap: 1rem; overflow: hidden; border-width: 1px; border-color: var(--border-default); background-color: var(--surface-overlay-panel-soft); padding-left: 1.5rem; padding-right: 1.5rem; padding-top: 1.25rem; padding-bottom: 1.25rem; text-align: left; color: var(--text-primary); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 300ms; transition-timing-function: cubic-bezier(0, 0, 0.2, 1); border-radius: calc(var(--radius-xl) * 1.12); isolation: isolate; backdrop-filter: blur(var(--blur-modal-backdrop)); background-image: linear-gradient( 140deg, color-mix(in srgb, var(--surface-overlay-panel-soft) 88%, transparent) 0%, color-mix(in srgb, var(--surface-overlay-panel) 72%, transparent) 100% ); transform: translate3d(0, 0, 0); transition-property: border-color, box-shadow, transform; } .login-option::after { content: ""; position: absolute; inset: 0; z-index: 0; border-radius: inherit; opacity: 0; transform: translate3d(0, 14%, 0); transition: opacity 220ms ease, transform 220ms ease; background: radial-gradient( 115% 115% at 0% 0%, color-mix(in srgb, var(--status-neutral) 32%, transparent) 0%, transparent 65% ); } .login-option:hover, .login-option:focus-visible { border-color: var(--border-strong); box-shadow: var(--shadow-modal); transform: translate3d(0, var(--motion-login-option-hover-translate), 0); } .login-option:hover::after, .login-option:focus-visible::after { opacity: 0.65; transform: translate3d(0, 0, 0); } .login-option:disabled, .login-option[aria-disabled="true"] { cursor: not-allowed; opacity: 0.6; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transform: none; } .login-option[data-tone="accent"]::after { background: radial-gradient( 120% 120% at 0% 0%, color-mix(in srgb, var(--status-info) 38%, transparent) 0%, transparent 65% ); } .login-option[data-tone="warning"]::after { background: radial-gradient( 120% 120% at 0% 0%, color-mix(in srgb, var(--status-warning) 42%, transparent) 0%, transparent 65% ); } .login-option--primary { border-color: var(--border-default); } .login-option--ghost { background-image: linear-gradient( 145deg, color-mix(in srgb, var(--surface-overlay-panel-soft) 82%, transparent) 0%, color-mix(in srgb, var(--surface-overlay-panel-soft) 68%, transparent) 100% ); } .login-option--outline { border-color: var(--border-strong); } .login-option--link { border-width: 1px; border-color: transparent; background-color: transparent; color: var(--color-accent); --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .login-option__header, .login-option__copy, .login-option__status, .login-option__capabilities { position: relative; z-index: 1; } .login-option__header { display: flex; width: 100%; align-items: flex-start; justify-content: space-between; gap: 1rem; } .login-option__copy { display: flex; min-width: 0px; flex-direction: column; align-items: flex-start; gap: 0.5rem; } .login-option__eyebrow { font-size: var(--font-size-2xs); font-weight: 600; text-transform: uppercase; color: var(--text-muted); letter-spacing: 0.18em; } .login-option:hover .login-option__eyebrow, .login-option:focus-visible .login-option__eyebrow { color: var(--text-primary); } .login-option__label { font-size: var(--font-size-lg); line-height: var(--line-height-base); font-weight: 600; color: var(--text-primary); } .login-option__description { font-size: var(--font-size-sm); line-height: var(--line-height-snug); line-height: 1.625; color: var(--text-muted); } .login-option__chevron { display: inline-flex; height: 2.25rem; width: 2.25rem; align-items: center; justify-content: center; border-radius: var(--radius-full); background-color: var(--surface-overlay-panel); color: var(--text-muted); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 200ms; transition-timing-function: cubic-bezier(0, 0, 0.2, 1); box-shadow: inset 0 0 0 var(--border-width-hairline) color-mix(in srgb, var(--border-overlay) 60%, transparent); } .login-option:hover .login-option__chevron, .login-option:focus-visible .login-option__chevron { background-color: var(--color-accent); color: var(--color-white); box-shadow: none; } .login-option__status { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 0.5rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--text-muted); } .login-option__capabilities { display: flex; flex-wrap: wrap; gap: 0.5rem; position: relative; } .btn-ghost[data-state="active"], .btn-ghost[aria-pressed="true"] { border-color: transparent; background-color: var(--color-primary); color: var(--color-white); --tw-shadow: var(--shadow-md); --tw-shadow-colored: var(--shadow-md); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .btn-ghost[data-state="active"]:hover, .btn-ghost[data-state="active"]:focus-visible, .btn-ghost[aria-pressed="true"]:hover, .btn-ghost[aria-pressed="true"]:focus-visible { background-color: var(--color-accent-strong); } /* * Blog embed heights are now driven by the iframe content via postMessage. * Styling lives inline so the shell can expand naturally with its card. */ /* * Blog carousel component styles * Tokens consumed here are defined in css/tokens.css under the * "Blog carousel tokens" section: */ .\!badge { display: inline-flex; align-items: center; gap: 0.25rem; border-radius: var(--radius-full); border-width: 1px; border-color: var(--status-neutral-border); background-color: var(--status-neutral-surface); padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.25rem; padding-bottom: 0.25rem; font-size: var(--font-size-2xs); line-height: var(--line-height-tight); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tracking-extra-wide); color: var(--status-neutral-on); } .badge { display: inline-flex; align-items: center; gap: 0.25rem; border-radius: var(--radius-full); border-width: 1px; border-color: var(--status-neutral-border); background-color: var(--status-neutral-surface); padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.25rem; padding-bottom: 0.25rem; font-size: var(--font-size-2xs); line-height: var(--line-height-tight); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tracking-extra-wide); color: var(--status-neutral-on); } .\!badge[data-variant="info"] { border-color: var(--status-info-border); background-color: var(--status-info-surface); color: var(--status-info-on); } .badge[data-variant="info"] { border-color: var(--status-info-border); background-color: var(--status-info-surface); color: var(--status-info-on); } .\!badge[data-variant="success"] { border-color: var(--status-success-border); background-color: var(--status-success-surface); color: var(--status-success-on); } .badge[data-variant="success"] { border-color: var(--status-success-border); background-color: var(--status-success-surface); color: var(--status-success-on); } .\!badge[data-variant="warning"] { border-color: var(--status-warning-border); background-color: var(--status-warning-surface); color: var(--status-warning-on); } .badge[data-variant="warning"] { border-color: var(--status-warning-border); background-color: var(--status-warning-surface); color: var(--status-warning-on); } .\!badge[data-variant="critical"] { border-color: var(--status-danger-border); background-color: var(--status-danger-surface); color: var(--status-danger-on); } .badge[data-variant="critical"] { border-color: var(--status-danger-border); background-color: var(--status-danger-surface); color: var(--status-danger-on); } .\!badge[data-variant="private"] { border-color: var(--status-private-border); background-color: var(--status-private-surface); color: var(--status-private-on); } .badge[data-variant="private"] { border-color: var(--status-private-border); background-color: var(--status-private-surface); color: var(--status-private-on); } .\!badge[data-variant="neutral"] { border-color: var(--status-neutral-border); background-color: var(--status-neutral-surface); color: var(--status-neutral-on); } .badge[data-variant="neutral"] { border-color: var(--status-neutral-border); background-color: var(--status-neutral-surface); color: var(--status-neutral-on); } .moderation-badge { display: inline-flex; flex-direction: column; align-items: flex-start; gap: var(--space-sm); border-radius: var(--radius-xl); border-width: 1px; padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.375rem; padding-bottom: 0.375rem; font-size: var(--font-size-xs); line-height: var(--line-height-tight); font-weight: 600; text-transform: none; letter-spacing: -0.025em; --tw-shadow: var(--shadow-sm); --tw-shadow-colored: var(--shadow-sm); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .moderation-badge--interactive { pointer-events: auto; } .moderation-badge__actions { display: inline-flex; flex-wrap: nowrap; align-items: center; gap: var(--space-sm); } .moderation-badge__label { display: inline-flex; align-items: center; gap: var(--space-xs); white-space: nowrap; } .moderation-badge[data-variant="warning"] { border-color: var(--status-warning-border); background-color: var(--status-warning-surface); color: var(--status-warning-on); box-shadow: 0 var(--shadow-badge-offset-y) var(--shadow-badge-blur) color-mix(in srgb, var(--status-warning) 18%, transparent); } .moderation-badge[data-variant="neutral"] { border-color: var(--status-neutral-border); background-color: var(--status-neutral-surface); color: var(--status-neutral-on); box-shadow: 0 var(--shadow-badge-offset-y) var(--shadow-badge-blur) color-mix(in srgb, var(--status-neutral) 18%, transparent); } .moderation-badge__icon { display: inline-flex; height: 1.25rem; width: 1.25rem; align-items: center; justify-content: center; border-radius: var(--radius-full); background-color: var(--status-warning-surface); background-color: color-mix( in srgb, var(--status-warning) 18%, transparent ); color: var(--status-warning-on); } .moderation-badge[data-variant="neutral"] .moderation-badge__icon { background-color: var(--status-neutral-surface); background-color: color-mix( in srgb, var(--status-neutral) 18%, transparent ); color: var(--status-neutral-on); } .moderation-badge__icon-mark { height: 0.875rem; width: 0.875rem; } .moderation-badge__text { white-space: nowrap; font-size: var(--font-size-xs); line-height: var(--line-height-tight); font-weight: 600; letter-spacing: -0.025em; } .moderation-badge__action { display: inline-flex; align-items: center; gap: 0.375rem; border-radius: var(--radius-full); border-width: 1px; border-color: var(--status-warning-border); background-color: var(--status-warning-surface); padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.25rem; padding-bottom: 0.25rem; font-size: var(--font-size-xs); line-height: var(--line-height-tight); font-weight: 600; text-transform: none; letter-spacing: -0.025em; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-timing-function: cubic-bezier(0, 0, 0.2, 1); background-color: color-mix( in srgb, var(--status-warning) 16%, transparent ); border-color: color-mix( in srgb, var(--status-warning-border) 80%, transparent ); color: var(--status-warning-on); } .moderation-badge[data-variant="warning"] .moderation-badge__action:hover { background-color: color-mix( in srgb, var(--status-warning) 24%, transparent ); } .moderation-badge[data-variant="neutral"] .moderation-badge__action { border-color: var(--status-neutral-border); background-color: var(--status-neutral-surface); background-color: color-mix( in srgb, var(--status-neutral) 16%, transparent ); border-color: color-mix( in srgb, var(--status-neutral-border) 80%, transparent ); color: var(--status-neutral-on); } .moderation-badge[data-variant="neutral"] .moderation-badge__action:hover { background-color: color-mix( in srgb, var(--status-neutral) 24%, transparent ); } .moderation-badge__action:focus-visible { outline: var(--outline-thick-width) solid color-mix(in srgb, var(--status-warning) 38%, transparent); outline-offset: var(--space-3xs); } .moderation-badge[data-variant="neutral"] .moderation-badge__action:focus-visible { outline: var(--outline-thick-width) solid color-mix(in srgb, var(--status-neutral) 38%, transparent); } .moderation-badge__action[disabled] { cursor: wait; opacity: 0.7; } .pill { display: inline-flex; align-items: center; gap: 0.5rem; border-radius: var(--radius-full); border-width: 1px; border-color: var(--status-neutral-border); background-color: var(--status-neutral-surface); padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.25rem; padding-bottom: 0.25rem; font-size: var(--font-size-xs); line-height: var(--line-height-tight); font-weight: 500; color: var(--status-neutral-on); } .pill[data-size="compact"] { padding-left: 0.5rem; padding-right: 0.5rem; padding-top: 0.125rem; padding-bottom: 0.125rem; font-size: var(--font-size-2xs); line-height: var(--line-height-tight); } .pill[data-variant="info"] { border-color: var(--status-info-border); background-color: var(--status-info-surface); color: var(--status-info-on); } .pill[data-variant="success"] { border-color: var(--status-success-border); background-color: var(--status-success-surface); color: var(--status-success-on); } .pill[data-variant="warning"] { border-color: var(--status-warning-border); background-color: var(--status-warning-surface); color: var(--status-warning-on); } .pill[data-variant="critical"] { border-color: var(--status-danger-border); background-color: var(--status-danger-surface); color: var(--status-danger-on); } .pill[data-variant="private"] { border-color: var(--status-private-border); background-color: var(--status-private-surface); color: var(--status-private-on); } .pill[data-variant="neutral"] { border-color: var(--status-neutral-border); background-color: var(--status-neutral-surface); color: var(--status-neutral-on); } .\!menu { display: flex; flex-direction: column; gap: 0.25rem; padding-top: 0.5rem; padding-bottom: 0.5rem; } .menu { display: flex; flex-direction: column; gap: 0.25rem; padding-top: 0.5rem; padding-bottom: 0.5rem; } .menu__heading { padding-left: 1rem; padding-right: 1rem; padding-bottom: 0.5rem; font-size: var(--font-size-xs); line-height: var(--line-height-tight); font-weight: 600; text-transform: uppercase; letter-spacing: 0.025em; color: var(--text-muted); } .menu__separator { margin-top: 0.5rem; margin-bottom: 0.5rem; height: 1px; background-color: var(--border-default); --tw-bg-opacity: 0.2; } .menu__item { outline: 2px solid transparent; outline-offset: 2px; } .menu__item:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .menu__item { position: relative; display: flex; width: 100%; align-items: center; gap: 0.75rem; border-radius: var(--radius-md); padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); font-weight: 500; color: var(--text-primary); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: var(--motion-ease-in-out); } .menu__item:hover { background-color: var(--surface-panel-hover); color: var(--text-primary); } .menu__item[data-state="active"] { background-color: var(--color-accent); --tw-bg-opacity: 0.2; color: var(--color-accent-strong); } .menu__item[data-variant="critical"] { color: var(--color-critical-strong); } .menu__item[data-variant="critical"]:hover { background-color: var(--color-critical); --tw-bg-opacity: 0.2; } .menu__item:disabled, .menu__item[aria-disabled="true"] { cursor: not-allowed; background-color: transparent; color: var(--text-muted); opacity: 0.6; } .menu__item:disabled:hover, .menu__item[aria-disabled="true"]:hover { background-color: transparent; color: var(--text-muted); } .\!card { min-width: 0 !important; --video-card-lift-translate-y: 0 !important; --video-card-backdrop-opacity: 0 !important; --video-card-backdrop-translate-y: var(--space-md-plus) !important; --video-card-backdrop-scale: 1.08 !important; --video-card-backdrop-blur: var(--blur-thumbnail-blur) !important; } .card { min-width: 0; --video-card-lift-translate-y: 0; --video-card-backdrop-opacity: 0; --video-card-backdrop-translate-y: var(--space-md-plus); --video-card-backdrop-scale: 1.08; --video-card-backdrop-blur: var(--blur-thumbnail-blur); } .\!card { outline: 2px solid transparent; outline-offset: 2px; } .\!card:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .\!card { position: relative; border-radius: var(--radius-lg); border-width: 1px; border-color: transparent; background-color: var(--surface-raised); color: var(--text-primary); --tw-shadow: var(--shadow-md); --tw-shadow-colored: var(--shadow-md); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .card { outline: 2px solid transparent; outline-offset: 2px; } .card:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .card { position: relative; border-radius: var(--radius-lg); border-width: 1px; border-color: transparent; background-color: var(--surface-raised); color: var(--text-primary); --tw-shadow: var(--shadow-md); --tw-shadow-colored: var(--shadow-md); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .\!card { transform: translate3d(0, var(--video-card-lift-translate-y), 0) !important; transition-property: transform, box-shadow, border-color, background-color, color !important; will-change: transform !important; isolation: isolate !important; } .card { transform: translate3d(0, var(--video-card-lift-translate-y), 0); transition-property: transform, box-shadow, border-color, background-color, color; will-change: transform; isolation: isolate; } .\!card::before { content: "" !important; position: absolute !important; inset: 0 !important; z-index: 0 !important; opacity: var(--video-card-backdrop-opacity) !important; background-image: var(--video-card-thumb-url, none) !important; background-position: center !important; background-repeat: no-repeat !important; background-size: cover !important; transform: translate3d(0, var(--video-card-backdrop-translate-y), 0) scale(var(--video-card-backdrop-scale)) !important; filter: blur(var(--video-card-backdrop-blur)) !important; transition: opacity var(--motion-duration-base) var(--motion-ease-in-out), transform var(--motion-duration-base) var(--motion-ease-in-out), filter var(--motion-duration-base) var(--motion-ease-in-out) !important; pointer-events: none !important; will-change: opacity, transform, filter !important; } .card::before { content: ""; position: absolute; inset: 0; z-index: 0; opacity: var(--video-card-backdrop-opacity); background-image: var(--video-card-thumb-url, none); background-position: center; background-repeat: no-repeat; background-size: cover; transform: translate3d(0, var(--video-card-backdrop-translate-y), 0) scale(var(--video-card-backdrop-scale)); filter: blur(var(--video-card-backdrop-blur)); transition: opacity var(--motion-duration-base) var(--motion-ease-in-out), transform var(--motion-duration-base) var(--motion-ease-in-out), filter var(--motion-duration-base) var(--motion-ease-in-out); pointer-events: none; will-change: opacity, transform, filter; } .\!card > * { position: relative !important; z-index: 1 !important; } .card > * { position: relative; z-index: 1; } .card--compact { display: flex; flex-direction: row; align-items: flex-start; gap: var(--space-md); } .card--compact .video-card__media { inline-size: clamp( var(--video-card-compact-media-min), calc(var(--video-modal-secondary-min) * 0.4), var(--video-card-compact-media-max) ); flex-basis: clamp( var(--video-card-compact-media-min), calc(var(--video-modal-secondary-min) * 0.4), var(--video-card-compact-media-max) ); display: block; flex-shrink: 0; overflow: hidden; border-radius: var(--radius-lg); } .card--compact .video-card__content { display: flex; min-width: 0px; flex: 1 1 0%; flex-direction: column; gap: var(--space-sm); padding: var(--space-md); } .card--compact .video-card__title { font-size: var(--font-size-base); line-height: var(--line-height-base); font-weight: 600; line-height: 1.375; } .card--compact .video-card__author-name { font-size: var(--font-size-xs); line-height: var(--line-height-tight); } .card--compact .video-card__meta { margin-top: 0px; display: flex; align-items: center; gap: 0.5rem; font-size: var(--font-size-2xs); line-height: var(--line-height-tight); color: var(--text-muted-strong); } .card--compact .video-card__meta .view-count-text { font-size: var(--font-size-2xs); line-height: var(--line-height-tight); } .\!card:hover, .\!card:focus-within { --video-card-lift-translate-y: var(--motion-video-card-hover-translate) !important; --video-card-backdrop-opacity: 0.425 !important; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ) !important; --video-card-backdrop-scale: 1.12 !important; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong) !important; } .card:hover, .card:focus-within { --video-card-lift-translate-y: var(--motion-video-card-hover-translate); --video-card-backdrop-opacity: 0.425; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ); --video-card-backdrop-scale: 1.12; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong); } .\!card:hover, .\!card:focus-within { --video-card-lift-translate-y: var(--motion-video-card-hover-translate) !important; --video-card-backdrop-opacity: 0.425 !important; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ) !important; --video-card-backdrop-scale: 1.12 !important; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong) !important; --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .card:hover, .card:focus-within { --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .\!card:hover, .\!card:focus-within { --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .\!card:focus-visible { border-color: var(--color-accent); --tw-border-opacity: 0.4; --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .card:focus-visible { border-color: var(--color-accent); --tw-border-opacity: 0.4; --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .\!card[data-state="critical"] { border-width: 1px; border-color: var(--color-critical); --tw-border-opacity: 0.4; background-color: var(--surface-raised-critical); } .card[data-state="critical"] { border-width: 1px; border-color: var(--color-critical); --tw-border-opacity: 0.4; background-color: var(--surface-raised-critical); } .\!card[data-state="private"] { background-color: var(--surface-raised-private); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .card[data-state="private"] { background-color: var(--surface-raised-private); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .\!card[data-state="disabled"] { opacity: 0.6; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .card[data-state="disabled"] { opacity: 0.6; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .video-card__title { transition: color var(--motion-duration-base) var(--motion-ease-in-out); } .video-card__title:hover, .video-card__title:focus-visible { color: var(--color-accent); } .form-control { outline: 2px solid transparent; outline-offset: 2px; } .form-control:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .form-control { display: block; width: 100%; border-radius: var(--radius-md); border-width: 1px; border-color: var(--border-subtle); background-color: var(--surface-alt); padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.5rem; padding-bottom: 0.5rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--text-primary); --tw-shadow: var(--shadow-sm); --tw-shadow-colored: var(--shadow-sm); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .form-control::-moz-placeholder { color: var(--text-muted); } .form-control::placeholder { color: var(--text-muted); } .form-control:hover { border-color: var(--border-default); } .form-control:focus-visible { border-color: var(--color-accent-strong); } .form-control:disabled { cursor: not-allowed; background-color: var(--surface-base); color: var(--text-muted); opacity: 0.6; } .form-control:invalid { border-color: var(--color-critical); --tw-border-opacity: 0.6; } .form-control[data-state="locked"], .input[data-state="locked"], .textarea[data-state="locked"], .select[data-state="locked"], textarea.form-control[data-state="locked"], select.form-control[data-state="locked"] { cursor: default; border-color: var(--border-sidebar-strong); background-color: var(--surface-overlay-panel-soft); color: var(--text-muted); } .\!input[data-state="locked"] { cursor: default; border-color: var(--border-sidebar-strong); background-color: var(--surface-overlay-panel-soft); color: var(--text-muted); } .form-control[data-state="locked"]:focus-visible, .input[data-state="locked"]:focus-visible, .textarea[data-state="locked"]:focus-visible, .select[data-state="locked"]:focus-visible, textarea.form-control[data-state="locked"]:focus-visible, select.form-control[data-state="locked"]:focus-visible { border-color: var(--border-sidebar-strong); --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); outline: 2px solid transparent; outline-offset: 2px; --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-offset-width: 0px; } .\!input[data-state="locked"]:focus-visible { border-color: var(--border-sidebar-strong); --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); outline: 2px solid transparent; outline-offset: 2px; --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-offset-width: 0px; } .form-control[data-state="locked"]:disabled, .input[data-state="locked"]:disabled, .textarea[data-state="locked"]:disabled, .select[data-state="locked"]:disabled, textarea.form-control[data-state="locked"]:disabled, select.form-control[data-state="locked"]:disabled { cursor: default; opacity: 1; } .\!input[data-state="locked"]:disabled { cursor: default; opacity: 1; } .\!input { outline: 2px solid transparent; outline-offset: 2px; } .\!input:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .\!input { display: block; width: 100%; border-radius: var(--radius-md); border-width: 1px; border-color: var(--border-subtle); background-color: var(--surface-alt); padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.5rem; padding-bottom: 0.5rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--text-primary); --tw-shadow: var(--shadow-sm); --tw-shadow-colored: var(--shadow-sm); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .\!input::-moz-placeholder { color: var(--text-muted); } .\!input::placeholder { color: var(--text-muted); } .\!input:hover { border-color: var(--border-default); } .\!input:focus-visible { border-color: var(--color-accent-strong); } .\!input:disabled { cursor: not-allowed; background-color: var(--surface-base); color: var(--text-muted); opacity: 0.6; } .\!input:invalid { border-color: var(--color-critical); --tw-border-opacity: 0.6; } .\!input[data-state="locked"], textarea.\!input[data-state="locked"], select.\!input[data-state="locked"] { cursor: default; border-color: var(--border-sidebar-strong); background-color: var(--surface-overlay-panel-soft); color: var(--text-muted); } .\!input[data-state="locked"]:focus-visible, textarea.\!input[data-state="locked"]:focus-visible, select.\!input[data-state="locked"]:focus-visible { box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); border-color: var(--border-sidebar-strong); --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); outline: 2px solid transparent; outline-offset: 2px; --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-offset-width: 0px; } .\!input[data-state="locked"]:disabled, textarea.\!input[data-state="locked"]:disabled, select.\!input[data-state="locked"]:disabled { cursor: default; opacity: 1; } @media (prefers-reduced-motion: reduce) { .\!input { transition: none; } } body.iframe-form label + .\!input { margin-top: var(--space-xs); } .input { outline: 2px solid transparent; outline-offset: 2px; } .input:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .input { display: block; width: 100%; border-radius: var(--radius-md); border-width: 1px; border-color: var(--border-subtle); background-color: var(--surface-alt); padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.5rem; padding-bottom: 0.5rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--text-primary); --tw-shadow: var(--shadow-sm); --tw-shadow-colored: var(--shadow-sm); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .input::-moz-placeholder { color: var(--text-muted); } .input::placeholder { color: var(--text-muted); } .input:hover { border-color: var(--border-default); } .input:focus-visible { border-color: var(--color-accent-strong); } .input:disabled { cursor: not-allowed; background-color: var(--surface-base); color: var(--text-muted); opacity: 0.6; } .input:invalid { border-color: var(--color-critical); --tw-border-opacity: 0.6; } .input[data-state="locked"], textarea.input[data-state="locked"], select.input[data-state="locked"] { cursor: default; border-color: var(--border-sidebar-strong); background-color: var(--surface-overlay-panel-soft); color: var(--text-muted); } .input[data-state="locked"]:focus-visible, textarea.input[data-state="locked"]:focus-visible, select.input[data-state="locked"]:focus-visible { box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); border-color: var(--border-sidebar-strong); --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); outline: 2px solid transparent; outline-offset: 2px; --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-offset-width: 0px; } .input[data-state="locked"]:disabled, textarea.input[data-state="locked"]:disabled, select.input[data-state="locked"]:disabled { cursor: default; opacity: 1; } @media (prefers-reduced-motion: reduce) { .input { transition: none; } } body.iframe-form label + .input { margin-top: var(--space-xs); } .textarea { outline: 2px solid transparent; outline-offset: 2px; } .textarea:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .textarea { display: block; width: 100%; border-radius: var(--radius-md); border-width: 1px; border-color: var(--border-subtle); background-color: var(--surface-alt); padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.5rem; padding-bottom: 0.5rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--text-primary); --tw-shadow: var(--shadow-sm); --tw-shadow-colored: var(--shadow-sm); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .textarea::-moz-placeholder { color: var(--text-muted); } .textarea::placeholder { color: var(--text-muted); } .textarea:hover { border-color: var(--border-default); } .textarea:focus-visible { border-color: var(--color-accent-strong); } .textarea:disabled { cursor: not-allowed; background-color: var(--surface-base); color: var(--text-muted); opacity: 0.6; } .textarea:invalid { border-color: var(--color-critical); --tw-border-opacity: 0.6; } .textarea[data-state="locked"], textarea.textarea[data-state="locked"], select.textarea[data-state="locked"] { cursor: default; border-color: var(--border-sidebar-strong); background-color: var(--surface-overlay-panel-soft); color: var(--text-muted); } .textarea[data-state="locked"]:focus-visible, textarea.textarea[data-state="locked"]:focus-visible, select.textarea[data-state="locked"]:focus-visible { box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); border-color: var(--border-sidebar-strong); --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); outline: 2px solid transparent; outline-offset: 2px; --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-offset-width: 0px; } .textarea[data-state="locked"]:disabled, textarea.textarea[data-state="locked"]:disabled, select.textarea[data-state="locked"]:disabled { cursor: default; opacity: 1; } @media (prefers-reduced-motion: reduce) { .textarea { transition: none; } } body.iframe-form label + .textarea { margin-top: var(--space-xs); } .textarea { min-height: var(--form-textarea-min-height); resize: vertical; } .select { outline: 2px solid transparent; outline-offset: 2px; } .select:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .select { display: block; width: 100%; border-radius: var(--radius-md); border-width: 1px; border-color: var(--border-subtle); background-color: var(--surface-alt); padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.5rem; padding-bottom: 0.5rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--text-primary); --tw-shadow: var(--shadow-sm); --tw-shadow-colored: var(--shadow-sm); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .select::-moz-placeholder { color: var(--text-muted); } .select::placeholder { color: var(--text-muted); } .select:hover { border-color: var(--border-default); } .select:focus-visible { border-color: var(--color-accent-strong); } .select:disabled { cursor: not-allowed; background-color: var(--surface-base); color: var(--text-muted); opacity: 0.6; } .select:invalid { border-color: var(--color-critical); --tw-border-opacity: 0.6; } .select[data-state="locked"], textarea.select[data-state="locked"], select.select[data-state="locked"] { cursor: default; border-color: var(--border-sidebar-strong); background-color: var(--surface-overlay-panel-soft); color: var(--text-muted); } .select[data-state="locked"]:focus-visible, textarea.select[data-state="locked"]:focus-visible, select.select[data-state="locked"]:focus-visible { box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); border-color: var(--border-sidebar-strong); --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); outline: 2px solid transparent; outline-offset: 2px; --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-offset-width: 0px; } .select[data-state="locked"]:disabled, textarea.select[data-state="locked"]:disabled, select.select[data-state="locked"]:disabled { cursor: default; opacity: 1; } @media (prefers-reduced-motion: reduce) { .select { transition: none; } } body.iframe-form label + .select { margin-top: var(--space-xs); } .select { -webkit-appearance: none; -moz-appearance: none; appearance: none; padding-right: 2.5rem; --select-arrow-color: var(--color-border); background-image: linear-gradient(135deg, transparent 50%, var(--select-arrow-color) 50%), linear-gradient(45deg, var(--select-arrow-color) 50%, transparent 50%), linear-gradient( to right, var(--color-border-subtle), var(--color-border-subtle) ); background-position: right var(--form-select-icon-offset) center, right var(--form-select-icon-gap) center, right var(--form-select-icon-hit-area) center; background-size: var(--form-select-icon-size) var(--form-select-icon-size), var(--form-select-icon-size) var(--form-select-icon-size), var(--form-select-divider-width) 60%; background-repeat: no-repeat; } .select:hover { --select-arrow-color: var(--color-border); } .select:focus-visible { --select-arrow-color: var(--color-accent-strong); } .select:disabled { --select-arrow-color: var(--color-border-subtle); } .select:invalid { --select-arrow-color: var(--color-critical); } .\!checkbox { outline: 2px solid transparent; outline-offset: 2px; } .\!checkbox:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .\!checkbox { display: inline-flex; height: 1.25rem; width: 1.25rem; cursor: pointer; -webkit-appearance: none; -moz-appearance: none; appearance: none; align-items: center; justify-content: center; border-radius: 0.25rem; border-width: 1px; border-color: var(--border-subtle); background-color: var(--surface-alt); color: var(--color-white); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .checkbox { outline: 2px solid transparent; outline-offset: 2px; } .checkbox:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .checkbox { display: inline-flex; height: 1.25rem; width: 1.25rem; cursor: pointer; -webkit-appearance: none; -moz-appearance: none; appearance: none; align-items: center; justify-content: center; border-radius: 0.25rem; border-width: 1px; border-color: var(--border-subtle); background-color: var(--surface-alt); color: var(--color-white); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .\!checkbox:hover { border-color: var(--border-default); } .checkbox:hover { border-color: var(--border-default); } .\!checkbox:disabled { cursor: not-allowed; border-color: var(--border-subtle); background-color: var(--surface-base); color: var(--text-muted); opacity: 0.6; } .checkbox:disabled { cursor: not-allowed; border-color: var(--border-subtle); background-color: var(--surface-base); color: var(--text-muted); opacity: 0.6; } .\!checkbox::after { content: "" !important; } .checkbox::after { content: ""; } .\!checkbox::after { pointer-events: none; height: 0.5rem; width: 0.75rem; border-bottom-width: 2px; border-right-width: 2px; border-color: var(--color-white); opacity: 0; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .checkbox::after { pointer-events: none; height: 0.5rem; width: 0.75rem; border-bottom-width: 2px; border-right-width: 2px; border-color: var(--color-white); opacity: 0; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .\!checkbox::after { transform: rotate(45deg) translateY(var(--form-checkbox-checkmark-offset)) scale(0.85) !important; } .checkbox::after { transform: rotate(45deg) translateY(var(--form-checkbox-checkmark-offset)) scale(0.85); } .\!checkbox:checked, .\!checkbox[aria-checked="true"] { border-color: var(--color-accent-strong); background-color: var(--color-accent-strong); } .checkbox:checked, .checkbox[aria-checked="true"] { border-color: var(--color-accent-strong); background-color: var(--color-accent-strong); } .\!checkbox:checked, .\!checkbox[aria-checked="true"] { border-color: var(--color-accent-strong); background-color: var(--color-accent-strong); } .\!checkbox:checked::after, .\!checkbox[aria-checked="true"]::after { opacity: 1; } .checkbox:checked::after, .checkbox[aria-checked="true"]::after { opacity: 1; } .\!checkbox:checked::after, .\!checkbox[aria-checked="true"]::after { opacity: 1; transform: rotate(45deg) translateY(var(--form-checkbox-checkmark-offset)) scale(1) !important; } .checkbox:checked::after, .checkbox[aria-checked="true"]::after { transform: rotate(45deg) translateY(var(--form-checkbox-checkmark-offset)) scale(1); } .\!checkbox:checked::after, .\!checkbox[aria-checked="true"]::after { transform: rotate(45deg) translateY(var(--form-checkbox-checkmark-offset)) scale(1) !important; } .switch { outline: 2px solid transparent; outline-offset: 2px; } .switch:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .switch { position: relative; display: inline-flex; height: 1.5rem; width: 2.75rem; cursor: pointer; align-items: center; border-radius: var(--radius-full); border-width: 1px; border-color: var(--border-subtle); background-color: var(--border-subtle); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .switch::before { content: ""; pointer-events: none; position: absolute; left: 0.125rem; top: 50%; height: 1.25rem; width: 1.25rem; --tw-translate-y: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); border-radius: var(--radius-full); background-color: var(--surface-base); --tw-shadow: var(--shadow-md); --tw-shadow-colored: var(--shadow-md); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .switch:disabled { cursor: not-allowed; border-color: var(--border-subtle); background-color: var(--surface-base); color: var(--text-muted); opacity: 0.6; } .switch[aria-checked="true"], .switch.is-on { border-color: var(--color-accent-strong); background-color: var(--color-accent-strong); } .switch[aria-checked="true"]::before, .switch.is-on::before { --tw-translate-x: 1.25rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } @media (prefers-reduced-motion: reduce) { .form-control, .checkbox, .checkbox::after, .switch, .switch::before, .popover-panel, .popover__panel, .menu__item { transition: none !important; } .\!checkbox, .\!checkbox::after { transition: none !important; } } .bv-modal { position: fixed; inset: 0px; z-index: var(--z-modal-root); display: flex; align-items: center; justify-content: center; padding: 1.5rem; } @media (min-width: 640px) { .bv-modal { padding: 2rem; } } .bv-modal[hidden], .bv-modal.hidden { display: none !important; } .bv-modal__panel { outline: 2px solid transparent; outline-offset: 2px; } .bv-modal__panel:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .bv-modal__panel { position: relative; z-index: var(--z-modal-content); width: 100%; max-width: var(--modal-max-width); border-radius: var(--radius-modal-xl); border-width: 1px; border-color: var(--border-overlay); padding-left: 2rem; padding-right: 2rem; padding-bottom: 2rem; padding-top: 1.75rem; text-align: left; color: var(--text-primary); --tw-shadow: var(--shadow-modal); --tw-shadow-colored: var(--shadow-modal); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); background-color: var(--color-modal-surface, var(--color-overlay-panel)); } .bv-modal__panel:focus-visible { border-color: var(--color-border-translucent-bright); } .bv-modal-backdrop { position: fixed; inset: 0px; z-index: var(--z-modal-overlay); --tw-backdrop-saturate: saturate(1.5); 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); background-color: var(--color-modal-backdrop, var(--color-overlay-muted)); backdrop-filter: blur(var(--blur-modal-backdrop)); -webkit-backdrop-filter: blur(var(--blur-modal-backdrop)); } .bv-modal-backdrop[data-variant="veil"] { --tw-backdrop-blur: blur(64px); 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); background-color: var(--color-overlay-veil); } .bv-modal-backdrop[data-variant="muted"] { background-color: var(--color-overlay-muted); } .modal-sheet { outline: 2px solid transparent; outline-offset: 2px; } .modal-sheet:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .modal-sheet { position: relative; z-index: var(--z-modal-content); width: 100%; max-width: var(--modal-max-width); border-radius: var(--radius-modal-xl); border-width: 1px; border-color: var(--border-overlay); padding-left: 2rem; padding-right: 2rem; padding-bottom: 2rem; padding-top: 1.75rem; text-align: left; color: var(--text-primary); --tw-shadow: var(--shadow-modal); --tw-shadow-colored: var(--shadow-modal); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); background-color: var(--color-modal-surface, var(--color-overlay-panel)); } .modal-sheet:focus-visible { border-color: var(--color-border-translucent-bright); } @media (max-width: calc(1024px - var(--breakpoint-edge-offset))) { .modal-sheet { inline-size: 100vw; block-size: 100vh; max-width: none; max-height: none; margin: 0; border-radius: 0; border: 0; padding-top: calc(var(--space-lg) + env(safe-area-inset-top)); padding-right: calc(var(--space-lg) + env(safe-area-inset-right)); padding-bottom: calc(var(--space-lg) + env(safe-area-inset-bottom)); padding-left: calc(var(--space-lg) + env(safe-area-inset-left)); overflow: auto; } } #playerModal > .modal-sheet { max-width: none; width: 100%; min-height: 100%; padding: 0; border-radius: 0; box-shadow: none; border: none; background-color: var(--color-surface); display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; flex: 1 1 auto; } #modalContainer > [id$="Modal"]:not(#playerModal) .modal-sheet { z-index: var(--z-modal-content); } #modalContainer > #profileModal .modal-sheet, #profileModal[data-modal-stack="top"] .modal-sheet { z-index: var(--z-modal-top-content); } #modalContainer > #eventDetailsModal .modal-sheet { z-index: var(--z-modal-top-content); } #shareNostrModal .modal-sheet { z-index: var(--z-modal-peak-content); } #modalContainer > #loginModal .modal-sheet { z-index: var(--z-modal-peak-content); } .modal-sheet { position: relative; margin-top: 0px; margin-bottom: 0px; width: 100%; overflow: hidden; } #profileModal .modal-sheet { width: 100%; height: 100%; max-width: none; max-height: none; border-radius: 0; border: none; } .modal-sheet { max-width: var(--modal-sheet-inline-max); overscroll-behavior: contain; } @media (max-width: calc(1024px - var(--breakpoint-edge-offset))) { .bv-modal { align-items: stretch; justify-content: stretch; padding: 0; } .bv-modal__panel, .modal-sheet { inline-size: 100vw; block-size: 100vh; max-width: none; max-height: none; margin: 0; border-radius: 0; border: 0; padding-top: calc(var(--space-lg) + env(safe-area-inset-top)); padding-right: calc(var(--space-lg) + env(safe-area-inset-right)); padding-bottom: calc(var(--space-lg) + env(safe-area-inset-bottom)); padding-left: calc(var(--space-lg) + env(safe-area-inset-left)); overflow: auto; } } .modal-header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-md); padding-left: 2rem; padding-right: 2rem; padding-bottom: 1rem; padding-top: 1.75rem; background: transparent; border: 0; } .modal-header[data-variant="flush"] { padding-left: 0px; padding-right: 0px; padding-bottom: 0px; padding-top: 0px; background: transparent; } .modal-close { outline: 2px solid transparent; outline-offset: 2px; } .modal-close:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .modal-close { display: flex; height: 2.5rem; width: 2.5rem; align-items: center; justify-content: center; border-radius: var(--radius-full); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); border: var(--border-width-hairline) solid var(--color-border-translucent-medium); background: var(--color-surface-tint-subtle); color: var(--color-text-frosted-strong); } .modal-close:hover { background: var(--color-border-translucent); border-color: var(--color-border-translucent-stronger); color: var(--color-text); } .modal-back { display: inline-flex; align-items: center; gap: 0.5rem; } @media (min-width: 1024px) { .modal-back { display: none !important; } } .modal-body > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.25rem * var(--tw-space-y-reverse)); } .modal-body { padding-left: 2rem; padding-right: 2rem; padding-bottom: 2rem; padding-top: 0.5rem; overscroll-behavior: contain; scrollbar-width: thin; } .modal-body::-webkit-scrollbar { width: var(--scrollbar-thin-width); } .modal-body::-webkit-scrollbar-track { background: transparent; } .modal-body::-webkit-scrollbar-thumb { background: var(--color-border-translucent); border-radius: var(--radius-full); } /* Modal embed containers ensure iframe wrappers respect modal sizing tokens. */ .modal-embed-frame { display: flex; height: var(--modal-embed-height); max-height: var(--modal-embed-height); width: 100%; flex-direction: column; } .modal-footer { display: flex; flex-direction: column; gap: 0.75rem; padding-left: 2rem; padding-right: 2rem; padding-bottom: 2rem; padding-top: 1rem; } .modal-alert { display: flex; align-items: flex-start; gap: 0.75rem; border-radius: var(--radius-md); border-width: 1px; border-color: var(--status-warning-strong); --tw-border-opacity: 0.6; padding-left: 1rem; padding-right: 1rem; padding-top: 0.75rem; padding-bottom: 0.75rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--status-warning-strong); backdrop-filter: blur(var(--blur-modal-alert)); background-color: var(--color-warning-glass); } .modal-alert__icon { margin-top: 0.125rem; height: 1.25rem; width: 1.25rem; flex-shrink: 0; color: var(--status-warning-strong); } .modal-tile { border-radius: var(--radius-xl); border-width: 1px; border-color: var(--border-overlay); background-color: var(--surface-overlay-panel-soft); padding-left: 1.25rem; padding-right: 1.25rem; padding-top: 1rem; padding-bottom: 1rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--text-frosted-primary); background-color: var(--color-overlay-panel-glass-soft); } .modal-tile > h3 { font-size: var(--font-size-base); line-height: var(--line-height-base); font-weight: 600; color: var(--text-primary); } .modal-primary { outline: 2px solid transparent; outline-offset: 2px; } .modal-primary:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .modal-primary { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; border-radius: var(--radius-full); border-width: 1px; border-color: transparent; background-color: var(--color-accent-strong); padding-left: 1.25rem; padding-right: 1.25rem; padding-top: 0.625rem; padding-bottom: 0.625rem; font-size: var(--font-size-base); line-height: var(--line-height-base); font-weight: 600; color: var(--color-white); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .modal-primary[data-size="sm"] { padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.375rem; padding-bottom: 0.375rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); gap: 0.375rem; } .modal-primary:hover { background-color: var(--color-accent); } .modal-primary:focus-visible { background-color: var(--color-accent-pressed); } .modal-primary:disabled { pointer-events: none; cursor: not-allowed; opacity: 0.6; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } body.iframe-form button.modal-primary { align-self: flex-start; margin-top: var(--space-md); } .modal-primary { width: 100%; justify-content: center; } @media (prefers-reduced-motion: reduce) { .modal-primary { transition-property: none; } } .grid-stack { display: grid; gap: var(--space-lg); } .grid-stack[data-variant="cards"] { grid-template-columns: repeat(1, minmax(0, 1fr)); } @media (min-width: 640px) { .grid-stack[data-variant="cards"] { grid-template-columns: repeat(2, minmax(0, 1fr)); } } @media (min-width: 1280px) { .grid-stack[data-variant="cards"] { grid-template-columns: repeat(3, minmax(0, 1fr)); } } .grid-stack[data-orientation="vertical"] { display: flex; flex-direction: column; gap: var(--space-md); } .bv-stack { display: flex; flex-direction: column; gap: var(--space-lg); } .bv-stack--tight { gap: var(--space-md); } .bv-grid-video { display: grid; gap: var(--space-xl); padding-top: var(--space-lg); padding-bottom: var(--space-lg); grid-template-columns: repeat( auto-fill, minmax(var(--grid-card-min-width), 1fr) ); } .\!card[data-alert="nsfw-owner"] { border-width: 1px; border-color: var(--color-critical); --tw-border-opacity: 0.4; background-color: var(--color-black); } .card[data-alert="nsfw-owner"] { border-width: 1px; border-color: var(--color-critical); --tw-border-opacity: 0.4; background-color: var(--color-black); } .\!card[data-alert="nsfw-owner"]:hover { --tw-border-opacity: 0.6; --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .card[data-alert="nsfw-owner"]:hover { --tw-border-opacity: 0.6; --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .\!card img[data-thumbnail-state="blurred"], .\!card img[data-visual-state="blurred"] { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .card img[data-thumbnail-state="blurred"], .card img[data-visual-state="blurred"], .channel-profile-container img[data-visual-state="blurred"] { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .\!card img[data-thumbnail-state="blurred"], .\!card img[data-visual-state="blurred"] { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); filter: blur(var(--blur-thumbnail-blur)) !important; transform: scale(1.05) !important; } .card img[data-thumbnail-state="blurred"], .card img[data-visual-state="blurred"], .channel-profile-container img[data-visual-state="blurred"] { filter: blur(var(--blur-thumbnail-blur)); transform: scale(1.05); } .\!card img[data-thumbnail-state="blurred"], .\!card img[data-visual-state="blurred"] { filter: blur(var(--blur-thumbnail-blur)) !important; transform: scale(1.05) !important; } .channel-moderation-badge-anchor { display: flex; flex-direction: column; gap: var(--space-sm); pointer-events: none; width: 100%; } .channel-moderation-badge-anchor:empty { display: none; } .channel-moderation-badge-anchor > [data-moderation-badge="true"] { pointer-events: auto; max-width: min(100%, var(--moderation-badge-max-inline)); } #playerModal .video-modal__video { position: relative; } #playerModal .video-modal__video[data-visual-state="blurred"] .video-modal__media { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); filter: blur(var(--blur-thumbnail-blur)); transform: scale(1.05); } #playerModal .video-modal__moderation-bar { width: 100%; display: flex; align-items: center; justify-content: center; padding-bottom: var(--space-md); } #playerModal .video-modal__moderation-bar[hidden] { display: none; } #playerModal .video-modal__moderation-bar .moderation-badge { width: 100%; max-width: none; flex-direction: row; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: var(--space-sm); padding-left: 1rem; padding-right: 1rem; padding-top: 0.75rem; padding-bottom: 0.75rem; } #playerModal .video-modal__moderation-bar .moderation-badge__label { flex: 1 1 auto; } #playerModal .video-modal__moderation-bar .moderation-badge__actions { flex-shrink: 0; } .\!card[data-owner-is-viewer="true"][data-url-health-state="offline"][data-stream-health-state="unhealthy"] { border-width: 1px; border-color: var(--color-critical); --tw-border-opacity: 0.4; background-color: var(--surface-raised-critical); } .card[data-owner-is-viewer="true"][data-url-health-state="offline"][data-stream-health-state="unhealthy"] { border-width: 1px; border-color: var(--color-critical); --tw-border-opacity: 0.4; background-color: var(--surface-raised-critical); } .video-visibility-toggle { display: inline-flex; align-items: center; gap: 0.25rem; border-radius: var(--radius-full); border-width: 1px; border-color: var(--border-default); background-color: var(--surface-panel); padding-left: 0.25rem; padding-right: 0.25rem; padding-top: 0.25rem; padding-bottom: 0.25rem; } .video-visibility-toggle__option { display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-full); border-width: 1px; border-color: transparent; background-color: var(--surface-panel); padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.5rem; padding-bottom: 0.5rem; font-size: var(--font-size-xs); line-height: var(--line-height-tight); font-weight: 600; text-transform: uppercase; color: var(--text-muted); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); } .video-visibility-toggle__option:not(.is-disabled):hover { background-color: var(--surface-panel-hover); color: var(--text-primary); } .video-visibility-toggle__option[data-active="true"] { border-width: 1px; border-color: var(--color-accent); --tw-border-opacity: 0.6; color: var(--text-primary); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .video-visibility-toggle__option.is-disabled { cursor: not-allowed; opacity: 0.45; } .video-modal__container { display: flex; height: 100%; min-height: 100vh; width: 100%; flex: 1 1 0%; flex-direction: column; } .player-modal__container { display: flex; height: 100%; min-height: 100vh; width: 100%; flex: 1 1 0%; flex-direction: column; gap: 1.5rem; } #playerModal { --player-modal-vertical-padding: var(--space-md-plus); --player-modal-primary-inline-padding-lg: clamp( var(--space-sm), 2.75vw, var(--space-lg) ); } #playerModal > .bv-modal__panel { max-width: none; width: 100%; min-height: 100%; padding: 0; border-radius: 0; box-shadow: none; border: none; background-color: var(--color-surface); display: flex; flex-direction: column; align-items: stretch; justify-content: flex-start; flex: 1 1 auto; } .video-modal__panel { position: relative; z-index: var(--z-modal-content); display: flex; flex: 1 1 auto; width: 100%; min-height: 100%; flex-direction: column; overflow: visible; padding: 0; margin: 0; border: none; border-radius: 0; background-color: var(--color-surface); box-shadow: none; } #playerModal .watch-container { width: 100%; max-width: var(--player-modal-inline-max, var(--layout-player-max-width)); margin-inline: auto; padding-inline: var( --player-modal-inline-padding, clamp(var(--space-md), 4vw, var(--space-xl-plus)) ); overflow: visible; } #playerModal .watch-container.video-modal__similar { padding-inline: clamp(var(--space-3xs), 0.6vw, var(--space-2xs)); } #playerModal .video-modal__primary > .watch-container:first-child { padding-block-start: var(--player-modal-vertical-padding); } #playerModal .video-modal__primary > .watch-container:last-child { padding-block-end: var(--player-modal-vertical-padding); } #playerModal .video-modal__secondary > .watch-container:last-child { padding-block-end: var(--player-modal-vertical-padding); } #playerModal .modal-nav .watch-container { max-width: none; margin-inline: 0; } #playerModal .modal-info-panel { display: flex; flex-direction: column; gap: var(--space-md-plus); } #playerModal h2#videoTitle { margin: 0; font-size: clamp( var(--font-size-xl), calc(var(--font-size-modal-title-base) + 0.5vw), var(--font-size-xl-plus) ); font-weight: 600; line-height: 1.3; color: var(--color-text); min-width: 0; overflow-wrap: break-word; word-break: break-word; } @media (min-width: 1024px) { .video-modal__headline #videoTitle.video-modal__title { flex: 1 1 0%; min-width: 0; max-width: calc(100% - var(--space-3xl) - var(--space-md)); } .video-modal__headline .video-modal__status { flex: 0 0 auto; max-width: clamp(var(--space-xl), 25%, var(--space-3xl)); margin-left: auto; } } #playerModal .modal-meta { font-size: var(--font-size-sm); line-height: 1.4; color: var(--color-text-muted); } #playerModal .modal-view-count { font-weight: 600; color: var(--color-text); } #playerModal .channel-card { display: flex; align-items: center; gap: var(--space-md); padding: var(--space-md) var(--space-lg); border-radius: var(--radius-xl); border: var(--border-width-hairline) solid var(--color-border-translucent); background-color: var(--color-surface); box-shadow: var(--shadow-sm); } #playerModal .player-modal__module { display: flex; flex-direction: column; gap: clamp(var(--space-2xs), 1vw, var(--space-sm)); width: 100%; padding: clamp(var(--space-xs), 1vw, var(--space-sm)); border-radius: var(--radius-xl); border: var(--border-width-hairline) solid var(--color-border-translucent); background-color: var(--color-surface); box-shadow: var(--shadow-sm); } #playerModal .player-modal__module-title { margin: 0; font-size: var(--font-size-lg); font-weight: 600; line-height: 1.3; color: var(--color-text); } #playerModal .player-modal__module-list { display: flex; flex-direction: column; gap: var(--space-sm); width: 100%; margin: 0; padding: 0; list-style: none; } #playerModal .video-modal__similar .player-modal__module { gap: clamp(var(--space-3xs), 0.6vw, var(--space-xs)); padding: clamp(var(--space-2xs), 0.6vw, var(--space-xs)); border-width: 0; box-shadow: none; background-color: transparent; } #playerModal .video-modal__similar .player-modal__module-title { padding-inline: clamp(var(--space-3xs), 0.6vw, var(--space-2xs)); } #playerModal .video-modal__similar .player-modal__module-list { gap: clamp(var(--space-3xs), 0.6vw, var(--space-xs)); padding-inline: clamp(var(--space-3xs), 0.6vw, var(--space-2xs)); padding-bottom: clamp(var(--space-3xs), 0.6vw, var(--space-2xs)); } #playerModal .player-modal__module-scroll { max-height: clamp( var(--player-modal-module-scroll-min-height), calc( 100vh - (var(--player-modal-vertical-padding) * 2) - var(--space-2xl) ), var(--player-modal-module-scroll-max-height) ); overflow-y: auto; overflow-x: hidden; overscroll-behavior: contain; scrollbar-gutter: stable; padding-inline-end: var(--space-xs); } #playerModal .video-modal__similar .player-modal__module-scroll { max-height: none; overflow: visible; padding-inline-end: 0; scrollbar-gutter: auto; } #playerModal .player-modal__module-scroll > li { scroll-margin-block: var(--space-xs); } @media (max-width: 480px) { #playerModal .modal-nav .icon-button { width: var(--space-xl); height: var(--space-xl); min-width: var(--space-xl); min-height: var(--space-xl); } #playerModal .watch-container { padding-inline: var(--space-sm); } #playerModal .channel-card { gap: var(--space-sm); padding: var(--space-sm) var(--space-md); } } #playerModal .channel-card__avatar { flex-shrink: 0; width: var(--avatar-size-lg); height: var(--avatar-size-lg); border-radius: var(--radius-full); overflow: hidden; background-color: var(--color-border-subtle); } #playerModal .channel-card__avatar img { display: block; width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; } #playerModal .channel-card__name { margin: 0; font-size: var(--font-size-lg); font-weight: 600; color: var(--color-text); } #playerModal .channel-card__npub { margin: 0; font-size: var(--font-size-sm); color: var(--color-text-muted); } #playerModal .description-panel { padding: var(--space-md-plus) var(--space-lg); border-radius: var(--radius-xl); border: var(--border-width-hairline) solid var(--color-border-translucent); background-color: var(--color-surface); box-shadow: var(--shadow-sm); } #playerModal .description-panel p { margin: 0; font-size: var(--font-size-sm); line-height: 1.6; color: var(--color-text); } .player-modal__content { position: relative; z-index: var(--z-modal-content); display: flex; flex: 1 1 auto; width: 100%; min-height: 100%; flex-direction: column; overflow: visible; padding: 0; margin: 0; border: none; border-radius: 0; background-color: var(--color-surface); box-shadow: none; } @media (prefers-reduced-motion: reduce) { .player-modal__content { transition-property: none; } } #playerModal .modal-nav { position: sticky; top: 0px; z-index: var(--z-overlay-nav); --tw-translate-y: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; background-color: var(--surface-overlay-panel); background-image: linear-gradient( 180deg, color-mix(in srgb, var(--surface-overlay-panel) 94%, transparent) 0%, color-mix(in srgb, var(--surface-overlay-panel) 88%, transparent) 100% ); border-bottom: var(--border-width-hairline) solid var(--border-overlay); backdrop-filter: blur(var(--modal-nav-backdrop-blur)); -webkit-backdrop-filter: blur(var(--modal-nav-backdrop-blur)); } #playerModal .modal-nav__bar { display: flex; width: 100%; align-items: center; justify-content: flex-start; gap: 0.5rem; padding-block: var(--space-xs); padding-inline: clamp(var(--space-sm), 2.5vw, var(--space-lg)); } #playerModal .modal-nav__rail { display: flex; width: 100%; align-items: center; justify-content: space-between; gap: 0.5rem; } #playerModal .modal-nav__slot { display: flex; align-items: center; gap: 0.5rem; } #playerModal .modal-nav__slot--context { justify-content: flex-end; margin-inline-start: auto; min-inline-size: 0; } #playerModal .modal-nav__context { font-size: var(--font-size-xs); line-height: var(--line-height-tight); font-weight: 600; text-transform: uppercase; letter-spacing: 0.025em; color: var(--text-muted); } #playerModal .modal-nav .modal-actions { display: flex; align-items: center; gap: 0.5rem; margin-left: 0; align-self: stretch; } #playerModal .modal-nav .icon-button { display: inline-flex; align-items: center; justify-content: center; border-radius: var(--radius-full); color: var(--text-muted); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-timing-function: cubic-bezier(0, 0, 0.2, 1); inline-size: var(--icon-size-md); block-size: var(--icon-size-md); background: var(--surface-overlay-panel-tint); border: var(--border-width-hairline) solid var(--border-overlay); color: var(--color-text-muted); } #playerModal .modal-nav .icon-button:hover, #playerModal .modal-nav .icon-button:focus-visible { background: var(--surface-overlay-panel-soft); border-color: var(--border-overlay-strong); color: var(--color-text); } .modal-nav--hidden { --tw-translate-y: -100%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } .modal-nav--visible { --tw-translate-y: 0px; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } .video-modal__layout { --video-modal-secondary-size: clamp( var(--video-modal-secondary-min), 46vw, var(--video-modal-secondary-max) ); --video-modal-gap: clamp(var(--space-2xs), 0.85vw, var(--space-sm)); display: grid; gap: var(--video-modal-gap); width: min(100%, var(--video-modal-layout-max)); margin-inline: auto; grid-template-columns: minmax(0, 1fr); grid-template-areas: "primary" "secondary"; align-items: start; } @media (min-width: 1024px) { .video-modal__layout { --video-modal-secondary-size: clamp( var(--video-modal-secondary-min), 30vw, var(--video-modal-secondary-max) ); grid-template-columns: minmax(0, 1fr) minmax( var(--video-modal-secondary-min), var(--video-modal-secondary-size) ); grid-template-areas: "primary secondary"; align-items: stretch; grid-auto-flow: column; } .video-modal__primary { min-width: 0; min-height: 0; grid-area: primary; } .video-modal__secondary { min-width: var(--video-modal-secondary-min); min-height: 0; max-width: var(--video-modal-secondary-size); grid-area: secondary; height: 100%; } #playerModal .video-modal__layout .watch-container { max-width: none; margin-inline: 0; width: 100%; } } @media (min-width: 1280px) { .video-modal__layout { --video-modal-secondary-size: clamp( var(--video-modal-secondary-min), 28vw, var(--video-modal-secondary-max) ); } } #playerModal .video-modal__layout { display: grid; } @media (min-width: 1024px) { #playerModal .video-modal__layout { grid-template-columns: minmax(0, 1fr) minmax( var(--video-modal-secondary-min), var(--video-modal-secondary-size) ); grid-template-areas: "primary secondary"; align-items: stretch; grid-auto-flow: column; } #playerModal .video-modal__primary { grid-area: primary; } #playerModal .video-modal__secondary { grid-area: secondary; } #playerModal .video-modal__primary { --player-modal-inline-padding: var( --player-modal-primary-inline-padding-lg, clamp(var(--space-sm), 2.75vw, var(--space-lg)) ); } #playerModal .modal-nav__bar { --player-modal-inline-padding: var( --player-modal-primary-inline-padding-lg, clamp(var(--space-sm), 2.75vw, var(--space-lg)) ); } } .revert-modal__layout { display: grid; gap: 1.5rem; } @media (min-width: 1024px) { .revert-modal__layout { grid-template-columns: minmax( var(--revert-modal-sidebar-min), var(--revert-modal-sidebar-width) ) minmax(0, 1fr); } } .video-modal__primary { display: flex; flex-direction: column; gap: 1.5rem; min-width: 0; min-height: 0; } .video-modal__secondary { display: flex; flex-direction: column; gap: 1rem; min-width: 0; min-height: 0; width: 100%; align-self: stretch; } .video-modal__similar { display: none; } @media (min-width: 1024px) { .video-modal__similar { display: flex; flex-direction: column; gap: 1.5rem; align-self: stretch; flex: 1 1 auto; min-height: 0; } #playerModal .video-modal__similar .player-modal__module { height: 100%; display: flex; flex: 1 1 auto; min-height: 0; flex-direction: column; } #playerModal .video-modal__similar .player-modal__module-list { flex: 1 1 auto; min-height: 0; } #playerModal .video-modal__similar .player-modal__module-scroll { height: 100%; max-height: none; min-height: 0; } } #playerModal .player-modal__module-item { width: 100%; } #playerModal .player-modal__module-item > .card:not(.player-modal__similar-card) { display: flex; width: 100%; flex-direction: row; flex-wrap: nowrap; align-items: stretch; gap: var(--space-md); } #playerModal .player-modal__module-item > .\!card:not(.player-modal__similar-card) { display: flex; width: 100%; flex-direction: row; flex-wrap: nowrap; align-items: stretch; gap: var(--space-md); } #playerModal .player-modal__module-item > .card:not(.player-modal__similar-card) .video-card__media { width: clamp( var(--video-modal-item-media-min), 18vw, var(--video-modal-item-media-max) ); } #playerModal .player-modal__module-item > .\!card:not(.player-modal__similar-card) .video-card__media { width: clamp( var(--video-modal-item-media-min), 18vw, var(--video-modal-item-media-max) ) !important; } #playerModal .player-modal__module-item > .card:not(.player-modal__similar-card) .video-card__media { flex-shrink: 0; overflow: hidden; border-radius: var(--radius-lg); } #playerModal .player-modal__module-item > .\!card:not(.player-modal__similar-card) .video-card__media { flex-shrink: 0; overflow: hidden; border-radius: var(--radius-lg); } #playerModal .player-modal__module-item > .card:not(.player-modal__similar-card) .video-card__content { padding: clamp(var(--space-sm), 1.25vw, var(--space-md)); } #playerModal .player-modal__module-item > .\!card:not(.player-modal__similar-card) .video-card__content { padding: clamp(var(--space-sm), 1.25vw, var(--space-md)) !important; } #playerModal .player-modal__module-item > .card:not(.player-modal__similar-card) .video-card__content { display: flex; min-width: 0px; flex: 1 1 0%; flex-direction: column; gap: var(--space-sm); } #playerModal .player-modal__module-item > .\!card:not(.player-modal__similar-card) .video-card__content { display: flex; min-width: 0px; flex: 1 1 0%; flex-direction: column; gap: var(--space-sm); } #playerModal .player-modal__module-item > .card:not(.player-modal__similar-card) .video-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; font-size: var(--font-size-xs); line-height: var(--line-height-tight); color: var(--text-muted-strong); } #playerModal .player-modal__module-item > .\!card:not(.player-modal__similar-card) .video-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; font-size: var(--font-size-xs); line-height: var(--line-height-tight); color: var(--text-muted-strong); } #playerModal .video-modal__similar .player-modal__module-list { gap: clamp(var(--space-2xs), 0.85vw, var(--space-sm)); } .player-modal__similar-card { outline: 2px solid transparent; outline-offset: 2px; } .player-modal__similar-card:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .player-modal__similar-card { position: relative; display: flex; width: 100%; min-width: 0px; align-items: flex-start; gap: 0.75rem; border-radius: var(--radius-xl); padding: 0.5rem; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); } .player-modal__similar-card:hover, .player-modal__similar-card:focus-within { background-color: var(--surface-panel-hover); } .player-modal__similar-card-media { position: relative; display: block; flex-shrink: 0; overflow: hidden; border-radius: var(--radius-lg); background-color: var(--surface-alt); width: var(--similar-card-media-width); aspect-ratio: 16 / 9; background-image: var(--similar-card-thumb-url, none); background-position: center; background-size: cover; } @media (max-width: 640px) { .player-modal__similar-card-media { width: var(--similar-card-media-width-sm); } } .player-modal__similar-card-media img { display: block; width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; border-radius: inherit; } .player-modal__similar-card-content { display: flex; min-width: 0px; flex: 1 1 0%; flex-direction: column; gap: 0.25rem; } .player-modal__similar-card-title { font-size: var(--font-size-sm); line-height: var(--line-height-snug); font-weight: 600; line-height: 1.375; color: var(--text-primary); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); min-width: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; } .player-modal__similar-card:hover .player-modal__similar-card-title, .player-modal__similar-card-title:focus-visible { color: var(--color-accent-strong); } .player-modal__similar-card-author { display: flex; min-width: 0px; align-items: center; } .player-modal__similar-card-author-meta { display: flex; min-width: 0px; flex-direction: column; } .player-modal__similar-card-author-name { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: var(--font-size-xs); line-height: var(--line-height-tight); font-weight: 500; color: var(--text-muted); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); } .player-modal__similar-card:hover .player-modal__similar-card-author-name { color: var(--color-text-strong); } /* Hidden for now to match cleaner modern look, but kept in DOM if needed */ .player-modal__similar-card-author-npub { display: none; } .player-modal__similar-card-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.25rem; font-size: var(--font-size-2xs); line-height: var(--line-height-tight); color: var(--text-muted-strong); min-width: 0; } .player-modal__similar-card-timestamp { white-space: nowrap; } .video-modal__stage { position: relative; isolation: isolate; overflow: visible; --video-modal-ambient-bleed: clamp( var(--space-2xl), 12vw, var(--space-5xl) ); --video-modal-ambient-scale: 1.38; --video-modal-ambient-blur: clamp( var(--video-modal-ambient-blur-min), 20vw, var(--video-modal-ambient-blur-max) ); --video-modal-ambient-opacity: 1; } .video-modal__video { position: relative; z-index: 1; border-radius: var(--radius-xl); padding-block: clamp(var(--space-xs), 2.5vw, var(--space-md-plus)); background-color: transparent; box-shadow: 0 0 0 var(--border-width-hairline) color-mix(in srgb, var(--color-border-strong) 8%, transparent) inset; overflow: visible; } .video-modal__ambient { position: absolute; inset: calc(var(--video-modal-ambient-bleed) * -1); border-radius: calc(var(--radius-3xl) + var(--video-modal-ambient-bleed)); pointer-events: none; z-index: 0; display: block; overflow: visible; } .video-modal__ambient::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: radial-gradient( circle at 50% 50%, color-mix(in srgb, var(--color-overlay-strong) 18%, transparent) 0%, color-mix(in srgb, var(--color-overlay) 34%, transparent) 62%, transparent 100% ); opacity: 0.9; mix-blend-mode: screen; pointer-events: none; } .video-modal__ambient-canvas { position: relative; width: 100%; height: 100%; display: block; transform: scale(var(--video-modal-ambient-scale)); filter: blur(var(--video-modal-ambient-blur)) saturate(2) brightness(1.24); opacity: var(--video-modal-ambient-opacity); } @media (min-width: 1024px) { .video-modal__video { position: sticky; top: calc(var(--space-2xl) + var(--space-3xl)); z-index: 1; } .video-modal__status { flex-basis: clamp(var(--space-xl), 25%, var(--space-3xl)); max-width: clamp(var(--space-xl), 25%, var(--space-3xl)); } .video-modal__details { position: relative; z-index: 2; margin-top: var(--space-lg); } } #playerModal .video-modal__video video { position: relative; z-index: 1; background-color: var(--color-black); border-radius: var(--radius-lg); box-shadow: var(--shadow-video-modal); max-height: min(80vh, calc(100vw * 9 / 16)); -o-object-fit: contain; object-fit: contain; } .video-modal__media { display: block; aspect-ratio: 16 / 9; width: 100%; -o-object-fit: contain; object-fit: contain; } .video-modal__details { display: flex; flex-direction: column; gap: 1.5rem; } .video-modal__meta { border-bottom-width: 1px; border-color: var(--border-default); --tw-border-opacity: 0.2; padding-bottom: 1rem; } /* Video modal tag strip */ .video-modal__tags { margin-left: -0.25rem; margin-right: -0.25rem; display: flex; gap: 0.5rem; padding-left: 0.25rem; padding-right: 0.25rem; } .video-modal__similar .video-modal__tags { margin-bottom: clamp(var(--space-xs), 0.9vw, var(--space-md)); } .video-modal__tags[hidden] { display: none; } .video-modal__tags[data-fade] { position: relative; } .video-modal__tags[data-fade]::before, .video-modal__tags[data-fade]::after { content: ""; position: sticky; top: 0; bottom: 0; width: var(--space-lg); pointer-events: none; z-index: 1; } .video-modal__tags[data-fade]::before { left: 0; background: linear-gradient( to right, var(--surface-overlay-muted), transparent ); } .video-modal__tags[data-fade]::after { right: 0; background: linear-gradient( to left, var(--surface-overlay-muted), transparent ); } .video-tag-strip { display: flex; flex-wrap: nowrap; align-items: center; gap: var(--space-xs); overflow: hidden; } .video-tag-strip--scroll { overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; padding-bottom: var(--space-xs); scrollbar-width: none; -ms-overflow-style: none; } .video-tag-strip--scroll::-webkit-scrollbar { display: none; width: 0; height: 0; } .video-tag-pill { display: inline-flex; align-items: center; gap: 0.5rem; border-radius: var(--radius-full); border-width: 1px; border-color: var(--status-neutral-border); background-color: var(--status-neutral-surface); padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.25rem; padding-bottom: 0.25rem; font-size: var(--font-size-2xs); line-height: var(--line-height-tight); font-weight: 500; color: var(--status-neutral-on); position: relative; justify-content: center; white-space: nowrap; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; min-height: calc(var(--space-sm) + var(--space-xs)); margin-inline-end: 0.25rem; } .video-tag-pill__label { transition-property: opacity; transition-duration: 150ms; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); opacity: 1; } .video-tag-pill__icon { position: absolute; inset: 0px; display: flex; align-items: center; justify-content: center; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); opacity: 0; transform: scale(0.8); } .video-tag-pill__icon svg { height: 0.75rem; width: 0.75rem; } .video-tag-pill:hover .video-tag-pill__label, .video-tag-pill:focus-visible .video-tag-pill__label { opacity: 0; } .video-tag-pill:hover .video-tag-pill__icon, .video-tag-pill:focus-visible .video-tag-pill__icon { opacity: 1; transform: scale(1); } .video-modal__actions-row { display: flex; width: 100%; flex-wrap: wrap; align-items: flex-start; -moz-column-gap: 0.75rem; column-gap: 0.75rem; row-gap: 0.75rem; } @media (min-width: 640px) { .video-modal__actions-row { -moz-column-gap: 1rem; column-gap: 1rem; } } .video-modal__reactions, .video-modal__actions-group { flex: 1 1 var(--menu-min-width); min-inline-size: 0; } .video-modal__reactions { display: flex; flex-basis: 100%; flex-wrap: wrap; align-items: flex-start; gap: 0.75rem; } @media (min-width: 640px) { .video-modal__reactions { gap: 1rem; } } @media (min-width: 768px) { .video-modal__reactions { flex-basis: auto; } } .video-modal__reaction-buttons { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; } .video-modal__reaction-button { --video-modal-reaction-active-bg: color-mix( in srgb, var(--color-accent) 22%, var(--surface-overlay-panel) ); --video-modal-reaction-active-border: color-mix( in srgb, var(--color-accent) 38%, var(--border-overlay) ); } .video-modal__reaction-button[aria-pressed="true"] { color: var(--color-accent-strong); background-color: var(--video-modal-reaction-active-bg); border-color: var(--video-modal-reaction-active-border); } .video-modal__reaction-button[aria-pressed="true"] .video-modal__reaction-count { color: var(--color-accent-strong); } .video-modal__reaction-count { font-size: var(--font-size-sm); line-height: var(--line-height-snug); font-weight: 600; color: var(--text-muted); } .video-modal__reaction-meter { display: flex; align-items: center; gap: var(--space-sm); flex-wrap: wrap; flex: 1 1 var(--menu-min-width); max-inline-size: 100%; } .video-modal__reaction-meter-label { font-size: var(--font-size-sm); line-height: var(--line-height-snug); font-weight: 500; color: var(--text-muted); min-inline-size: var(--video-modal-reaction-label-min-inline); } .video-modal__reaction-meter-track { position: relative; flex: 1 1 auto; inline-size: 100%; block-size: var(--space-xs); border-radius: var(--radius-full); background-color: var(--color-border-muted); overflow: hidden; } .video-modal__reaction-meter-fill { position: absolute; inset-inline-start: 0; inset-block-start: 0; block-size: 100%; max-inline-size: 100%; inline-size: var(--video-modal-reaction-fill, 0%); width: var(--video-modal-reaction-fill, 0%); background-image: linear-gradient( 90deg, var(--color-accent) 0%, var(--color-accent-strong) 100% ); transition: inline-size var(--motion-duration-base) var(--motion-ease-out); } .video-modal__reaction-meter-fill--empty { inline-size: 0%; width: 0%; } .video-modal__actions-group { display: flex; flex-basis: 100%; flex-wrap: wrap; align-items: flex-start; justify-content: flex-start; gap: 0.75rem; } @media (min-width: 768px) { .video-modal__actions-group { flex-basis: auto; justify-content: flex-end; margin-inline-start: auto; } } .video-modal__action-button { display: inline-flex; height: 2.75rem; align-items: center; justify-content: center; gap: 0.5rem; border-radius: var(--radius-full); font-size: var(--font-size-sm); line-height: var(--line-height-snug); font-weight: 600; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); min-width: var(--video-modal-action-min-width); padding-inline: var(--space-md); border-width: var(--border-width-hairline); border-style: solid; } .bv-modal.video-modal__action-label { display: none; } .profile-pane.video-modal__action-label { display: none; } .video-modal__action-label { display: none; } @media (min-width: 640px) { .video-modal__action-label { display: inline; } } .video-modal__action-icon { height: 1.25rem; width: 1.25rem; } .video-modal__channel, .video-modal__description, .video-modal__stats { border-radius: 1rem; border-width: 1px; border-color: var(--border-default); --tw-border-opacity: 0.2; background-color: var(--surface-base); padding-left: 1.25rem; padding-right: 1.25rem; padding-top: 1rem; padding-bottom: 1rem; --tw-shadow: var(--shadow-sm); --tw-shadow-colored: var(--shadow-sm); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .video-modal__description-body { overflow-wrap: anywhere; word-break: break-word; } .video-modal__description-body a { color: var(--color-accent-strong); text-decoration: underline; text-decoration-color: currentColor; word-break: break-word; } .video-modal__description-body a:hover, .video-modal__description-body a:focus-visible { color: var(--color-accent-pressed); } .video-modal__comments { border-radius: 1rem; border-width: 1px; border-color: var(--border-default); --tw-border-opacity: 0.2; background-color: var(--surface-base); padding-left: 1.25rem; padding-right: 1.25rem; padding-top: 1.25rem; padding-bottom: 1.25rem; --tw-shadow: var(--shadow-sm); --tw-shadow-colored: var(--shadow-sm); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); display: flex; flex-direction: column; gap: var(--space-lg); } .comment-thread { display: flex; flex-direction: column; gap: var(--space-lg); } .comment-thread__header { display: flex; align-items: flex-start; justify-content: space-between; gap: var(--space-sm); } .comment-thread__title { font-size: var(--font-size-lg); line-height: var(--line-height-base); font-weight: 600; color: var(--text-primary); } .comment-thread__count { font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--text-muted); margin: 0; } .comment-thread__empty { font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--text-muted); margin: 0; padding: var(--space-md); border-radius: var(--radius-lg); border: var(--border-width-hairline) dashed color-mix(in srgb, var(--border-default) 40%, transparent); background-color: var(--surface-alt); } .comment-thread__list { display: flex; flex-direction: column; gap: var(--space-md); margin: 0; padding: 0; list-style: none; } .comment-thread__item { display: grid; grid-template-columns: auto 1fr; gap: var(--space-md); padding-block: var(--space-sm); border-bottom: var(--border-width-hairline) solid var(--border-subtle); } .comment-thread__item:last-child { border-bottom: none; padding-bottom: 0; } .comment-thread__avatar { inline-size: var(--comment-avatar-size); block-size: var(--comment-avatar-size); } .comment-thread__avatar img { border-radius: var(--radius-full); -o-object-fit: cover; object-fit: cover; inline-size: 100%; block-size: 100%; } .comment-thread__content { display: flex; flex-direction: column; gap: var(--space-xs); min-inline-size: 0; } .comment-thread__meta { font-size: var(--font-size-xs); line-height: var(--line-height-tight); color: var(--text-muted); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs); } .comment-thread__author { font-weight: 600; color: var(--text-primary); } .comment-thread__timestamp { color: var(--text-muted); } .comment-thread__body { color: var(--text-primary); line-height: 1.6; word-break: break-word; } .comment-thread__actions { font-size: var(--font-size-xs); line-height: var(--line-height-tight); display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-sm); } .comment-thread__actions button { outline: 2px solid transparent; outline-offset: 2px; } .comment-thread__actions button:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .comment-thread__actions button { display: inline-flex; align-items: center; gap: 0.25rem; border-radius: var(--radius-full); border-width: 1px; border-color: var(--border-subtle); background-color: var(--surface-base); padding-left: 0.75rem; padding-right: 0.75rem; padding-top: 0.25rem; padding-bottom: 0.25rem; font-size: var(--font-size-xs); line-height: var(--line-height-tight); font-weight: 600; color: var(--text-muted); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); } .comment-thread__actions button:hover, .comment-thread__actions button:focus-visible { color: var(--text-primary); border-color: var(--border-default); } .comment-thread__replies { display: flex; flex-direction: column; gap: var(--space-md); margin: 0; margin-inline-start: calc(var(--space-lg) + var(--space-sm)); padding-inline-start: var(--space-md); padding-block-start: var(--space-md); border-inline-start: var(--border-width-hairline) solid var(--border-subtle); list-style: none; } .comment-thread__load-more { display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; border-radius: var(--radius-full); border-width: 1px; border-color: var(--border-subtle); background-color: var(--surface-base); padding-left: 1rem; padding-right: 1rem; padding-top: 0.5rem; padding-bottom: 0.5rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); font-weight: 600; color: var(--text-primary); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); } .comment-thread__load-more:hover, .comment-thread__load-more:focus-visible { border-color: var(--border-default); color: var(--text-primary); background-color: color-mix(in srgb, var(--surface-alt) 70%, transparent); } .comment-thread__disabled { font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--text-muted); border-radius: var(--radius-lg); border: var(--border-width-hairline) dashed color-mix(in srgb, var(--border-default) 32%, transparent); background-color: var(--surface-alt); padding: var(--space-md); } .comment-composer { display: flex; flex-direction: column; gap: var(--space-md); border-top: var(--border-width-hairline) solid var(--border-subtle); padding-top: var(--space-lg); } .comment-composer__field { display: flex; flex-direction: column; gap: var(--space-2xs); } .comment-composer__label { font-size: var(--font-size-sm); line-height: var(--line-height-snug); font-weight: 600; color: var(--text-primary); } .comment-composer__textarea { min-block-size: var(--comment-composer-min-height); } .comment-composer__footer { display: flex; flex-direction: column; gap: var(--space-sm); } .comment-composer__hint { font-size: var(--font-size-xs); line-height: var(--line-height-tight); color: var(--text-muted); margin: 0; } .comment-composer__actions { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--space-sm); } .comment-composer__char-count { font-size: var(--font-size-xs); line-height: var(--line-height-tight); font-weight: 500; color: var(--text-muted); } .comment-composer__submit { outline: 2px solid transparent; outline-offset: 2px; } .comment-composer__submit:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .comment-composer__status { margin: 0; } @media (min-width: 640px) { .comment-composer__footer { flex-direction: row; align-items: center; justify-content: space-between; } } .video-modal__progress { height: 0.5rem; width: 100%; overflow: hidden; border-radius: var(--radius-full); background-color: var(--border-subtle); } .video-modal__stat-metrics { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--text-muted); } .profile-modal { display: flex; flex-direction: column; inline-size: 100%; block-size: 100%; min-block-size: 100%; max-block-size: none; overflow: hidden; --modal-sheet-inline-max: var(--profile-modal-inline-max); --profile-modal-scale: 0.9; --profile-modal-gap: calc( (var(--space-md) - var(--space-3xs)) * var(--profile-modal-scale) ); --profile-modal-padding-inline: calc( (var(--space-lg) - var(--space-md)) * var(--profile-modal-scale) ); --profile-modal-padding-block-start: calc( (var(--space-md) - var(--space-2xs)) * var(--profile-modal-scale) ); --profile-modal-padding-block-end: calc( (var(--space-lg) - var(--space-sm)) * var(--profile-modal-scale) ); --profile-modal-nav-gap: calc(var(--space-xs) * var(--profile-modal-scale)); } .profile-modal__content { display: flex; flex: 1 1 auto; flex-direction: column; block-size: 100%; min-block-size: 0; transform: scale(var(--profile-modal-scale)); transform-origin: top center; } .profile-modal__active-profile { outline: 2px solid transparent; outline-offset: 2px; } .profile-modal__active-profile:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .profile-modal__active-profile { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; padding: 1rem; } .profile-modal__active-details { display: flex; flex: 1 1 var(--profile-modal-active-min-width); flex-direction: column; gap: var(--space-2xs); min-inline-size: 0; } .profile-modal__active-meta { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs); } .profile-hashtag-list { display: flex; flex-wrap: wrap; gap: var(--space-xs); margin: 0; padding: 0; list-style: none; } .profile-hashtag-item { display: inline-flex; align-items: center; gap: var(--space-3xs); padding-block: var(--space-3xs); padding-inline: var(--space-sm); border-radius: var(--radius-full); border: var(--border-width-hairline) solid var(--color-border-translucent); background-color: var(--color-panel); color: var(--color-text); font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); line-height: var(--font-lineheight-tight); } .profile-hashtag-remove { display: inline-flex; align-items: center; justify-content: center; inline-size: var(--space-md); block-size: var(--space-md); border-radius: var(--radius-full); color: var(--color-text-muted); background: transparent; border: none; padding: 0; cursor: pointer; } .profile-hashtag-remove:hover { color: var(--color-text); } .profile-modal__remove-button { border-width: 2px; } .profile-modal__remove-button:focus-visible { --tw-ring-color: var(--color-critical-strong); } .profile-modal__add-profile { --tw-ring-color: var(--color-ring-alert); outline: 2px solid transparent; outline-offset: 2px; } .profile-modal__add-profile:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .profile-modal__add-profile { position: relative; display: flex; width: 100%; align-items: center; justify-content: flex-start; gap: 1rem; border-radius: var(--radius-xl); padding-left: 1.25rem; padding-right: 1.25rem; padding-top: 1rem; padding-bottom: 1rem; text-align: left; color: var(--text-primary); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); border: var(--outline-thick-width) solid var(--color-ring-alert); background-color: var(--surface-panel-hover); } .profile-modal__add-profile:hover { background-color: color-mix( in srgb, var(--surface-panel-hover) 88%, var(--color-ring-alert) 12% ); } .profile-modal__add-profile:focus-visible { background-color: color-mix( in srgb, var(--surface-panel-hover) 80%, var(--color-ring-alert) 20% ); } .profile-modal__add-profile-icon { display: flex; height: 2.5rem; width: 2.5rem; align-items: center; justify-content: center; border-radius: var(--radius-full); background-color: color-mix( in srgb, var(--color-ring-alert) 18%, var(--surface-panel) ); color: var(--color-ring-alert); } .profile-modal__body { display: flex; flex: 1 1 auto; flex-direction: column; gap: var(--profile-modal-gap); inline-size: 100%; min-block-size: 0; overflow: hidden; overflow-x: hidden; padding-block-start: var(--profile-modal-padding-block-start); padding-block-end: var(--profile-modal-padding-block-end); padding-inline: var(--profile-modal-padding-inline); } .profile-modal__layout { display: flex; flex: 1 1 auto; flex-direction: column; gap: var(--profile-modal-gap); inline-size: 100%; min-block-size: 0; } .profile-modal__header { align-items: center; } .profile-modal__header-title { display: flex; align-items: center; gap: var(--space-sm); } .profile-modal__menu { display: flex; flex-direction: column; gap: var(--space-sm); } .profile-modal__pane-wrapper { display: flex; flex: 1 1 auto; flex-direction: column; min-block-size: 0; } .profile-modal__nav { display: flex; flex-wrap: wrap; gap: var(--profile-modal-nav-gap); align-self: flex-start; overflow-x: visible; } .profile-nav__unread-dot { position: absolute; top: 50%; left: -6px; right: auto; width: var(--space-sm); height: var(--space-sm); border-radius: var(--radius-full); border: var(--border-width-hairline) solid var(--surface-panel); background-color: var(--status-danger); display: none; pointer-events: none; transform: translateY(-50%); } .profile-nav__unread-dot.is-visible { display: block; } .profile-modal__panes { display: flex; flex: 1 1 auto; flex-direction: column; block-size: 100%; min-block-size: 0; overflow-y: auto; overflow-x: hidden; padding-inline-end: var(--profile-modal-scrollbar-offset); scrollbar-gutter: stable; } .profile-pane { display: flex; flex-direction: column; min-block-size: auto; overflow-x: hidden; } /* Specific override for messages pane to prevent parent scrolling on desktop */ @media (min-width: 768px) { #profilePaneMessages { height: 100%; min-height: 0; overflow: hidden; } #dmAppShellMount { height: 100%; min-height: 0; } } .profile-pane.hidden { display: none !important; } @supports not (scrollbar-gutter: stable) { .profile-modal__panes { padding-inline-end: calc( var(--profile-modal-scrollbar-offset) + var(--space-2xs) ); } } @media (max-width: calc(1024px - var(--breakpoint-edge-offset))) { .profile-modal__layout[data-mobile-view="menu"] .profile-modal__pane-wrapper { display: none; } .profile-modal__layout[data-mobile-view="pane"] .profile-modal__menu { display: none; } } @media (min-width: 1024px) { .profile-modal { max-block-size: var(--modal-shell-max-height); } .profile-modal__body { gap: calc(var(--profile-modal-gap) + var(--space-2xs)); padding-inline: calc( var(--profile-modal-padding-inline) + var(--space-xs) ); } .profile-modal__layout { display: grid; align-items: stretch; block-size: 100%; gap: calc(var(--profile-modal-gap) + var(--space-2xs)); grid-template-columns: minmax( var(--profile-modal-nav-min-width), var(--profile-modal-nav-max-width) ) minmax(0, 1fr); grid-auto-rows: minmax(0, 1fr); } .profile-modal__nav { flex-direction: column; flex-wrap: nowrap; gap: var(--profile-modal-nav-gap); justify-self: start; inline-size: var(--profile-modal-nav-max-width); min-inline-size: var(--profile-modal-nav-min-width); } .profile-modal__pane-wrapper { block-size: 100%; } } /* Torrent helper classes */ .beacon-hidden-download, [data-beacon-hidden-download], .torrent-download-anchor { display: none !important; } .beacon-clipboard-offscreen, [data-beacon-clipboard-state="offscreen"], [data-beacon-clipboard="offscreen"], .torrent-clipboard-textarea { position: fixed; top: 0; left: var(--offscreen-offset); opacity: 0; width: 0; height: 0; pointer-events: none; } .beacon-toast-motion, .torrent-toast-motion { transition-property: opacity, transform; will-change: opacity, transform; opacity: 0; transform: translateY(var(--toast-translate)); } .beacon-toast-motion[data-beacon-motion="enter"], .beacon-toast-motion[data-beacon-motion="show"], .torrent-toast-motion[data-beacon-motion="enter"], .torrent-toast-motion[data-beacon-motion="show"] { opacity: 1; transform: translateY(0); } .beacon-toast-motion[data-beacon-motion="exit"], .torrent-toast-motion[data-beacon-motion="exit"] { opacity: 0; transform: translateY(var(--toast-translate)); } .torrent-toast { pointer-events: auto; width: 100%; max-width: 28rem; border-radius: var(--radius-lg); padding-left: 1rem; padding-right: 1rem; padding-top: 0.75rem; padding-bottom: 0.75rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); font-weight: 500; letter-spacing: -0.025em; --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-inset: inset; } .torrent-toast--info { border-width: 1px; border-color: var(--border-overlay); background-color: var(--surface-base); color: var(--text-primary); } .torrent-toast--success { border-width: 1px; border-color: var(--color-info); --tw-border-opacity: 0.6; background-color: var(--color-info); color: var(--color-white); } .torrent-toast--error { border-width: 1px; border-color: var(--color-critical); --tw-border-opacity: 0.6; background-color: var(--color-critical); color: var(--color-white); } .torrent-toast--warn { border-width: 1px; border-color: var(--status-warning-strong); --tw-border-opacity: 0.7; background-color: var(--status-warning-strong); color: var(--status-warning-strong); } .watch-history-card { min-width: 0; --video-card-lift-translate-y: 0; --video-card-backdrop-opacity: 0; --video-card-backdrop-translate-y: var(--space-md-plus); --video-card-backdrop-scale: 1.08; --video-card-backdrop-blur: var(--blur-thumbnail-blur); outline: 2px solid transparent; outline-offset: 2px; } .watch-history-card:focus-visible { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); --tw-ring-opacity: 0.7; --tw-ring-offset-width: 2px; --tw-ring-offset-color: var(--surface-base); transition-property: box-shadow; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-fast); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); --tw-ring-color: var(--color-accent); } .watch-history-card { position: relative; border-radius: var(--radius-lg); border-width: 1px; border-color: transparent; background-color: var(--surface-raised); color: var(--text-primary); --tw-shadow: var(--shadow-md); --tw-shadow-colored: var(--shadow-md); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transform: translate3d(0, var(--video-card-lift-translate-y), 0); transition-property: transform, box-shadow, border-color, background-color, color; will-change: transform; isolation: isolate; } .watch-history-card::before { content: ""; position: absolute; inset: 0; z-index: 0; opacity: var(--video-card-backdrop-opacity); background-image: var(--video-card-thumb-url, none); background-position: center; background-repeat: no-repeat; background-size: cover; transform: translate3d(0, var(--video-card-backdrop-translate-y), 0) scale(var(--video-card-backdrop-scale)); filter: blur(var(--video-card-backdrop-blur)); transition: opacity var(--motion-duration-base) var(--motion-ease-in-out), transform var(--motion-duration-base) var(--motion-ease-in-out), filter var(--motion-duration-base) var(--motion-ease-in-out); pointer-events: none; will-change: opacity, transform, filter; } .watch-history-card > * { position: relative; z-index: 1; } .watch-history-card:hover,.watch-history-card:focus-within { --video-card-lift-translate-y: var(--motion-video-card-hover-translate); --video-card-backdrop-opacity: 0.425; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ); --video-card-backdrop-scale: 1.12; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .watch-history-card:focus-visible { border-color: var(--color-accent); --tw-border-opacity: 0.4; --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .watch-history-card[data-state="critical"] { border-width: 1px; border-color: var(--color-critical); --tw-border-opacity: 0.4; background-color: var(--surface-raised-critical); } .watch-history-card[data-state="private"] { background-color: var(--surface-raised-private); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .watch-history-card[data-state="disabled"] { opacity: 0.6; --tw-shadow: 0 0 #0000; --tw-shadow-colored: 0 0 #0000; box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .watch-history-card[data-alert="nsfw-owner"] { border-width: 1px; border-color: var(--color-critical); --tw-border-opacity: 0.4; background-color: var(--color-black); } .watch-history-card[data-alert="nsfw-owner"]:hover { --tw-border-opacity: 0.6; --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .watch-history-card img[data-thumbnail-state="blurred"],.watch-history-card img[data-visual-state="blurred"] { transition-duration: var(--motion-duration-base); transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); filter: blur(var(--blur-thumbnail-blur)); transform: scale(1.05); } .watch-history-card[data-owner-is-viewer="true"][data-url-health-state="offline"][data-stream-health-state="unhealthy"] { border-width: 1px; border-color: var(--color-critical); --tw-border-opacity: 0.4; background-color: var(--surface-raised-critical); } #playerModal .player-modal__module-item > .watch-history-card:not(.player-modal__similar-card) { display: flex; width: 100%; flex-direction: row; flex-wrap: nowrap; align-items: stretch; gap: var(--space-md); } #playerModal .player-modal__module-item > .watch-history-card:not(.player-modal__similar-card) .video-card__media { width: clamp( var(--video-modal-item-media-min), 18vw, var(--video-modal-item-media-max) ); flex-shrink: 0; overflow: hidden; border-radius: var(--radius-lg); } #playerModal .player-modal__module-item > .watch-history-card:not(.player-modal__similar-card) .video-card__content { padding: clamp(var(--space-sm), 1.25vw, var(--space-md)); display: flex; min-width: 0px; flex: 1 1 0%; flex-direction: column; gap: var(--space-sm); } #playerModal .player-modal__module-item > .watch-history-card:not(.player-modal__similar-card) .video-card__meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; font-size: var(--font-size-xs); line-height: var(--line-height-tight); color: var(--text-muted-strong); } .watch-history-card[data-motion="enter"] { opacity: 0; animation: card-motion-enter 220ms ease-out forwards; } @media (min-width: 1024px) { .watch-history-card:hover .marquee-host.can-marquee .marquee-static { opacity: 0; } .watch-history-card:hover .marquee-host.can-marquee .marquee-anim { opacity: 1; } .watch-history-card:hover .marquee-host.can-marquee .marquee-track { animation-play-state: running; } .watch-history-card:hover .marquee-host.can-marquee .marquee-static { opacity: 0; } .watch-history-card:hover .marquee-host.can-marquee .marquee-anim { opacity: 1; } .watch-history-card:hover .marquee-host.can-marquee .marquee-track { animation-play-state: running; } .watch-history-card:hover .marquee-host.can-marquee .marquee-static { opacity: 0; } .watch-history-card:hover .marquee-host.can-marquee .marquee-anim { opacity: 1; } .watch-history-card:hover .marquee-host.can-marquee .marquee-track { animation-play-state: running; } } @media (max-width: calc(1024px - var(--breakpoint-edge-offset))) { .watch-history-card[data-mobile-active="true"] { --video-card-lift-translate-y: var(--motion-video-card-hover-translate); --video-card-backdrop-opacity: 0.425; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ); --video-card-backdrop-scale: 1.12; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .watch-history-card[data-mobile-active="true"] .video-card__title { color: var(--color-accent); } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-static { opacity: 0; } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-anim { opacity: 1; } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-track { animation-play-state: running; } .watch-history-card[data-mobile-active="true"] { --video-card-lift-translate-y: var(--motion-video-card-hover-translate); --video-card-backdrop-opacity: 0.425; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ); --video-card-backdrop-scale: 1.12; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .watch-history-card[data-mobile-active="true"] .video-card__title { color: var(--color-accent); } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-static { opacity: 0; } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-anim { opacity: 1; } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-track { animation-play-state: running; } .watch-history-card[data-mobile-active="true"] { --video-card-lift-translate-y: var(--motion-video-card-hover-translate); --video-card-backdrop-opacity: 0.425; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ); --video-card-backdrop-scale: 1.12; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .watch-history-card[data-mobile-active="true"] .video-card__title { color: var(--color-accent); } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-static { opacity: 0; } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-anim { opacity: 1; } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-track { animation-play-state: running; } .watch-history-card[data-mobile-active="true"] { --video-card-lift-translate-y: var(--motion-video-card-hover-translate); --video-card-backdrop-opacity: 0.425; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ); --video-card-backdrop-scale: 1.12; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .watch-history-card[data-mobile-active="true"] .video-card__title { color: var(--color-accent); } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-static { opacity: 0; } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-anim { opacity: 1; } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-track { animation-play-state: running; } .watch-history-card[data-mobile-active="true"] { --video-card-lift-translate-y: var(--motion-video-card-hover-translate); --video-card-backdrop-opacity: 0.425; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ); --video-card-backdrop-scale: 1.12; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .watch-history-card[data-mobile-active="true"] .video-card__title { color: var(--color-accent); } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-static { opacity: 0; } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-anim { opacity: 1; } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-track { animation-play-state: running; } .watch-history-card[data-mobile-active="true"] { --video-card-lift-translate-y: var(--motion-video-card-hover-translate); --video-card-backdrop-opacity: 0.425; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ); --video-card-backdrop-scale: 1.12; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .watch-history-card[data-mobile-active="true"] .video-card__title { color: var(--color-accent); } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-static { opacity: 0; } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-anim { opacity: 1; } .watch-history-card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-track { animation-play-state: running; } } .watch-history-card { display: flex; flex-wrap: wrap; align-items: stretch; gap: 1.25rem; padding: 1rem; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); } @media (prefers-reduced-motion: reduce) { .watch-history-card,.watch-history-card[data-motion="enter"] { transition-property: none; } .watch-history-card[data-motion="enter"] { opacity: 1; animation: none; } } .watch-history-card:hover { --tw-translate-y: -0.125rem; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } @media (min-width: 640px) { .watch-history-card { gap: 1.5rem; padding: 1.25rem; } } .watch-history-card [data-thumbnail-state="blurred"] img, .watch-history-card [data-visual-state="blurred"] img { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); filter: blur(var(--blur-thumbnail-blur)); transform: scale(1.05); } .watch-history-card__hidden { margin-top: var(--space-md); border-radius: var(--radius-lg); border-width: 1px; border-style: dashed; border-color: var(--border-default); background-color: var(--surface-overlay-panel-soft); font-size: var(--font-size-sm); line-height: var(--line-height-snug); color: var(--text-primary); } .watch-history-card__hidden .moderation-badge { align-self: flex-start; } /* Ensure the video modal avatar respects the blur state */ #playerModal .channel-card__avatar img[data-visual-state="blurred"] { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); filter: blur(var(--blur-thumbnail-blur)); transform: scale(1.05); } /* Override moderation badge text color inside the modal bar for better contrast in all themes */ #playerModal .video-modal__moderation-bar .moderation-badge { --text-status-neutral-on: var(--color-text); --text-status-warning-on: var(--color-warning-on); } #playerModal .video-modal__moderation-bar .moderation-badge[data-variant="neutral"] { color: var(--color-text); } .\!container { max-width: var(--layout-docs-max-width) !important; margin: 0 auto !important; padding: var(--space-md) !important; } .container { max-width: var(--layout-docs-max-width); margin: 0 auto; padding: var(--space-md); } .qr-code__table { border: 0; border-collapse: collapse; margin: var(--qr-code-table-margin, 0); } .qr-code__cell { border: 0; border-collapse: collapse; padding: 0; margin: 0; width: var(--qr-code-cell-width); height: var(--qr-code-cell-height); background-color: var(--qr-code-color-light); } .qr-code__cell--dark { background-color: var(--qr-code-color-dark); } .qr-code__container[data-qr-code-mode="image"] .qr-code__canvas { display: none; } .qr-code__container[data-qr-code-mode="image"] .qr-code__image { display: block; } .qr-code__container[data-qr-code-mode="canvas"] .qr-code__canvas { display: block; } .qr-code__container[data-qr-code-mode="canvas"] .qr-code__image { display: none; } .fade-in { opacity: 0; animation: interface-fade-in 280ms ease-out forwards; animation-delay: var(--fade-in-delay, 0ms); } .fade-in-delay-100 { --fade-in-delay: 100ms; } .fade-in-delay-200 { --fade-in-delay: 200ms; } .fade-in-delay-300 { --fade-in-delay: 300ms; } .\!card[data-motion="enter"] { opacity: 0 !important; animation: card-motion-enter 220ms ease-out forwards !important; } .card[data-motion="enter"] { opacity: 0; animation: card-motion-enter 220ms ease-out forwards; } .icon-button { display: inline-flex; align-items: center; justify-content: center; width: var(--icon-size-lg); height: var(--icon-size-lg); min-width: var(--icon-size-lg); min-height: var(--icon-size-lg); flex: 0 0 var(--icon-size-lg); line-height: 0; background-color: var(--color-neutral-700); color: var(--color-white); border: none; border-radius: var(--radius-full); cursor: pointer; transition: background-color 200ms ease, box-shadow 200ms ease; } .icon-button:hover { background-color: var(--color-neutral-600); } .icon-button:focus, .icon-button:active { outline: none; box-shadow: 0 0 0 var(--icon-button-ring-width) var(--color-ring-alert); } .icon-image { width: var(--icon-size-md); height: var(--icon-size-md); pointer-events: none; } .accent-action-button, .channel-action-button { --accent-action-bg: color-mix( in srgb, var(--surface-overlay-panel) 78%, transparent ); --accent-action-border: color-mix( in srgb, var(--border-overlay) 92%, transparent ); --accent-action-bg-hover: color-mix( in srgb, var(--color-accent) 22%, var(--surface-overlay-panel) ); --accent-action-ring: color-mix( in srgb, var(--color-accent) 48%, transparent ); --accent-action-bg-active: color-mix( in srgb, var(--color-accent-pressed) 28%, var(--surface-overlay-panel) ); color: var(--color-text); background-color: var(--accent-action-bg); border-color: var(--accent-action-border); border-style: solid; border-width: var(--border-width-hairline); } .accent-action-button:hover, .accent-action-button:focus-visible, .channel-action-button:hover, .channel-action-button:focus-visible { color: var(--color-accent-strong); background-color: var(--accent-action-bg-hover); } .accent-action-button:focus, .accent-action-button:focus-visible, .channel-action-button:focus, .channel-action-button:focus-visible { box-shadow: 0 0 0 var(--icon-button-ring-width) var(--accent-action-ring); } .accent-action-button:active, .channel-action-button:active { color: var(--color-accent-pressed); background-color: var(--accent-action-bg-active); } .modal-nav .icon-button { box-shadow: none; padding: 0; gap: 0; width: var(--icon-size-lg); height: var(--icon-size-lg); min-width: var(--icon-size-lg); min-height: var(--icon-size-lg); } .modal-nav .icon-button:not(.accent-action-button):not(.channel-action-button) { border: none; } .modal-meta { display: inline-flex; align-items: center; gap: var(--space-xs); } .modal-view-count { display: inline-flex; align-items: center; gap: var(--space-2xs); font-size: var(--font-size-sm); line-height: var(--space-md-plus); color: var(--color-muted-alt); white-space: nowrap; } .view-count-text { white-space: nowrap; color: var(--color-muted-strong); } .ratio-16-9 { position: relative; width: 100%; padding-top: 56.25%; background-color: var(--color-card); } .ratio-16-9 > img { position: absolute; inset: 0; width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; } #modalContainer { position: fixed; inset: 0; z-index: var(--z-modal-root); pointer-events: none; isolation: isolate; } #modalContainer > * { pointer-events: auto; } #modalContainer > [id$="Modal"]:not(#playerModal) { z-index: var(--z-modal-root); } #modalContainer > [id$="Modal"]:not(#playerModal) > .bv-modal-backdrop { z-index: var(--z-modal-overlay); } #modalContainer > [id$="Modal"]:not(#playerModal) .bv-modal__panel { z-index: var(--z-modal-content); } #modalContainer > #profileModal, #profileModal[data-modal-stack="top"] { z-index: var(--z-modal-top-root); } #modalContainer > #profileModal > .bv-modal-backdrop, #profileModal[data-modal-stack="top"] > .bv-modal-backdrop { z-index: var(--z-modal-top-overlay); } #modalContainer > #profileModal .bv-modal__panel, #profileModal[data-modal-stack="top"] .bv-modal__panel { z-index: var(--z-modal-top-content); } #modalContainer > #eventDetailsModal { z-index: var(--z-modal-top-root); } #modalContainer > #eventDetailsModal > .bv-modal-backdrop { z-index: var(--z-modal-top-overlay); } #modalContainer > #eventDetailsModal .bv-modal__panel { z-index: var(--z-modal-top-content); } #shareNostrModal { z-index: var(--z-modal-peak-root) !important; } #shareNostrModal > .bv-modal-backdrop { z-index: var(--z-modal-peak-overlay) !important; } #shareNostrModal .bv-modal__panel { z-index: var(--z-modal-peak-content) !important; } .bv-modal[data-nested-modal-active="true"] { pointer-events: none; visibility: hidden; } #modalContainer > #loginModal { z-index: var(--z-modal-peak-root); } #modalContainer > #loginModal > .bv-modal-backdrop { z-index: var(--z-modal-peak-overlay); } #modalContainer > #loginModal .bv-modal__panel { z-index: var(--z-modal-peak-content); } #modalContainer > #playerModal { z-index: var(--z-modal-player); } #modalContainer > #playerModal .player-modal__container, #modalContainer > #playerModal .player-modal__content { z-index: var(--z-modal-content); } .modal-always-on-top { z-index: var(--z-modal-always-top) !important; } #playerModal { position: fixed; inset: 0; z-index: var(--z-modal-player); flex-direction: column; align-items: stretch; justify-content: flex-start; width: 100vw; height: 100vh; padding: 0; background-color: var(--color-surface); color: var(--color-subtle-text); --player-modal-inline-max: var(--layout-player-max-width); --player-modal-inline-padding: clamp( var(--space-md-plus), 4vw, var(--space-2xl) ); overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; -webkit-overflow-scrolling: touch; } #modalVideo { width: 100%; aspect-ratio: 16 / 9; background-color: var(--color-black); } .notification-portal { position: fixed; top: 0; left: 0; right: 0; z-index: var(--z-overlay-toast); display: flex; flex-direction: column; align-items: center; gap: var(--space-md); padding: calc(var(--space-xl) + env(safe-area-inset-top)) var(--space-lg) var(--space-lg); pointer-events: none; opacity: 0; transform: translateY(var(--toast-translate)); transition: transform var(--motion-duration-base) var(--motion-ease-out), opacity var(--motion-duration-base) var(--motion-ease-out); } @media (min-width: 640px) { .notification-portal { padding-inline: var(--space-xl); } } .notification-portal:has(.notification-banner:not(.hidden)) { opacity: 1; transform: translateY(0); } .notification-portal--active { opacity: 1; transform: translateY(0); } .notification-banner, .torrent-toast { --notify-accent: var(--notification-banner-accent); --notify-accent-strong: var(--notification-banner-accent-strong); --notify-border: var(--notification-banner-border); --notify-background: var(--notification-banner-background); --notify-foreground: var(--notification-banner-text); position: relative; display: flex; align-items: center; gap: var(--space-md); width: min(var(--notification-banner-max-inline), 100%); padding: var(--space-md) var(--space-xl); border-radius: var(--radius-xl); border: var(--border-width-hairline) solid var(--notify-border); background: var(--notify-background); color: var(--notify-foreground); box-shadow: 0 var(--shadow-notification-offset-y) var(--shadow-notification-blur) var(--color-shadow-notification); backdrop-filter: blur(var(--overlay-backdrop-blur)); pointer-events: auto; isolation: isolate; font-size: var(--font-size-sm); line-height: var(--line-height-snug); font-weight: 600; line-height: 1.375; transition: transform var(--motion-duration-base) var(--motion-ease-out), opacity var(--motion-duration-base) var(--motion-ease-out); } .notification-banner::before, .torrent-toast::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient( 135deg, var(--notify-accent) 0%, var(--notify-accent-strong) 100% ); opacity: 0.18; pointer-events: none; } .notification-banner > *, .torrent-toast > * { position: relative; z-index: 1; } .notification-dismiss { display: inline-flex; height: 2rem; width: 2rem; align-items: center; justify-content: center; border-radius: var(--radius-full); border-width: 1px; border-color: transparent; transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; transition-duration: var(--motion-duration-base); transition-timing-function: cubic-bezier(0, 0, 0.2, 1); color: inherit; opacity: 0.75; background-color: var(--notify-dismiss-background); } .notification-dismiss:hover, .notification-dismiss:focus-visible { opacity: 1; background-color: var(--notify-dismiss-background-hover); } .notification-dismiss svg { height: 1rem; width: 1rem; } .notification-banner:not(.hidden) { animation: notification-slide-in var(--motion-duration-base) var(--motion-ease-out); } .notification-banner--critical, .torrent-toast--error { --notify-accent: var(--notification-banner-critical-accent); --notify-accent-strong: var(--notification-banner-critical-accent-strong); --notify-border: var(--notification-banner-critical-border); --notify-background: var(--notification-banner-critical-background); --notify-foreground: var(--notification-banner-critical-text); } .notification-banner--success, .torrent-toast--success { --notify-accent: var(--notification-banner-success-accent); --notify-accent-strong: var(--notification-banner-success-accent-strong); --notify-border: var(--notification-banner-success-border); --notify-background: var(--notification-banner-success-background); --notify-foreground: var(--notification-banner-success-text); } .notification-banner--info, .torrent-toast--info { --notify-accent: var(--notification-banner-info-accent); --notify-accent-strong: var(--notification-banner-info-accent-strong); --notify-border: var(--notification-banner-info-border); --notify-background: var(--notification-banner-info-background); --notify-foreground: var(--notification-banner-info-text); } .notification-banner--warning, .torrent-toast--warn { --notify-accent: var(--notification-banner-warning-accent); --notify-accent-strong: var(--notification-banner-warning-accent-strong); --notify-border: var(--notification-banner-warning-border); --notify-background: var(--notification-banner-warning-background); --notify-foreground: var(--notification-banner-warning-text); } .status-banner .status-spinner { animation: spin 1s linear infinite; border: var(--space-3xs) solid var(--color-info-border); border-radius: var(--radius-full); border-top-color: var(--color-info); flex-shrink: 0; height: var(--icon-size-md); width: var(--icon-size-md); } .status-banner .status-message { flex: 1 1 auto; } @keyframes notification-slide-in { from { opacity: 0; transform: translateY(var(--toast-translate)); } to { opacity: 1; transform: translateY(0); } } .status-spinner--inline { animation: spin 1s linear infinite; border: var(--space-3xs) solid var(--color-border-info-soft); border-radius: var(--radius-full); border-top-color: var(--color-info); display: inline-block; height: var(--space-md); width: var(--space-md); } body.iframe-form { background-color: transparent; color: var(--color-text); font-family: var(--font-family-sans); margin: var(--space-lg); } body.iframe-form .container { width: 100%; max-width: 100%; margin: 0; padding: 0; } body.iframe-form .\!container { width: 100% !important; max-width: 100% !important; margin: 0 !important; padding: 0 !important; } body.iframe-form .form-container { background-color: var(--color-surface-alt); border-radius: var(--radius-md); box-shadow: var(--shadow-md); color: var(--color-text); display: flex; flex-direction: column; gap: var(--space-md); padding: var(--space-lg); } body.iframe-form .form-container > p { margin: 0; } body.iframe-form form { display: flex; flex-direction: column; } body.iframe-form form > * + * { margin-top: var(--space-sm); } body.iframe-form form h1, body.iframe-form form h2 { color: var(--color-text); margin-top: var(--space-md); } body.iframe-form label { color: var(--color-subtle-text); display: block; font-weight: 600; margin-top: var(--space-sm); } body.iframe-form label + .form-control, body.iframe-form label + .textarea, body.iframe-form label + .select { margin-top: var(--space-xs); } body.iframe-form .checkbox-group, body.iframe-form .radio-group { display: flex; flex-wrap: wrap; gap: var(--space-sm); margin-top: var(--space-xs); } body.iframe-form .checkbox-group label, body.iframe-form .radio-group label { align-items: center; color: var(--color-subtle-text); display: inline-flex; font-weight: 500; gap: var(--space-xs); margin: 0; } body.iframe-form .checkbox-group input[type="checkbox"], body.iframe-form .radio-group input[type="radio"] { margin: 0; } body.iframe-form .radio-group input[type="radio"] { accent-color: var(--color-accent-strong); } body.iframe-form button.btn { align-self: flex-start; margin-top: var(--space-md); } body.iframe-form button.\!btn { align-self: flex-start !important; margin-top: var(--space-md) !important; } body.iframe-form #status { background: var(--color-surface); border-radius: var(--radius-sm); box-shadow: inset 0 0 0 var(--border-width-hairline) var(--color-border-translucent); color: var(--color-subtle-text); min-height: calc(var(--space-2xl) + var(--space-xl)); padding: var(--space-sm); white-space: pre-wrap; } body.iframe-form .status-line { color: var(--color-subtle-text); margin: var(--space-2xs) 0; } body.iframe-form .status-line.error { color: var(--color-critical-strong); } body.iframe-form .status-line.\!error { color: var(--color-critical-strong) !important; } body.iframe-form .status-line.success { color: var(--color-info-strong); } body.iframe-form .status-line.\!success { color: var(--color-info-strong) !important; } body.iframe-form .status-line.warn { color: var(--color-warning-strong); } @media (max-width: 640px) { body.iframe-form { margin: var(--space-md); } body.iframe-form .form-container { padding: var(--space-md); } } #sidebarContainer { position: relative; overflow: visible; } #sidebar { position: fixed; top: 0; left: 0; width: var(--sidebar-width); min-width: var(--sidebar-width); height: 100vh; height: 100dvh; color: var(--color-text-frosted-strong); overflow-x: hidden; overflow-y: auto; -webkit-overflow-scrolling: touch; overscroll-behavior: contain; overscroll-behavior-inline: contain; touch-action: pan-y; scrollbar-gutter: stable both-edges; background: transparent; border-right: none; backdrop-filter: none; -webkit-backdrop-filter: none; transition: width 200ms ease, transform 300ms ease; z-index: var(--z-sidebar); box-shadow: none; isolation: isolate; } body.sidebar-collapsed, #sidebar.sidebar-collapsed, #sidebar[data-state="collapsed"], #app.sidebar-collapsed { --sidebar-width: var(--sidebar-width-collapsed); } body.sidebar-expanded, #sidebar.sidebar-expanded, #sidebar[data-state="expanded"], #app.sidebar-expanded { --sidebar-width: var(--sidebar-width-expanded); } #sidebar .sidebar__inner { display: flex; flex-direction: column; height: 100%; padding-block-start: max( var(--space-sidebar-shell-block-start), calc(var(--app-header-centerline) - (var(--sidebar-control-size) / 2)) ); padding-block-end: var(--space-sidebar-shell-block-end); padding-inline: var(--space-sidebar-shell-inline); width: 100%; border-radius: var(--radius-sidebar-shell); border: none; background: none; box-shadow: none; backdrop-filter: none; -webkit-backdrop-filter: none; overflow: visible; isolation: isolate; transition: color 200ms ease; } .sidebar-scroll { display: flex; flex-direction: column; gap: var(--space-sidebar-scroll-gap); width: 100%; height: 100%; min-height: 0; flex: 1 1 auto; overflow: visible; } .sidebar-panel { position: relative; width: 100%; display: flex; flex-direction: column; gap: var(--space-sidebar-panel-gap); padding: var(--space-sidebar-panel-padding-block) var(--space-sidebar-panel-padding-inline); border-radius: var(--radius-sidebar-panel); border: none; background: transparent; box-shadow: none; color: inherit; backdrop-filter: none; -webkit-backdrop-filter: none; overflow: hidden; isolation: isolate; transition: border-color 200ms ease, box-shadow 220ms ease, background 220ms ease; } .sidebar-panel--primary { flex: 1 1 auto; min-height: 0; padding-block-start: 0; } .sidebar-panel__header { display: flex; justify-content: flex-end; margin-bottom: var(--space-md); } .sidebar-collapse-toggle { display: inline-flex; align-items: center; justify-content: center; width: var(--sidebar-control-size); height: var(--sidebar-control-size); border-radius: var(--radius-full); border: var(--border-width-hairline) solid var(--color-border-translucent-medium); background: var(--color-surface-tint-subtle); color: inherit; cursor: pointer; transition: background 180ms ease, color 180ms ease, border-color 180ms ease; flex-shrink: 0; box-sizing: border-box; } .sidebar-collapse-toggle:hover { background: var(--color-border-translucent); border-color: var(--color-border-translucent-stronger); color: var(--color-text); } .sidebar-collapse-toggle:focus-visible { outline: var(--space-3xs) solid var(--color-secondary); outline-offset: var(--space-2xs); } .sidebar-collapse-toggle__icon { width: var(--icon-size-sm); height: var(--icon-size-sm); transition: transform 200ms ease; } .sidebar-nav { display: flex; flex-direction: column; gap: var(--space-xs); opacity: 1; transition: opacity 160ms ease; width: 100%; } .sidebar-nav-link { --sidebar-nav-translate-x: 0; --sidebar-nav-link-highlight-opacity: 0; --sidebar-nav-link-highlight-scale: 0.96; display: flex; align-items: center; gap: var(--space-sidebar-footer-gap); padding-block: var(--space-sidebar-nav-padding-block); padding-inline-start: var(--space-sidebar-nav-padding-inline-start); padding-inline-end: var(--space-sidebar-nav-padding-inline-end); min-height: var(--sidebar-control-size); border-radius: var(--radius-sidebar-nav); font-size: var(--font-size-sidebar-nav); font-weight: 600; letter-spacing: 0.015em; color: var(--color-text); text-decoration: none; width: 100%; position: relative; border: var(--border-width-hairline) solid transparent; background: none; box-shadow: none; transform: translateX(var(--sidebar-nav-translate-x)); transition: color 180ms ease, border-color 200ms ease, box-shadow 220ms ease, transform 220ms ease; overflow: hidden; isolation: isolate; backdrop-filter: none; -webkit-backdrop-filter: none; } .sidebar-nav-link::before, .sidebar-nav-link::after { content: ""; position: absolute; inset: calc(var(--border-width-hairline) * -1); border-radius: inherit; pointer-events: none; transition: opacity 220ms ease, transform 240ms ease; z-index: -1; } .sidebar-nav-link::before { background: linear-gradient( 120deg, var(--color-sidebar-accent-start) 0%, var(--color-sidebar-accent-end) 100% ); opacity: var(--sidebar-nav-link-highlight-opacity); transform: scale(var(--sidebar-nav-link-highlight-scale)); filter: saturate(140%); } .sidebar-nav-link::after { background: linear-gradient( 105deg, var(--color-sidebar-hover) 0%, transparent 75% ); opacity: 0.22; mix-blend-mode: screen; z-index: -2; } .sidebar-nav-link:hover, .sidebar-nav-link:focus-visible { --sidebar-nav-link-highlight-opacity: 1; --sidebar-nav-link-highlight-scale: 1.02; --sidebar-nav-translate-x: var(--space-sidebar-nav-translate); color: var(--color-white); border-color: var(--color-sidebar-hover-strong); box-shadow: 0 0 0 var(--border-width-hairline) var(--color-sidebar-hover-strong), var(--shadow-sidebar-accent); } .sidebar-nav-link:focus-visible { outline: none; box-shadow: var(--shadow-sidebar-focus-ring), var(--shadow-sidebar-accent); } .sidebar-nav-link:hover::after, .sidebar-nav-link:focus-visible::after { opacity: 0.35; } .sidebar-nav-link--sub { font-size: var(--font-size-sidebar-subnav); font-weight: 500; color: var(--color-sidebar-text-muted); padding-block: var(--space-sidebar-subnav-padding-block); letter-spacing: 0.02em; --sidebar-nav-link-highlight-opacity: 0.25; --sidebar-nav-link-highlight-scale: 1; } .sidebar-icon { width: var(--space-lg); height: var(--space-lg); min-width: var(--space-lg); min-height: var(--space-lg); flex-shrink: 0; display: block; filter: var(--sidebar-icon-filter); transition: filter 180ms ease; } .sidebar-footer { display: flex; flex-direction: column; gap: var(--space-sidebar-footer-gap); margin-top: auto; position: relative; z-index: 2; } .sidebar-dropup-trigger { position: relative; display: flex; align-items: center; justify-content: space-between; gap: var(--space-sidebar-footer-gap); width: 100%; padding-block: var(--space-sidebar-trigger-padding-block); padding-inline-start: var(--space-sidebar-nav-padding-inline-start); padding-inline-end: var(--space-sidebar-nav-padding-inline-end); min-height: var(--sidebar-control-size); border-radius: var(--radius-sidebar-nav); border: var(--border-width-hairline) solid transparent; background: none; color: var(--color-text); font-size: var(--font-size-sidebar-trigger); font-weight: 600; cursor: pointer; box-sizing: border-box; flex-shrink: 0; overflow: hidden; isolation: isolate; backdrop-filter: none; -webkit-backdrop-filter: none; box-shadow: none; transition: border-color 200ms ease, color 200ms ease, box-shadow 220ms ease; } .sidebar-dropup-trigger::before { content: ""; position: absolute; inset: calc(var(--border-width-hairline) * -1); border-radius: inherit; pointer-events: none; background: linear-gradient( 120deg, var(--color-sidebar-accent-start) 0%, var(--color-sidebar-accent-end) 100% ); opacity: 0; transform: scale(0.96); transition: opacity 200ms ease, transform 220ms ease; z-index: -1; filter: saturate(140%); } .sidebar-dropup-trigger::after { content: ""; position: absolute; inset: calc(var(--border-width-hairline) * -1); border-radius: inherit; pointer-events: none; background: linear-gradient( 110deg, var(--color-sidebar-hover) 0%, transparent 80% ); opacity: 0.18; mix-blend-mode: screen; transition: opacity 200ms ease; z-index: -2; } .sidebar-dropup-trigger:hover, .sidebar-dropup-trigger:focus-visible { color: var(--color-white); border-color: var(--color-sidebar-hover-strong); box-shadow: 0 0 0 var(--border-width-hairline) var(--color-sidebar-hover-strong), var(--shadow-sidebar-dropup); } .sidebar-dropup-trigger:hover::before, .sidebar-dropup-trigger:focus-visible::before { opacity: 1; transform: scale(1.02); } .sidebar-dropup-trigger:hover::after, .sidebar-dropup-trigger:focus-visible::after { opacity: 0.35; } .sidebar-dropup-trigger:focus-visible { outline: none; box-shadow: var(--shadow-sidebar-focus-ring), var(--shadow-sidebar-dropup); } .sidebar-dropup-trigger__glyph { width: var(--icon-size-md); height: var(--icon-size-md); opacity: 0.9; } .sidebar-dropup-trigger__chevron { width: var(--icon-size-sm); height: var(--icon-size-sm); transition: transform 180ms ease; } .sidebar-dropup-trigger__chevron.is-rotated, .sidebar-dropup-trigger[aria-expanded="true"] .sidebar-dropup-trigger__chevron { transform: rotate(180deg); } .sidebar-dropup-panel { position: absolute; left: 0; right: 0; bottom: calc(100% + var(--space-sidebar-popover-offset)); border-radius: var(--radius-xl); border: var(--border-width-hairline) solid var(--color-sidebar-border-strong); background: linear-gradient( 160deg, color-mix(in srgb, var(--color-sidebar-surface) 88%, transparent) 0%, color-mix(in srgb, var(--color-sidebar-surface-alt) 68%, transparent) 100% ); box-shadow: inset 0 0 0 var(--border-width-fine) var(--color-sidebar-border), var(--shadow-sidebar-panel); padding: var(--space-sidebar-popover-padding-block) var(--space-sidebar-popover-padding-inline); color: var(--color-text-frosted); opacity: 0; visibility: hidden; pointer-events: none; transform: translateY(var(--space-sm)); transition: opacity 180ms ease, transform 180ms ease, visibility 180ms ease, box-shadow 220ms ease; backdrop-filter: blur(var(--sidebar-panel-backdrop-blur)) saturate(var(--sidebar-panel-backdrop-saturation)); -webkit-backdrop-filter: blur(var(--sidebar-panel-backdrop-blur)) saturate(var(--sidebar-panel-backdrop-saturation)); z-index: 5; isolation: isolate; } .sidebar-dropup-panel[data-state="expanded"] { opacity: 1; visibility: visible; pointer-events: auto; transform: translateY(0); } .sidebar-dropup-panel__inner { display: flex; flex-direction: column; gap: var(--space-sidebar-popover-gap); width: 100%; padding-inline-end: var(--space-sidebar-dropup-scroll-reserve); max-height: var(--sidebar-dropup-max-height); overflow-y: auto; overflow-x: hidden; scrollbar-gutter: stable both-edges; } .sidebar-dropup-panel__inner.is-measuring { position: absolute; width: -moz-max-content; width: max-content; max-width: none; visibility: hidden; pointer-events: none; left: var(--offscreen-offset); right: auto; top: auto; bottom: auto; } .sidebar-dropup-measure { position: absolute; visibility: hidden; pointer-events: none; height: 0; overflow: hidden; } .sidebar-dropup-panel__inner > * { width: 100%; min-width: 0; } #sidebar[data-footer-state="expanded"] .sidebar-nav { opacity: 0; pointer-events: none; } #sidebar[data-footer-state="collapsed"] .sidebar-nav { opacity: 1; } .sidebar-loading-wrapper { display: flex; justify-content: center; align-items: center; padding: var(--space-2xl) 0; width: 100%; grid-column: 1 / -1; } .sidebar-loading-indicator { display: inline-flex; align-items: center; gap: var(--space-sm); color: var(--color-muted-strong); font-size: var(--font-size-sm); font-weight: 500; letter-spacing: 0.01em; } .sidebar-loading-text { white-space: nowrap; } #app { box-sizing: border-box; transition: margin-left 200ms ease, width 200ms ease, max-width 200ms ease; } #app[data-sidebar-state="collapsed"] { margin-left: calc( var(--sidebar-width-collapsed) + var(--sidebar-content-gap) ); width: calc( 100vw - var(--sidebar-width-collapsed) - var(--sidebar-content-gap) ); max-width: calc( 100vw - var(--sidebar-width-collapsed) - var(--sidebar-content-gap) ); } #app[data-sidebar-state="expanded"] { margin-left: calc( var(--sidebar-width-expanded) + var(--sidebar-content-gap) ); width: calc( 100vw - var(--sidebar-width-expanded) - var(--sidebar-content-gap) ); max-width: calc( 100vw - var(--sidebar-width-expanded) - var(--sidebar-content-gap) ); } body.sidebar-collapsed #sidebar .sidebar-nav-link, #sidebar.sidebar-collapsed .sidebar-nav-link { justify-content: center; width: var(--sidebar-control-size); padding: 0; margin-inline: auto; border-radius: var(--radius-full); --sidebar-nav-translate-x: 0; --sidebar-nav-link-highlight-scale: 1; } body.sidebar-expanded #sidebar .sidebar-nav-link, #sidebar.sidebar-expanded .sidebar-nav-link { justify-content: flex-start; } body.sidebar-collapsed #sidebar .sidebar-text, #sidebar.sidebar-collapsed .sidebar-text { display: none; } body.sidebar-collapsed #sidebar .sidebar__inner, #sidebar.sidebar-collapsed .sidebar__inner { padding-inline: var(--space-2xs); } body.sidebar-collapsed #sidebar .sidebar-panel, #sidebar.sidebar-collapsed .sidebar-panel { padding-inline: calc(var(--space-3xs) * 3); } body.sidebar-collapsed #sidebar .sidebar-panel__header, #sidebar.sidebar-collapsed .sidebar-panel__header { justify-content: center; } body.sidebar-collapsed #sidebar .sidebar-collapse-toggle, #sidebar.sidebar-collapsed .sidebar-collapse-toggle { margin-inline: auto; } #sidebar .sidebar-toggle-icon--rotated { transform: rotate(180deg); } body.sidebar-collapsed #sidebar .sidebar-toggle-icon--rotated, #sidebar.sidebar-collapsed .sidebar-toggle-icon--rotated { transform: rotate(0deg); } body.sidebar-collapsed #sidebar .sidebar-dropup-trigger, #sidebar.sidebar-collapsed .sidebar-dropup-trigger { justify-content: center; width: var(--sidebar-control-size); height: var(--sidebar-control-size); padding: 0; margin-inline: auto; border-radius: var(--radius-full); } body.sidebar-collapsed #sidebar .sidebar-dropup-trigger .sidebar-text, #sidebar.sidebar-collapsed .sidebar-dropup-trigger .sidebar-text { display: none; } body.sidebar-collapsed #sidebar .sidebar-dropup-trigger__chevron { display: none; } body.sidebar-collapsed #sidebar .sidebar-dropup-trigger__glyph, #sidebar.sidebar-collapsed .sidebar-dropup-trigger__glyph { margin: 0; } body.sidebar-collapsed #sidebar .sidebar-nav-link:hover, #sidebar.sidebar-collapsed .sidebar-nav-link:hover, body.sidebar-collapsed #sidebar .sidebar-nav-link:focus-visible, #sidebar.sidebar-collapsed .sidebar-nav-link:focus-visible { --sidebar-nav-translate-x: 0; } @media (min-width: 768px) { #sidebar { transform: translateX(0) !important; width: var(--sidebar-width); overflow: visible; } #app[data-sidebar-state="collapsed"] { margin-left: calc( var(--sidebar-width-collapsed) + var(--sidebar-content-gap) ); width: calc( 100vw - var(--sidebar-width-collapsed) - var(--sidebar-content-gap) ); max-width: calc( 100vw - var(--sidebar-width-collapsed) - var(--sidebar-content-gap) ); } #app[data-sidebar-state="expanded"] { margin-left: max( calc(var(--sidebar-width-expanded-base) + var(--sidebar-content-gap)), calc(var(--sidebar-dropup-content-width) + var(--sidebar-content-gap)) ); width: min( calc( 100vw - var(--sidebar-width-expanded-base) - var(--sidebar-content-gap) ), calc( 100vw - var(--sidebar-dropup-content-width) - var(--sidebar-content-gap) ) ); max-width: min( calc( 100vw - var(--sidebar-width-expanded-base) - var(--sidebar-content-gap) ), calc( 100vw - var(--sidebar-dropup-content-width) - var(--sidebar-content-gap) ) ); } } @keyframes card-motion-enter { from { opacity: 0; transform: translateY(var(--motion-card-enter-translate)); } to { opacity: 1; transform: translateY(0); } } @keyframes video-thumbnail-fade-in { from { opacity: 0; } to { opacity: 1; } } @keyframes interface-fade-in { from { opacity: 0; } to { opacity: 1; } } @keyframes fadeIn { from { opacity: 0; transform: translateY(var(--motion-fade-in-translate)); } to { opacity: 1; transform: translateY(0); } } @keyframes spin { to { transform: rotate(360deg); } } .status-line { margin-top: 0.25rem; margin-bottom: 0.25rem; font-size: var(--font-size-sm); line-height: var(--line-height-snug); line-height: 1.375; color: var(--text-primary); } /* Status log containers reserve space for dynamic messages. */ .status-line.error { color: var(--color-critical-strong); } .status-line.\!error { color: var(--color-critical-strong) !important; } .status-line.success { } .status-line.\!success { } .status-line.warn { color: var(--color-warning-strong); } /* Blog layout root scaffolding */ @keyframes ztr-rotate { 100% { transform: rotate(360deg); } } @keyframes ztr-dash { 0% { stroke-dasharray: 1, 150; stroke-dashoffset: 0; } 50% { stroke-dasharray: 90, 150; stroke-dashoffset: -35; } 100% { stroke-dasharray: 90, 150; stroke-dashoffset: -124; } } @keyframes svelte-181fgen-loader-animation { 0% { transform: rotate(0); } to { transform: rotate(360deg); } } @keyframes svelte-181fgen-fade-in { to { opacity: 1; } } .dm-app-shell { display: flex; flex-direction: column; gap: var(--space-lg); padding: var(--space-lg); background: var(--surface-base); color: var(--text-primary); min-height: 100vh; } .profile-modal .dm-app-shell { min-height: 0; height: auto; padding: 0; gap: var(--space-md); } .dm-app-shell__sidebar, .dm-app-shell__main { border-radius: var(--radius-lg); border: var(--border-width-hairline) solid var(--border-default); background: var(--surface-panel); box-shadow: var(--shadow-soft); } .profile-modal .dm-app-shell__sidebar, .profile-modal .dm-app-shell__main { height: auto; min-height: 0; border: none; box-shadow: none; background: transparent; padding: 0; } .dm-app-shell__sidebar { display: flex; flex-direction: column; gap: var(--space-md); padding: var(--space-md); } .dm-app-shell__title { font-size: var(--font-size-lg); margin: 0; } .dm-app-shell__main { flex: 1; display: flex; flex-direction: column; gap: var(--space-md); padding: var(--space-md); background: var(--surface-raised); } .profile-modal .dm-app-shell__main, .profile-modal .dm-app-shell__sidebar { min-width: 0; } .dm-conversation-list { display: flex; flex-direction: column; gap: var(--space-sm); } .dm-conversation-list__header { display: flex; justify-content: space-between; align-items: center; } .dm-conversation-list__items { display: flex; flex-direction: column; gap: var(--space-xs); overflow-y: auto; max-height: 60vh; padding-right: var(--space-xs); } .dm-conversation-list__state { font-size: var(--font-size-sm); color: var(--text-muted); padding: var(--space-md); text-align: center; background: var(--surface-sunken); border-radius: var(--radius-md); } .dm-contact-row { display: flex; align-items: center; gap: var(--space-sm); padding: var(--space-sm) var(--space-md); border-radius: var(--radius-md); border: var(--border-width-hairline) solid var(--border-subtle); background: transparent; color: inherit; text-align: left; cursor: pointer; } .dm-contact-row:hover, .dm-contact-row:focus-visible { background: var(--surface-muted); border-color: var(--border-strong); outline: none; } .dm-contact-row--active { background: var(--surface-sunken); border-color: var(--border-strong); } .dm-contact-row__content { display: flex; flex-direction: column; gap: var(--space-2xs); flex: 1; } .dm-contact-row__header { display: flex; justify-content: space-between; align-items: baseline; gap: var(--space-xs); } .dm-contact-row__meta { display: inline-flex; align-items: center; gap: var(--space-xs); } .dm-contact-row__name { font-weight: 600; } .dm-contact-row__badge { align-self: flex-start; padding: var(--space-3xs) var(--space-xs); border-radius: var(--radius-full); background: var(--color-accent); color: var(--color-white); font-size: var(--font-size-3xs); } .dm-avatar { display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; border-radius: var(--radius-full); background: var(--surface-sunken); color: var(--text-muted); font-weight: 600; overflow: hidden; border: var(--border-width-hairline) solid var(--border-subtle); } .dm-avatar--md { width: var(--space-xl-plus); height: var(--space-xl-plus); min-width: var(--space-xl-plus); min-height: var(--space-xl-plus); } .dm-avatar--sm { width: var(--space-xl); height: var(--space-xl); min-width: var(--space-xl); min-height: var(--space-xl); } .dm-avatar__image { width: 100%; height: 100%; -o-object-fit: cover; object-fit: cover; } .dm-message-thread { display: flex; flex-direction: column; gap: var(--space-sm); flex: 1; min-height: 0; } .dm-message-thread__header { display: flex; align-items: baseline; gap: var(--space-sm); } .dm-message-thread__title { font-size: var(--font-size-base); margin: 0; } .dm-message-thread__status { font-size: var(--font-size-xs); color: var(--text-muted); } .dm-message-thread__zap-summary { display: inline-flex; align-items: center; gap: var(--space-xs); padding: var(--space-2xs) var(--space-xs); border-radius: var(--radius-full); border: var(--border-width-hairline) solid var(--border-subtle); background: var(--surface-sunken); color: var(--text-muted); font-size: var(--font-size-2xs); } .dm-message-thread__zap-label { text-transform: uppercase; letter-spacing: var(--tracking-wide); } .dm-message-thread__zap-total { font-weight: 600; color: var(--text-primary); } .dm-message-thread__zap-profile { color: var(--text-muted); } .dm-message-thread__timeline { display: flex; flex-direction: column; gap: var(--space-sm); padding: var(--space-sm); border-radius: var(--radius-md); background: var(--surface-panel); border: var(--border-width-hairline) solid var(--border-subtle); overflow-y: auto; min-height: var(--size-16rem); } .dm-message-thread__state { padding: var(--space-md); text-align: center; color: var(--text-muted); background: var(--surface-sunken); border-radius: var(--radius-md); } .dm-message-row { display: flex; align-items: flex-end; gap: var(--space-xs); width: 100%; } .dm-message-avatar { width: var(--space-xl); height: var(--space-xl); flex-shrink: 0; border-radius: var(--radius-full); -o-object-fit: cover; object-fit: cover; background-color: var(--surface-sunken); border: var(--border-width-hairline) solid var(--border-subtle); } .dm-message-bubble { max-width: 75%; display: flex; flex-direction: column; gap: var(--space-2xs); padding: var(--space-sm) var(--space-md); border-radius: var(--radius-lg); border: var(--border-width-hairline) solid var(--message-bubble-border); background: var(--message-bubble-background); color: var(--message-bubble-text); } .dm-message-bubble--outgoing .dm-message-bubble__meta, .dm-message-bubble--outgoing .dm-message-bubble__status { color: var(--color-white); opacity: 0.9; } .dm-message-bubble__content { font-size: var(--font-size-sm); overflow-wrap: anywhere; white-space: pre-wrap; } .dm-message-bubble__meta { display: flex; gap: var(--space-xs); font-size: var(--font-size-2xs); color: var(--message-bubble-meta); } .dm-message-bubble__status { color: var(--text-muted); } .dm-message-bubble__status[data-status="pending"] { color: var(--status-warning); } .dm-message-bubble__status[data-status="sending"] { color: var(--status-info); } .dm-message-bubble__status[data-status="failed"] { color: var(--status-danger); } .dm-message-thread__new { align-self: center; border-radius: var(--radius-full); border: var(--border-width-hairline) solid var(--border-subtle); padding: var(--space-2xs) var(--space-sm); font-size: var(--font-size-2xs); background: var(--surface-sunken); color: var(--text-muted); } .dm-message-thread__new:hover, .dm-message-thread__new:focus-visible { background: var(--surface-overlay-panel-soft); color: var(--text-primary); outline: none; } .dm-day-divider { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: var(--space-xs); color: var(--text-muted); font-size: var(--font-size-2xs); } .dm-day-divider__line { height: var(--border-width-hairline); background: var(--border-subtle); } .dm-notification-center { display: flex; flex-direction: column; gap: var(--space-sm); } .dm-notification-center__filters { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-xs); } .dm-notification-center__filter-button { border-radius: var(--radius-full); border: var(--border-width-hairline) solid var(--border-subtle); background: var(--surface-sunken); padding: var(--space-2xs) var(--space-sm); font-size: var(--font-size-2xs); font-weight: 600; color: var(--text-muted); transition: color var(--motion-duration-fast) var(--motion-ease-out), background var(--motion-duration-fast) var(--motion-ease-out), border-color var(--motion-duration-fast) var(--motion-ease-out); } .dm-notification-center__filter-button:hover, .dm-notification-center__filter-button:focus-visible { outline: none; border-color: var(--border-strong); background: var(--surface-raised); color: var(--text-primary); } .dm-notification-center__filter-button--active { border-color: var(--border-strong); background: var(--surface-overlay-panel); color: var(--text-primary); } .dm-notification-center__groups { display: flex; flex-direction: column; gap: var(--space-md); } .dm-notification-center__group { display: flex; flex-direction: column; gap: var(--space-xs); } .dm-notification-center__group-title { font-size: var(--font-size-2xs); font-weight: 600; text-transform: uppercase; letter-spacing: var(--tracking-wide); color: var(--text-muted); } .dm-notification-center__list { display: flex; flex-direction: column; gap: var(--space-xs); } .dm-notification-center__empty { font-size: var(--font-size-xs); color: var(--text-muted); } .dm-notification-item { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: var(--space-sm); padding: var(--space-sm); border-radius: var(--radius-md); border: var(--border-width-hairline) solid var(--border-subtle); background: var(--surface-sunken); font-size: var(--font-size-xs); text-align: left; transition: border-color var(--motion-duration-fast) var(--motion-ease-out), background var(--motion-duration-fast) var(--motion-ease-out); } .dm-notification-item:hover, .dm-notification-item:focus-visible { outline: none; border-color: var(--border-strong); background: var(--surface-raised); } .dm-notification-item__icon { display: inline-flex; align-items: center; justify-content: center; width: var(--icon-size-md); height: var(--icon-size-md); border-radius: var(--radius-full); background: var(--surface-overlay-panel-soft); color: var(--text-muted); font-size: var(--font-size-xs); } .dm-notification-item__body { display: flex; flex-direction: column; gap: var(--space-2xs); min-width: 0; } .dm-notification-item__title { font-weight: 600; color: var(--text-primary); } .dm-notification-item__message { color: var(--text-muted); } .dm-notification-item__meta { display: flex; align-items: center; gap: var(--space-2xs); color: var(--text-muted); } .dm-notification-item__timestamp { font-variant-numeric: tabular-nums; white-space: nowrap; } .dm-composer { display: flex; flex-direction: column; gap: var(--space-xs); } .dm-composer__label { font-size: var(--font-size-xs); color: var(--text-muted); } .dm-composer__input { resize: vertical; border-radius: var(--radius-md); border: var(--border-width-hairline) solid var(--border-default); background: var(--surface-base); color: var(--text-primary); padding: var(--space-sm); font-family: inherit; } .dm-composer__input:focus-visible { outline: var(--space-3xs) solid var(--color-accent); outline-offset: var(--space-3xs); } .dm-composer__actions { display: flex; justify-content: space-between; align-items: center; gap: var(--space-sm); } .dm-composer__tools { display: flex; align-items: center; gap: var(--space-sm); flex-wrap: wrap; position: relative; } .dm-composer__hint { font-size: var(--font-size-2xs); color: var(--text-muted); } .dm-composer__attach, .dm-composer__more-btn { border-radius: var(--radius-md); border: var(--border-width-hairline) solid var(--border-default); background: var(--surface-base); color: var(--text-muted); padding: var(--space-2xs) var(--space-sm); font-size: var(--font-size-2xs); cursor: pointer; } .dm-composer__more-btn { font-weight: 700; line-height: 1; min-width: var(--space-xl); } .dm-composer__more-menu { position: absolute; bottom: 100%; left: 0; margin-bottom: var(--space-xs); background: var(--surface-overlay-panel); border: var(--border-width-hairline) solid var(--border-default); border-radius: var(--radius-md); box-shadow: var(--shadow-popover); z-index: 10; display: flex; flex-direction: column; min-width: var(--size-8rem); padding: var(--space-xs); } .dm-composer__menu-item { text-align: left; padding: var(--space-xs) var(--space-sm); border-radius: var(--radius-sm); font-size: var(--font-size-xs); color: var(--text-muted); background: transparent; border: none; cursor: pointer; transition: background var(--motion-duration-fast) ease-out; } .dm-composer__menu-item:hover, .dm-composer__menu-item:focus-visible { background: var(--surface-overlay-panel-soft); color: var(--text-primary); outline: none; } .dm-composer__menu-item[aria-pressed="true"] { background: var(--color-accent); color: var(--color-white); } .dm-composer__attach:hover, .dm-composer__attach:focus-visible, .dm-composer__more-btn:hover, .dm-composer__more-btn:focus-visible { background: var(--surface-overlay-panel-soft); color: var(--text-primary); outline: none; } .dm-composer__send { border-radius: var(--radius-md); border: var(--border-width-hairline) solid var(--border-strong); background: var(--surface-overlay-panel); color: var(--text-primary); padding: var(--space-xs) var(--space-md); font-weight: 600; cursor: pointer; } .dm-composer__send:hover, .dm-composer__send:focus-visible { background: var(--surface-overlay-panel-soft); outline: none; } .dm-composer__status { font-size: var(--font-size-2xs); color: var(--status-danger); min-height: var(--space-md); } @media (max-width: calc(768px - 0.02px)) { .dm-app-shell[data-dm-view="list"] .dm-app-shell__main { display: none !important; } .dm-app-shell[data-dm-view="thread"] .dm-app-shell__sidebar { display: none !important; } .dm-message-thread__back { display: inline-flex; align-items: center; gap: 0.5rem; } } @media (min-width: 768px) { .dm-app-shell { flex-direction: row; align-items: stretch; } .dm-app-shell__sidebar { flex: 0 0 var(--size-18rem); max-width: var(--size-20rem); height: calc(100vh - var(--space-lg) * 2); display: flex !important; } .dm-app-shell__main { height: calc(100vh - var(--space-lg) * 2); display: flex !important; } .dm-conversation-list__items { max-height: none; flex: 1; } .dm-message-thread__back { display: none !important; } } /* Ensure the profile pane for messages takes full height */ #profilePaneMessages { height: 100%; min-height: 0; } @media (min-width: 768px) { .profile-modal .dm-app-shell { flex-direction: row; align-items: stretch; height: 100%; min-height: 0; } .profile-modal .dm-app-shell__sidebar { flex: 0 0 var(--size-18rem); max-width: var(--size-20rem); height: 100%; overflow: hidden; display: flex; flex-direction: column; } .profile-modal .dm-app-shell__main { flex: 1 1 auto; height: 100%; overflow: hidden; display: flex; flex-direction: column; } .profile-modal .dm-conversation-list { flex: 1; min-height: 0; display: flex; flex-direction: column; } .profile-modal .dm-conversation-list__items { flex: 1; overflow-y: auto; min-height: 0; overscroll-behavior-y: contain; scrollbar-width: none; -ms-overflow-style: none; } .profile-modal .dm-conversation-list__items::-webkit-scrollbar { display: none; } .profile-modal .dm-message-thread { flex: 1; min-height: 0; display: flex; flex-direction: column; } .profile-modal .dm-message-thread__timeline { flex: 1; overflow-y: auto; min-height: 0; overscroll-behavior-y: contain; scrollbar-width: none; -ms-overflow-style: none; } .profile-modal .dm-message-thread__timeline::-webkit-scrollbar { display: none; } } @media (min-width: 1024px) { .dm-app-shell__sidebar { flex-basis: var(--size-20rem); } .dm-message-thread__timeline { padding: var(--space-md); } } .marquee-host { position: relative; overflow: hidden; white-space: nowrap; width: 100%; min-width: 0; max-width: 100%; } .marquee-static { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; opacity: 1; transition: opacity 0.3s ease; } .marquee-anim { position: absolute; inset: 0; display: flex; align-items: center; opacity: 0; transition: opacity 0.3s ease; pointer-events: none; mask-image: linear-gradient( to right, transparent, black 4%, black 96%, transparent ); -webkit-mask-image: linear-gradient( to right, transparent, black 4%, black 96%, transparent ); } .marquee-track { display: flex; width: -moz-max-content; width: max-content; animation: marquee-scroll linear infinite; animation-duration: var(--marquee-duration, 10s); animation-play-state: paused; } .marquee-item { flex-shrink: 0; padding-right: var(--space-xl); /* Gap between loop items */ } @keyframes marquee-scroll { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } } /* Desktop Hover State */ @media (min-width: 1024px) { .\!card:hover .marquee-host.can-marquee .marquee-static { opacity: 0 !important; } .\!card:hover .marquee-host.can-marquee .marquee-anim { opacity: 1 !important; } .\!card:hover .marquee-host.can-marquee .marquee-track { animation-play-state: running !important; } .card:hover .marquee-host.can-marquee .marquee-static { opacity: 0; } .card:hover .marquee-host.can-marquee .marquee-anim { opacity: 1; } .card:hover .marquee-host.can-marquee .marquee-track { animation-play-state: running; } .\!card:hover .marquee-host.can-marquee .marquee-static { opacity: 0 !important; } .\!card:hover .marquee-host.can-marquee .marquee-anim { opacity: 1 !important; } .\!card:hover .marquee-host.can-marquee .marquee-track { animation-play-state: running !important; } .\!card:hover .marquee-host.can-marquee .marquee-static { opacity: 0 !important; } .\!card:hover .marquee-host.can-marquee .marquee-anim { opacity: 1 !important; } .\!card:hover .marquee-host.can-marquee .marquee-track { animation-play-state: running !important; } } /* Mobile Active State */ @media (max-width: calc(1024px - var(--breakpoint-edge-offset))) { .\!card[data-mobile-active="true"] { --video-card-lift-translate-y: var(--motion-video-card-hover-translate) !important; --video-card-backdrop-opacity: 0.425 !important; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ) !important; --video-card-backdrop-scale: 1.12 !important; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong) !important; --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .\!card[data-mobile-active="true"] .video-card__title { color: var(--color-accent) !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-static { opacity: 0 !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-anim { opacity: 1 !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-track { animation-play-state: running !important; } .card[data-mobile-active="true"] { --video-card-lift-translate-y: var(--motion-video-card-hover-translate); --video-card-backdrop-opacity: 0.425; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ); --video-card-backdrop-scale: 1.12; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong); --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .card[data-mobile-active="true"] .video-card__title { color: var(--color-accent); } .card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-static { opacity: 0; } .card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-anim { opacity: 1; } .card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-track { animation-play-state: running; } .\!card[data-mobile-active="true"] { --video-card-lift-translate-y: var(--motion-video-card-hover-translate) !important; --video-card-backdrop-opacity: 0.425 !important; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ) !important; --video-card-backdrop-scale: 1.12 !important; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong) !important; --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .\!card[data-mobile-active="true"] .video-card__title { color: var(--color-accent) !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-static { opacity: 0 !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-anim { opacity: 1 !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-track { animation-play-state: running !important; } .\!card[data-mobile-active="true"] { --video-card-lift-translate-y: var(--motion-video-card-hover-translate) !important; --video-card-backdrop-opacity: 0.425 !important; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ) !important; --video-card-backdrop-scale: 1.12 !important; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong) !important; --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .\!card[data-mobile-active="true"] .video-card__title { color: var(--color-accent) !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-static { opacity: 0 !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-anim { opacity: 1 !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-track { animation-play-state: running !important; } .\!card[data-mobile-active="true"] { --video-card-lift-translate-y: var(--motion-video-card-hover-translate) !important; --video-card-backdrop-opacity: 0.425 !important; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ) !important; --video-card-backdrop-scale: 1.12 !important; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong) !important; --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .\!card[data-mobile-active="true"] .video-card__title { color: var(--color-accent) !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-static { opacity: 0 !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-anim { opacity: 1 !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-track { animation-play-state: running !important; } .\!card[data-mobile-active="true"] { --video-card-lift-translate-y: var(--motion-video-card-hover-translate) !important; --video-card-backdrop-opacity: 0.425 !important; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ) !important; --video-card-backdrop-scale: 1.12 !important; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong) !important; --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .\!card[data-mobile-active="true"] .video-card__title { color: var(--color-accent) !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-static { opacity: 0 !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-anim { opacity: 1 !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-track { animation-play-state: running !important; } .\!card[data-mobile-active="true"] { --video-card-lift-translate-y: var(--motion-video-card-hover-translate) !important; --video-card-backdrop-opacity: 0.425 !important; --video-card-backdrop-translate-y: var( --motion-video-card-backdrop-translate ) !important; --video-card-backdrop-scale: 1.12 !important; --video-card-backdrop-blur: var(--blur-video-card-backdrop-strong) !important; --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .\!card[data-mobile-active="true"] .video-card__title { color: var(--color-accent) !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-static { opacity: 0 !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-anim { opacity: 1 !important; } .\!card[data-mobile-active="true"] .marquee-host.can-marquee .marquee-track { animation-play-state: running !important; } } /* Logo accent wiring */ .bv-logo__accent { fill: var(--bitvid-accent, var(--logo-accent-color)); } .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border-width: 0; } .pointer-events-none { pointer-events: none; } .pointer-events-auto { pointer-events: auto; } .\!visible { visibility: visible !important; } .visible { visibility: visible; } .collapse { visibility: collapse; } .static { position: static; } .fixed { position: fixed; } .absolute { position: absolute; } .relative { position: relative; } .sticky { position: sticky; } .inset-0 { inset: 0px; } .inset-x-0 { left: 0px; right: 0px; } .bottom-16 { bottom: 4rem; } .bottom-4 { bottom: 1rem; } .bottom-6 { bottom: 1.5rem; } .left-1\/2 { left: 50%; } .left-4 { left: 1rem; } .right-2 { right: 0.5rem; } .right-3 { right: 0.75rem; } .right-4 { right: 1rem; } .right-6 { right: 1.5rem; } .top-0 { top: 0px; } .top-1\/2 { top: 50%; } .top-12 { top: 3rem; } .top-2 { top: 0.5rem; } .top-3 { top: 0.75rem; } .top-4 { top: 1rem; } .z-10 { z-index: 10; } .z-20 { z-index: 20; } .z-50 { z-index: 50; } .z-overlay-floating { z-index: var(--z-overlay-floating); } .z-overlay-toast { z-index: var(--z-overlay-toast); } .order-1 { order: 1; } .order-2 { order: 2; } .col-span-full { grid-column: 1 / -1; } .mx-1 { margin-left: 0.25rem; margin-right: 0.25rem; } .mx-auto { margin-left: auto; margin-right: auto; } .my-4 { margin-top: 1rem; margin-bottom: 1rem; } .my-6 { margin-top: 1.5rem; margin-bottom: 1.5rem; } .-ml-1 { margin-left: -0.25rem; } .-ml-2 { margin-left: -0.5rem; } .mb-1 { margin-bottom: 0.25rem; } .mb-2 { margin-bottom: 0.5rem; } .mb-3 { margin-bottom: 0.75rem; } .mb-4 { margin-bottom: 1rem; } .mb-6 { margin-bottom: 1.5rem; } .mb-8 { margin-bottom: 2rem; } .ml-1 { margin-left: 0.25rem; } .ml-2 { margin-left: 0.5rem; } .ml-4 { margin-left: 1rem; } .ml-auto { margin-left: auto; } .ml-md { margin-left: var(--space-md); } .mt-0\.5 { margin-top: 0.125rem; } .mt-1 { margin-top: 0.25rem; } .mt-1\.5 { margin-top: 0.375rem; } .mt-2 { margin-top: 0.5rem; } .mt-3 { margin-top: 0.75rem; } .mt-4 { margin-top: 1rem; } .mt-6 { margin-top: 1.5rem; } .mt-8 { margin-top: 2rem; } .mt-auto { margin-top: auto; } .mt-sm { margin-top: var(--space-sm); } .line-clamp-2 { overflow: hidden; display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; } .block { display: block; } .inline-block { display: inline-block; } .inline { display: inline; } .flex { display: flex; } .inline-flex { display: inline-flex; } .table { display: table; } .grid { display: grid; } .contents { display: contents; } .hidden { display: none; } .aspect-square { aspect-ratio: 1 / 1; } .aspect-video { aspect-ratio: 16 / 9; } .h-1 { height: 0.25rem; } .h-1\.5 { height: 0.375rem; } .h-10 { height: 2.5rem; } .h-12 { height: 3rem; } .h-14 { height: 3.5rem; } .h-16 { height: 4rem; } .h-24 { height: 6rem; } .h-2xl { height: var(--space-2xl); } .h-3 { height: 0.75rem; } .h-3\.5 { height: 0.875rem; } .h-32 { height: 8rem; } .h-4 { height: 1rem; } .h-4\/5 { height: 80%; } .h-40 { height: 10rem; } .h-48 { height: 12rem; } .h-5 { height: 1.25rem; } .h-6 { height: 1.5rem; } .h-8 { height: 2rem; } .h-9 { height: 2.25rem; } .h-\[80vh\] { height: 80vh; } .h-auto { height: auto; } .h-full { height: 100%; } .h-px { height: 1px; } .h-screen { height: 100vh; } .max-h-\[90vh\] { max-height: 90vh; } .max-h-\[980px\] { max-height: 980px; } .max-h-modal-body { max-height: var(--modal-body-max-height); } .max-h-modal-pane { max-height: var(--modal-pane-max-height); } .max-h-modal-sheet { max-height: var(--modal-sheet-max-height); } .max-h-modal-shell { max-height: var(--modal-shell-max-height); } .min-h-0 { min-height: 0px; } .min-h-\[200px\] { min-height: 200px; } .min-h-\[var\(--size-80px\)\] { min-height: var(--size-80px); } .min-h-screen { min-height: 100vh; } .w-10 { width: 2.5rem; } .w-12 { width: 3rem; } .w-14 { width: 3.5rem; } .w-16 { width: 4rem; } .w-20 { width: 5rem; } .w-24 { width: 6rem; } .w-28 { width: 7rem; } .w-3 { width: 0.75rem; } .w-3\.5 { width: 0.875rem; } .w-32 { width: 8rem; } .w-4 { width: 1rem; } .w-44 { width: 11rem; } .w-48 { width: 12rem; } .w-5 { width: 1.25rem; } .w-56 { width: 14rem; } .w-6 { width: 1.5rem; } .w-72 { width: 18rem; } .w-8 { width: 2rem; } .w-80 { width: 20rem; } .w-9 { width: 2.25rem; } .w-auto { width: auto; } .w-full { width: 100%; } .w-screen { width: 100vw; } .min-w-0 { min-width: 0px; } .min-w-full { min-width: 100%; } .max-w-2xl { max-width: 42rem; } .max-w-3xl { max-width: 48rem; } .max-w-4xl { max-width: 56rem; } .max-w-5xl { max-width: 64rem; } .max-w-7xl { max-width: 80rem; } .max-w-\[200px\] { max-width: 200px; } .max-w-docs { max-width: var(--layout-docs-max-width); } .max-w-lg { max-width: 32rem; } .max-w-md { max-width: 28rem; } .max-w-none { max-width: none; } .max-w-popover-safe { max-width: var(--popover-inline-safe-max); } .max-w-sm { max-width: 24rem; } .max-w-xs { max-width: 20rem; } .flex-1 { flex: 1 1 0%; } .flex-shrink-0 { flex-shrink: 0; } .shrink-0 { flex-shrink: 0; } .flex-grow { flex-grow: 1; } .grow { flex-grow: 1; } .origin-top { transform-origin: top; } .-translate-x-1\/2 { --tw-translate-x: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } .-translate-y-1\/2 { --tw-translate-y: -50%; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } .rotate-0 { --tw-rotate: 0deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } .rotate-180 { --tw-rotate: 180deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } .rotate-90 { --tw-rotate: 90deg; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } .scale-\[1\.2\] { --tw-scale-x: 1.2; --tw-scale-y: 1.2; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } .transform { transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } @keyframes pulse { 50% { opacity: .5; } } .animate-pulse { animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; } @keyframes spin { to { transform: rotate(360deg); } } .animate-spin { animation: spin 1s linear infinite; } .cursor-not-allowed { cursor: not-allowed; } .cursor-pointer { cursor: pointer; } .cursor-wait { cursor: wait; } .select-none { -webkit-user-select: none; -moz-user-select: none; user-select: none; } .select-all { -webkit-user-select: all; -moz-user-select: all; user-select: all; } .resize-y { resize: vertical; } .resize { resize: both; } .list-disc { list-style-type: disc; } .auto-rows-fr { grid-auto-rows: minmax(0, 1fr); } .grid-cols-1 { grid-template-columns: repeat(1, minmax(0, 1fr)); } .grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .flex-row { flex-direction: row; } .flex-col { flex-direction: column; } .flex-wrap { flex-wrap: wrap; } .items-start { align-items: flex-start; } .items-end { align-items: flex-end; } .items-center { align-items: center; } .items-stretch { align-items: stretch; } .justify-start { justify-content: flex-start; } .justify-end { justify-content: flex-end; } .justify-center { justify-content: center; } .justify-between { justify-content: space-between; } .gap-1 { gap: 0.25rem; } .gap-1\.5 { gap: 0.375rem; } .gap-12 { gap: 3rem; } .gap-2 { gap: 0.5rem; } .gap-3 { gap: 0.75rem; } .gap-4 { gap: 1rem; } .gap-6 { gap: 1.5rem; } .gap-8 { gap: 2rem; } .gap-lg { gap: var(--space-lg); } .gap-sm { gap: var(--space-sm); } .gap-xl { gap: var(--space-xl); } .gap-xs { gap: var(--space-xs); } .gap-x-2 { -moz-column-gap: 0.5rem; column-gap: 0.5rem; } .gap-x-3 { -moz-column-gap: 0.75rem; column-gap: 0.75rem; } .gap-y-1 { row-gap: 0.25rem; } .gap-y-6 { row-gap: 1.5rem; } .gap-y-8 { row-gap: 2rem; } .space-x-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.5rem * var(--tw-space-x-reverse)); margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse))); } .space-x-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(0.75rem * var(--tw-space-x-reverse)); margin-left: calc(0.75rem * calc(1 - var(--tw-space-x-reverse))); } .space-x-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-x-reverse: 0; margin-right: calc(1rem * var(--tw-space-x-reverse)); margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); } .space-y-1 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); } .space-y-2 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); } .space-y-3 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0.75rem * var(--tw-space-y-reverse)); } .space-y-4 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1rem * var(--tw-space-y-reverse)); } .space-y-5 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.25rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.25rem * var(--tw-space-y-reverse)); } .space-y-6 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); } .space-y-8 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(2rem * var(--tw-space-y-reverse)); } .divide-y > :not([hidden]) ~ :not([hidden]) { --tw-divide-y-reverse: 0; border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); border-bottom-width: calc(1px * var(--tw-divide-y-reverse)); } .divide-border-translucent > :not([hidden]) ~ :not([hidden]) { border-color: var(--border-overlay); } .self-start { align-self: flex-start; } .overflow-auto { overflow: auto; } .overflow-hidden { overflow: hidden; } .overflow-x-auto { overflow-x: auto; } .overflow-y-auto { overflow-y: auto; } .truncate { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .whitespace-nowrap { white-space: nowrap; } .whitespace-pre-line { white-space: pre-line; } .whitespace-pre-wrap { white-space: pre-wrap; } .break-words { overflow-wrap: break-word; } .break-all { word-break: break-all; } .rounded { border-radius: 0.25rem; } .rounded-2xl { border-radius: 1rem; } .rounded-3xl { border-radius: 1.5rem; } .rounded-full { border-radius: var(--radius-full); } .rounded-lg { border-radius: var(--radius-lg); } .rounded-md { border-radius: var(--radius-md); } .rounded-none { border-radius: 0px; } .rounded-xl { border-radius: var(--radius-xl); } .rounded-r-md { border-top-right-radius: var(--radius-md); border-bottom-right-radius: var(--radius-md); } .rounded-t-lg { border-top-left-radius: var(--radius-lg); border-top-right-radius: var(--radius-lg); } .border { border-width: 1px; } .border-0 { border-width: 0px; } .border-2 { border-width: 2px; } .border-b { border-bottom-width: 1px; } .border-l { border-left-width: 1px; } .border-l-2 { border-left-width: 2px; } .border-l-4 { border-left-width: 4px; } .border-r { border-right-width: 1px; } .border-t { border-top-width: 1px; } .border-dashed { border-style: dashed; } .border-none { border-style: none; } .border-accent { border-color: var(--color-accent); } .border-border { border-color: var(--border-default); } .border-border-strong { border-color: var(--border-strong); } .border-border-subtle { border-color: var(--border-subtle); } .border-border-translucent { border-color: var(--border-overlay); } .border-border-translucent-bright { border-color: var(--color-border-translucent-bright); } .border-border-translucent-medium { border-color: var(--color-border-translucent-medium); } .border-overlay { border-color: var(--border-overlay); } .border-overlay-strong { border-color: var(--border-overlay-strong); } .border-status-danger-border { border-color: var(--status-danger-border); } .border-status-info { border-color: var(--status-info); } .border-status-info-border { border-color: var(--status-info-border); } .border-status-success-border { border-color: var(--status-success-border); } .border-status-warning-border { border-color: var(--status-warning-border); } .border-surface-strong { border-color: var(--border-strong); } .border-transparent { border-color: transparent; } .border-opacity-20 { --tw-border-opacity: 0.2; } .border-opacity-40 { --tw-border-opacity: 0.4; } .bg-accent-strong { background-color: var(--color-accent-strong); } .bg-overlay-muted { background-color: var(--surface-overlay-muted); } .bg-overlay-panel { background-color: var(--surface-overlay-panel); } .bg-overlay-panel-soft { background-color: var(--surface-overlay-panel-soft); } .bg-overlay-strong { background-color: var(--surface-overlay-strong); } .bg-panel { background-color: var(--surface-panel); } .bg-status-danger-surface { background-color: var(--status-danger-surface); } .bg-status-info-surface { background-color: var(--status-info-surface); } .bg-status-success-surface { background-color: var(--status-success-surface); } .bg-status-warning-surface { background-color: var(--status-warning-surface); } .bg-surface { background-color: var(--surface-base); } .bg-surface-alt { background-color: var(--surface-alt); } .bg-surface-muted { background-color: var(--surface-muted); } .bg-transparent { background-color: transparent; } .bg-white { background-color: var(--color-white); } .bg-opacity-95 { --tw-bg-opacity: 0.95; } .bg-gradient-to-b { background-image: linear-gradient(to bottom, var(--tw-gradient-stops)); } .bg-overlay-channel { background-image: var(--surface-overlay-banner-gradient-channel); } .via-transparent { --tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position); --tw-gradient-stops: var(--tw-gradient-from), transparent var(--tw-gradient-via-position), var(--tw-gradient-to); } .to-transparent { --tw-gradient-to: transparent var(--tw-gradient-to-position); } .stroke-border-translucent { stroke: var(--border-overlay); } .stroke-current { stroke: currentColor; } .object-cover { -o-object-fit: cover; object-fit: cover; } .p-0 { padding: 0px; } .p-1 { padding: 0.25rem; } .p-2 { padding: 0.5rem; } .p-3 { padding: 0.75rem; } .p-4 { padding: 1rem; } .p-5 { padding: 1.25rem; } .p-6 { padding: 1.5rem; } .p-8 { padding: 2rem; } .p-lg { padding: var(--space-lg); } .p-md { padding: var(--space-md); } .px-0 { padding-left: 0px; padding-right: 0px; } .px-1 { padding-left: 0.25rem; padding-right: 0.25rem; } .px-1\.5 { padding-left: 0.375rem; padding-right: 0.375rem; } .px-2 { padding-left: 0.5rem; padding-right: 0.5rem; } .px-3 { padding-left: 0.75rem; padding-right: 0.75rem; } .px-4 { padding-left: 1rem; padding-right: 1rem; } .px-5 { padding-left: 1.25rem; padding-right: 1.25rem; } .px-6 { padding-left: 1.5rem; padding-right: 1.5rem; } .px-lg { padding-left: var(--space-lg); padding-right: var(--space-lg); } .px-md { padding-left: var(--space-md); padding-right: var(--space-md); } .py-0 { padding-top: 0px; padding-bottom: 0px; } .py-0\.5 { padding-top: 0.125rem; padding-bottom: 0.125rem; } .py-1 { padding-top: 0.25rem; padding-bottom: 0.25rem; } .py-1\.5 { padding-top: 0.375rem; padding-bottom: 0.375rem; } .py-12 { padding-top: 3rem; padding-bottom: 3rem; } .py-16 { padding-top: 4rem; padding-bottom: 4rem; } .py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; } .py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; } .py-4 { padding-top: 1rem; padding-bottom: 1rem; } .py-5 { padding-top: 1.25rem; padding-bottom: 1.25rem; } .py-6 { padding-top: 1.5rem; padding-bottom: 1.5rem; } .py-8 { padding-top: 2rem; padding-bottom: 2rem; } .py-md { padding-top: var(--space-md); padding-bottom: var(--space-md); } .py-xl { padding-top: var(--space-xl); padding-bottom: var(--space-xl); } .pb-16 { padding-bottom: 4rem; } .pb-2 { padding-bottom: 0.5rem; } .pb-4 { padding-bottom: 1rem; } .pb-6 { padding-bottom: 1.5rem; } .pb-8 { padding-bottom: 2rem; } .pl-2 { padding-left: 0.5rem; } .pl-5 { padding-left: 1.25rem; } .pl-6 { padding-left: 1.5rem; } .pl-md { padding-left: var(--space-md); } .pr-1 { padding-right: 0.25rem; } .pt-1 { padding-top: 0.25rem; } .pt-2 { padding-top: 0.5rem; } .pt-4 { padding-top: 1rem; } .pt-5 { padding-top: 1.25rem; } .pt-6 { padding-top: 1.5rem; } .text-left { text-align: left; } .text-center { text-align: center; } .text-right { text-align: right; } .align-top { vertical-align: top; } .align-middle { vertical-align: middle; } .font-mono { font-family: var(--font-family-mono); } .font-sans { font-family: var(--font-family-sans); } .text-2xl { font-size: var(--font-size-2xl); line-height: var(--line-height-relaxed); } .text-2xs { font-size: var(--font-size-2xs); line-height: var(--line-height-tight); } .text-3xl { font-size: 1.875rem; line-height: 2.25rem; } .text-3xs { font-size: var(--font-size-3xs); line-height: var(--line-height-tight); } .text-4xl { font-size: 2.25rem; line-height: 2.5rem; } .text-\[0\.75rem\] { font-size: 0.75rem; } .text-base { font-size: var(--font-size-base); line-height: var(--line-height-base); } .text-lg { font-size: var(--font-size-lg); line-height: var(--line-height-base); } .text-sm { font-size: var(--font-size-sm); line-height: var(--line-height-snug); } .text-xl { font-size: var(--font-size-xl); line-height: var(--line-height-relaxed); } .text-xs { font-size: var(--font-size-xs); line-height: var(--line-height-tight); } .font-bold { font-weight: 700; } .font-extrabold { font-weight: 800; } .font-medium { font-weight: 500; } .font-semibold { font-weight: 600; } .uppercase { text-transform: uppercase; } .lowercase { text-transform: lowercase; } .normal-case { text-transform: none; } .italic { font-style: italic; } .ordinal { --tw-ordinal: ordinal; font-variant-numeric: var(--tw-ordinal) var(--tw-slashed-zero) var(--tw-numeric-figure) var(--tw-numeric-spacing) var(--tw-numeric-fraction); } .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); } .leading-none { line-height: 1; } .leading-relaxed { line-height: 1.625; } .leading-snug { line-height: 1.375; } .tracking-extra-wide { letter-spacing: var(--tracking-extra-wide); } .tracking-tight { letter-spacing: -0.025em; } .tracking-wide { letter-spacing: 0.025em; } .tracking-wider { letter-spacing: 0.05em; } .text-accent { color: var(--color-accent); } .text-black { color: var(--color-black); } .text-critical { color: var(--color-critical); } .text-critical-strong { color: var(--color-critical-strong); } .text-info { color: var(--color-info); } .text-info-strong { color: var(--color-info-strong); } .text-muted { color: var(--text-muted); } .text-muted-strong { color: var(--text-muted-strong); } .text-primary { color: var(--text-primary); } .text-status-danger { color: var(--status-danger); } .text-status-danger-on { color: var(--status-danger-on); } .text-status-info { color: var(--status-info); } .text-status-info-on { color: var(--status-info-on); } .text-status-neutral { color: var(--status-neutral); } .text-status-private-on { color: var(--status-private-on); } .text-status-success { color: var(--status-success); } .text-status-success-on { color: var(--status-success-on); } .text-status-warning { color: var(--status-warning); } .text-status-warning-on { color: var(--status-warning-on); } .text-subtle { color: var(--text-subtle); } .text-text { color: var(--text-primary); } .text-text-frosted { color: var(--text-frosted-primary); } .text-text-muted { color: var(--text-muted); } .text-text-strong { color: var(--color-text-strong); } .text-warning { color: var(--status-warning); } .text-warning-strong { color: var(--status-warning-strong); } .text-white { color: var(--color-white); } .underline { text-decoration-line: underline; } .decoration-dotted { text-decoration-style: dotted; } .underline-offset-2 { text-underline-offset: 2px; } .opacity-0 { opacity: 0; } .opacity-20 { opacity: 0.2; } .opacity-40 { opacity: 0.4; } .opacity-50 { opacity: 0.5; } .opacity-60 { opacity: 0.6; } .opacity-70 { opacity: 0.7; } .opacity-80 { opacity: 0.8; } .opacity-95 { opacity: 0.95; } .shadow-2xl { --tw-shadow: 0 25px 50px -12px rgb(0 0 0 / 0.25); --tw-shadow-colored: 0 25px 50px -12px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .shadow-inner { --tw-shadow: inset 0 2px 4px 0 rgb(0 0 0 / 0.05); --tw-shadow-colored: inset 0 2px 4px 0 var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .shadow-lg { --tw-shadow: var(--shadow-lg); --tw-shadow-colored: var(--shadow-lg); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .shadow-md { --tw-shadow: var(--shadow-md); --tw-shadow-colored: var(--shadow-md); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .shadow-sm { --tw-shadow: var(--shadow-sm); --tw-shadow-colored: var(--shadow-sm); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .shadow-xl { --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .outline-none { outline: 2px solid transparent; outline-offset: 2px; } .outline { outline-style: solid; } .blur { --tw-blur: blur(8px); 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); } .blur-xl { --tw-blur: blur(24px); 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); } .drop-shadow-md { --tw-drop-shadow: drop-shadow(0 4px 3px rgb(0 0 0 / 0.07)) drop-shadow(0 2px 2px rgb(0 0 0 / 0.06)); 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); } .\!filter { 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) !important; } .filter { 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(12px); 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-blur-sm { --tw-backdrop-blur: blur(4px); 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 { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } .transition-all { transition-property: all; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } .transition-colors { transition-property: color, background-color, border-color, text-decoration-color, fill, stroke; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } .transition-opacity { transition-property: opacity; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } .transition-transform { transition-property: transform; transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); transition-duration: 150ms; } .duration-150 { transition-duration: 150ms; } .duration-200 { transition-duration: 200ms; } .duration-300 { transition-duration: 300ms; } .duration-fast { transition-duration: var(--motion-duration-fast); } .ease-out { transition-timing-function: cubic-bezier(0, 0, 0.2, 1); } @media (max-width: 640px) { .bv-grid-video { gap: var(--space-md); grid-template-columns: 1fr; } } @media (prefers-reduced-motion: reduce) { :root { --motion-duration-fast: 0s; --motion-duration-base: 0s; --motion-duration-slow: 0s; --modal-motion-duration: 0s; } *, *::before, *::after { animation-delay: 0s !important; animation-duration: 0s !important; animation-iteration-count: 1 !important; animation-timing-function: linear !important; transition-delay: 0s !important; transition-duration: 0s !important; transition-timing-function: linear !important; } .player-modal__similar-card::before { transition: none !important; } .btn, .btn-ghost, .card, .card[data-motion="enter"], .fade-in, .icon-button, .menu__item, .modal-nav, .popover-panel, .popover__panel, .progress-bar-fill, .notification-banner, .notification-portal, .torrent-toast, .status-banner .status-spinner, .status-spinner--inline, .video-modal__panel, .watch-history-card, .watch-history-card__creatorAvatar, .watch-history-card__creatorName, .watch-history-card__action, .watch-history-card__title, #app, #playerModal .player-modal__content, #sidebar, .sidebar-collapse-toggle, .sidebar-collapse-toggle__icon, .sidebar-dropup-panel, .sidebar-dropup-trigger, .sidebar-dropup-trigger__chevron, .sidebar-nav, .sidebar-nav-link, .sidebar-loading-indicator, .sidebar-loading-wrapper { transition-property: none !important; } .popover-panel, .popover__panel { transform: none !important; } .popover-panel[data-state="open"], .popover__panel[data-state="open"] { opacity: 1; } .popover-panel[data-state="closed"], .popover__panel[data-state="closed"] { opacity: 0; } .card[data-motion="enter"], .fade-in { opacity: 1; animation: none !important; } [data-video-thumbnail][data-thumbnail-loaded="true"] { animation: none !important; opacity: 1; } .notification-banner, .torrent-toast, .status-banner .status-spinner, .status-spinner--inline { animation: none !important; } .notification-portal { transform: none !important; opacity: 1 !important; } } /* Profile Modal Full Screen Overrides */ #profileModal { padding: 0; width: 100vw; height: 100vh; max-width: none; max-height: none; } #profileModal .bv-modal__panel { width: 100%; height: 100%; max-width: none; max-height: none; border-radius: 0; border: none; } /* Override responsive max-height constraint */ @media (min-width: 1024px) { #profileModal .profile-modal { max-block-size: none; } } .no-scrollbar { scrollbar-width: none !important; -ms-overflow-style: none !important; } .no-scrollbar::-webkit-scrollbar { display: none !important; } /* Embed & Video Modal Fixes */ .empty\:hidden:empty .bv-modal { display: none !important; } .empty\:hidden:empty.profile-pane { display: none !important; } @media (min-width: 768px) { .md\:hidden .bv-modal { display: none !important; } .md\:hidden.profile-pane { display: none !important; } } @media (min-width: 1024px) { .lg\:hidden .bv-modal { display: none !important; } .lg\:hidden.profile-pane { display: none !important; } } .placeholder\:text-muted::-moz-placeholder { color: var(--text-muted); } .placeholder\:text-muted::placeholder { color: var(--text-muted); } .empty\:hidden:empty { display: none; } .hover\:scale-105:hover { --tw-scale-x: 1.05; --tw-scale-y: 1.05; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } .hover\:border-status-danger-border:hover { border-color: var(--status-danger-border); } .hover\:bg-overlay-panel:hover { background-color: var(--surface-overlay-panel); } .hover\:bg-panel-hover:hover { background-color: var(--surface-panel-hover); } .hover\:text-accent:hover { color: var(--color-accent); } .hover\:text-accent-strong:hover { color: var(--color-accent-strong); } .hover\:text-critical:hover { color: var(--color-critical); } .hover\:text-info-strong:hover { color: var(--color-info-strong); } .hover\:text-status-danger-strong:hover { color: var(--status-danger-strong); } .hover\:text-text:hover { color: var(--text-primary); } .hover\:text-text-strong:hover { color: var(--color-text-strong); } .hover\:underline:hover { text-decoration-line: underline; } .hover\:opacity-80:hover { opacity: 0.8; } .hover\:opacity-90:hover { opacity: 0.9; } .hover\:shadow-sm:hover { --tw-shadow: var(--shadow-sm); --tw-shadow-colored: var(--shadow-sm); box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); } .focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; } .focus\:ring-0:focus { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } .focus\:ring-2:focus { --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color); --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); } .focus\:ring-accent:focus { --tw-ring-color: var(--color-accent); } .focus\:ring-info:focus { --tw-ring-color: var(--color-info); } .focus\:ring-status-info:focus { --tw-ring-color: var(--status-info); } .focus\:ring-status-success:focus { --tw-ring-color: var(--status-success); } .focus\:ring-offset-2:focus { --tw-ring-offset-width: 2px; } .focus\:ring-offset-surface:focus { --tw-ring-offset-color: var(--surface-base); } .focus-visible\:bg-primary:focus-visible { background-color: var(--color-primary); } .focus-visible\:outline:focus-visible { outline-style: solid; } .focus-visible\:outline-2:focus-visible { outline-width: 2px; } .focus-visible\:outline-offset-2:focus-visible { outline-offset: 2px; } .focus-visible\:outline-info:focus-visible { outline-color: var(--color-info); } .active\:scale-95:active { --tw-scale-x: .95; --tw-scale-y: .95; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } .disabled\:cursor-not-allowed:disabled { cursor: not-allowed; } .disabled\:opacity-50:disabled { opacity: 0.5; } .group:hover .group-hover\:scale-105 { --tw-scale-x: 1.05; --tw-scale-y: 1.05; transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); } .group:hover .group-hover\:text-primary { color: var(--text-primary); } .group:hover .group-hover\:opacity-100 { opacity: 1; } @media not all and (min-width: 640px) { .max-sm\:h-12 { height: 3rem; } .max-sm\:w-12 { width: 3rem; } .max-sm\:text-2xs { font-size: var(--font-size-2xs); line-height: var(--line-height-tight); } .max-sm\:text-base { font-size: var(--font-size-base); line-height: var(--line-height-base); } } @media (min-width: 640px) { .sm\:order-1 { order: 1; } .sm\:order-2 { order: 2; } .sm\:col-span-2 { grid-column: span 2 / span 2; } .sm\:flex { display: flex; } .sm\:w-1\/3 { width: 33.333333%; } .sm\:w-32 { width: 8rem; } .sm\:w-48 { width: 12rem; } .sm\:w-auto { width: auto; } .sm\:max-w-xs { max-width: 20rem; } .sm\:flex-none { flex: none; } .sm\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .sm\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .sm\:flex-row { flex-direction: row; } .sm\:flex-wrap { flex-wrap: wrap; } .sm\:items-start { align-items: flex-start; } .sm\:items-end { align-items: flex-end; } .sm\:items-center { align-items: center; } .sm\:justify-end { justify-content: flex-end; } .sm\:justify-between { justify-content: space-between; } .sm\:gap-2 { gap: 0.5rem; } .sm\:space-y-0 > :not([hidden]) ~ :not([hidden]) { --tw-space-y-reverse: 0; margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(0px * var(--tw-space-y-reverse)); } .sm\:self-end { align-self: flex-end; } .sm\:p-0 { padding: 0px; } .sm\:p-4 { padding: 1rem; } .sm\:p-5 { padding: 1.25rem; } .sm\:px-6 { padding-left: 1.5rem; padding-right: 1.5rem; } .sm\:py-0 { padding-top: 0px; padding-bottom: 0px; } .sm\:pt-8 { padding-top: 2rem; } } @media (min-width: 768px) { .md\:col-span-2 { grid-column: span 2 / span 2; } .md\:flex { display: flex; } .md\:hidden { display: none; } .md\:h-64 { height: 16rem; } .md\:w-1\/3 { width: 33.333333%; } .md\:w-2\/3 { width: 66.666667%; } .md\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .md\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .md\:flex-row { flex-direction: row; } .md\:items-end { align-items: flex-end; } .md\:items-center { align-items: center; } .md\:justify-end { justify-content: flex-end; } .md\:gap-md { gap: var(--space-md); } .md\:pb-12 { padding-bottom: 3rem; } } @media (min-width: 1024px) { .lg\:ml-auto { margin-left: auto; } .lg\:block { display: block; } .lg\:flex { display: flex; } .lg\:hidden { display: none; } .lg\:h-auto { height: auto; } .lg\:max-h-modal-shell { max-height: var(--modal-shell-max-height); } .lg\:w-64 { width: 16rem; } .lg\:max-w-4xl { max-width: 56rem; } .lg\:max-w-5xl { max-width: 64rem; } .lg\:shrink-0 { flex-shrink: 0; } .lg\:grid-cols-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); } .lg\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .lg\:flex-row { flex-direction: row; } .lg\:flex-wrap { flex-wrap: wrap; } .lg\:items-start { align-items: flex-start; } .lg\:justify-center { justify-content: center; } .lg\:justify-between { justify-content: space-between; } .lg\:rounded-modal-xl { border-radius: var(--radius-modal-xl); } .lg\:border { border-width: 1px; } .lg\:p-8 { padding: 2rem; } .lg\:px-8 { padding-left: 2rem; padding-right: 2rem; } .lg\:text-right { text-align: right; } } @media (min-width: 1280px) { .xl\:grid-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); } .xl\:grid-cols-4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }