diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2eea525 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +.env \ No newline at end of file diff --git a/go.mod b/go.mod index 3071bb2..45aa8ae 100644 --- a/go.mod +++ b/go.mod @@ -1,3 +1,5 @@ module site go 1.23.4 + +require github.com/joho/godotenv v1.5.1 diff --git a/go.sum b/go.sum new file mode 100644 index 0000000..d61b19e --- /dev/null +++ b/go.sum @@ -0,0 +1,2 @@ +github.com/joho/godotenv v1.5.1 h1:7eLL/+HRGLY0ldzfGMeQkb7vMd0as4CfYvUVzLqw0N0= +github.com/joho/godotenv v1.5.1/go.mod h1:f4LDr5Voq0i2e/R5DDNOoa2zzDfwtkZa6DnEwAbqwq4= diff --git a/main.go b/main.go index cc3bf9a..82de1c1 100644 --- a/main.go +++ b/main.go @@ -7,6 +7,8 @@ import ( "log" "net/http" "os" + + "github.com/joho/godotenv" ) type Config struct { @@ -25,13 +27,19 @@ func loadConfig() (*Config, error) { // ---------- Main ---------- func main() { + + err := godotenv.Load() + if err != nil { + log.Fatal("Error loading .env file") + } + port := flag.String("port", "8081", "port to listen on") flag.Parse() fs := http.FileServer(http.Dir("static")) http.Handle("/static/", http.StripPrefix("/static/", fs)) - http.HandleFunc("GET /{$}", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, "./static/about.html") }) + http.HandleFunc("GET /{$}", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, "./static/index.html") }) http.HandleFunc("GET /infra", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, "./static/infra.html") }) http.HandleFunc("GET /finance", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, "./static/finance.html") }) http.HandleFunc("GET /cinema", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, "./static/cinema.html") }) @@ -39,6 +47,22 @@ func main() { http.HandleFunc("GET /42", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, "./static/42.html") }) http.HandleFunc("GET /secret", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, "./static/secret.html") }) http.HandleFunc("GET /favicon.ico", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, "./static/icon.png") }) + http.HandleFunc("GET /login", func(w http.ResponseWriter, r *http.Request) { http.ServeFile(w, r, "./static/login.html") }) + + http.HandleFunc("POST /login", func(w http.ResponseWriter, r *http.Request) { + r.ParseForm() + + password := r.FormValue("password") + totp := r.FormValue("totp") + + if os.Getenv("password") == password && os.Getenv("auth") == totp { + fmt.Fprintf(w, "logged in") + http.Redirect(w, r, "/admin", http.StatusAccepted) + } else { + w.WriteHeader(http.StatusAccepted) + fmt.Fprintf(w, "password or auth is wrong") + } + }) http.HandleFunc("GET /status", func(w http.ResponseWriter, r *http.Request) { config, err := loadConfig() diff --git a/site b/site index 2841b26..4d2da66 100755 Binary files a/site and b/site differ diff --git a/static/about.js b/static/about.js index 7a494c2..b71401d 100644 --- a/static/about.js +++ b/static/about.js @@ -42,32 +42,12 @@ -function unhide42() { - const alicegameSection = document.getElementById('alice'); - const tetrisSection = document.getElementById('tetris'); - const experiencesection = document.getElementById('experience'); - - const educationsection = document.getElementById('education'); - const automationsection = document.getElementById('automation'); - const interestssection = document.getElementById('interests'); - const opinionsection = document.getElementById('opinion'); - const interestlistsection = document.getElementById('interestlist'); - - const hiddenssection = document.getElementById('secret'); - - if (hiddenssection.style.display == 'none') { - hiddenssection.style.display = 'block'; - } else { - hiddenssection.style.display = 'none'; - } - alicegameSection.style.display = 'none'; - tetrisSection.style.display = 'none'; - experiencesection.style.display = 'none'; - educationsection.style.display = 'none'; - automationsection.style.display = 'none'; - interestssection.style.display = 'none'; - - opinionsection.style.display = 'none'; - interestlistsection.style.display = 'none'; +// about.js +function closeOverlay() { + document.getElementById('overlay').style.display = 'none'; +} +// or toggle it from anywhere: +function openOverlay() { + document.getElementById('overlay').style.display = 'flex'; } \ No newline at end of file diff --git a/static/components/background.html b/static/components/background.html new file mode 100644 index 0000000..d9fbe5c --- /dev/null +++ b/static/components/background.html @@ -0,0 +1,130 @@ + + +

49,020.00

+
+
+
+
+
+
+

1,204.50

+
+
+

-750.00

+ + +
+
+
+
+

3,180.00

+
+ + +
+
+
+
+
+

8,300.00

+
+
+

-5,900.00

+ + +
+

14,750.00

+
+
+
+

-320.00

+ + +
+
+
+
+

-412.80

+

88,500.00

+

-2,047.00

+
+
+ + +
+

620.00

+
+
+
+

-11,200.00

+ + +
+
+
+
+
+

2,890.00

+
+ + +
+
+

-8,640.00

+
+
+

47,000.00

+ + +
+
+
+
+
+

-990.00

+
+ + +

5,500.00

+
+
+
+
+
+ + +
+
+
+
+
+
+
+

19,300.00

+

-3,750.00

+ + +
+
+

-60.50

+
+
+
+ + +
+
+
+
+
+
+

7,840.00

+
+ + +
+
+
+
+

-1,130.00

+
diff --git a/static/components/games.html b/static/components/games.html new file mode 100644 index 0000000..c3ad5c1 --- /dev/null +++ b/static/components/games.html @@ -0,0 +1,26 @@ +
+
+ +

Minecraft

+
+
+ +

Rise of the Tomb Raider

+
+
+ +

Planet Zoo

+
+
+ +

GTA V

+
+
+ +

Factorio

+
+
+ +

Detroit: Become Human

+
+
\ No newline at end of file diff --git a/static/icons/arcade.svg b/static/icons/arcade.svg new file mode 100644 index 0000000..433c69c --- /dev/null +++ b/static/icons/arcade.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/at-sign.svg b/static/icons/at-sign.svg new file mode 100644 index 0000000..7455564 --- /dev/null +++ b/static/icons/at-sign.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/half-moon.svg b/static/icons/half-moon.svg new file mode 100644 index 0000000..068201c --- /dev/null +++ b/static/icons/half-moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/icons/sun-light.svg b/static/icons/sun-light.svg new file mode 100644 index 0000000..3f6e741 --- /dev/null +++ b/static/icons/sun-light.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/static/images/book.png b/static/images/book.png new file mode 100644 index 0000000..d0da635 Binary files /dev/null and b/static/images/book.png differ diff --git a/static/images/books.png b/static/images/books.png new file mode 100644 index 0000000..772e241 Binary files /dev/null and b/static/images/books.png differ diff --git a/static/images/calc.png b/static/images/calc.png new file mode 100644 index 0000000..96e07f1 Binary files /dev/null and b/static/images/calc.png differ diff --git a/static/images/coffe.png b/static/images/coffe.png new file mode 100644 index 0000000..4fd1fcd Binary files /dev/null and b/static/images/coffe.png differ diff --git a/static/images/files.png b/static/images/files.png new file mode 100644 index 0000000..c132375 Binary files /dev/null and b/static/images/files.png differ diff --git a/static/images/keyboard.png b/static/images/keyboard.png new file mode 100644 index 0000000..63a21e3 Binary files /dev/null and b/static/images/keyboard.png differ diff --git a/static/images/mac.png b/static/images/mac.png new file mode 100644 index 0000000..13bf902 Binary files /dev/null and b/static/images/mac.png differ diff --git a/static/index.html b/static/index.html new file mode 100644 index 0000000..da9a54b --- /dev/null +++ b/static/index.html @@ -0,0 +1,372 @@ + + + + + +Home + + + + + + + + + +
+
+
+ +
+ +
+
+ + +
+
+
+

About Me · 2026

+

Samantha
Vero Friis

+

Bachelor's student in Business Administration seeking an entry-level analyst or + finance-related role while studying. Strong numerical skills, advanced Excel, and experience in company, risk, + and financial analysis. Analytical, detail-oriented, and efficiency-focused.

+
+
+ email: me@samantha42.xyz +
+
+ +
+

Experience

+
+
+
+ Independent Equity Research + finance +
+

Fundamental analysis using SEC filings (10-K, 10-Q) and earnings reports. Assess + profitability, liquidity, risk factors, and long-term business sustainability. Handle incomplete or + low-transparency information through structured cross-validation.

+ // Go to Analysis +
+
+
+ Technical Tools & Automation + engineering +
+

Build lightweight backend tools to automate repetitive analytical and operational tasks. + Python for data processing, validation, and workflow automation. Lightweight online services in Go, + focusing on speed and reliability.

+ // Go to Tools +
+
+
+ +
+

Education

+
+
+
2025 — present
+
+
Bachelor of Economics & Business Administration (HA)
+
Aalborg University · Expected 2028
+
+
+
+
2024 — 2025
+ discontinued +
+
+
Mathematics-Technology (BSc)
+
Aalborg University · 1 semester
+
+
+
+
2020 — 2023
+
+
HTX - Technical Upper Secondary Education
+
Viden Gymnasier
+
Mathematics A, Biology B · Study project: Mathematics & Technology
+
+
+
+
+ +
+

Opinion

+
+ cinema + finance + infra +
+
+ +
+

Technical Tools & Automation engineering/programming

+

+ The task here is simple: to reduce work, it's a simple investment. The choice of picking the correct + bottleneck is as important as the tool itself, as this gives it use. If it's never used, it never creates + value. The same goes for uptime, it's important that stability is almost perfect, as downtime undermines + the utility of having the tool. Remember that making and using a tool also creates debt for future + maintenance of the tool. +

+ To adhere to this, I often choose Golang or Python as they are cheap to maintain. Golang has good + stability because it is easy to code and compile checks give early error detection. A word of caution on + AI generated tools: while they are cheap to make, the maintenance debt grows exponentially, as the code is + often poorly understood by the team and difficult to reason about over time. +

+
+
+
Portfolio Engine
+

A lightweight portfolio and financial data backend written in Go. Tracks companies, + currencies, revenue reports, and trades across configurable time periods — replacing spreadsheets with a + proper database, REST API, and interactive shell.

+
Roadmap
+
    +
  • Price update endpoint
  • +
  • Multi-currency conversion
  • +
  • Frontend dashboard
  • +
  • Shares outstanding history database table
  • +
  • Earnings per share (EPS) based on shares owned
  • +
  • First-In, First-Out (FIFO) realized gains
  • +
  • Dividends earned and related taxes
  • +
  • Total tax obligations
  • +
+ // Git repo +
+
+
Accounting Management
+

A lightweight, SQL-backed, web-based CLI system designed to track assets and liabilities. The goal is to + provide a simple, fast, and scalable financial tracking tool that can grow from personal use to more + advanced scenarios.

+
+
+
+ +
+

Equity Research

+
+
Story vs Fundamental value
+

+ The truth I keep coming back to is simple: find value grounded in the fundamental numbers of a company. +

+ My approach is rooted in fundamental analysis using SEC filings (10-K, 10-Q), earnings reports, + profitability, liquidity, risk factors, and long-term business sustainability. In low-transparency + situations I rely on structured cross-validation across sources. +

+ A pattern I keep seeing is CEOs speaking just close enough to reality to generate a short-term price + boost, then moving the goalposts when reality catches up. What companies state in filings and what they + communicate to retail or even professional investors can be two very different stories. +

+
+

Current stock analysis

+
+
+ MSTR: Strategy + Sell +
+

The company only owns btc by issuing debt and preferred stock offering.
+ The company is a ponzi scheme at its best.

+ // Read file +
+
+
+ Novo.B/NVO: Novo Nordisk A/S + Buy +
+

The product sales of weight loss drugs are high class, pipeline is undervalued.
+ Pipeline and wegovy pill is not recognised correctly as high focus on expiration of current sold product. High pessimistic view of pipeline.

+ // Read file +
+
+ +
+ + + +
+ + +
+
+
+ + + + + + + \ No newline at end of file diff --git a/static/login.html b/static/login.html new file mode 100644 index 0000000..8231e2a --- /dev/null +++ b/static/login.html @@ -0,0 +1,80 @@ + + + + + +
+
+
+

samantha42.xyz

+

Secure Portal

+
+
+ + +
+ +
+
+ + +
+ +
+ + +
+ + +

verifying...

+
+ + +
+ +
+
+
\ No newline at end of file diff --git a/static/style/styles2.css b/static/style/styles2.css index 2d52a54..1e8c928 100644 --- a/static/style/styles2.css +++ b/static/style/styles2.css @@ -134,7 +134,6 @@ main{ display:flex;flex-direction:column;gap:4rem; } -.hero{padding-bottom:3rem;border-bottom:1px solid var(--border);} .hero-eyebrow{ font-family:var(--ff-mono);font-size:0.72rem;color:var(--green); letter-spacing:0.18em;margin-bottom:1rem; @@ -596,4 +595,26 @@ a{ animation: pulse 2s infinite; } .dot--available { background: var(--green); } -.dot--busy { background: red; } \ No newline at end of file +.dot--busy { background: red; } + +/* styles2.css */ +.overlay { + position: fixed; + inset: 0; /* top/right/bottom/left: 0 */ + background: rgba(0, 0, 0, 0.6); /* semi-transparent dark */ + z-index: 100; + display: none; + align-items: center; + justify-content: center; +} +button { + font-family:var(--ff-mono);font-size:0.65rem; + letter-spacing:0.1em;text-transform:uppercase; + background:rgba(26,86,219,0.07);color:var(--accent); + border:1px solid rgba(26,86,219,0.2); + padding:2px 8px;border-radius:3px; +} + +button:hover { + border:1px solid rgb(26, 87, 219); +} \ No newline at end of file diff --git a/static/tailwind.css b/static/tailwind.css new file mode 100644 index 0000000..b13474d --- /dev/null +++ b/static/tailwind.css @@ -0,0 +1,3722 @@ +/*! tailwindcss v4.3.0 | MIT License | https://tailwindcss.com */ +@layer properties; +@layer theme, base, components, utilities; +@layer theme { + :root, :host { + --font-sans: ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', + 'Noto Color Emoji'; + --font-serif: ui-serif, Georgia, Cambria, 'Times New Roman', Times, serif; + --font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', + monospace; + --color-red-50: oklch(97.1% 0.013 17.38); + --color-red-100: oklch(93.6% 0.032 17.717); + --color-red-200: oklch(88.5% 0.062 18.334); + --color-red-300: oklch(80.8% 0.114 19.571); + --color-red-400: oklch(70.4% 0.191 22.216); + --color-red-500: oklch(63.7% 0.237 25.331); + --color-red-600: oklch(57.7% 0.245 27.325); + --color-red-700: oklch(50.5% 0.213 27.518); + --color-red-800: oklch(44.4% 0.177 26.899); + --color-red-900: oklch(39.6% 0.141 25.723); + --color-red-950: oklch(25.8% 0.092 26.042); + --color-orange-50: oklch(98% 0.016 73.684); + --color-orange-100: oklch(95.4% 0.038 75.164); + --color-orange-200: oklch(90.1% 0.076 70.697); + --color-orange-300: oklch(83.7% 0.128 66.29); + --color-orange-400: oklch(75% 0.183 55.934); + --color-orange-500: oklch(70.5% 0.213 47.604); + --color-orange-600: oklch(64.6% 0.222 41.116); + --color-orange-700: oklch(55.3% 0.195 38.402); + --color-orange-800: oklch(47% 0.157 37.304); + --color-orange-900: oklch(40.8% 0.123 38.172); + --color-orange-950: oklch(26.6% 0.079 36.259); + --color-amber-50: oklch(98.7% 0.022 95.277); + --color-amber-100: oklch(96.2% 0.059 95.617); + --color-amber-200: oklch(92.4% 0.12 95.746); + --color-amber-300: oklch(87.9% 0.169 91.605); + --color-amber-400: oklch(82.8% 0.189 84.429); + --color-amber-500: oklch(76.9% 0.188 70.08); + --color-amber-600: oklch(66.6% 0.179 58.318); + --color-amber-700: oklch(55.5% 0.163 48.998); + --color-amber-800: oklch(47.3% 0.137 46.201); + --color-amber-900: oklch(41.4% 0.112 45.904); + --color-amber-950: oklch(27.9% 0.077 45.635); + --color-yellow-50: oklch(98.7% 0.026 102.212); + --color-yellow-100: oklch(97.3% 0.071 103.193); + --color-yellow-200: oklch(94.5% 0.129 101.54); + --color-yellow-300: oklch(90.5% 0.182 98.111); + --color-yellow-400: oklch(85.2% 0.199 91.936); + --color-yellow-500: oklch(79.5% 0.184 86.047); + --color-yellow-600: oklch(68.1% 0.162 75.834); + --color-yellow-700: oklch(55.4% 0.135 66.442); + --color-yellow-800: oklch(47.6% 0.114 61.907); + --color-yellow-900: oklch(42.1% 0.095 57.708); + --color-yellow-950: oklch(28.6% 0.066 53.813); + --color-lime-50: oklch(98.6% 0.031 120.757); + --color-lime-100: oklch(96.7% 0.067 122.328); + --color-lime-200: oklch(93.8% 0.127 124.321); + --color-lime-300: oklch(89.7% 0.196 126.665); + --color-lime-400: oklch(84.1% 0.238 128.85); + --color-lime-500: oklch(76.8% 0.233 130.85); + --color-lime-600: oklch(64.8% 0.2 131.684); + --color-lime-700: oklch(53.2% 0.157 131.589); + --color-lime-800: oklch(45.3% 0.124 130.933); + --color-lime-900: oklch(40.5% 0.101 131.063); + --color-lime-950: oklch(27.4% 0.072 132.109); + --color-green-50: oklch(98.2% 0.018 155.826); + --color-green-100: oklch(96.2% 0.044 156.743); + --color-green-200: oklch(92.5% 0.084 155.995); + --color-green-300: oklch(87.1% 0.15 154.449); + --color-green-400: oklch(79.2% 0.209 151.711); + --color-green-500: oklch(72.3% 0.219 149.579); + --color-green-600: oklch(62.7% 0.194 149.214); + --color-green-700: oklch(52.7% 0.154 150.069); + --color-green-800: oklch(44.8% 0.119 151.328); + --color-green-900: oklch(39.3% 0.095 152.535); + --color-green-950: oklch(26.6% 0.065 152.934); + --color-emerald-50: oklch(97.9% 0.021 166.113); + --color-emerald-100: oklch(95% 0.052 163.051); + --color-emerald-200: oklch(90.5% 0.093 164.15); + --color-emerald-300: oklch(84.5% 0.143 164.978); + --color-emerald-400: oklch(76.5% 0.177 163.223); + --color-emerald-500: oklch(69.6% 0.17 162.48); + --color-emerald-600: oklch(59.6% 0.145 163.225); + --color-emerald-700: oklch(50.8% 0.118 165.612); + --color-emerald-800: oklch(43.2% 0.095 166.913); + --color-emerald-900: oklch(37.8% 0.077 168.94); + --color-emerald-950: oklch(26.2% 0.051 172.552); + --color-teal-50: oklch(98.4% 0.014 180.72); + --color-teal-100: oklch(95.3% 0.051 180.801); + --color-teal-200: oklch(91% 0.096 180.426); + --color-teal-300: oklch(85.5% 0.138 181.071); + --color-teal-400: oklch(77.7% 0.152 181.912); + --color-teal-500: oklch(70.4% 0.14 182.503); + --color-teal-600: oklch(60% 0.118 184.704); + --color-teal-700: oklch(51.1% 0.096 186.391); + --color-teal-800: oklch(43.7% 0.078 188.216); + --color-teal-900: oklch(38.6% 0.063 188.416); + --color-teal-950: oklch(27.7% 0.046 192.524); + --color-cyan-50: oklch(98.4% 0.019 200.873); + --color-cyan-100: oklch(95.6% 0.045 203.388); + --color-cyan-200: oklch(91.7% 0.08 205.041); + --color-cyan-300: oklch(86.5% 0.127 207.078); + --color-cyan-400: oklch(78.9% 0.154 211.53); + --color-cyan-500: oklch(71.5% 0.143 215.221); + --color-cyan-600: oklch(60.9% 0.126 221.723); + --color-cyan-700: oklch(52% 0.105 223.128); + --color-cyan-800: oklch(45% 0.085 224.283); + --color-cyan-900: oklch(39.8% 0.07 227.392); + --color-cyan-950: oklch(30.2% 0.056 229.695); + --color-sky-50: oklch(97.7% 0.013 236.62); + --color-sky-100: oklch(95.1% 0.026 236.824); + --color-sky-200: oklch(90.1% 0.058 230.902); + --color-sky-300: oklch(82.8% 0.111 230.318); + --color-sky-400: oklch(74.6% 0.16 232.661); + --color-sky-500: oklch(68.5% 0.169 237.323); + --color-sky-600: oklch(58.8% 0.158 241.966); + --color-sky-700: oklch(50% 0.134 242.749); + --color-sky-800: oklch(44.3% 0.11 240.79); + --color-sky-900: oklch(39.1% 0.09 240.876); + --color-sky-950: oklch(29.3% 0.066 243.157); + --color-blue-50: oklch(97% 0.014 254.604); + --color-blue-100: oklch(93.2% 0.032 255.585); + --color-blue-200: oklch(88.2% 0.059 254.128); + --color-blue-300: oklch(80.9% 0.105 251.813); + --color-blue-400: oklch(70.7% 0.165 254.624); + --color-blue-500: oklch(62.3% 0.214 259.815); + --color-blue-600: oklch(54.6% 0.245 262.881); + --color-blue-700: oklch(48.8% 0.243 264.376); + --color-blue-800: oklch(42.4% 0.199 265.638); + --color-blue-900: oklch(37.9% 0.146 265.522); + --color-blue-950: oklch(28.2% 0.091 267.935); + --color-indigo-50: oklch(96.2% 0.018 272.314); + --color-indigo-100: oklch(93% 0.034 272.788); + --color-indigo-200: oklch(87% 0.065 274.039); + --color-indigo-300: oklch(78.5% 0.115 274.713); + --color-indigo-400: oklch(67.3% 0.182 276.935); + --color-indigo-500: oklch(58.5% 0.233 277.117); + --color-indigo-600: oklch(51.1% 0.262 276.966); + --color-indigo-700: oklch(45.7% 0.24 277.023); + --color-indigo-800: oklch(39.8% 0.195 277.366); + --color-indigo-900: oklch(35.9% 0.144 278.697); + --color-indigo-950: oklch(25.7% 0.09 281.288); + --color-violet-50: oklch(96.9% 0.016 293.756); + --color-violet-100: oklch(94.3% 0.029 294.588); + --color-violet-200: oklch(89.4% 0.057 293.283); + --color-violet-300: oklch(81.1% 0.111 293.571); + --color-violet-400: oklch(70.2% 0.183 293.541); + --color-violet-500: oklch(60.6% 0.25 292.717); + --color-violet-600: oklch(54.1% 0.281 293.009); + --color-violet-700: oklch(49.1% 0.27 292.581); + --color-violet-800: oklch(43.2% 0.232 292.759); + --color-violet-900: oklch(38% 0.189 293.745); + --color-violet-950: oklch(28.3% 0.141 291.089); + --color-purple-50: oklch(97.7% 0.014 308.299); + --color-purple-100: oklch(94.6% 0.033 307.174); + --color-purple-200: oklch(90.2% 0.063 306.703); + --color-purple-300: oklch(82.7% 0.119 306.383); + --color-purple-400: oklch(71.4% 0.203 305.504); + --color-purple-500: oklch(62.7% 0.265 303.9); + --color-purple-600: oklch(55.8% 0.288 302.321); + --color-purple-700: oklch(49.6% 0.265 301.924); + --color-purple-800: oklch(43.8% 0.218 303.724); + --color-purple-900: oklch(38.1% 0.176 304.987); + --color-purple-950: oklch(29.1% 0.149 302.717); + --color-fuchsia-50: oklch(97.7% 0.017 320.058); + --color-fuchsia-100: oklch(95.2% 0.037 318.852); + --color-fuchsia-200: oklch(90.3% 0.076 319.62); + --color-fuchsia-300: oklch(83.3% 0.145 321.434); + --color-fuchsia-400: oklch(74% 0.238 322.16); + --color-fuchsia-500: oklch(66.7% 0.295 322.15); + --color-fuchsia-600: oklch(59.1% 0.293 322.896); + --color-fuchsia-700: oklch(51.8% 0.253 323.949); + --color-fuchsia-800: oklch(45.2% 0.211 324.591); + --color-fuchsia-900: oklch(40.1% 0.17 325.612); + --color-fuchsia-950: oklch(29.3% 0.136 325.661); + --color-pink-50: oklch(97.1% 0.014 343.198); + --color-pink-100: oklch(94.8% 0.028 342.258); + --color-pink-200: oklch(89.9% 0.061 343.231); + --color-pink-300: oklch(82.3% 0.12 346.018); + --color-pink-400: oklch(71.8% 0.202 349.761); + --color-pink-500: oklch(65.6% 0.241 354.308); + --color-pink-600: oklch(59.2% 0.249 0.584); + --color-pink-700: oklch(52.5% 0.223 3.958); + --color-pink-800: oklch(45.9% 0.187 3.815); + --color-pink-900: oklch(40.8% 0.153 2.432); + --color-pink-950: oklch(28.4% 0.109 3.907); + --color-rose-50: oklch(96.9% 0.015 12.422); + --color-rose-100: oklch(94.1% 0.03 12.58); + --color-rose-200: oklch(89.2% 0.058 10.001); + --color-rose-300: oklch(81% 0.117 11.638); + --color-rose-400: oklch(71.2% 0.194 13.428); + --color-rose-500: oklch(64.5% 0.246 16.439); + --color-rose-600: oklch(58.6% 0.253 17.585); + --color-rose-700: oklch(51.4% 0.222 16.935); + --color-rose-800: oklch(45.5% 0.188 13.697); + --color-rose-900: oklch(41% 0.159 10.272); + --color-rose-950: oklch(27.1% 0.105 12.094); + --color-slate-50: oklch(98.4% 0.003 247.858); + --color-slate-100: oklch(96.8% 0.007 247.896); + --color-slate-200: oklch(92.9% 0.013 255.508); + --color-slate-300: oklch(86.9% 0.022 252.894); + --color-slate-400: oklch(70.4% 0.04 256.788); + --color-slate-500: oklch(55.4% 0.046 257.417); + --color-slate-600: oklch(44.6% 0.043 257.281); + --color-slate-700: oklch(37.2% 0.044 257.287); + --color-slate-800: oklch(27.9% 0.041 260.031); + --color-slate-900: oklch(20.8% 0.042 265.755); + --color-slate-950: oklch(12.9% 0.042 264.695); + --color-gray-50: oklch(98.5% 0.002 247.839); + --color-gray-100: oklch(96.7% 0.003 264.542); + --color-gray-200: oklch(92.8% 0.006 264.531); + --color-gray-300: oklch(87.2% 0.01 258.338); + --color-gray-400: oklch(70.7% 0.022 261.325); + --color-gray-500: oklch(55.1% 0.027 264.364); + --color-gray-600: oklch(44.6% 0.03 256.802); + --color-gray-700: oklch(37.3% 0.034 259.733); + --color-gray-800: oklch(27.8% 0.033 256.848); + --color-gray-900: oklch(21% 0.034 264.665); + --color-gray-950: oklch(13% 0.028 261.692); + --color-zinc-50: oklch(98.5% 0 0); + --color-zinc-100: oklch(96.7% 0.001 286.375); + --color-zinc-200: oklch(92% 0.004 286.32); + --color-zinc-300: oklch(87.1% 0.006 286.286); + --color-zinc-400: oklch(70.5% 0.015 286.067); + --color-zinc-500: oklch(55.2% 0.016 285.938); + --color-zinc-600: oklch(44.2% 0.017 285.786); + --color-zinc-700: oklch(37% 0.013 285.805); + --color-zinc-800: oklch(27.4% 0.006 286.033); + --color-zinc-900: oklch(21% 0.006 285.885); + --color-zinc-950: oklch(14.1% 0.005 285.823); + --color-neutral-50: oklch(98.5% 0 0); + --color-neutral-100: oklch(97% 0 0); + --color-neutral-200: oklch(92.2% 0 0); + --color-neutral-300: oklch(87% 0 0); + --color-neutral-400: oklch(70.8% 0 0); + --color-neutral-500: oklch(55.6% 0 0); + --color-neutral-600: oklch(43.9% 0 0); + --color-neutral-700: oklch(37.1% 0 0); + --color-neutral-800: oklch(26.9% 0 0); + --color-neutral-900: oklch(20.5% 0 0); + --color-neutral-950: oklch(14.5% 0 0); + --color-stone-50: oklch(98.5% 0.001 106.423); + --color-stone-100: oklch(97% 0.001 106.424); + --color-stone-200: oklch(92.3% 0.003 48.717); + --color-stone-300: oklch(86.9% 0.005 56.366); + --color-stone-400: oklch(70.9% 0.01 56.259); + --color-stone-500: oklch(55.3% 0.013 58.071); + --color-stone-600: oklch(44.4% 0.011 73.639); + --color-stone-700: oklch(37.4% 0.01 67.558); + --color-stone-800: oklch(26.8% 0.007 34.298); + --color-stone-900: oklch(21.6% 0.006 56.043); + --color-stone-950: oklch(14.7% 0.004 49.25); + --color-mauve-50: oklch(98.5% 0 0); + --color-mauve-100: oklch(96% 0.003 325.6); + --color-mauve-200: oklch(92.2% 0.005 325.62); + --color-mauve-300: oklch(86.5% 0.012 325.68); + --color-mauve-400: oklch(71.1% 0.019 323.02); + --color-mauve-500: oklch(54.2% 0.034 322.5); + --color-mauve-600: oklch(43.5% 0.029 321.78); + --color-mauve-700: oklch(36.4% 0.029 323.89); + --color-mauve-800: oklch(26.3% 0.024 320.12); + --color-mauve-900: oklch(21.2% 0.019 322.12); + --color-mauve-950: oklch(14.5% 0.008 326); + --color-olive-50: oklch(98.8% 0.003 106.5); + --color-olive-100: oklch(96.6% 0.005 106.5); + --color-olive-200: oklch(93% 0.007 106.5); + --color-olive-300: oklch(88% 0.011 106.6); + --color-olive-400: oklch(73.7% 0.021 106.9); + --color-olive-500: oklch(58% 0.031 107.3); + --color-olive-600: oklch(46.6% 0.025 107.3); + --color-olive-700: oklch(39.4% 0.023 107.4); + --color-olive-800: oklch(28.6% 0.016 107.4); + --color-olive-900: oklch(22.8% 0.013 107.4); + --color-olive-950: oklch(15.3% 0.006 107.1); + --color-mist-50: oklch(98.7% 0.002 197.1); + --color-mist-100: oklch(96.3% 0.002 197.1); + --color-mist-200: oklch(92.5% 0.005 214.3); + --color-mist-300: oklch(87.2% 0.007 219.6); + --color-mist-400: oklch(72.3% 0.014 214.4); + --color-mist-500: oklch(56% 0.021 213.5); + --color-mist-600: oklch(45% 0.017 213.2); + --color-mist-700: oklch(37.8% 0.015 216); + --color-mist-800: oklch(27.5% 0.011 216.9); + --color-mist-900: oklch(21.8% 0.008 223.9); + --color-mist-950: oklch(14.8% 0.004 228.8); + --color-taupe-50: oklch(98.6% 0.002 67.8); + --color-taupe-100: oklch(96% 0.002 17.2); + --color-taupe-200: oklch(92.2% 0.005 34.3); + --color-taupe-300: oklch(86.8% 0.007 39.5); + --color-taupe-400: oklch(71.4% 0.014 41.2); + --color-taupe-500: oklch(54.7% 0.021 43.1); + --color-taupe-600: oklch(43.8% 0.017 39.3); + --color-taupe-700: oklch(36.7% 0.016 35.7); + --color-taupe-800: oklch(26.8% 0.011 36.5); + --color-taupe-900: oklch(21.4% 0.009 43.1); + --color-taupe-950: oklch(14.7% 0.004 49.3); + --color-black: #000; + --color-white: #fff; + --spacing: 0.25rem; + --breakpoint-sm: 40rem; + --breakpoint-md: 48rem; + --breakpoint-lg: 64rem; + --breakpoint-xl: 80rem; + --breakpoint-2xl: 96rem; + --container-3xs: 16rem; + --container-2xs: 18rem; + --container-xs: 20rem; + --container-sm: 24rem; + --container-md: 28rem; + --container-lg: 32rem; + --container-xl: 36rem; + --container-2xl: 42rem; + --container-3xl: 48rem; + --container-4xl: 56rem; + --container-5xl: 64rem; + --container-6xl: 72rem; + --container-7xl: 80rem; + --text-xs: 0.75rem; + --text-xs--line-height: calc(1 / 0.75); + --text-sm: 0.875rem; + --text-sm--line-height: calc(1.25 / 0.875); + --text-base: 1rem; + --text-base--line-height: calc(1.5 / 1); + --text-lg: 1.125rem; + --text-lg--line-height: calc(1.75 / 1.125); + --text-xl: 1.25rem; + --text-xl--line-height: calc(1.75 / 1.25); + --text-2xl: 1.5rem; + --text-2xl--line-height: calc(2 / 1.5); + --text-3xl: 1.875rem; + --text-3xl--line-height: calc(2.25 / 1.875); + --text-4xl: 2.25rem; + --text-4xl--line-height: calc(2.5 / 2.25); + --text-5xl: 3rem; + --text-5xl--line-height: 1; + --text-6xl: 3.75rem; + --text-6xl--line-height: 1; + --text-7xl: 4.5rem; + --text-7xl--line-height: 1; + --text-8xl: 6rem; + --text-8xl--line-height: 1; + --text-9xl: 8rem; + --text-9xl--line-height: 1; + --font-weight-thin: 100; + --font-weight-extralight: 200; + --font-weight-light: 300; + --font-weight-normal: 400; + --font-weight-medium: 500; + --font-weight-semibold: 600; + --font-weight-bold: 700; + --font-weight-extrabold: 800; + --font-weight-black: 900; + --tracking-tighter: -0.05em; + --tracking-tight: -0.025em; + --tracking-normal: 0em; + --tracking-wide: 0.025em; + --tracking-wider: 0.05em; + --tracking-widest: 0.1em; + --leading-tight: 1.25; + --leading-snug: 1.375; + --leading-normal: 1.5; + --leading-relaxed: 1.625; + --leading-loose: 2; + --radius-xs: 0.125rem; + --radius-sm: 0.25rem; + --radius-md: 0.375rem; + --radius-lg: 0.5rem; + --radius-xl: 0.75rem; + --radius-2xl: 1rem; + --radius-3xl: 1.5rem; + --radius-4xl: 2rem; + --shadow-2xs: 0 1px rgb(0 0 0 / 0.05); + --shadow-xs: 0 1px 2px 0 rgb(0 0 0 / 0.05); + --shadow-sm: 0 1px 3px 0 rgb(0 0 0 / 0.1), 0 1px 2px -1px rgb(0 0 0 / 0.1); + --shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1); + --shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1); + --shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1); + --shadow-2xl: 0 25px 50px -12px rgb(0 0 0 / 0.25); + --inset-shadow-2xs: inset 0 1px rgb(0 0 0 / 0.05); + --inset-shadow-xs: inset 0 1px 1px rgb(0 0 0 / 0.05); + --inset-shadow-sm: inset 0 2px 4px rgb(0 0 0 / 0.05); + --drop-shadow-xs: 0 1px 1px rgb(0 0 0 / 0.05); + --drop-shadow-sm: 0 1px 2px rgb(0 0 0 / 0.15); + --drop-shadow-md: 0 3px 3px rgb(0 0 0 / 0.12); + --drop-shadow-lg: 0 4px 4px rgb(0 0 0 / 0.15); + --drop-shadow-xl: 0 9px 7px rgb(0 0 0 / 0.1); + --drop-shadow-2xl: 0 25px 25px rgb(0 0 0 / 0.15); + --text-shadow-2xs: 0px 1px 0px rgb(0 0 0 / 0.15); + --text-shadow-xs: 0px 1px 1px rgb(0 0 0 / 0.2); + --text-shadow-sm: 0px 1px 0px rgb(0 0 0 / 0.075), 0px 1px 1px rgb(0 0 0 / 0.075), 0px 2px 2px rgb(0 0 0 / 0.075); + --text-shadow-md: 0px 1px 1px rgb(0 0 0 / 0.1), 0px 1px 2px rgb(0 0 0 / 0.1), 0px 2px 4px rgb(0 0 0 / 0.1); + --text-shadow-lg: 0px 1px 2px rgb(0 0 0 / 0.1), 0px 3px 2px rgb(0 0 0 / 0.1), 0px 4px 8px rgb(0 0 0 / 0.1); + --ease-in: cubic-bezier(0.4, 0, 1, 1); + --ease-out: cubic-bezier(0, 0, 0.2, 1); + --ease-in-out: cubic-bezier(0.4, 0, 0.2, 1); + --animate-spin: spin 1s linear infinite; + --animate-ping: ping 1s cubic-bezier(0, 0, 0.2, 1) infinite; + --animate-pulse: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; + --animate-bounce: bounce 1s infinite; + --blur-xs: 4px; + --blur-sm: 8px; + --blur-md: 12px; + --blur-lg: 16px; + --blur-xl: 24px; + --blur-2xl: 40px; + --blur-3xl: 64px; + --perspective-dramatic: 100px; + --perspective-near: 300px; + --perspective-normal: 500px; + --perspective-midrange: 800px; + --perspective-distant: 1200px; + --aspect-video: 16 / 9; + --default-transition-duration: 150ms; + --default-transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); + --default-font-family: var(--font-sans); + --default-mono-font-family: var(--font-mono); + } +} +@layer base { + *, ::after, ::before, ::backdrop, ::file-selector-button { + box-sizing: border-box; + margin: 0; + padding: 0; + border: 0 solid; + } + html, :host { + line-height: 1.5; + -webkit-text-size-adjust: 100%; + tab-size: 4; + font-family: var(--default-font-family, ui-sans-serif, system-ui, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'); + font-feature-settings: var(--default-font-feature-settings, normal); + font-variation-settings: var(--default-font-variation-settings, normal); + -webkit-tap-highlight-color: transparent; + } + hr { + height: 0; + color: inherit; + border-top-width: 1px; + } + abbr:where([title]) { + -webkit-text-decoration: underline dotted; + text-decoration: underline dotted; + } + h1, h2, h3, h4, h5, h6 { + font-size: inherit; + font-weight: inherit; + } + a { + color: inherit; + -webkit-text-decoration: inherit; + text-decoration: inherit; + } + b, strong { + font-weight: bolder; + } + code, kbd, samp, pre { + font-family: var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, 'Liberation Mono', 'Courier New', monospace); + font-feature-settings: var(--default-mono-font-feature-settings, normal); + font-variation-settings: var(--default-mono-font-variation-settings, normal); + font-size: 1em; + } + small { + font-size: 80%; + } + sub, sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; + } + sub { + bottom: -0.25em; + } + sup { + top: -0.5em; + } + table { + text-indent: 0; + border-color: inherit; + border-collapse: collapse; + } + :-moz-focusring { + outline: auto; + } + progress { + vertical-align: baseline; + } + summary { + display: list-item; + } + ol, ul, menu { + list-style: none; + } + img, svg, video, canvas, audio, iframe, embed, object { + display: block; + vertical-align: middle; + } + img, video { + max-width: 100%; + height: auto; + } + button, input, select, optgroup, textarea, ::file-selector-button { + font: inherit; + font-feature-settings: inherit; + font-variation-settings: inherit; + letter-spacing: inherit; + color: inherit; + border-radius: 0; + background-color: transparent; + opacity: 1; + } + :where(select:is([multiple], [size])) optgroup { + font-weight: bolder; + } + :where(select:is([multiple], [size])) optgroup option { + padding-inline-start: 20px; + } + ::file-selector-button { + margin-inline-end: 4px; + } + ::placeholder { + opacity: 1; + } + @supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px) { + ::placeholder { + color: currentcolor; + @supports (color: color-mix(in lab, red, red)) { + color: color-mix(in oklab, currentcolor 50%, transparent); + } + } + } + textarea { + resize: vertical; + } + ::-webkit-search-decoration { + -webkit-appearance: none; + } + ::-webkit-date-and-time-value { + min-height: 1lh; + text-align: inherit; + } + ::-webkit-datetime-edit { + display: inline-flex; + } + ::-webkit-datetime-edit-fields-wrapper { + padding: 0; + } + ::-webkit-datetime-edit, ::-webkit-datetime-edit-year-field, ::-webkit-datetime-edit-month-field, ::-webkit-datetime-edit-day-field, ::-webkit-datetime-edit-hour-field, ::-webkit-datetime-edit-minute-field, ::-webkit-datetime-edit-second-field, ::-webkit-datetime-edit-millisecond-field, ::-webkit-datetime-edit-meridiem-field { + padding-block: 0; + } + ::-webkit-calendar-picker-indicator { + line-height: 1; + } + :-moz-ui-invalid { + box-shadow: none; + } + button, input:where([type='button'], [type='reset'], [type='submit']), ::file-selector-button { + appearance: button; + } + ::-webkit-inner-spin-button, ::-webkit-outer-spin-button { + height: auto; + } + [hidden]:where(:not([hidden='until-found'])) { + display: none !important; + } +} +@layer utilities { + .\@container\/card-header { + container-type: inline-size; + container-name: card-header; + } + .\@container { + container-type: inline-size; + } + .pointer-events-auto { + pointer-events: auto; + } + .pointer-events-none { + pointer-events: none; + } + .collapse { + visibility: collapse; + } + .invisible { + visibility: hidden; + } + .visible { + visibility: visible; + } + .sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip-path: inset(50%); + white-space: nowrap; + border-width: 0; + } + .not-sr-only { + position: static; + width: auto; + height: auto; + padding: 0; + margin: 0; + overflow: visible; + clip-path: none; + white-space: normal; + } + .absolute { + position: absolute; + } + .fixed { + position: fixed; + } + .relative { + position: relative; + } + .static { + position: static; + } + .sticky { + position: sticky; + } + .inset-x-0 { + inset-inline: calc(var(--spacing) * 0); + } + .top-0 { + top: calc(var(--spacing) * 0); + } + .right-2 { + right: calc(var(--spacing) * 2); + } + .left-0 { + left: calc(var(--spacing) * 0); + } + .isolate { + isolation: isolate; + } + .isolation-auto { + isolation: auto; + } + .z-10 { + z-index: 10; + } + .z-50 { + z-index: 50; + } + .order-0 { + order: 0; + } + .order-none { + order: 0; + } + .col-start-2 { + grid-column-start: 2; + } + .row-span-2 { + grid-row: span 2 / span 2; + } + .row-start-1 { + grid-row-start: 1; + } + .float-end { + float: inline-end; + } + .float-left { + float: left; + } + .float-none { + float: none; + } + .float-right { + float: right; + } + .float-start { + float: inline-start; + } + .clear-both { + clear: both; + } + .clear-end { + clear: inline-end; + } + .clear-left { + clear: left; + } + .clear-none { + clear: none; + } + .clear-right { + clear: right; + } + .clear-start { + clear: inline-start; + } + .container { + width: 100%; + @media (width >= 40rem) { + max-width: 40rem; + } + @media (width >= 48rem) { + max-width: 48rem; + } + @media (width >= 64rem) { + max-width: 64rem; + } + @media (width >= 80rem) { + max-width: 80rem; + } + @media (width >= 96rem) { + max-width: 96rem; + } + } + .m-0 { + margin: calc(var(--spacing) * 0); + } + .-mx-1 { + margin-inline: calc(var(--spacing) * -1); + } + .mx-auto { + margin-inline: auto; + } + .my-1 { + margin-block: calc(var(--spacing) * 1); + } + .my-4 { + margin-block: calc(var(--spacing) * 4); + } + .mt-1 { + margin-top: calc(var(--spacing) * 1); + } + .mt-3 { + margin-top: calc(var(--spacing) * 3); + } + .mt-4 { + margin-top: calc(var(--spacing) * 4); + } + .mt-8 { + margin-top: calc(var(--spacing) * 8); + } + .mr-auto { + margin-right: auto; + } + .mb-2 { + margin-bottom: calc(var(--spacing) * 2); + } + .mb-4 { + margin-bottom: calc(var(--spacing) * 4); + } + .mb-6 { + margin-bottom: calc(var(--spacing) * 6); + } + .mb-8 { + margin-bottom: calc(var(--spacing) * 8); + } + .mb-12 { + margin-bottom: calc(var(--spacing) * 12); + } + .ml-auto { + margin-left: auto; + } + .box-border { + box-sizing: border-box; + } + .box-content { + box-sizing: content-box; + } + .block { + display: block; + } + .contents { + display: contents; + } + .flex { + display: flex; + } + .flow-root { + display: flow-root; + } + .grid { + display: grid; + } + .hidden { + display: none; + } + .inline { + display: inline; + } + .inline-block { + display: inline-block; + } + .inline-flex { + display: inline-flex; + } + .inline-grid { + display: inline-grid; + } + .inline-table { + display: inline-table; + } + .list-item { + display: list-item; + } + .table { + display: table; + } + .table-caption { + display: table-caption; + } + .table-cell { + display: table-cell; + } + .table-column { + display: table-column; + } + .table-column-group { + display: table-column-group; + } + .table-footer-group { + display: table-footer-group; + } + .table-header-group { + display: table-header-group; + } + .table-row { + display: table-row; + } + .table-row-group { + display: table-row-group; + } + .field-sizing-content { + field-sizing: content; + } + .field-sizing-fixed { + field-sizing: fixed; + } + .size-3\.5 { + width: calc(var(--spacing) * 3.5); + height: calc(var(--spacing) * 3.5); + } + .size-4 { + width: calc(var(--spacing) * 4); + height: calc(var(--spacing) * 4); + } + .size-8 { + width: calc(var(--spacing) * 8); + height: calc(var(--spacing) * 8); + } + .size-9 { + width: calc(var(--spacing) * 9); + height: calc(var(--spacing) * 9); + } + .size-10 { + width: calc(var(--spacing) * 10); + height: calc(var(--spacing) * 10); + } + .size-auto { + width: auto; + height: auto; + } + .h-8 { + height: calc(var(--spacing) * 8); + } + .h-9 { + height: calc(var(--spacing) * 9); + } + .h-10 { + height: calc(var(--spacing) * 10); + } + .h-12 { + height: calc(var(--spacing) * 12); + } + .h-20 { + height: calc(var(--spacing) * 20); + } + .h-24 { + height: calc(var(--spacing) * 24); + } + .h-36 { + height: calc(var(--spacing) * 36); + } + .h-\[var\(--radix-select-trigger-height\)\] { + height: var(--radix-select-trigger-height); + } + .h-auto { + height: auto; + } + .h-fit { + height: fit-content; + } + .h-full { + height: 100%; + } + .h-lh { + height: 1lh; + } + .h-px { + height: 1px; + } + .h-screen { + height: 100vh; + } + .max-h-\(--radix-select-content-available-height\) { + max-height: var(--radix-select-content-available-height); + } + .max-h-lh { + max-height: 1lh; + } + .max-h-none { + max-height: none; + } + .max-h-screen { + max-height: 100vh; + } + .min-h-16 { + min-height: calc(var(--spacing) * 16); + } + .min-h-\[140px\] { + min-height: 140px; + } + .min-h-auto { + min-height: auto; + } + .min-h-lh { + min-height: 1lh; + } + .min-h-screen { + min-height: 100vh; + } + .w-4xl { + width: var(--container-4xl); + } + .w-24 { + width: calc(var(--spacing) * 24); + } + .w-28 { + width: calc(var(--spacing) * 28); + } + .w-42 { + width: calc(var(--spacing) * 42); + } + .w-48 { + width: calc(var(--spacing) * 48); + } + .w-50 { + width: calc(var(--spacing) * 50); + } + .w-80 { + width: calc(var(--spacing) * 80); + } + .w-\[100px\] { + width: 100px; + } + .w-auto { + width: auto; + } + .w-fit { + width: fit-content; + } + .w-full { + width: 100%; + } + .w-screen { + width: 100vw; + } + .max-w-2xl { + max-width: var(--container-2xl); + } + .max-w-7xl { + max-width: var(--container-7xl); + } + .max-w-none { + max-width: none; + } + .max-w-prose { + max-width: 65ch; + } + .max-w-screen { + max-width: 100vw; + } + .min-w-0 { + min-width: calc(var(--spacing) * 0); + } + .min-w-64 { + min-width: calc(var(--spacing) * 64); + } + .min-w-\[0px\] { + min-width: 0px; + } + .min-w-\[8rem\] { + min-width: 8rem; + } + .min-w-\[320px\] { + min-width: 320px; + } + .min-w-\[var\(--radix-select-trigger-width\)\] { + min-width: var(--radix-select-trigger-width); + } + .min-w-auto { + min-width: auto; + } + .min-w-screen { + min-width: 100vw; + } + .flex-1 { + flex: 1; + } + .flex-auto { + flex: auto; + } + .flex-initial { + flex: 0 auto; + } + .flex-none { + flex: none; + } + .flex-shrink { + flex-shrink: 1; + } + .shrink { + flex-shrink: 1; + } + .shrink-0 { + flex-shrink: 0; + } + .flex-grow { + flex-grow: 1; + } + .grow { + flex-grow: 1; + } + .basis-auto { + flex-basis: auto; + } + .basis-full { + flex-basis: 100%; + } + .table-auto { + table-layout: auto; + } + .table-fixed { + table-layout: fixed; + } + .caption-bottom { + caption-side: bottom; + } + .caption-top { + caption-side: top; + } + .border-collapse { + border-collapse: collapse; + } + .border-separate { + border-collapse: separate; + } + .origin-\(--radix-select-content-transform-origin\) { + transform-origin: var(--radix-select-content-transform-origin); + } + .-translate-full { + --tw-translate-x: -100%; + --tw-translate-y: -100%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .translate-full { + --tw-translate-x: 100%; + --tw-translate-y: 100%; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + .translate-3d { + translate: var(--tw-translate-x) var(--tw-translate-y) var(--tw-translate-z); + } + .translate-none { + translate: none; + } + .scale-120 { + --tw-scale-x: 120%; + --tw-scale-y: 120%; + --tw-scale-z: 120%; + scale: var(--tw-scale-x) var(--tw-scale-y); + } + .scale-3d { + scale: var(--tw-scale-x) var(--tw-scale-y) var(--tw-scale-z); + } + .scale-none { + scale: none; + } + .-rotate-6 { + rotate: calc(6deg * -1); + } + .-rotate-8 { + rotate: calc(8deg * -1); + } + .-rotate-10 { + rotate: calc(10deg * -1); + } + .-rotate-12 { + rotate: calc(12deg * -1); + } + .-rotate-15 { + rotate: calc(15deg * -1); + } + .-rotate-18 { + rotate: calc(18deg * -1); + } + .-rotate-20 { + rotate: calc(20deg * -1); + } + .-rotate-22 { + rotate: calc(22deg * -1); + } + .-rotate-25 { + rotate: calc(25deg * -1); + } + .-rotate-30 { + rotate: calc(30deg * -1); + } + .-rotate-35 { + rotate: calc(35deg * -1); + } + .-rotate-40 { + rotate: calc(40deg * -1); + } + .-rotate-45 { + rotate: calc(45deg * -1); + } + .rotate-5 { + rotate: 5deg; + } + .rotate-6 { + rotate: 6deg; + } + .rotate-8 { + rotate: 8deg; + } + .rotate-10 { + rotate: 10deg; + } + .rotate-12 { + rotate: 12deg; + } + .rotate-14 { + rotate: 14deg; + } + .rotate-15 { + rotate: 15deg; + } + .rotate-16 { + rotate: 16deg; + } + .rotate-18 { + rotate: 18deg; + } + .rotate-20 { + rotate: 20deg; + } + .rotate-22 { + rotate: 22deg; + } + .rotate-25 { + rotate: 25deg; + } + .rotate-28 { + rotate: 28deg; + } + .rotate-30 { + rotate: 30deg; + } + .rotate-35 { + rotate: 35deg; + } + .rotate-40 { + rotate: 40deg; + } + .rotate-42 { + rotate: 42deg; + } + .rotate-45 { + rotate: 45deg; + } + .rotate-50 { + rotate: 50deg; + } + .rotate-78 { + rotate: 78deg; + } + .rotate-90 { + rotate: 90deg; + } + .rotate-none { + rotate: none; + } + .transform { + transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); + } + .transform-cpu { + transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); + } + .transform-gpu { + transform: translateZ(0) var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,); + } + .transform-none { + transform: none; + } + .\[animation\:spin_20s_linear_infinite\] { + animation: spin 20s linear infinite; + } + .animate-\[spin_20s_linear_infinite\] { + animation: spin 20s linear infinite; + } + .cursor-default { + cursor: default; + } + .cursor-pointer { + cursor: pointer; + } + .touch-pinch-zoom { + --tw-pinch-zoom: pinch-zoom; + touch-action: var(--tw-pan-x,) var(--tw-pan-y,) var(--tw-pinch-zoom,); + } + .resize { + resize: both; + } + .resize-none { + resize: none; + } + .resize-x { + resize: horizontal; + } + .resize-y { + resize: vertical; + } + .snap-none { + scroll-snap-type: none; + } + .snap-mandatory { + --tw-scroll-snap-strictness: mandatory; + } + .snap-proximity { + --tw-scroll-snap-strictness: proximity; + } + .snap-align-none { + scroll-snap-align: none; + } + .snap-center { + scroll-snap-align: center; + } + .snap-end { + scroll-snap-align: end; + } + .snap-start { + scroll-snap-align: start; + } + .snap-always { + scroll-snap-stop: always; + } + .snap-normal { + scroll-snap-stop: normal; + } + .scroll-my-1 { + scroll-margin-block: calc(var(--spacing) * 1); + } + .scrollbar-auto { + scrollbar-width: auto; + } + .scrollbar-none { + scrollbar-width: none; + } + .scrollbar-thin { + scrollbar-width: thin; + } + .scrollbar-gutter-auto { + scrollbar-gutter: auto; + } + .scrollbar-gutter-both { + scrollbar-gutter: stable both-edges; + } + .scrollbar-gutter-stable { + scrollbar-gutter: stable; + } + .list-inside { + list-style-position: inside; + } + .list-outside { + list-style-position: outside; + } + .list-disc { + list-style-type: disc; + } + .appearance-auto { + appearance: auto; + } + .appearance-none { + appearance: none; + } + .grid-flow-col { + grid-auto-flow: column; + } + .grid-flow-col-dense { + grid-auto-flow: column dense; + } + .grid-flow-dense { + grid-auto-flow: dense; + } + .grid-flow-row { + grid-auto-flow: row; + } + .grid-flow-row-dense { + grid-auto-flow: row dense; + } + .auto-rows-min { + grid-auto-rows: min-content; + } + .grid-cols-1 { + grid-template-columns: repeat(1, minmax(0, 1fr)); + } + .grid-rows-\[auto_auto\] { + grid-template-rows: auto auto; + } + .flex-col { + flex-direction: column; + } + .flex-col-reverse { + flex-direction: column-reverse; + } + .flex-row { + flex-direction: row; + } + .flex-row-reverse { + flex-direction: row-reverse; + } + .flex-nowrap { + flex-wrap: nowrap; + } + .flex-wrap { + flex-wrap: wrap; + } + .flex-wrap-reverse { + flex-wrap: wrap-reverse; + } + .place-content-around { + place-content: space-around; + } + .place-content-baseline { + place-content: baseline; + } + .place-content-between { + place-content: space-between; + } + .place-content-center { + place-content: center; + } + .place-content-center-safe { + place-content: safe center; + } + .place-content-end { + place-content: end; + } + .place-content-end-safe { + place-content: safe end; + } + .place-content-evenly { + place-content: space-evenly; + } + .place-content-start { + place-content: start; + } + .place-content-stretch { + place-content: stretch; + } + .place-items-baseline { + place-items: baseline; + } + .place-items-center { + place-items: center; + } + .place-items-center-safe { + place-items: safe center; + } + .place-items-end { + place-items: end; + } + .place-items-end-safe { + place-items: safe end; + } + .place-items-start { + place-items: start; + } + .place-items-stretch { + place-items: stretch; + } + .content-around { + align-content: space-around; + } + .content-baseline { + align-content: baseline; + } + .content-between { + align-content: space-between; + } + .content-center { + align-content: center; + } + .content-center-safe { + align-content: safe center; + } + .content-end { + align-content: flex-end; + } + .content-end-safe { + align-content: safe flex-end; + } + .content-evenly { + align-content: space-evenly; + } + .content-normal { + align-content: normal; + } + .content-start { + align-content: flex-start; + } + .content-stretch { + align-content: stretch; + } + .items-baseline { + align-items: baseline; + } + .items-baseline-last { + align-items: last baseline; + } + .items-center { + align-items: center; + } + .items-center-safe { + align-items: safe center; + } + .items-end { + align-items: flex-end; + } + .items-end-safe { + align-items: safe flex-end; + } + .items-start { + align-items: flex-start; + } + .items-stretch { + align-items: stretch; + } + .justify-around { + justify-content: space-around; + } + .justify-baseline { + justify-content: baseline; + } + .justify-between { + justify-content: space-between; + } + .justify-center { + justify-content: center; + } + .justify-center-safe { + justify-content: safe center; + } + .justify-end { + justify-content: flex-end; + } + .justify-end-safe { + justify-content: safe flex-end; + } + .justify-evenly { + justify-content: space-evenly; + } + .justify-normal { + justify-content: normal; + } + .justify-start { + justify-content: flex-start; + } + .justify-stretch { + justify-content: stretch; + } + .justify-items-center { + justify-items: center; + } + .justify-items-center-safe { + justify-items: safe center; + } + .justify-items-end { + justify-items: end; + } + .justify-items-end-safe { + justify-items: safe end; + } + .justify-items-normal { + justify-items: normal; + } + .justify-items-start { + justify-items: start; + } + .justify-items-stretch { + justify-items: stretch; + } + .gap-1 { + gap: calc(var(--spacing) * 1); + } + .gap-1\.5 { + gap: calc(var(--spacing) * 1.5); + } + .gap-2 { + gap: calc(var(--spacing) * 2); + } + .gap-3 { + gap: calc(var(--spacing) * 3); + } + .gap-4 { + gap: calc(var(--spacing) * 4); + } + .gap-6 { + gap: calc(var(--spacing) * 6); + } + .gap-8 { + gap: calc(var(--spacing) * 8); + } + .space-y-1 { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 0; + margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse)); + margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse))); + } + } + .space-y-reverse { + :where(& > :not(:last-child)) { + --tw-space-y-reverse: 1; + } + } + .space-x-reverse { + :where(& > :not(:last-child)) { + --tw-space-x-reverse: 1; + } + } + .divide-x { + :where(& > :not(:last-child)) { + --tw-divide-x-reverse: 0; + border-inline-style: var(--tw-border-style); + border-inline-start-width: calc(1px * var(--tw-divide-x-reverse)); + border-inline-end-width: calc(1px * calc(1 - var(--tw-divide-x-reverse))); + } + } + .divide-y { + :where(& > :not(:last-child)) { + --tw-divide-y-reverse: 0; + border-bottom-style: var(--tw-border-style); + border-top-style: var(--tw-border-style); + border-top-width: calc(1px * var(--tw-divide-y-reverse)); + border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); + } + } + .divide-y-reverse { + :where(& > :not(:last-child)) { + --tw-divide-y-reverse: 1; + } + } + .place-self-auto { + place-self: auto; + } + .place-self-center { + place-self: center; + } + .place-self-center-safe { + place-self: safe center; + } + .place-self-end { + place-self: end; + } + .place-self-end-safe { + place-self: safe end; + } + .place-self-start { + place-self: start; + } + .place-self-stretch { + place-self: stretch; + } + .self-auto { + align-self: auto; + } + .self-baseline { + align-self: baseline; + } + .self-baseline-last { + align-self: last baseline; + } + .self-center { + align-self: center; + } + .self-center-safe { + align-self: safe center; + } + .self-end { + align-self: flex-end; + } + .self-end-safe { + align-self: safe flex-end; + } + .self-start { + align-self: flex-start; + } + .self-stretch { + align-self: stretch; + } + .justify-self-auto { + justify-self: auto; + } + .justify-self-center { + justify-self: center; + } + .justify-self-center-safe { + justify-self: safe center; + } + .justify-self-end { + justify-self: flex-end; + } + .justify-self-end-safe { + justify-self: safe flex-end; + } + .justify-self-start { + justify-self: flex-start; + } + .justify-self-stretch { + justify-self: stretch; + } + .truncate { + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + } + .overflow-hidden { + overflow: hidden; + } + .overflow-x-hidden { + overflow-x: hidden; + } + .overflow-y-auto { + overflow-y: auto; + } + .scroll-auto { + scroll-behavior: auto; + } + .scroll-smooth { + scroll-behavior: smooth; + } + .rounded { + border-radius: 0.25rem; + } + .rounded-lg { + border-radius: var(--radius-lg); + } + .rounded-md { + border-radius: var(--radius-md); + } + .rounded-sm { + border-radius: var(--radius-sm); + } + .rounded-xl { + border-radius: var(--radius-xl); + } + .rounded-s { + border-start-start-radius: 0.25rem; + border-end-start-radius: 0.25rem; + } + .rounded-ss { + border-start-start-radius: 0.25rem; + } + .rounded-e { + border-start-end-radius: 0.25rem; + border-end-end-radius: 0.25rem; + } + .rounded-se { + border-start-end-radius: 0.25rem; + } + .rounded-ee { + border-end-end-radius: 0.25rem; + } + .rounded-es { + border-end-start-radius: 0.25rem; + } + .rounded-t { + border-top-left-radius: 0.25rem; + border-top-right-radius: 0.25rem; + } + .rounded-l { + border-top-left-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + } + .rounded-tl { + border-top-left-radius: 0.25rem; + } + .rounded-r { + border-top-right-radius: 0.25rem; + border-bottom-right-radius: 0.25rem; + } + .rounded-tr { + border-top-right-radius: 0.25rem; + } + .rounded-b { + border-bottom-right-radius: 0.25rem; + border-bottom-left-radius: 0.25rem; + } + .rounded-br { + border-bottom-right-radius: 0.25rem; + } + .rounded-bl { + border-bottom-left-radius: 0.25rem; + } + .border { + border-style: var(--tw-border-style); + border-width: 1px; + } + .border-0 { + border-style: var(--tw-border-style); + border-width: 0px; + } + .border-2 { + border-style: var(--tw-border-style); + border-width: 2px; + } + .border-x { + border-inline-style: var(--tw-border-style); + border-inline-width: 1px; + } + .border-y { + border-block-style: var(--tw-border-style); + border-block-width: 1px; + } + .border-s { + border-inline-start-style: var(--tw-border-style); + border-inline-start-width: 1px; + } + .border-e { + border-inline-end-style: var(--tw-border-style); + border-inline-end-width: 1px; + } + .border-bs { + border-block-start-style: var(--tw-border-style); + border-block-start-width: 1px; + } + .border-be { + border-block-end-style: var(--tw-border-style); + border-block-end-width: 1px; + } + .border-t { + border-top-style: var(--tw-border-style); + border-top-width: 1px; + } + .border-r { + border-right-style: var(--tw-border-style); + border-right-width: 1px; + } + .border-b { + border-bottom-style: var(--tw-border-style); + border-bottom-width: 1px; + } + .border-l { + border-left-style: var(--tw-border-style); + border-left-width: 1px; + } + .border-dashed { + --tw-border-style: dashed; + border-style: dashed; + } + .border-dotted { + --tw-border-style: dotted; + border-style: dotted; + } + .border-double { + --tw-border-style: double; + border-style: double; + } + .border-hidden { + --tw-border-style: hidden; + border-style: hidden; + } + .border-none { + --tw-border-style: none; + border-style: none; + } + .border-solid { + --tw-border-style: solid; + border-style: solid; + } + .border-\[\#fbf0df\] { + border-color: #fbf0df; + } + .border-blue-600 { + border-color: var(--color-blue-600); + } + .border-gray-200 { + border-color: var(--color-gray-200); + } + .border-gray-400 { + border-color: var(--color-gray-400); + } + .bg-\[\#1a1a1a\] { + background-color: #1a1a1a; + } + .bg-\[\#242424\] { + background-color: #242424; + } + .bg-\[\#fbf0df\] { + background-color: #fbf0df; + } + .bg-transparent { + background-color: transparent; + } + .bg-white { + background-color: var(--color-white); + } + .bg-white\/95 { + background-color: color-mix(in srgb, #fff 95%, transparent); + @supports (color: color-mix(in lab, red, red)) { + background-color: color-mix(in oklab, var(--color-white) 95%, transparent); + } + } + .bg-zinc-50 { + background-color: var(--color-zinc-50); + } + .-bg-conic { + --tw-gradient-position: in oklab; + background-image: conic-gradient(var(--tw-gradient-stops)); + } + .bg-conic { + --tw-gradient-position: in oklab; + background-image: conic-gradient(var(--tw-gradient-stops)); + } + .bg-radial { + --tw-gradient-position: in oklab; + background-image: radial-gradient(var(--tw-gradient-stops)); + } + .bg-none { + background-image: none; + } + .via-none { + --tw-gradient-via-stops: initial; + } + .mask-none { + mask-image: none; + } + .mask-circle { + --tw-mask-radial-shape: circle; + } + .mask-ellipse { + --tw-mask-radial-shape: ellipse; + } + .mask-radial-closest-corner { + --tw-mask-radial-size: closest-corner; + } + .mask-radial-closest-side { + --tw-mask-radial-size: closest-side; + } + .mask-radial-farthest-corner { + --tw-mask-radial-size: farthest-corner; + } + .mask-radial-farthest-side { + --tw-mask-radial-size: farthest-side; + } + .mask-radial-at-bottom { + --tw-mask-radial-position: bottom; + } + .mask-radial-at-bottom-left { + --tw-mask-radial-position: bottom left; + } + .mask-radial-at-bottom-right { + --tw-mask-radial-position: bottom right; + } + .mask-radial-at-center { + --tw-mask-radial-position: center; + } + .mask-radial-at-left { + --tw-mask-radial-position: left; + } + .mask-radial-at-right { + --tw-mask-radial-position: right; + } + .mask-radial-at-top { + --tw-mask-radial-position: top; + } + .mask-radial-at-top-left { + --tw-mask-radial-position: top left; + } + .mask-radial-at-top-right { + --tw-mask-radial-position: top right; + } + .box-decoration-clone { + -webkit-box-decoration-break: clone; + box-decoration-break: clone; + } + .box-decoration-slice { + -webkit-box-decoration-break: slice; + box-decoration-break: slice; + } + .decoration-clone { + -webkit-box-decoration-break: clone; + box-decoration-break: clone; + } + .decoration-slice { + -webkit-box-decoration-break: slice; + box-decoration-break: slice; + } + .bg-auto { + background-size: auto; + } + .bg-contain { + background-size: contain; + } + .bg-cover { + background-size: cover; + } + .bg-fixed { + background-attachment: fixed; + } + .bg-local { + background-attachment: local; + } + .bg-scroll { + background-attachment: scroll; + } + .bg-clip-border { + background-clip: border-box; + } + .bg-clip-content { + background-clip: content-box; + } + .bg-clip-padding { + background-clip: padding-box; + } + .bg-clip-text { + background-clip: text; + } + .bg-bottom { + background-position: bottom; + } + .bg-bottom-left { + background-position: left bottom; + } + .bg-bottom-right { + background-position: right bottom; + } + .bg-center { + background-position: center; + } + .bg-left { + background-position: left; + } + .bg-left-bottom { + background-position: left bottom; + } + .bg-left-top { + background-position: left top; + } + .bg-right { + background-position: right; + } + .bg-right-bottom { + background-position: right bottom; + } + .bg-right-top { + background-position: right top; + } + .bg-top { + background-position: top; + } + .bg-top-left { + background-position: left top; + } + .bg-top-right { + background-position: right top; + } + .bg-no-repeat { + background-repeat: no-repeat; + } + .bg-repeat { + background-repeat: repeat; + } + .bg-repeat-round { + background-repeat: round; + } + .bg-repeat-space { + background-repeat: space; + } + .bg-repeat-x { + background-repeat: repeat-x; + } + .bg-repeat-y { + background-repeat: repeat-y; + } + .bg-origin-border { + background-origin: border-box; + } + .bg-origin-content { + background-origin: content-box; + } + .bg-origin-padding { + background-origin: padding-box; + } + .mask-add { + mask-composite: add; + } + .mask-exclude { + mask-composite: exclude; + } + .mask-intersect { + mask-composite: intersect; + } + .mask-subtract { + mask-composite: subtract; + } + .mask-alpha { + mask-mode: alpha; + } + .mask-luminance { + mask-mode: luminance; + } + .mask-match { + mask-mode: match-source; + } + .mask-type-alpha { + mask-type: alpha; + } + .mask-type-luminance { + mask-type: luminance; + } + .mask-auto { + mask-size: auto; + } + .mask-contain { + mask-size: contain; + } + .mask-cover { + mask-size: cover; + } + .mask-clip-border { + mask-clip: border-box; + } + .mask-clip-content { + mask-clip: content-box; + } + .mask-clip-fill { + mask-clip: fill-box; + } + .mask-clip-padding { + mask-clip: padding-box; + } + .mask-clip-stroke { + mask-clip: stroke-box; + } + .mask-clip-view { + mask-clip: view-box; + } + .mask-no-clip { + mask-clip: no-clip; + } + .mask-bottom { + mask-position: bottom; + } + .mask-bottom-left { + mask-position: left bottom; + } + .mask-bottom-right { + mask-position: right bottom; + } + .mask-center { + mask-position: center; + } + .mask-left { + mask-position: left; + } + .mask-right { + mask-position: right; + } + .mask-top { + mask-position: top; + } + .mask-top-left { + mask-position: left top; + } + .mask-top-right { + mask-position: right top; + } + .mask-no-repeat { + mask-repeat: no-repeat; + } + .mask-repeat { + mask-repeat: repeat; + } + .mask-repeat-round { + mask-repeat: round; + } + .mask-repeat-space { + mask-repeat: space; + } + .mask-repeat-x { + mask-repeat: repeat-x; + } + .mask-repeat-y { + mask-repeat: repeat-y; + } + .mask-origin-border { + mask-origin: border-box; + } + .mask-origin-content { + mask-origin: content-box; + } + .mask-origin-fill { + mask-origin: fill-box; + } + .mask-origin-padding { + mask-origin: padding-box; + } + .mask-origin-stroke { + mask-origin: stroke-box; + } + .mask-origin-view { + mask-origin: view-box; + } + .fill-none { + fill: none; + } + .stroke-none { + stroke: none; + } + .object-contain { + object-fit: contain; + } + .object-cover { + object-fit: cover; + } + .object-fill { + object-fit: fill; + } + .object-none { + object-fit: none; + } + .object-scale-down { + object-fit: scale-down; + } + .object-left-bottom { + object-position: left bottom; + } + .object-left-top { + object-position: left top; + } + .object-right-bottom { + object-position: right bottom; + } + .object-right-top { + object-position: right top; + } + .p-0 { + padding: calc(var(--spacing) * 0); + } + .p-1 { + padding: calc(var(--spacing) * 1); + } + .p-2 { + padding: calc(var(--spacing) * 2); + } + .p-3 { + padding: calc(var(--spacing) * 3); + } + .p-5 { + padding: calc(var(--spacing) * 5); + } + .p-6 { + padding: calc(var(--spacing) * 6); + } + .p-8 { + padding: calc(var(--spacing) * 8); + } + .px-2 { + padding-inline: calc(var(--spacing) * 2); + } + .px-3 { + padding-inline: calc(var(--spacing) * 3); + } + .px-4 { + padding-inline: calc(var(--spacing) * 4); + } + .px-5 { + padding-inline: calc(var(--spacing) * 5); + } + .px-6 { + padding-inline: calc(var(--spacing) * 6); + } + .px-8 { + padding-inline: calc(var(--spacing) * 8); + } + .px-\[0\.3rem\] { + padding-inline: 0.3rem; + } + .py-0\.5 { + padding-block: calc(var(--spacing) * 0.5); + } + .py-1 { + padding-block: calc(var(--spacing) * 1); + } + .py-1\.5 { + padding-block: calc(var(--spacing) * 1.5); + } + .py-2 { + padding-block: calc(var(--spacing) * 2); + } + .py-6 { + padding-block: calc(var(--spacing) * 6); + } + .py-\[0\.2rem\] { + padding-block: 0.2rem; + } + .pt-20 { + padding-top: calc(var(--spacing) * 20); + } + .pr-6 { + padding-right: calc(var(--spacing) * 6); + } + .pr-8 { + padding-right: calc(var(--spacing) * 8); + } + .pb-2 { + padding-bottom: calc(var(--spacing) * 2); + } + .pb-4 { + padding-bottom: calc(var(--spacing) * 4); + } + .pl-2 { + padding-left: calc(var(--spacing) * 2); + } + .pl-5 { + padding-left: calc(var(--spacing) * 5); + } + .pl-10 { + padding-left: calc(var(--spacing) * 10); + } + .text-center { + text-align: center; + } + .text-end { + text-align: end; + } + .text-justify { + text-align: justify; + } + .text-left { + text-align: left; + } + .text-right { + text-align: right; + } + .text-start { + text-align: start; + } + .align-baseline { + vertical-align: baseline; + } + .align-bottom { + vertical-align: bottom; + } + .align-middle { + vertical-align: middle; + } + .align-sub { + vertical-align: sub; + } + .align-super { + vertical-align: super; + } + .align-text-bottom { + vertical-align: text-bottom; + } + .align-text-top { + vertical-align: text-top; + } + .align-top { + vertical-align: top; + } + .font-mono { + font-family: var(--font-mono); + } + .text-2xl { + font-size: var(--text-2xl); + line-height: var(--tw-leading, var(--text-2xl--line-height)); + } + .text-3xl { + font-size: var(--text-3xl); + line-height: var(--tw-leading, var(--text-3xl--line-height)); + } + .text-5xl { + font-size: var(--text-5xl); + line-height: var(--tw-leading, var(--text-5xl--line-height)); + } + .text-base { + font-size: var(--text-base); + line-height: var(--tw-leading, var(--text-base--line-height)); + } + .text-lg { + font-size: var(--text-lg); + line-height: var(--tw-leading, var(--text-lg--line-height)); + } + .text-sm { + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + } + .text-xs { + font-size: var(--text-xs); + line-height: var(--tw-leading, var(--text-xs--line-height)); + } + .leading-none { + --tw-leading: 1; + line-height: 1; + } + .leading-relaxed { + --tw-leading: var(--leading-relaxed); + line-height: var(--leading-relaxed); + } + .leading-tight { + --tw-leading: var(--leading-tight); + line-height: var(--leading-tight); + } + .font-bold { + --tw-font-weight: var(--font-weight-bold); + font-weight: var(--font-weight-bold); + } + .font-light { + --tw-font-weight: var(--font-weight-light); + font-weight: var(--font-weight-light); + } + .font-medium { + --tw-font-weight: var(--font-weight-medium); + font-weight: var(--font-weight-medium); + } + .font-semibold { + --tw-font-weight: var(--font-weight-semibold); + font-weight: var(--font-weight-semibold); + } + .tracking-widest { + --tw-tracking: var(--tracking-widest); + letter-spacing: var(--tracking-widest); + } + .text-balance { + text-wrap: balance; + } + .text-nowrap { + text-wrap: nowrap; + } + .text-pretty { + text-wrap: pretty; + } + .text-wrap { + text-wrap: wrap; + } + .break-normal { + overflow-wrap: normal; + word-break: normal; + } + .break-words { + overflow-wrap: break-word; + } + .wrap-anywhere { + overflow-wrap: anywhere; + } + .wrap-break-word { + overflow-wrap: break-word; + } + .wrap-normal { + overflow-wrap: normal; + } + .break-all { + word-break: break-all; + } + .break-keep { + word-break: keep-all; + } + .overflow-ellipsis { + text-overflow: ellipsis; + } + .text-clip { + text-overflow: clip; + } + .text-ellipsis { + text-overflow: ellipsis; + } + .hyphens-auto { + -webkit-hyphens: auto; + hyphens: auto; + } + .hyphens-manual { + -webkit-hyphens: manual; + hyphens: manual; + } + .hyphens-none { + -webkit-hyphens: none; + hyphens: none; + } + .whitespace-break-spaces { + white-space: break-spaces; + } + .whitespace-normal { + white-space: normal; + } + .whitespace-nowrap { + white-space: nowrap; + } + .whitespace-pre { + white-space: pre; + } + .whitespace-pre-line { + white-space: pre-line; + } + .whitespace-pre-wrap { + white-space: pre-wrap; + } + .text-\[\#1a1a1a\] { + color: #1a1a1a; + } + .text-\[\#fbf0df\] { + color: #fbf0df; + } + .text-\[rgba\(255\,255\,255\,0\.87\)\] { + color: rgba(255,255,255,0.87); + } + .text-black { + color: var(--color-black); + } + .text-blue-400 { + color: var(--color-blue-400); + } + .text-blue-500 { + color: var(--color-blue-500); + } + .text-blue-600 { + color: var(--color-blue-600); + } + .text-gray-400 { + color: var(--color-gray-400); + } + .text-gray-500 { + color: var(--color-gray-500); + } + .text-gray-600 { + color: var(--color-gray-600); + } + .text-green-500 { + color: var(--color-green-500); + } + .text-green-600 { + color: var(--color-green-600); + } + .text-red-400 { + color: var(--color-red-400); + } + .text-red-500 { + color: var(--color-red-500); + } + .text-white { + color: var(--color-white); + } + .capitalize { + text-transform: capitalize; + } + .lowercase { + text-transform: lowercase; + } + .normal-case { + text-transform: none; + } + .uppercase { + text-transform: uppercase; + } + .italic { + font-style: italic; + } + .not-italic { + font-style: normal; + } + .font-stretch-condensed { + font-stretch: condensed; + } + .font-stretch-expanded { + font-stretch: expanded; + } + .font-stretch-extra-condensed { + font-stretch: extra-condensed; + } + .font-stretch-extra-expanded { + font-stretch: extra-expanded; + } + .font-stretch-normal { + font-stretch: normal; + } + .font-stretch-semi-condensed { + font-stretch: semi-condensed; + } + .font-stretch-semi-expanded { + font-stretch: semi-expanded; + } + .font-stretch-ultra-condensed { + font-stretch: ultra-condensed; + } + .font-stretch-ultra-expanded { + font-stretch: ultra-expanded; + } + .diagonal-fractions { + --tw-numeric-fraction: diagonal-fractions; + font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,); + } + .lining-nums { + --tw-numeric-figure: lining-nums; + font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,); + } + .oldstyle-nums { + --tw-numeric-figure: oldstyle-nums; + font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,); + } + .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,); + } + .proportional-nums { + --tw-numeric-spacing: proportional-nums; + font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,); + } + .slashed-zero { + --tw-slashed-zero: slashed-zero; + font-variant-numeric: var(--tw-ordinal,) var(--tw-slashed-zero,) var(--tw-numeric-figure,) var(--tw-numeric-spacing,) var(--tw-numeric-fraction,); + } + .stacked-fractions { + --tw-numeric-fraction: stacked-fractions; + 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,); + } + .normal-nums { + font-variant-numeric: normal; + } + .line-through { + text-decoration-line: line-through; + } + .no-underline { + text-decoration-line: none; + } + .overline { + text-decoration-line: overline; + } + .underline { + text-decoration-line: underline; + } + .decoration-dashed { + text-decoration-style: dashed; + } + .decoration-dotted { + text-decoration-style: dotted; + } + .decoration-double { + text-decoration-style: double; + } + .decoration-solid { + text-decoration-style: solid; + } + .decoration-wavy { + text-decoration-style: wavy; + } + .decoration-auto { + text-decoration-thickness: auto; + } + .decoration-from-font { + text-decoration-thickness: from-font; + } + .underline-offset-4 { + text-underline-offset: 4px; + } + .antialiased { + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + } + .subpixel-antialiased { + -webkit-font-smoothing: auto; + -moz-osx-font-smoothing: auto; + } + .placeholder-\[\#fbf0df\]\/40 { + &::placeholder { + color: color-mix(in oklab, #fbf0df 40%, transparent); + } + } + .accent-auto { + accent-color: auto; + } + .scheme-dark { + color-scheme: dark; + } + .scheme-light { + color-scheme: light; + } + .scheme-light-dark { + color-scheme: light dark; + } + .scheme-normal { + color-scheme: normal; + } + .scheme-only-dark { + color-scheme: only dark; + } + .scheme-only-light { + color-scheme: only light; + } + .opacity-50 { + opacity: 50%; + } + .mix-blend-plus-darker { + mix-blend-mode: plus-darker; + } + .mix-blend-plus-lighter { + mix-blend-mode: plus-lighter; + } + .shadow { + --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-md { + --tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-sm { + --tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / 0.1)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-xs { + --tw-shadow: 0 1px 2px 0 var(--tw-shadow-color, rgb(0 0 0 / 0.05)); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .ring { + --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .inset-ring { + --tw-inset-ring-shadow: inset 0 0 0 1px var(--tw-inset-ring-color, currentcolor); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + .shadow-initial { + --tw-shadow-color: initial; + } + .inset-shadow-initial { + --tw-inset-shadow-color: initial; + } + .outline-hidden { + --tw-outline-style: none; + outline-style: none; + @media (forced-colors: active) { + outline: 2px solid transparent; + outline-offset: 2px; + } + } + .outline { + outline-style: var(--tw-outline-style); + outline-width: 1px; + } + .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,); + } + .drop-shadow { + --tw-drop-shadow-size: drop-shadow(0 1px 2px var(--tw-drop-shadow-color, rgb(0 0 0 / 0.1))) drop-shadow(0 1px 1px var(--tw-drop-shadow-color, rgb(0 0 0 / 0.06))); + --tw-drop-shadow: drop-shadow(0 1px 2px rgb(0 0 0 / 0.1)) drop-shadow( 0 1px 1px 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,); + } + .drop-shadow-none { + --tw-drop-shadow: ; + 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,); + } + .grayscale { + --tw-grayscale: grayscale(100%); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + .invert { + --tw-invert: invert(100%); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + .sepia { + --tw-sepia: sepia(100%); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + .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 { + --tw-backdrop-blur: blur(8px); + -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-grayscale { + --tw-backdrop-grayscale: grayscale(100%); + -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-invert { + --tw-backdrop-invert: invert(100%); + -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-sepia { + --tw-backdrop-sepia: sepia(100%); + -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-filter { + -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, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to, opacity, box-shadow, transform, translate, scale, rotate, filter, -webkit-backdrop-filter, backdrop-filter, display, content-visibility, overlay, pointer-events; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-\[color\,box-shadow\] { + transition-property: color,box-shadow; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-all { + transition-property: all; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-colors { + transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-transform { + transition-property: transform, translate, scale, rotate; + transition-timing-function: var(--tw-ease, var(--default-transition-timing-function)); + transition-duration: var(--tw-duration, var(--default-transition-duration)); + } + .transition-discrete { + transition-behavior: allow-discrete; + } + .transition-normal { + transition-behavior: normal; + } + .duration-100 { + --tw-duration: 100ms; + transition-duration: 100ms; + } + .duration-200 { + --tw-duration: 200ms; + transition-duration: 200ms; + } + .duration-300 { + --tw-duration: 300ms; + transition-duration: 300ms; + } + .ease-in { + --tw-ease: var(--ease-in); + transition-timing-function: var(--ease-in); + } + .ease-in-out { + --tw-ease: var(--ease-in-out); + transition-timing-function: var(--ease-in-out); + } + .ease-out { + --tw-ease: var(--ease-out); + transition-timing-function: var(--ease-out); + } + .will-change-auto { + will-change: auto; + } + .will-change-contents { + will-change: contents; + } + .will-change-scroll { + will-change: scroll-position; + } + .will-change-transform { + will-change: transform; + } + .contain-inline-size { + --tw-contain-size: inline-size; + contain: var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,); + } + .contain-layout { + --tw-contain-layout: layout; + contain: var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,); + } + .contain-paint { + --tw-contain-paint: paint; + contain: var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,); + } + .contain-size { + --tw-contain-size: size; + contain: var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,); + } + .contain-style { + --tw-contain-style: style; + contain: var(--tw-contain-size,) var(--tw-contain-layout,) var(--tw-contain-paint,) var(--tw-contain-style,); + } + .contain-content { + contain: content; + } + .contain-none { + contain: none; + } + .contain-strict { + contain: strict; + } + .content-none { + --tw-content: none; + content: none; + } + .forced-color-adjust-auto { + forced-color-adjust: auto; + } + .forced-color-adjust-none { + forced-color-adjust: none; + } + .outline-dashed { + --tw-outline-style: dashed; + outline-style: dashed; + } + .outline-dotted { + --tw-outline-style: dotted; + outline-style: dotted; + } + .outline-double { + --tw-outline-style: double; + outline-style: double; + } + .outline-none { + --tw-outline-style: none; + outline-style: none; + } + .outline-solid { + --tw-outline-style: solid; + outline-style: solid; + } + .select-none { + -webkit-user-select: none; + user-select: none; + } + .backface-hidden { + backface-visibility: hidden; + } + .backface-visible { + backface-visibility: visible; + } + .block-auto { + block-size: auto; + } + .block-lh { + block-size: 1lh; + } + .block-screen { + block-size: 100vh; + } + .divide-x-reverse { + :where(& > :not(:last-child)) { + --tw-divide-x-reverse: 1; + } + } + .duration-initial { + --tw-duration: initial; + } + .inline-auto { + inline-size: auto; + } + .inline-screen { + inline-size: 100vw; + } + .max-block-lh { + max-block-size: 1lh; + } + .max-block-none { + max-block-size: none; + } + .max-block-screen { + max-block-size: 100vh; + } + .max-inline-none { + max-inline-size: none; + } + .max-inline-screen { + max-inline-size: 100vw; + } + .min-block-auto { + min-block-size: auto; + } + .min-block-lh { + min-block-size: 1lh; + } + .min-block-screen { + min-block-size: 100vh; + } + .min-inline-auto { + min-inline-size: auto; + } + .min-inline-screen { + min-inline-size: 100vw; + } + .ring-inset { + --tw-ring-inset: inset; + } + .text-shadow-initial { + --tw-text-shadow-color: initial; + } + .transform-3d { + transform-style: preserve-3d; + } + .transform-border { + transform-box: border-box; + } + .transform-content { + transform-box: content-box; + } + .transform-fill { + transform-box: fill-box; + } + .transform-flat { + transform-style: flat; + } + .transform-stroke { + transform-box: stroke-box; + } + .transform-view { + transform-box: view-box; + } + .group-data-\[disabled\=true\]\:pointer-events-none { + &:is(:where(.group)[data-disabled="true"] *) { + pointer-events: none; + } + } + .group-data-\[disabled\=true\]\:opacity-50 { + &:is(:where(.group)[data-disabled="true"] *) { + opacity: 50%; + } + } + .peer-disabled\:cursor-not-allowed { + &:is(:where(.peer):disabled ~ *) { + cursor: not-allowed; + } + } + .peer-disabled\:opacity-50 { + &:is(:where(.peer):disabled ~ *) { + opacity: 50%; + } + } + .file\:inline-flex { + &::file-selector-button { + display: inline-flex; + } + } + .file\:h-7 { + &::file-selector-button { + height: calc(var(--spacing) * 7); + } + } + .file\:border-0 { + &::file-selector-button { + border-style: var(--tw-border-style); + border-width: 0px; + } + } + .file\:bg-transparent { + &::file-selector-button { + background-color: transparent; + } + } + .file\:text-sm { + &::file-selector-button { + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + } + } + .file\:font-medium { + &::file-selector-button { + --tw-font-weight: var(--font-weight-medium); + font-weight: var(--font-weight-medium); + } + } + .focus-within\:border-\[\#f3d5a3\] { + &:focus-within { + border-color: #f3d5a3; + } + } + .hover\:-translate-y-px { + &:hover { + @media (hover: hover) { + --tw-translate-y: -1px; + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + } + .hover\:border-pink-400 { + &:hover { + @media (hover: hover) { + border-color: var(--color-pink-400); + } + } + } + .hover\:bg-\[\#f3d5a3\] { + &:hover { + @media (hover: hover) { + background-color: #f3d5a3; + } + } + } + .hover\:bg-gray-50 { + &:hover { + @media (hover: hover) { + background-color: var(--color-gray-50); + } + } + } + .hover\:underline { + &:hover { + @media (hover: hover) { + text-decoration-line: underline; + } + } + } + .hover\:drop-shadow-\[0_0_2em_\#61dafbaa\] { + &:hover { + @media (hover: hover) { + --tw-drop-shadow-size: drop-shadow(0 0 2em var(--tw-drop-shadow-color, #61dafbaa)); + --tw-drop-shadow: var(--tw-drop-shadow-size); + filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,); + } + } + } + .hover\:drop-shadow-\[0_0_2em_\#646cffaa\] { + &:hover { + @media (hover: hover) { + --tw-drop-shadow-size: drop-shadow(0 0 2em var(--tw-drop-shadow-color, #646cffaa)); + --tw-drop-shadow: var(--tw-drop-shadow-size); + 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,); + } + } + } + .focus\:border-\[\#f3d5a3\] { + &:focus { + border-color: #f3d5a3; + } + } + .focus\:text-white { + &:focus { + color: var(--color-white); + } + } + .focus-visible\:ring-\[3px\] { + &:focus-visible { + --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor); + box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow); + } + } + .disabled\:pointer-events-none { + &:disabled { + pointer-events: none; + } + } + .disabled\:cursor-not-allowed { + &:disabled { + cursor: not-allowed; + } + } + .disabled\:opacity-50 { + &:disabled { + opacity: 50%; + } + } + .has-data-\[slot\=card-action\]\:grid-cols-\[1fr_auto\] { + &:has(*[data-slot="card-action"]) { + grid-template-columns: 1fr auto; + } + } + .has-\[\>svg\]\:px-2\.5 { + &:has(>svg) { + padding-inline: calc(var(--spacing) * 2.5); + } + } + .has-\[\>svg\]\:px-3 { + &:has(>svg) { + padding-inline: calc(var(--spacing) * 3); + } + } + .has-\[\>svg\]\:px-4 { + &:has(>svg) { + padding-inline: calc(var(--spacing) * 4); + } + } + .data-\[disabled\]\:pointer-events-none { + &[data-disabled] { + pointer-events: none; + } + } + .data-\[disabled\]\:opacity-50 { + &[data-disabled] { + opacity: 50%; + } + } + .data-\[side\=bottom\]\:translate-y-1 { + &[data-side="bottom"] { + --tw-translate-y: calc(var(--spacing) * 1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + .data-\[side\=left\]\:-translate-x-1 { + &[data-side="left"] { + --tw-translate-x: calc(var(--spacing) * -1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + .data-\[side\=right\]\:translate-x-1 { + &[data-side="right"] { + --tw-translate-x: calc(var(--spacing) * 1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + .data-\[side\=top\]\:-translate-y-1 { + &[data-side="top"] { + --tw-translate-y: calc(var(--spacing) * -1); + translate: var(--tw-translate-x) var(--tw-translate-y); + } + } + .data-\[size\=default\]\:h-9 { + &[data-size="default"] { + height: calc(var(--spacing) * 9); + } + } + .data-\[size\=sm\]\:h-8 { + &[data-size="sm"] { + height: calc(var(--spacing) * 8); + } + } + .\*\:data-\[slot\=select-value\]\:line-clamp-1 { + :is(& > *) { + &[data-slot="select-value"] { + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 1; + } + } + } + .\*\:data-\[slot\=select-value\]\:flex { + :is(& > *) { + &[data-slot="select-value"] { + display: flex; + } + } + } + .\*\:data-\[slot\=select-value\]\:items-center { + :is(& > *) { + &[data-slot="select-value"] { + align-items: center; + } + } + } + .\*\:data-\[slot\=select-value\]\:gap-2 { + :is(& > *) { + &[data-slot="select-value"] { + gap: calc(var(--spacing) * 2); + } + } + } + .md\:text-sm { + @media (width >= 48rem) { + font-size: var(--text-sm); + line-height: var(--tw-leading, var(--text-sm--line-height)); + } + } + .lg\:block { + @media (width >= 64rem) { + display: block; + } + } + .\[\&_svg\]\:pointer-events-none { + & svg { + pointer-events: none; + } + } + .\[\&_svg\]\:shrink-0 { + & svg { + flex-shrink: 0; + } + } + .\[\&_svg\:not\(\[class\*\=\'size-\'\]\)\]\:size-4 { + & svg:not([class*='size-']) { + width: calc(var(--spacing) * 4); + height: calc(var(--spacing) * 4); + } + } + .\[\.border-b\]\:pb-6 { + &:is(.border-b) { + padding-bottom: calc(var(--spacing) * 6); + } + } + .\[\.border-t\]\:pt-6 { + &:is(.border-t) { + padding-top: calc(var(--spacing) * 6); + } + } + .\*\:\[span\]\:last\:flex { + :is(& > *) { + &:is(span) { + &:last-child { + display: flex; + } + } + } + } + .\*\:\[span\]\:last\:items-center { + :is(& > *) { + &:is(span) { + &:last-child { + align-items: center; + } + } + } + } + .\*\:\[span\]\:last\:gap-2 { + :is(& > *) { + &:is(span) { + &:last-child { + gap: calc(var(--spacing) * 2); + } + } + } + } +} +@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Libre+Caslon+Display&family=Libre+Caslon+Text:ital,wght@0,400;0,700;1,400&family=Noto+Sans+JP:wght@100..900&family=Rubik:ital,wght@0,300..900;1,300..900&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap'); +.theme-root.night { + --bg: #1c1c1c; + --surface: #252525; + --surface2: #2a2a2a; + --border: #363636; + --border2: #ccc7be; + --text: #ffffff; + --muted: #d9d9d9; + --dim: #b0aa9f; + --navback: rgba(28, 28, 28, 0.8); + --accent: #5389ff; + --accent2: #1447b8; + --green: #0eaf74; + --amber: #ffd78e; +} +.section-head { + display: flex; + align-items: center; + gap: 10px; + margin-bottom: 1.8rem; +} +.section-head h2 { + font-family: var(--ff-mono); + font-size: 0.72rem; + font-weight: 400; + letter-spacing: 0.25em; + text-transform: uppercase; + color: var(--muted); + white-space: nowrap; +} +.section-head::after { + content: ''; + flex: 1; + height: 1px; + background: var(--border); +} +.exp-body { + font-size: 0.85rem; + color: var(--muted); + line-height: 1.8; +} +.libre-caslon-text-regular { + font-family: "Libre Caslon Text", serif; + font-weight: 400; + font-style: normal; +} +.libre-caslon-text-bold { + font-family: "Libre Caslon Text", serif; + font-weight: 700; + font-style: normal; +} +.libre-caslon-text-regular-italic { + font-family: "Libre Caslon Text", serif; + font-weight: 400; + font-style: italic; +} +.rubik-400 { + font-family: "Rubik", sans-serif; + font-optical-sizing: auto; + font-weight: 400; + font-style: normal; +} +@property --tw-translate-x { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-translate-y { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-translate-z { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-scale-x { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-scale-y { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-scale-z { + syntax: "*"; + inherits: false; + initial-value: 1; +} +@property --tw-rotate-x { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-y { + syntax: "*"; + inherits: false; +} +@property --tw-rotate-z { + syntax: "*"; + inherits: false; +} +@property --tw-skew-x { + syntax: "*"; + inherits: false; +} +@property --tw-skew-y { + syntax: "*"; + inherits: false; +} +@property --tw-pan-x { + syntax: "*"; + inherits: false; +} +@property --tw-pan-y { + syntax: "*"; + inherits: false; +} +@property --tw-pinch-zoom { + syntax: "*"; + inherits: false; +} +@property --tw-scroll-snap-strictness { + syntax: "*"; + inherits: false; + initial-value: proximity; +} +@property --tw-space-y-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-space-x-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-divide-x-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-border-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} +@property --tw-divide-y-reverse { + syntax: "*"; + inherits: false; + initial-value: 0; +} +@property --tw-leading { + syntax: "*"; + inherits: false; +} +@property --tw-font-weight { + syntax: "*"; + inherits: false; +} +@property --tw-tracking { + syntax: "*"; + inherits: false; +} +@property --tw-ordinal { + syntax: "*"; + inherits: false; +} +@property --tw-slashed-zero { + syntax: "*"; + inherits: false; +} +@property --tw-numeric-figure { + syntax: "*"; + inherits: false; +} +@property --tw-numeric-spacing { + syntax: "*"; + inherits: false; +} +@property --tw-numeric-fraction { + syntax: "*"; + inherits: false; +} +@property --tw-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-inset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-inset-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-ring-color { + syntax: "*"; + inherits: false; +} +@property --tw-ring-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-inset-ring-color { + syntax: "*"; + inherits: false; +} +@property --tw-inset-ring-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-ring-inset { + syntax: "*"; + inherits: false; +} +@property --tw-ring-offset-width { + syntax: ""; + inherits: false; + initial-value: 0px; +} +@property --tw-ring-offset-color { + syntax: "*"; + inherits: false; + initial-value: #fff; +} +@property --tw-ring-offset-shadow { + syntax: "*"; + inherits: false; + initial-value: 0 0 #0000; +} +@property --tw-outline-style { + syntax: "*"; + inherits: false; + initial-value: solid; +} +@property --tw-blur { + syntax: "*"; + inherits: false; +} +@property --tw-brightness { + syntax: "*"; + inherits: false; +} +@property --tw-contrast { + syntax: "*"; + inherits: false; +} +@property --tw-grayscale { + syntax: "*"; + inherits: false; +} +@property --tw-hue-rotate { + syntax: "*"; + inherits: false; +} +@property --tw-invert { + syntax: "*"; + inherits: false; +} +@property --tw-opacity { + syntax: "*"; + inherits: false; +} +@property --tw-saturate { + syntax: "*"; + inherits: false; +} +@property --tw-sepia { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-drop-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@property --tw-drop-shadow-size { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-blur { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-brightness { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-contrast { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-grayscale { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-hue-rotate { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-invert { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-opacity { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-saturate { + syntax: "*"; + inherits: false; +} +@property --tw-backdrop-sepia { + syntax: "*"; + inherits: false; +} +@property --tw-duration { + syntax: "*"; + inherits: false; +} +@property --tw-ease { + syntax: "*"; + inherits: false; +} +@property --tw-contain-size { + syntax: "*"; + inherits: false; +} +@property --tw-contain-layout { + syntax: "*"; + inherits: false; +} +@property --tw-contain-paint { + syntax: "*"; + inherits: false; +} +@property --tw-contain-style { + syntax: "*"; + inherits: false; +} +@property --tw-text-shadow-color { + syntax: "*"; + inherits: false; +} +@property --tw-text-shadow-alpha { + syntax: ""; + inherits: false; + initial-value: 100%; +} +@keyframes spin { + to { + transform: rotate(360deg); + } +} +@keyframes ping { + 75%, 100% { + transform: scale(2); + opacity: 0; + } +} +@keyframes pulse { + 50% { + opacity: 0.5; + } +} +@keyframes bounce { + 0%, 100% { + transform: translateY(-25%); + animation-timing-function: cubic-bezier(0.8, 0, 1, 1); + } + 50% { + transform: none; + animation-timing-function: cubic-bezier(0, 0, 0.2, 1); + } +} +@layer properties { + @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) { + *, ::before, ::after, ::backdrop { + --tw-translate-x: 0; + --tw-translate-y: 0; + --tw-translate-z: 0; + --tw-scale-x: 1; + --tw-scale-y: 1; + --tw-scale-z: 1; + --tw-rotate-x: initial; + --tw-rotate-y: initial; + --tw-rotate-z: initial; + --tw-skew-x: initial; + --tw-skew-y: initial; + --tw-pan-x: initial; + --tw-pan-y: initial; + --tw-pinch-zoom: initial; + --tw-scroll-snap-strictness: proximity; + --tw-space-y-reverse: 0; + --tw-space-x-reverse: 0; + --tw-divide-x-reverse: 0; + --tw-border-style: solid; + --tw-divide-y-reverse: 0; + --tw-leading: initial; + --tw-font-weight: initial; + --tw-tracking: initial; + --tw-ordinal: initial; + --tw-slashed-zero: initial; + --tw-numeric-figure: initial; + --tw-numeric-spacing: initial; + --tw-numeric-fraction: initial; + --tw-shadow: 0 0 #0000; + --tw-shadow-color: initial; + --tw-shadow-alpha: 100%; + --tw-inset-shadow: 0 0 #0000; + --tw-inset-shadow-color: initial; + --tw-inset-shadow-alpha: 100%; + --tw-ring-color: initial; + --tw-ring-shadow: 0 0 #0000; + --tw-inset-ring-color: initial; + --tw-inset-ring-shadow: 0 0 #0000; + --tw-ring-inset: initial; + --tw-ring-offset-width: 0px; + --tw-ring-offset-color: #fff; + --tw-ring-offset-shadow: 0 0 #0000; + --tw-outline-style: solid; + --tw-blur: initial; + --tw-brightness: initial; + --tw-contrast: initial; + --tw-grayscale: initial; + --tw-hue-rotate: initial; + --tw-invert: initial; + --tw-opacity: initial; + --tw-saturate: initial; + --tw-sepia: initial; + --tw-drop-shadow: initial; + --tw-drop-shadow-color: initial; + --tw-drop-shadow-alpha: 100%; + --tw-drop-shadow-size: initial; + --tw-backdrop-blur: initial; + --tw-backdrop-brightness: initial; + --tw-backdrop-contrast: initial; + --tw-backdrop-grayscale: initial; + --tw-backdrop-hue-rotate: initial; + --tw-backdrop-invert: initial; + --tw-backdrop-opacity: initial; + --tw-backdrop-saturate: initial; + --tw-backdrop-sepia: initial; + --tw-duration: initial; + --tw-ease: initial; + --tw-contain-size: initial; + --tw-contain-layout: initial; + --tw-contain-paint: initial; + --tw-contain-style: initial; + --tw-text-shadow-color: initial; + --tw-text-shadow-alpha: 100%; + } + } +} diff --git a/static/vars.css b/static/vars.css new file mode 100644 index 0000000..da91a61 --- /dev/null +++ b/static/vars.css @@ -0,0 +1,59 @@ +@import "tailwindcss"; + +@theme { + --color-regal-blue: #243c5a; +} + +@import url('https://fonts.googleapis.com/css2?family=Instrument+Serif:ital@0;1&family=Libre+Caslon+Display&family=Libre+Caslon+Text:ital,wght@0,400;0,700;1,400&family=Noto+Sans+JP:wght@100..900&family=Rubik:ital,wght@0,300..900;1,300..900&display=swap'); +@import url('https://fonts.googleapis.com/css2?family=Rubik:ital,wght@0,300..900;1,300..900&display=swap'); + +.theme-root.night { + --bg: #1c1c1c; + --surface: #252525; + --surface2: #2a2a2a; + --border: #363636; + --border2: #ccc7be; + --text: #ffffff; + --muted: #d9d9d9; + --dim: #b0aa9f; + --navback: rgba(28, 28, 28, 0.8); + --accent: #5389ff; + --accent2:#1447b8; + --green:#0eaf74; + --amber:#ffd78e; +} + +.section-head{display:flex;align-items:center;gap:10px;margin-bottom:1.8rem;} +.section-head h2{ + font-family:var(--ff-mono);font-size:0.72rem;font-weight:400; + letter-spacing:0.25em;text-transform:uppercase;color:var(--muted); + white-space:nowrap; +} +.section-head::after{content:'';flex:1;height:1px;background:var(--border);} + +.exp-body{font-size:0.85rem;color:var(--muted);line-height:1.8;} + +.libre-caslon-text-regular { + font-family: "Libre Caslon Text", serif; + font-weight: 400; + font-style: normal; +} + +.libre-caslon-text-bold { + font-family: "Libre Caslon Text", serif; + font-weight: 700; + font-style: normal; +} + +.libre-caslon-text-regular-italic { + font-family: "Libre Caslon Text", serif; + font-weight: 400; + font-style: italic; +} + +.rubik-400 { + font-family: "Rubik", sans-serif; + font-optical-sizing: auto; + font-weight: 400; + font-style: normal; +} \ No newline at end of file diff --git a/tailwind.sh b/tailwind.sh new file mode 100644 index 0000000..049cc28 --- /dev/null +++ b/tailwind.sh @@ -0,0 +1 @@ +./tailwindcss-linux-x64 --input static/vars.css --content "./static/**/*.html" --output static/tailwind.css --watch \ No newline at end of file diff --git a/tailwindcss-linux-x64 b/tailwindcss-linux-x64 new file mode 100755 index 0000000..5c28c5d Binary files /dev/null and b/tailwindcss-linux-x64 differ