nekostream 2026.4.2 → 2026.4.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,97 @@
1
+ "use strict";
2
+ /**
3
+ * Mapping of popular Vietnamese anime titles to their canonical
4
+ * Japanese (Romaji) and English titles for AniList metadata enrichment.
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.VIETNAMESE_TITLE_MAP = void 0;
8
+ exports.lookupVietnameseTitle = lookupVietnameseTitle;
9
+ function toUnaccented(str) {
10
+ return str
11
+ .normalize('NFD')
12
+ .replace(/[\u0300-\u036f]/g, '')
13
+ .replace(/đ/g, 'd')
14
+ .replace(/Đ/g, 'D')
15
+ .toLowerCase()
16
+ .replace(/[-_]+/g, ' ')
17
+ .replace(/[^a-z0-9\s]/g, '')
18
+ .replace(/\s+/g, ' ')
19
+ .trim();
20
+ }
21
+ exports.VIETNAMESE_TITLE_MAP = {
22
+ // Classic & Long-running
23
+ 'tham tu lung danh conan': 'Detective Conan, Meitantei Conan',
24
+ 'dao hai tac': 'One Piece',
25
+ 'vua hai tac': 'One Piece',
26
+ 'bay vien ngoc rong': 'Dragon Ball',
27
+ 'ngoc rong': 'Dragon Ball',
28
+ 'tho san ti hon': 'Hunter x Hunter',
29
+ 'hoi phap su': 'Fairy Tail',
30
+ 'cuon so tu than': 'Death Note',
31
+ 'su gia shinigami': 'Bleach',
32
+ 'cao thu bong ro': 'Slam Dunk',
33
+ 'vua bong chuyen': 'Haikyuu!!',
34
+ 'tuyen thu vo hinh': 'Kuroko no Basket',
35
+ // Modern Shonen Hits
36
+ 'thanh guom diet quy': 'Kimetsu no Yaiba, Demon Slayer',
37
+ 'chu thuat hoi chien': 'Jujutsu Kaisen',
38
+ 'dai chien titan': 'Shingeki no Kyojin, Attack on Titan',
39
+ 'hoc vien sieu anh hung': 'Boku no Hero Academia, My Hero Academia',
40
+ 'quy cua': 'Chainsaw Man',
41
+ 'nguoi cua may': 'Chainsaw Man',
42
+ 'gia dinh diep vien': 'Spy x Family',
43
+ 'thang cap mot minh': 'Solo Leveling',
44
+ 'toi thang cap mot minh': 'Solo Leveling',
45
+ 'quai thu so 8': 'Kaiju No. 8',
46
+ 'nga quy tokyo': 'Tokyo Ghoul',
47
+ // Isekai & Fantasy
48
+ 'chuyen sinh thanh slime': 'Tensei shitara Slime Datta Ken',
49
+ 'toi chuyen sinh thanh slime': 'Tensei shitara Slime Datta Ken',
50
+ 've chuyen sinh thanh slime': 'Tensei shitara Slime Datta Ken',
51
+ 'that nghiep chuyen sinh': 'Mushoku Tensei: Isekai Ittara Honki Dasu',
52
+ 'bat dau lai o the gioi khac': 'Re:Zero kara Hajimeru Isekai Seikatsu',
53
+ 'chua te bong toi': 'Kage no Jitsuryokusha ni Naritakute',
54
+ 'dao kiem than vuc': 'Sword Art Online',
55
+ 'that hinh dai toi': 'Nanatsu no Taizai, The Seven Deadly Sins',
56
+ 'lac vao the gioi game': 'Overlord',
57
+ 'khong co game thi khong co cuoc song': 'No Game No Life',
58
+ 'su troi day cua khien hiep si': 'Tate no Yuusha no Nariagari',
59
+ 'khien hiep si': 'Tate no Yuusha no Nariagari',
60
+ // Drama, Romance, Slice of Life
61
+ 'dam cuoi dom dom': 'Hotaru no Yomeiri',
62
+ 'duoc su tu su': 'Kusuriya no Hitorigoto, The Apothecary Diaries',
63
+ 'phap su tien tang': 'Sousou no Frieren',
64
+ 'frieren phap su tien tang': 'Sousou no Frieren',
65
+ 'cuoc chien to tinh': 'Kaguya-sama wa Kokurasetai',
66
+ 'dua con cua than tuong': 'Oshi no Ko',
67
+ 'lop hoc am sat': 'Ansatsu Kyoushitsu, Assassination Classroom',
68
+ 'cuoc goi cua bong dem': 'Yofukashi no Uta, Call of the Night',
69
+ // Donghua & Cultivation
70
+ 'dau la dai luc': 'Douluo Dalu, Soul Land',
71
+ 'the gioi hoan my': 'Wanmei Shijie, Perfect World',
72
+ 'tien nghich': 'Xian Ni, Renegade Immortal',
73
+ 'pham nhan tu tien': 'Fanren Xiu Xian Chuan',
74
+ 'toan chuc cao thu': 'Quan Zhi Gao Shou, The Kings Avatar',
75
+ };
76
+ /**
77
+ * Given a title or slug, check if it matches a known Vietnamese anime title.
78
+ * Returns the canonical Japanese/English title string if matched.
79
+ */
80
+ function lookupVietnameseTitle(rawTitle) {
81
+ if (!rawTitle)
82
+ return undefined;
83
+ const clean = toUnaccented(rawTitle);
84
+ if (!clean)
85
+ return undefined;
86
+ // 1. Direct match
87
+ if (exports.VIETNAMESE_TITLE_MAP[clean]) {
88
+ return exports.VIETNAMESE_TITLE_MAP[clean];
89
+ }
90
+ // 2. Substring match (e.g. "Phim Thám Tử Lừng Danh Conan Tập 1" -> "tham tu lung danh conan")
91
+ for (const [key, canonical] of Object.entries(exports.VIETNAMESE_TITLE_MAP)) {
92
+ if (clean.includes(key)) {
93
+ return canonical;
94
+ }
95
+ }
96
+ return undefined;
97
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nekostream",
3
- "version": "2026.4.2",
3
+ "version": "2026.4.4",
4
4
  "description": "A polished CLI for discovering and streaming anime from Vietnamese providers",
5
5
  "keywords": [
6
6
  "anime",
@@ -24,10 +24,12 @@
24
24
  },
25
25
  "scripts": {
26
26
  "start": "tsx index.ts",
27
+ "web": "tsx index.ts --web",
28
+ "web:build": "npm --prefix web run build",
27
29
  "clean": "node scripts/clean.mjs",
28
30
  "build": "npm run clean && tsc",
29
31
  "typecheck": "tsc --noEmit",
30
- "test": "tsx checks/search-check.mts && tsx checks/parser-check.mts && tsx checks/domain-check.mts && tsx checks/storage-check.mts && tsx checks/scraping-check.mts && tsx checks/player-check.mts",
32
+ "test": "tsx checks/search-check.mts && tsx checks/parser-check.mts && tsx checks/domain-check.mts && tsx checks/storage-check.mts && tsx checks/scraping-check.mts && tsx checks/player-check.mts && tsx checks/web-server-check.mts",
31
33
  "lint": "eslint . --max-warnings 0",
32
34
  "format": "prettier --write .",
33
35
  "format:check": "prettier --check .",
@@ -43,7 +45,8 @@
43
45
  "player.html",
44
46
  "webview-preload.js",
45
47
  "isolate.js",
46
- "isolate.css"
48
+ "isolate.css",
49
+ "web/dist"
47
50
  ],
48
51
  "dependencies": {
49
52
  "@electron/get": "^5.1.0",
package/player-main.js CHANGED
@@ -65,7 +65,13 @@ const PROVIDER_LABELS = playerPolicy?.PROVIDER_LABELS || ['animevietsub', 'anime
65
65
  const STREAM_HOSTS = playerPolicy?.STREAM_HOSTS || [
66
66
  'abyss.to',
67
67
  'abysscdn.com',
68
+ 'abyssplayer.com',
69
+ 'abysshost.com',
70
+ 'abysscss.com',
68
71
  'hydrax.net',
72
+ 'playhydrax.com',
73
+ 'short.ink',
74
+ 'iamcdn.net',
69
75
  'googleapiscdn.com',
70
76
  'googleapis.com',
71
77
  'gstatic.com',
@@ -339,6 +345,10 @@ function createWindow() {
339
345
  }
340
346
 
341
347
  // ── Step 3: Block ad domains everywhere else (players/iframes) ──
348
+ if (details.url && details.url.includes('devtools-warning')) {
349
+ return callback({ cancel: true })
350
+ }
351
+
342
352
  if (hostMatches(hostname, AD_PROBE_HOSTS)) {
343
353
  return callback({ cancel: true })
344
354
  }
@@ -425,6 +435,11 @@ function createWindow() {
425
435
 
426
436
  // Block navigation away from the provider/stream hosts.
427
437
  guestWebContents.on('will-navigate', (e, url) => {
438
+ if (url && url.includes('devtools-warning')) {
439
+ console.log('[Webview Blocked devtools-warning redirect]:', url)
440
+ e.preventDefault()
441
+ return
442
+ }
428
443
  const scheme = (url.split(':')[0] || '').toLowerCase()
429
444
  const isAllowed =
430
445
  scheme === 'about' || scheme === 'chrome-extension' || isPlaybackHost(hostnameOf(url))
@@ -434,6 +449,13 @@ function createWindow() {
434
449
  }
435
450
  })
436
451
 
452
+ guestWebContents.on('will-frame-navigate', (e) => {
453
+ if (e.url && e.url.includes('devtools-warning')) {
454
+ console.log('[Webview Blocked frame devtools-warning redirect]:', e.url)
455
+ e.preventDefault()
456
+ }
457
+ })
458
+
437
459
  const injectIntoFrame = (frame) => {
438
460
  try {
439
461
  if (!isStreamHost(hostnameOf(frame.url))) return
@@ -461,7 +483,40 @@ function createWindow() {
461
483
  if (window.__neko_cleaner_active__) return;
462
484
  window.__neko_cleaner_active__ = true;
463
485
 
464
- // --- CSS block ---
486
+ // --- 1. Neutralize window.open to prevent popup blockers from throwing on .focus() ---
487
+ // Anti-adblock scripts on Abyss/Hydrax catch .focus() TypeError on blocked windows to trigger
488
+ // "Due to certain reasons (AdBlock/Sandbox), ads are not being displayed..."
489
+ try {
490
+ window.open = function(url) {
491
+ return {
492
+ closed: false,
493
+ focus: function() {},
494
+ blur: function() {},
495
+ close: function() {},
496
+ postMessage: function() {},
497
+ location: { href: url || '' }
498
+ };
499
+ };
500
+ } catch(e) {}
501
+
502
+ // --- 2. Prevent anti-adblock document.write from wiping out the player ---
503
+ try {
504
+ const _origDocWrite = document.write.bind(document);
505
+ document.write = function(content) {
506
+ if (
507
+ typeof content === 'string' &&
508
+ (content.includes('AdBlock/Sandbox') ||
509
+ content.includes('Due to certain reasons') ||
510
+ content.includes('disable AdBlock') ||
511
+ content.includes('removing the Sandbox'))
512
+ ) {
513
+ return;
514
+ }
515
+ return _origDocWrite(content);
516
+ };
517
+ } catch(e) {}
518
+
519
+ // --- 3. CSS block ---
465
520
  if (!document.getElementById('__neko_adblock__')) {
466
521
  const style = document.createElement('style');
467
522
  style.id = '__neko_adblock__';
@@ -478,33 +533,35 @@ function createWindow() {
478
533
  (document.head || document.documentElement).appendChild(style);
479
534
  }
480
535
 
481
- // --- DOM cleaner ---
536
+ // --- 4. DOM cleaner ---
482
537
  const AD_TEXTS = ['Đóng quảng cáo', 'Đóng và xem tiếp', 'Quảng cáo'];
483
- // Specific gambling-brand fragments only. Bare 'bet' and 'game'
484
- // used to be in this list and removed unrelated player controls.
485
538
  const AD_SRCS = ['in88', 'quayhu', 'nohu', '188bet', 'kubet', 'w88', 'fun88', 'sin88'];
486
539
 
487
540
  const clean = () => {
488
541
  try {
489
- // Bypass Abyss popup click-jacking by rewriting the overlay click event
490
- if (window.abyssConfig || document.onclick || document.ontouchend) {
491
- if (document.onclick !== null || document.ontouchend !== null) {
492
- document.onclick = null;
493
- document.ontouchend = null;
494
- const overlay = document.getElementById('overlay');
495
- if (overlay) {
496
- overlay.onclick = (e) => {
497
- e.stopPropagation();
498
- e.preventDefault();
499
- if (window.jwplayer && typeof window.jwplayer === 'function') {
500
- try {
501
- window.jwplayer().play();
502
- } catch(err) {}
503
- }
504
- overlay.remove();
505
- };
506
- overlay.ontouchend = overlay.onclick;
542
+ // Bypass Abyss/Hydrax popup click-jacking by rewriting the overlay click event
543
+ const overlay = document.getElementById('overlay');
544
+ if (overlay) {
545
+ overlay.onclick = (e) => {
546
+ if (e) {
547
+ e.stopPropagation();
548
+ e.preventDefault();
507
549
  }
550
+ if (window.jwplayer && typeof window.jwplayer === 'function') {
551
+ try {
552
+ window.jwplayer().play();
553
+ } catch(err) {}
554
+ }
555
+ overlay.remove();
556
+ };
557
+ overlay.ontouchend = overlay.onclick;
558
+
559
+ // Auto-remove overlay if player is active
560
+ if (document.querySelector('video') || (window.jwplayer && typeof window.jwplayer === 'function')) {
561
+ try {
562
+ window.jwplayer().play();
563
+ } catch(e) {}
564
+ overlay.remove();
508
565
  }
509
566
  }
510
567
 
@@ -559,9 +616,13 @@ function createWindow() {
559
616
 
560
617
  guestWebContents.on('frame-created', (e, details) => {
561
618
  const frame = details.frame
619
+ injectIntoFrame(frame)
620
+ setTimeout(() => {
621
+ injectIntoFrame(frame)
622
+ }, 300)
562
623
  setTimeout(() => {
563
624
  injectIntoFrame(frame)
564
- }, 500)
625
+ }, 1000)
565
626
  })
566
627
  })
567
628
 
package/player.html CHANGED
@@ -298,6 +298,7 @@
298
298
  f.id = '__neko_player__';
299
299
  f.src = ${streamUrl};
300
300
  f.setAttribute('allowfullscreen','true');
301
+ f.setAttribute('allow', 'autoplay; encrypted-media; fullscreen');
301
302
  document.body.appendChild(f);
302
303
  console.log('[Injected] Google Player iframe appended:', f.src);
303
304
  return true;
@@ -0,0 +1 @@
1
+ .hero-content-enter-active[data-v-575711b5]{transition:all .55s cubic-bezier(.16,1,.3,1)}.hero-content-leave-active[data-v-575711b5]{transition:all .3s cubic-bezier(.7,0,.84,0)}.hero-content-enter-from[data-v-575711b5]{opacity:0;transform:translateY(22px)}.hero-content-leave-to[data-v-575711b5]{opacity:0;transform:translateY(-12px)}.preview-pop-enter-active[data-v-24210c73],.preview-pop-leave-active[data-v-24210c73]{transition:all .22s cubic-bezier(.16,1,.3,1)}.preview-pop-enter-from[data-v-24210c73],.preview-pop-leave-to[data-v-24210c73]{opacity:0;transform:scale(.92)}*,: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 / .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 / .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: }*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:Be Vietnam Pro,sans-serif;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:JetBrains Mono,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}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}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}.container{width:100%}@media(min-width:640px){.container{max-width:640px}}@media(min-width:768px){.container{max-width:768px}}@media(min-width:1024px){.container{max-width:1024px}}@media(min-width:1280px){.container{max-width:1280px}}@media(min-width:1536px){.container{max-width:1536px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{top:0;right:0;bottom:0;left:0}.-left-3{left:-.75rem}.-left-32{left:-8rem}.-right-32{right:-8rem}.-top-32{top:-8rem}.bottom-0{bottom:0}.bottom-10{bottom:2.5rem}.bottom-12{bottom:3rem}.bottom-6{bottom:1.5rem}.left-0{left:0}.left-1\/2{left:50%}.left-1\/3{left:33.333333%}.left-2{left:.5rem}.left-6{left:1.5rem}.left-full{left:100%}.right-0{right:0}.right-1\/4{right:25%}.right-2{right:.5rem}.right-6{right:1.5rem}.top-0{top:0}.top-1\/2{top:50%}.top-1\/4{top:25%}.top-2\/3{top:66.666667%}.-z-10{z-index:-10}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.z-\[60\]{z-index:60}.z-\[999\]{z-index:999}.m-auto{margin:auto}.-mx-3{margin-left:-.75rem;margin-right:-.75rem}.-mx-4{margin-left:-1rem;margin-right:-1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-8{margin-top:2rem;margin-bottom:2rem}.my-auto{margin-top:auto;margin-bottom:auto}.mb-0\.5{margin-bottom:.125rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-4{margin-bottom:1rem}.mb-6{margin-bottom:1.5rem}.ml-0\.5{margin-left:.125rem}.ml-1{margin-left:.25rem}.ml-2{margin-left:.5rem}.ml-3{margin-left:.75rem}.ml-4{margin-left:1rem}.mr-1{margin-right:.25rem}.mr-2{margin-right:.5rem}.mt-0\.5{margin-top:.125rem}.mt-1\.5{margin-top:.375rem}.mt-2{margin-top:.5rem}.mt-24{margin-top:6rem}.mt-auto{margin-top:auto}.line-clamp-1{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}.line-clamp-2{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2}.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3}.block{display:block}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.aspect-\[2\/3\]{aspect-ratio:2/3}.aspect-\[21\/9\]{aspect-ratio:21/9}.aspect-video{aspect-ratio:16 / 9}.h-0{height:0px}.h-0\.5{height:.125rem}.h-1\.5{height:.375rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-12{height:3rem}.h-16{height:4rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-44{height:11rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-72{height:18rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-96{height:24rem}.h-\[400px\]{height:400px}.h-\[500px\]{height:500px}.h-\[550px\]{height:550px}.h-\[60vh\]{height:60vh}.h-\[650px\]{height:650px}.h-\[65vh\]{height:65vh}.h-\[76px\]{height:76px}.h-full{height:100%}.max-h-64{max-height:16rem}.max-h-\[720px\]{max-height:720px}.max-h-\[85vh\]{max-height:85vh}.max-h-\[92vh\]{max-height:92vh}.min-h-\[280px\]{min-height:280px}.min-h-\[500px\]{min-height:500px}.min-h-\[82px\]{min-height:82px}.min-h-screen{min-height:100vh}.w-0{width:0px}.w-0\.5{width:.125rem}.w-1\/2{width:50%}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-16{width:4rem}.w-2{width:.5rem}.w-2\.5{width:.625rem}.w-2\/5{width:40%}.w-20{width:5rem}.w-28{width:7rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-3\/4{width:75%}.w-3\/5{width:60%}.w-32{width:8rem}.w-36{width:9rem}.w-4{width:1rem}.w-4\/5{width:80%}.w-48{width:12rem}.w-5{width:1.25rem}.w-52{width:13rem}.w-56{width:14rem}.w-6{width:1.5rem}.w-64{width:16rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-\[165px\]{width:165px}.w-\[260px\]{width:260px}.w-\[400px\]{width:400px}.w-\[500px\]{width:500px}.w-\[550px\]{width:550px}.w-\[650px\]{width:650px}.w-\[90\%\]{width:90%}.w-full{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-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-none{flex:none}.shrink-0{flex-shrink:0}.-translate-x-1\/2{--tw-translate-x: -50%;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.-translate-y-6{--tw-translate-y: -1.5rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-0{--tw-translate-y: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-4{--tw-translate-y: 1rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-100{--tw-scale-x: 1;--tw-scale-y: 1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.scale-\[1\.03\]{--tw-scale-x: 1.03;--tw-scale-y: 1.03;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes ping{75%,to{transform:scale(2);opacity:0}}.animate-ping{animation:ping 1s cubic-bezier(0,0,.2,1) infinite}@keyframes pulse{50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.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}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-2\.5{gap:.625rem}.gap-3{gap:.75rem}.gap-3\.5{gap:.875rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.space-y-0\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.125rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.125rem * var(--tw-space-y-reverse))}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.375rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem * var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(2.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem * var(--tw-space-y-reverse))}.space-y-2>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.space-y-2\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.625rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.625rem * var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.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-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))}.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-md-outline-variant\/20>:not([hidden])~:not([hidden]){border-color:#49454f33}.self-start{align-self:flex-start}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-x-hidden{overflow-x:hidden}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-modal{border-radius:28px}.rounded-xl{border-radius:.75rem}.border{border-width:1px}.border-0{border-width:0px}.border-2{border-width:2px}.border-b{border-bottom-width:1px}.border-l-\[6px\]{border-left-width:6px}.border-r{border-right-width:1px}.border-r-\[6px\]{border-right-width:6px}.border-t{border-top-width:1px}.border-t-\[8px\]{border-top-width:8px}.border-accent{--tw-border-opacity: 1;border-color:rgb(255 92 147 / var(--tw-border-opacity, 1))}.border-amber-500\/40{border-color:#f59e0b66}.border-cream\/10{border-color:#fff1ea1a}.border-cream\/15{border-color:#fff1ea26}.border-emerald-500\/30{border-color:#10b9814d}.border-md-outline-variant{--tw-border-opacity: 1;border-color:rgb(73 69 79 / var(--tw-border-opacity, 1))}.border-md-outline-variant\/10{border-color:#49454f1a}.border-md-outline-variant\/15{border-color:#49454f26}.border-md-outline-variant\/20{border-color:#49454f33}.border-md-outline-variant\/30{border-color:#49454f4d}.border-md-outline-variant\/40{border-color:#49454f66}.border-md-outline-variant\/50{border-color:#49454f80}.border-md-outline-variant\/60{border-color:#49454f99}.border-md-primary{--tw-border-opacity: 1;border-color:rgb(255 92 147 / var(--tw-border-opacity, 1))}.border-md-primary\/20{border-color:#ff5c9333}.border-md-primary\/30{border-color:#ff5c934d}.border-md-primary\/50{border-color:#ff5c9380}.border-md-secondary{--tw-border-opacity: 1;border-color:rgb(138 92 255 / var(--tw-border-opacity, 1))}.border-rose\/30{border-color:#e0306f4d}.border-transparent{border-color:transparent}.border-white\/15{border-color:#ffffff26}.border-yellow-400\/20{border-color:#facc1533}.border-l-transparent{border-left-color:transparent}.border-r-transparent{border-right-color:transparent}.border-t-emerald-400{--tw-border-opacity: 1;border-top-color:rgb(52 211 153 / var(--tw-border-opacity, 1))}.bg-accent{--tw-bg-opacity: 1;background-color:rgb(255 92 147 / var(--tw-bg-opacity, 1))}.bg-accent\/20{background-color:#ff5c9333}.bg-amber-500{--tw-bg-opacity: 1;background-color:rgb(245 158 11 / var(--tw-bg-opacity, 1))}.bg-amber-500\/10{background-color:#f59e0b1a}.bg-bg{--tw-bg-opacity: 1;background-color:rgb(15 11 19 / var(--tw-bg-opacity, 1))}.bg-bg-2{--tw-bg-opacity: 1;background-color:rgb(26 20 32 / var(--tw-bg-opacity, 1))}.bg-black{--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity, 1))}.bg-black\/95{background-color:#000000f2}.bg-cream\/15{background-color:#fff1ea26}.bg-emerald-400{--tw-bg-opacity: 1;background-color:rgb(52 211 153 / var(--tw-bg-opacity, 1))}.bg-emerald-400\/70{background-color:#34d399b3}.bg-emerald-500\/10{background-color:#10b9811a}.bg-emerald-500\/20{background-color:#10b98133}.bg-md-on-primary-container\/20{background-color:#ffd9e233}.bg-md-outline-variant\/20{background-color:#49454f33}.bg-md-outline-variant\/30{background-color:#49454f4d}.bg-md-outline-variant\/40{background-color:#49454f66}.bg-md-primary{--tw-bg-opacity: 1;background-color:rgb(255 92 147 / var(--tw-bg-opacity, 1))}.bg-md-primary-container{--tw-bg-opacity: 1;background-color:rgb(92 0 43 / var(--tw-bg-opacity, 1))}.bg-md-primary\/10{background-color:#ff5c931a}.bg-md-primary\/15{background-color:#ff5c9326}.bg-md-primary\/20{background-color:#ff5c9333}.bg-md-secondary-container{--tw-bg-opacity: 1;background-color:rgb(56 30 114 / var(--tw-bg-opacity, 1))}.bg-md-surface{--tw-bg-opacity: 1;background-color:rgb(20 18 24 / var(--tw-bg-opacity, 1))}.bg-md-surface-container{--tw-bg-opacity: 1;background-color:rgb(32 30 36 / var(--tw-bg-opacity, 1))}.bg-md-surface-container-high{--tw-bg-opacity: 1;background-color:rgb(43 40 48 / var(--tw-bg-opacity, 1))}.bg-md-surface-container-high\/60{background-color:#2b283099}.bg-md-surface-container-high\/70{background-color:#2b2830b3}.bg-md-surface-container-high\/80{background-color:#2b2830cc}.bg-md-surface-container-high\/90{background-color:#2b2830e6}.bg-md-surface-container-high\/95{background-color:#2b2830f2}.bg-md-surface-container-highest{--tw-bg-opacity: 1;background-color:rgb(54 51 59 / var(--tw-bg-opacity, 1))}.bg-md-surface-container-highest\/70{background-color:#36333bb3}.bg-md-surface-container-highest\/80{background-color:#36333bcc}.bg-md-surface-container-low{--tw-bg-opacity: 1;background-color:rgb(28 26 32 / var(--tw-bg-opacity, 1))}.bg-md-surface-container-lowest{--tw-bg-opacity: 1;background-color:rgb(15 13 19 / var(--tw-bg-opacity, 1))}.bg-md-surface-container-lowest\/80{background-color:#0f0d13cc}.bg-md-surface-container\/70{background-color:#201e24b3}.bg-md-surface-container\/90{background-color:#201e24e6}.bg-md-surface-container\/95{background-color:#201e24f2}.bg-md-surface\/85{background-color:#141218d9}.bg-md-tertiary-container{--tw-bg-opacity: 1;background-color:rgb(0 82 54 / var(--tw-bg-opacity, 1))}.bg-md-tertiary\/15{background-color:#7be3b826}.bg-mint{--tw-bg-opacity: 1;background-color:rgb(123 227 184 / var(--tw-bg-opacity, 1))}.bg-mint\/20{background-color:#7be3b833}.bg-orange{--tw-bg-opacity: 1;background-color:rgb(255 154 92 / var(--tw-bg-opacity, 1))}.bg-rose{--tw-bg-opacity: 1;background-color:rgb(224 48 111 / var(--tw-bg-opacity, 1))}.bg-rose\/10{background-color:#e0306f1a}.bg-rose\/15{background-color:#e0306f26}.bg-rose\/20{background-color:#e0306f33}.bg-sky{--tw-bg-opacity: 1;background-color:rgb(106 208 255 / var(--tw-bg-opacity, 1))}.bg-transparent{background-color:transparent}.bg-violet{--tw-bg-opacity: 1;background-color:rgb(138 92 255 / var(--tw-bg-opacity, 1))}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.bg-white\/10{background-color:#ffffff1a}.bg-white\/15{background-color:#ffffff26}.bg-white\/20{background-color:#fff3}.bg-yellow-400\/10{background-color:#facc151a}.bg-zinc-200{--tw-bg-opacity: 1;background-color:rgb(228 228 231 / var(--tw-bg-opacity, 1))}.bg-gradient-to-b{background-image:linear-gradient(to bottom,var(--tw-gradient-stops))}.bg-gradient-to-l{background-image:linear-gradient(to left,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.bg-gradient-to-tr{background-image:linear-gradient(to top right,var(--tw-gradient-stops))}.from-accent{--tw-gradient-from: #ff5c93 var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 92 147 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-black\/80{--tw-gradient-from: rgb(0 0 0 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-black\/95{--tw-gradient-from: rgb(0 0 0 / .95) var(--tw-gradient-from-position);--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-cream{--tw-gradient-from: #fff1ea var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 241 234 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-md-primary{--tw-gradient-from: #ff5c93 var(--tw-gradient-from-position);--tw-gradient-to: rgb(255 92 147 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-md-primary-container\/90{--tw-gradient-from: rgb(92 0 43 / .9) var(--tw-gradient-from-position);--tw-gradient-to: rgb(92 0 43 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-md-surface{--tw-gradient-from: #141218 var(--tw-gradient-from-position);--tw-gradient-to: rgb(20 18 24 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-md-surface-container{--tw-gradient-from: #201e24 var(--tw-gradient-from-position);--tw-gradient-to: rgb(32 30 36 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-md-surface-container-high{--tw-gradient-from: #2b2830 var(--tw-gradient-from-position);--tw-gradient-to: rgb(43 40 48 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-md-surface-container\/80{--tw-gradient-from: rgb(32 30 36 / .8) var(--tw-gradient-from-position);--tw-gradient-to: rgb(32 30 36 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-md-surface-container\/90{--tw-gradient-from: rgb(32 30 36 / .9) var(--tw-gradient-from-position);--tw-gradient-to: rgb(32 30 36 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.from-md-surface\/40{--tw-gradient-from: rgb(20 18 24 / .4) var(--tw-gradient-from-position);--tw-gradient-to: rgb(20 18 24 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to)}.via-black\/50{--tw-gradient-to: rgb(0 0 0 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(0 0 0 / .5) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-md-secondary{--tw-gradient-to: rgb(138 92 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #8a5cff var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-md-surface-container\/60{--tw-gradient-to: rgb(32 30 36 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(32 30 36 / .6) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-md-surface-container\/90{--tw-gradient-to: rgb(32 30 36 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(32 30 36 / .9) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-md-surface\/65{--tw-gradient-to: rgb(20 18 24 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(20 18 24 / .65) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-md-surface\/85{--tw-gradient-to: rgb(20 18 24 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), rgb(20 18 24 / .85) var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-pink{--tw-gradient-to: rgb(255 194 226 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #ffc2e2 var(--tw-gradient-via-position), var(--tw-gradient-to)}.via-rose{--tw-gradient-to: rgb(224 48 111 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #e0306f var(--tw-gradient-via-position), var(--tw-gradient-to)}.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)}.via-violet{--tw-gradient-to: rgb(138 92 255 / 0) var(--tw-gradient-to-position);--tw-gradient-stops: var(--tw-gradient-from), #8a5cff var(--tw-gradient-via-position), var(--tw-gradient-to)}.to-accent{--tw-gradient-to: #ff5c93 var(--tw-gradient-to-position)}.to-md-secondary-container\/90{--tw-gradient-to: rgb(56 30 114 / .9) var(--tw-gradient-to-position)}.to-md-surface-container\/70{--tw-gradient-to: rgb(32 30 36 / .7) var(--tw-gradient-to-position)}.to-md-tertiary{--tw-gradient-to: #7be3b8 var(--tw-gradient-to-position)}.to-orange{--tw-gradient-to: #ff9a5c var(--tw-gradient-to-position)}.to-rose{--tw-gradient-to: #e0306f var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to: transparent var(--tw-gradient-to-position)}.bg-cover{background-size:cover}.bg-clip-text{-webkit-background-clip:text;background-clip:text}.bg-center{background-position:center}.fill-current{fill:currentColor}.stroke-\[2\.5\]{stroke-width:2.5}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-1\.5{padding:.375rem}.p-2{padding:.5rem}.p-2\.5{padding:.625rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-3\.5{padding-left:.875rem;padding-right:.875rem}.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-7{padding-left:1.75rem;padding-right:1.75rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.py-8{padding-top:2rem;padding-bottom:2rem}.pb-1{padding-bottom:.25rem}.pb-12{padding-bottom:3rem}.pb-16{padding-bottom:4rem}.pb-2{padding-bottom:.5rem}.pb-20{padding-bottom:5rem}.pb-3{padding-bottom:.75rem}.pb-6{padding-bottom:1.5rem}.pt-0\.5{padding-top:.125rem}.pt-1{padding-top:.25rem}.pt-10{padding-top:2.5rem}.pt-2{padding-top:.5rem}.pt-2\.5{padding-top:.625rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.font-mono{font-family:JetBrains Mono,monospace}.font-sans{font-family:Be Vietnam Pro,sans-serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-\[100px\]{font-size:100px}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[9px\]{font-size:9px}.text-base{font-size:1rem;line-height:1.5rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-black{font-weight:900}.font-bold{font-weight:700}.font-extrabold{font-weight:800}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.capitalize{text-transform:capitalize}.italic{font-style:italic}.leading-\[1\.08\]{line-height:1.08}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-tight{line-height:1.25}.tracking-tight{letter-spacing:-.025em}.tracking-wider{letter-spacing:.05em}.text-accent{--tw-text-opacity: 1;color:rgb(255 92 147 / var(--tw-text-opacity, 1))}.text-amber-200{--tw-text-opacity: 1;color:rgb(253 230 138 / var(--tw-text-opacity, 1))}.text-amber-300{--tw-text-opacity: 1;color:rgb(252 211 77 / var(--tw-text-opacity, 1))}.text-amber-400{--tw-text-opacity: 1;color:rgb(251 191 36 / var(--tw-text-opacity, 1))}.text-bg{--tw-text-opacity: 1;color:rgb(15 11 19 / var(--tw-text-opacity, 1))}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity, 1))}.text-cream{--tw-text-opacity: 1;color:rgb(255 241 234 / var(--tw-text-opacity, 1))}.text-cream-50{--tw-text-opacity: 1;color:rgb(134 116 127 / var(--tw-text-opacity, 1))}.text-cream-75{--tw-text-opacity: 1;color:rgb(201 184 191 / var(--tw-text-opacity, 1))}.text-emerald-400{--tw-text-opacity: 1;color:rgb(52 211 153 / var(--tw-text-opacity, 1))}.text-emerald-700{--tw-text-opacity: 1;color:rgb(4 120 87 / var(--tw-text-opacity, 1))}.text-md-on-primary{--tw-text-opacity: 1;color:rgb(56 0 24 / var(--tw-text-opacity, 1))}.text-md-on-primary-container{--tw-text-opacity: 1;color:rgb(255 217 226 / var(--tw-text-opacity, 1))}.text-md-on-secondary-container{--tw-text-opacity: 1;color:rgb(232 222 248 / var(--tw-text-opacity, 1))}.text-md-on-surface{--tw-text-opacity: 1;color:rgb(230 224 233 / var(--tw-text-opacity, 1))}.text-md-on-surface-variant{--tw-text-opacity: 1;color:rgb(202 196 208 / var(--tw-text-opacity, 1))}.text-md-on-surface-variant\/50{color:#cac4d080}.text-md-on-surface-variant\/70{color:#cac4d0b3}.text-md-on-surface-variant\/80{color:#cac4d0cc}.text-md-on-surface-variant\/90{color:#cac4d0e6}.text-md-on-surface-variant\/95{color:#cac4d0f2}.text-md-on-surface\/90{color:#e6e0e9e6}.text-md-on-tertiary-container{--tw-text-opacity: 1;color:rgb(152 252 211 / var(--tw-text-opacity, 1))}.text-md-outline-variant\/60{color:#49454f99}.text-md-primary{--tw-text-opacity: 1;color:rgb(255 92 147 / var(--tw-text-opacity, 1))}.text-md-surface-container-highest{--tw-text-opacity: 1;color:rgb(54 51 59 / var(--tw-text-opacity, 1))}.text-md-tertiary,.text-mint{--tw-text-opacity: 1;color:rgb(123 227 184 / var(--tw-text-opacity, 1))}.text-rose{--tw-text-opacity: 1;color:rgb(224 48 111 / var(--tw-text-opacity, 1))}.text-transparent{color:transparent}.text-white{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.text-white\/70{color:#ffffffb3}.text-white\/90{color:#ffffffe6}.text-yellow-400{--tw-text-opacity: 1;color:rgb(250 204 21 / var(--tw-text-opacity, 1))}.text-zinc-700{--tw-text-opacity: 1;color:rgb(63 63 70 / var(--tw-text-opacity, 1))}.text-zinc-950{--tw-text-opacity: 1;color:rgb(9 9 11 / var(--tw-text-opacity, 1))}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.placeholder-cream-50::-moz-placeholder{--tw-placeholder-opacity: 1;color:rgb(134 116 127 / var(--tw-placeholder-opacity, 1))}.placeholder-cream-50::placeholder{--tw-placeholder-opacity: 1;color:rgb(134 116 127 / var(--tw-placeholder-opacity, 1))}.placeholder-md-on-surface-variant\/50::-moz-placeholder{color:#cac4d080}.placeholder-md-on-surface-variant\/50::placeholder{color:#cac4d080}.placeholder-md-on-surface-variant\/60::-moz-placeholder{color:#cac4d099}.placeholder-md-on-surface-variant\/60::placeholder{color:#cac4d099}.opacity-0{opacity:0}.opacity-10{opacity:.1}.opacity-100{opacity:1}.opacity-15{opacity:.15}.opacity-20{opacity:.2}.opacity-25{opacity:.25}.opacity-60{opacity:.6}.opacity-70{opacity:.7}.opacity-75{opacity:.75}.opacity-80{opacity:.8}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px 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-2xl{--tw-shadow: 0 25px 50px -12px rgb(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-\[0_0_8px_rgba\(52\,211\,153\,0\.8\)\]{--tw-shadow: 0 0 8px rgba(52,211,153,.8);--tw-shadow-colored: 0 0 8px 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-elevation-1{--tw-shadow: 0px 1px 3px 1px rgba(0, 0, 0, .25), 0px 1px 2px 0px rgba(0, 0, 0, .4);--tw-shadow-colored: 0px 1px 3px 1px var(--tw-shadow-color), 0px 1px 2px 0px 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-elevation-2{--tw-shadow: 0px 2px 6px 2px rgba(0, 0, 0, .25), 0px 1px 2px 0px rgba(0, 0, 0, .4);--tw-shadow-colored: 0px 2px 6px 2px var(--tw-shadow-color), 0px 1px 2px 0px 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-elevation-3{--tw-shadow: 0px 4px 8px 3px rgba(0, 0, 0, .25), 0px 1px 3px 0px rgba(0, 0, 0, .4);--tw-shadow-colored: 0px 4px 8px 3px var(--tw-shadow-color), 0px 1px 3px 0px 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-elevation-4{--tw-shadow: 0px 6px 10px 4px rgba(0, 0, 0, .25), 0px 2px 3px 0px rgba(0, 0, 0, .4);--tw-shadow-colored: 0px 6px 10px 4px var(--tw-shadow-color), 0px 2px 3px 0px 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-elevation-5{--tw-shadow: 0px 8px 12px 6px rgba(0, 0, 0, .25), 0px 4px 4px 0px rgba(0, 0, 0, .4);--tw-shadow-colored: 0px 8px 12px 6px var(--tw-shadow-color), 0px 4px 4px 0px 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: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px 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-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px 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-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 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-accent\/10{--tw-shadow-color: rgb(255 92 147 / .1);--tw-shadow: var(--tw-shadow-colored)}.shadow-accent\/20{--tw-shadow-color: rgb(255 92 147 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-md-primary\/50{--tw-shadow-color: rgb(255 92 147 / .5);--tw-shadow: var(--tw-shadow-colored)}.shadow-rose\/20{--tw-shadow-color: rgb(224 48 111 / .2);--tw-shadow: var(--tw-shadow-colored)}.shadow-rose\/5{--tw-shadow-color: rgb(224 48 111 / .05);--tw-shadow: var(--tw-shadow-colored)}.ring-2{--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)}.ring-emerald-400{--tw-ring-opacity: 1;--tw-ring-color: rgb(52 211 153 / var(--tw-ring-opacity, 1))}.blur-\[110px\]{--tw-blur: blur(110px);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-\[120px\]{--tw-blur: blur(120px);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-\[130px\]{--tw-blur: blur(130px);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-\[140px\]{--tw-blur: blur(140px);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-\[2px\]{--tw-blur: blur(2px);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{--tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / .1)) drop-shadow(0 1px 1px rgb(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)}.drop-shadow-2xl{--tw-drop-shadow: drop-shadow(0 25px 25px rgb(0 0 0 / .15));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-lg{--tw-drop-shadow: drop-shadow(0 10px 8px rgb(0 0 0 / .04)) drop-shadow(0 4px 3px rgb(0 0 0 / .1));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 / .07)) drop-shadow(0 2px 2px rgb(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)}.drop-shadow-sm{--tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / .05));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)}.backdrop-blur-2xl{--tw-backdrop-blur: blur(40px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-lg{--tw-backdrop-blur: blur(16px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur: blur(12px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur: blur(24px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-1000{transition-duration:1s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.duration-700{transition-duration:.7s}.duration-\[8000ms\]{transition-duration:8s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}:root{--md-sys-color-surface: #141218;--md-sys-color-surface-dim: #110f14;--md-sys-color-surface-bright: #38353c;--md-sys-color-surface-container-lowest: #0f0d13;--md-sys-color-surface-container-low: #1c1a20;--md-sys-color-surface-container: #201e24;--md-sys-color-surface-container-high: #2b2830;--md-sys-color-surface-container-highest: #36333b;--md-sys-color-on-surface: #e6e0e9;--md-sys-color-on-surface-variant: #cac4d0;--md-sys-color-outline: #938f99;--md-sys-color-outline-variant: #49454f;--md-sys-color-primary: #ff5c93;--md-sys-color-on-primary: #380018;--md-sys-color-primary-container: #5c002b;--md-sys-color-on-primary-container: #ffd9e2;--md-sys-color-secondary: #8a5cff;--md-sys-color-on-secondary: #ffffff;--md-sys-color-secondary-container: #381e72;--md-sys-color-on-secondary-container: #e8def8;--md-sys-color-tertiary: #7be3b8;--md-sys-color-on-tertiary: #003824;--md-sys-color-tertiary-container: #005236;--md-sys-color-on-tertiary-container: #98fcd3;--md-sys-shape-corner-none: 0px;--md-sys-shape-corner-extra-small: 4px;--md-sys-shape-corner-small: 8px;--md-sys-shape-corner-medium: 12px;--md-sys-shape-corner-large: 16px;--md-sys-shape-corner-extra-large: 28px;--md-sys-shape-corner-full: 9999px;--md-sys-motion-easing-emphasized: cubic-bezier(.2, 0, 0, 1);--md-sys-motion-easing-emphasized-decelerate: cubic-bezier(.05, .7, .1, 1);--md-sys-motion-easing-emphasized-accelerate: cubic-bezier(.3, 0, .8, .15);--md-sys-motion-easing-standard: cubic-bezier(.2, 0, 0, 1);--g-accent: linear-gradient(135deg, #ff5c93 0%, #8a5cff 50%, #ff9a5c 100%);--g-cinema: linear-gradient(180deg, rgba(20, 18, 24, 0) 0%, rgba(20, 18, 24, .7) 60%, rgba(20, 18, 24, 1) 100%);--g-rail-edge-l: linear-gradient(90deg, #141218 0%, transparent 100%);--g-rail-edge-r: linear-gradient(270deg, #141218 0%, transparent 100%)}body{background-color:var(--md-sys-color-surface);color:var(--md-sys-color-on-surface);font-family:Be Vietnam Pro,-apple-system,BlinkMacSystemFont,sans-serif;overflow-x:hidden}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--md-sys-color-surface-container-highest);border-radius:9999px}::-webkit-scrollbar-thumb:hover{background:var(--md-sys-color-primary)}.surface-container{background-color:var(--md-sys-color-surface-container);color:var(--md-sys-color-on-surface)}.surface-container-high{background-color:var(--md-sys-color-surface-container-high);color:var(--md-sys-color-on-surface)}.surface-container-low{background-color:var(--md-sys-color-surface-container-low);color:var(--md-sys-color-on-surface)}.state-layer{position:relative;overflow:hidden}.state-layer:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background-color:currentColor;opacity:0;transition:opacity .2s var(--md-sys-motion-easing-standard);pointer-events:none}.state-layer:hover:after{opacity:.08}.state-layer:active:after{opacity:.12}.cinema-glass{background:#201e24b8;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border:1px solid rgba(230,224,233,.08)}@keyframes md3-shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.skeleton-shimmer{background:linear-gradient(90deg,var(--md-sys-color-surface-container-low) 25%,var(--md-sys-color-surface-container-high) 37%,var(--md-sys-color-surface-container-low) 63%);background-size:200% 100%;animation:md3-shimmer 1.8s infinite ease-in-out}.selection\:bg-accent *::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(255 92 147 / var(--tw-bg-opacity, 1))}.selection\:bg-accent *::selection{--tw-bg-opacity: 1;background-color:rgb(255 92 147 / var(--tw-bg-opacity, 1))}.selection\:bg-md-primary *::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(255 92 147 / var(--tw-bg-opacity, 1))}.selection\:bg-md-primary *::selection{--tw-bg-opacity: 1;background-color:rgb(255 92 147 / var(--tw-bg-opacity, 1))}.selection\:text-bg *::-moz-selection{--tw-text-opacity: 1;color:rgb(15 11 19 / var(--tw-text-opacity, 1))}.selection\:text-bg *::selection{--tw-text-opacity: 1;color:rgb(15 11 19 / var(--tw-text-opacity, 1))}.selection\:text-md-on-primary *::-moz-selection{--tw-text-opacity: 1;color:rgb(56 0 24 / var(--tw-text-opacity, 1))}.selection\:text-md-on-primary *::selection{--tw-text-opacity: 1;color:rgb(56 0 24 / var(--tw-text-opacity, 1))}.selection\:bg-accent::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(255 92 147 / var(--tw-bg-opacity, 1))}.selection\:bg-accent::selection{--tw-bg-opacity: 1;background-color:rgb(255 92 147 / var(--tw-bg-opacity, 1))}.selection\:bg-md-primary::-moz-selection{--tw-bg-opacity: 1;background-color:rgb(255 92 147 / var(--tw-bg-opacity, 1))}.selection\:bg-md-primary::selection{--tw-bg-opacity: 1;background-color:rgb(255 92 147 / var(--tw-bg-opacity, 1))}.selection\:text-bg::-moz-selection{--tw-text-opacity: 1;color:rgb(15 11 19 / var(--tw-text-opacity, 1))}.selection\:text-bg::selection{--tw-text-opacity: 1;color:rgb(15 11 19 / var(--tw-text-opacity, 1))}.selection\:text-md-on-primary::-moz-selection{--tw-text-opacity: 1;color:rgb(56 0 24 / var(--tw-text-opacity, 1))}.selection\:text-md-on-primary::selection{--tw-text-opacity: 1;color:rgb(56 0 24 / var(--tw-text-opacity, 1))}.focus-within\:border-md-primary:focus-within{--tw-border-opacity: 1;border-color:rgb(255 92 147 / var(--tw-border-opacity, 1))}.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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-110:hover{--tw-scale-x: 1.1;--tw-scale-y: 1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.02\]:hover{--tw-scale-x: 1.02;--tw-scale-y: 1.02;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-\[1\.03\]:hover{--tw-scale-x: 1.03;--tw-scale-y: 1.03;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-cream\/30:hover{border-color:#fff1ea4d}.hover\:border-md-outline:hover{--tw-border-opacity: 1;border-color:rgb(147 143 153 / var(--tw-border-opacity, 1))}.hover\:border-md-outline\/60:hover{border-color:#938f9999}.hover\:border-md-primary:hover{--tw-border-opacity: 1;border-color:rgb(255 92 147 / var(--tw-border-opacity, 1))}.hover\:border-md-primary\/40:hover{border-color:#ff5c9366}.hover\:border-md-primary\/50:hover{border-color:#ff5c9380}.hover\:border-md-primary\/60:hover{border-color:#ff5c9399}.hover\:border-rose\/30:hover{border-color:#e0306f4d}.hover\:bg-amber-400:hover{--tw-bg-opacity: 1;background-color:rgb(251 191 36 / var(--tw-bg-opacity, 1))}.hover\:bg-cream\/5:hover{background-color:#fff1ea0d}.hover\:bg-md-on-surface-variant:hover{--tw-bg-opacity: 1;background-color:rgb(202 196 208 / var(--tw-bg-opacity, 1))}.hover\:bg-md-primary:hover{--tw-bg-opacity: 1;background-color:rgb(255 92 147 / var(--tw-bg-opacity, 1))}.hover\:bg-md-primary\/90:hover{background-color:#ff5c93e6}.hover\:bg-md-surface-container-high:hover{--tw-bg-opacity: 1;background-color:rgb(43 40 48 / var(--tw-bg-opacity, 1))}.hover\:bg-md-surface-container-high\/30:hover{background-color:#2b28304d}.hover\:bg-md-surface-container-highest:hover{--tw-bg-opacity: 1;background-color:rgb(54 51 59 / var(--tw-bg-opacity, 1))}.hover\:bg-rose\/20:hover{background-color:#e0306f33}.hover\:bg-rose\/80:hover{background-color:#e0306fcc}.hover\:bg-white\/10:hover{background-color:#ffffff1a}.hover\:bg-white\/20:hover{background-color:#fff3}.hover\:bg-white\/25:hover{background-color:#ffffff40}.hover\:text-cream:hover{--tw-text-opacity: 1;color:rgb(255 241 234 / var(--tw-text-opacity, 1))}.hover\:text-md-on-primary:hover{--tw-text-opacity: 1;color:rgb(56 0 24 / var(--tw-text-opacity, 1))}.hover\:text-md-on-surface:hover{--tw-text-opacity: 1;color:rgb(230 224 233 / var(--tw-text-opacity, 1))}.hover\:text-md-primary:hover{--tw-text-opacity: 1;color:rgb(255 92 147 / var(--tw-text-opacity, 1))}.hover\:text-rose:hover{--tw-text-opacity: 1;color:rgb(224 48 111 / var(--tw-text-opacity, 1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-elevation-2:hover{--tw-shadow: 0px 2px 6px 2px rgba(0, 0, 0, .25), 0px 1px 2px 0px rgba(0, 0, 0, .4);--tw-shadow-colored: 0px 2px 6px 2px var(--tw-shadow-color), 0px 1px 2px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.hover\:shadow-elevation-3:hover{--tw-shadow: 0px 4px 8px 3px rgba(0, 0, 0, .25), 0px 1px 3px 0px rgba(0, 0, 0, .4);--tw-shadow-colored: 0px 4px 8px 3px var(--tw-shadow-color), 0px 1px 3px 0px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:border-md-primary:focus{--tw-border-opacity: 1;border-color:rgb(255 92 147 / var(--tw-border-opacity, 1))}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:opacity-40:disabled{opacity:.4}.group\/prov:hover .group-hover\/prov\:flex{display:flex}.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)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group\/row:hover .group-hover\/row\:bg-md-surface-container-high{--tw-bg-opacity: 1;background-color:rgb(43 40 48 / var(--tw-bg-opacity, 1))}.group:hover .group-hover\:bg-md-primary{--tw-bg-opacity: 1;background-color:rgb(255 92 147 / var(--tw-bg-opacity, 1))}.group:hover .group-hover\:bg-md-primary\/20{background-color:#ff5c9333}.group:hover .group-hover\:bg-md-surface-container-high{--tw-bg-opacity: 1;background-color:rgb(43 40 48 / var(--tw-bg-opacity, 1))}.group:hover .group-hover\:text-current{color:currentColor}.group:hover .group-hover\:text-md-on-primary{--tw-text-opacity: 1;color:rgb(56 0 24 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-md-on-surface{--tw-text-opacity: 1;color:rgb(230 224 233 / var(--tw-text-opacity, 1))}.group:hover .group-hover\:text-md-primary{--tw-text-opacity: 1;color:rgb(255 92 147 / var(--tw-text-opacity, 1))}.group\/billboard:hover .group-hover\/billboard\:opacity-100,.group\/rail:hover .group-hover\/rail\:opacity-100,.group:hover .group-hover\:opacity-100{opacity:1}@media(min-width:640px){.sm\:right-8{right:2rem}.sm\:-mx-8{margin-left:-2rem;margin-right:-2rem}.sm\:mx-0{margin-left:0;margin-right:0}.sm\:my-12{margin-top:3rem;margin-bottom:3rem}.sm\:line-clamp-4{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:4}.sm\:block{display:block}.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:h-10{height:2.5rem}.sm\:h-96{height:24rem}.sm\:min-h-\[440px\]{min-height:440px}.sm\:w-10{width:2.5rem}.sm\:w-36{width:9rem}.sm\:w-40{width:10rem}.sm\:w-52{width:13rem}.sm\:w-64{width:16rem}.sm\:w-\[195px\]{width:195px}.sm\:w-\[300px\]{width:300px}.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\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}.sm\:items-end{align-items:flex-end}.sm\:items-center{align-items:center}.sm\:gap-1\.5{gap:.375rem}.sm\:gap-10{gap:2.5rem}.sm\:gap-3{gap:.75rem}.sm\:gap-4{gap:1rem}.sm\:gap-6{gap:1.5rem}.sm\:self-auto{align-self:auto}.sm\:p-12{padding:3rem}.sm\:p-5{padding:1.25rem}.sm\:p-6{padding:1.5rem}.sm\:p-8{padding:2rem}.sm\:px-0{padding-left:0;padding-right:0}.sm\:px-5{padding-left:1.25rem;padding-right:1.25rem}.sm\:px-6{padding-left:1.5rem;padding-right:1.5rem}.sm\:px-8{padding-left:2rem;padding-right:2rem}.sm\:py-14{padding-top:3.5rem;padding-bottom:3.5rem}.sm\:pb-16{padding-bottom:4rem}.sm\:text-2xl{font-size:1.5rem;line-height:2rem}.sm\:text-3xl{font-size:1.875rem;line-height:2.25rem}.sm\:text-4xl{font-size:2.25rem;line-height:2.5rem}.sm\:text-5xl{font-size:3rem;line-height:1}.sm\:text-base{font-size:1rem;line-height:1.5rem}.sm\:text-lg{font-size:1.125rem;line-height:1.75rem}.sm\:text-sm{font-size:.875rem;line-height:1.25rem}.sm\:focus-within\:w-64:focus-within{width:16rem}}@media(min-width:768px){.md\:col-span-2{grid-column:span 2 / span 2}.md\:flex{display:flex}.md\:hidden{display:none}.md\:w-44{width:11rem}.md\:w-\[215px\]{width:215px}.md\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-8{grid-template-columns:repeat(8,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:items-center{align-items:center}.md\:pb-0{padding-bottom:0}.md\:pl-20{padding-left:5rem}}@media(min-width:1024px){.lg\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:px-8{padding-left:2rem;padding-right:2rem}.lg\:text-6xl{font-size:3.75rem;line-height:1}}@media(min-width:1280px){.xl\:grid-cols-6{grid-template-columns:repeat(6,minmax(0,1fr))}}@media(prefers-color-scheme:dark){.dark\:bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity, 1))}.dark\:text-zinc-950{--tw-text-opacity: 1;color:rgb(9 9 11 / var(--tw-text-opacity, 1))}}