1@tailwind base;
2@tailwind components;
3@tailwind utilities;
4@layer base {
5 @font-face {
6 font-family: "InterVariable";
7 src: url("/static/fonts/InterVariable.woff2") format("woff2");
8 font-weight: normal;
9 font-style: normal;
10 font-display: swap;
11 }
12
13 @font-face {
14 font-family: "InterVariable";
15 src: url("/static/fonts/InterVariable-Italic.woff2") format("woff2");
16 font-weight: normal;
17 font-style: italic;
18 font-display: swap;
19 }
20
21 @font-face {
22 font-family: "IBMPlexMono";
23 src: url("/static/fonts/IBMPlexMono-Regular.woff2") format("woff2");
24 font-weight: normal;
25 font-style: italic;
26 font-display: swap;
27 }
28
29 ::selection {
30 @apply bg-yellow-400 text-black bg-opacity-30 dark:bg-yellow-600 dark:bg-opacity-50 dark:text-white;
31 }
32
33 @layer base {
34 html {
35 font-size: 15px;
36 }
37 @supports (font-variation-settings: normal) {
38 html {
39 font-feature-settings:
40 "ss01" 1,
41 "kern" 1,
42 "liga" 1,
43 "cv05" 1,
44 "tnum" 1;
45 }
46 }
47
48 a {
49 @apply no-underline text-black hover:underline hover:text-gray-800 dark:text-white dark:hover:text-gray-300;
50 }
51
52 label {
53 @apply block mb-2 text-gray-900 text-sm font-bold py-2 uppercase dark:text-gray-100;
54 }
55 input {
56 @apply border border-gray-400 block rounded bg-gray-50 focus:ring-black p-3 dark:bg-gray-800 dark:border-gray-600 dark:text-white dark:focus:ring-gray-400;
57 }
58 textarea {
59 @apply border border-gray-400 block rounded bg-gray-50 focus:ring-black p-3 dark:bg-gray-800 dark:border-gray-600 dark:text-white dark:focus:ring-gray-400;
60 }
61 details summary::-webkit-details-marker {
62 display: none;
63 }
64 }
65
66 @layer components {
67 .btn {
68 @apply relative z-10 inline-flex min-h-[30px] cursor-pointer items-center
69 justify-center bg-transparent px-2 pb-[0.2rem] text-base
70 text-gray-900 before:absolute before:inset-0 before:-z-10
71 before:block before:rounded before:border before:border-gray-200
72 before:bg-white before:drop-shadow-sm
73 before:content-[''] hover:before:border-gray-300
74 hover:before:bg-gray-50
75 hover:before:shadow-[0_2px_2px_0_rgba(20,20,96,0.1),inset_0_-2px_0_0_#f5f5f5]
76 focus:outline-none focus-visible:before:outline
77 focus-visible:before:outline-4 focus-visible:before:outline-gray-500
78 active:before:shadow-[inset_0_2px_2px_0_rgba(20,20,96,0.1)]
79 disabled:cursor-not-allowed disabled:opacity-50 disabled:hover:before:border-gray-200
80 disabled:hover:before:bg-white disabled:hover:before:shadow-none
81 dark:text-gray-100 dark:before:bg-gray-800 dark:before:border-gray-700
82 dark:hover:before:border-gray-600 dark:hover:before:bg-gray-700
83 dark:hover:before:shadow-[0_2px_2px_0_rgba(0,0,0,0.2),inset_0_-2px_0_0_#2d3748]
84 dark:focus-visible:before:outline-gray-400
85 dark:active:before:shadow-[inset_0_2px_2px_0_rgba(0,0,0,0.3)]
86 dark:disabled:hover:before:bg-gray-800 dark:disabled:hover:before:border-gray-700;
87 }
88 }
89 @layer utilities {
90 .error {
91 @apply py-1 text-red-400 dark:text-red-300;
92 }
93 .success {
94 @apply py-1 text-gray-900 dark:text-gray-100;
95 }
96 }
97}
98
99/* Background */ .bg { color: #4c4f69; background-color: #eff1f5; }
100/* PreWrapper */ .chroma { color: #4c4f69; background-color: #eff1f5; }
101/* Error */ .chroma .err { color: #d20f39 }
102/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
103/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
104/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
105/* LineHighlight */ .chroma .hl { background-color: #bcc0cc }
106/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #8c8fa1 }
107/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #8c8fa1 }
108/* Line */ .chroma .line { display: flex; }
109/* Keyword */ .chroma .k { color: #8839ef }
110/* KeywordConstant */ .chroma .kc { color: #fe640b }
111/* KeywordDeclaration */ .chroma .kd { color: #d20f39 }
112/* KeywordNamespace */ .chroma .kn { color: #179299 }
113/* KeywordPseudo */ .chroma .kp { color: #8839ef }
114/* KeywordReserved */ .chroma .kr { color: #8839ef }
115/* KeywordType */ .chroma .kt { color: #d20f39 }
116/* NameAttribute */ .chroma .na { color: #1e66f5 }
117/* NameBuiltin */ .chroma .nb { color: #04a5e5 }
118/* NameBuiltinPseudo */ .chroma .bp { color: #04a5e5 }
119/* NameClass */ .chroma .nc { color: #df8e1d }
120/* NameConstant */ .chroma .no { color: #df8e1d }
121/* NameDecorator */ .chroma .nd { color: #1e66f5; font-weight: bold }
122/* NameEntity */ .chroma .ni { color: #179299 }
123/* NameException */ .chroma .ne { color: #fe640b }
124/* NameFunction */ .chroma .nf { color: #1e66f5 }
125/* NameFunctionMagic */ .chroma .fm { color: #1e66f5 }
126/* NameLabel */ .chroma .nl { color: #04a5e5 }
127/* NameNamespace */ .chroma .nn { color: #fe640b }
128/* NameProperty */ .chroma .py { color: #fe640b }
129/* NameTag */ .chroma .nt { color: #8839ef }
130/* NameVariable */ .chroma .nv { color: #dc8a78 }
131/* NameVariableClass */ .chroma .vc { color: #dc8a78 }
132/* NameVariableGlobal */ .chroma .vg { color: #dc8a78 }
133/* NameVariableInstance */ .chroma .vi { color: #dc8a78 }
134/* NameVariableMagic */ .chroma .vm { color: #dc8a78 }
135/* LiteralString */ .chroma .s { color: #40a02b }
136/* LiteralStringAffix */ .chroma .sa { color: #d20f39 }
137/* LiteralStringBacktick */ .chroma .sb { color: #40a02b }
138/* LiteralStringChar */ .chroma .sc { color: #40a02b }
139/* LiteralStringDelimiter */ .chroma .dl { color: #1e66f5 }
140/* LiteralStringDoc */ .chroma .sd { color: #9ca0b0 }
141/* LiteralStringDouble */ .chroma .s2 { color: #40a02b }
142/* LiteralStringEscape */ .chroma .se { color: #1e66f5 }
143/* LiteralStringHeredoc */ .chroma .sh { color: #9ca0b0 }
144/* LiteralStringInterpol */ .chroma .si { color: #40a02b }
145/* LiteralStringOther */ .chroma .sx { color: #40a02b }
146/* LiteralStringRegex */ .chroma .sr { color: #179299 }
147/* LiteralStringSingle */ .chroma .s1 { color: #40a02b }
148/* LiteralStringSymbol */ .chroma .ss { color: #40a02b }
149/* LiteralNumber */ .chroma .m { color: #fe640b }
150/* LiteralNumberBin */ .chroma .mb { color: #fe640b }
151/* LiteralNumberFloat */ .chroma .mf { color: #fe640b }
152/* LiteralNumberHex */ .chroma .mh { color: #fe640b }
153/* LiteralNumberInteger */ .chroma .mi { color: #fe640b }
154/* LiteralNumberIntegerLong */ .chroma .il { color: #fe640b }
155/* LiteralNumberOct */ .chroma .mo { color: #fe640b }
156/* Operator */ .chroma .o { color: #04a5e5; font-weight: bold }
157/* OperatorWord */ .chroma .ow { color: #04a5e5; font-weight: bold }
158/* Comment */ .chroma .c { color: #9ca0b0; font-style: italic }
159/* CommentHashbang */ .chroma .ch { color: #9ca0b0; font-style: italic }
160/* CommentMultiline */ .chroma .cm { color: #9ca0b0; font-style: italic }
161/* CommentSingle */ .chroma .c1 { color: #9ca0b0; font-style: italic }
162/* CommentSpecial */ .chroma .cs { color: #9ca0b0; font-style: italic }
163/* CommentPreproc */ .chroma .cp { color: #9ca0b0; font-style: italic }
164/* CommentPreprocFile */ .chroma .cpf { color: #9ca0b0; font-weight: bold; font-style: italic }
165/* GenericDeleted */ .chroma .gd { color: #d20f39; background-color: oklch(93.6% 0.032 17.717) }
166/* GenericEmph */ .chroma .ge { font-style: italic }
167/* GenericError */ .chroma .gr { color: #d20f39 }
168/* GenericHeading */ .chroma .gh { color: #fe640b; font-weight: bold }
169/* GenericInserted */ .chroma .gi { color: #40a02b; background-color: oklch(96.2% 0.044 156.743) }
170/* GenericStrong */ .chroma .gs { font-weight: bold }
171/* GenericSubheading */ .chroma .gu { color: #fe640b; font-weight: bold }
172/* GenericTraceback */ .chroma .gt { color: #d20f39 }
173/* GenericUnderline */ .chroma .gl { text-decoration: underline }
174
175@media (prefers-color-scheme: dark) {
176/* Background */ .bg { color: #cad3f5; background-color: #24273a; }
177/* PreWrapper */ .chroma { color: #cad3f5; background-color: #24273a; }
178/* Error */ .chroma .err { color: #ed8796 }
179/* LineLink */ .chroma .lnlinks { outline: none; text-decoration: none; color: inherit }
180/* LineTableTD */ .chroma .lntd { vertical-align: top; padding: 0; margin: 0; border: 0; }
181/* LineTable */ .chroma .lntable { border-spacing: 0; padding: 0; margin: 0; border: 0; }
182/* LineHighlight */ .chroma .hl { background-color: #494d64 }
183/* LineNumbersTable */ .chroma .lnt { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #8087a2 }
184/* LineNumbers */ .chroma .ln { white-space: pre; -webkit-user-select: none; user-select: none; margin-right: 0.4em; padding: 0 0.4em 0 0.4em;color: #8087a2 }
185/* Line */ .chroma .line { display: flex; }
186/* Keyword */ .chroma .k { color: #c6a0f6 }
187/* KeywordConstant */ .chroma .kc { color: #f5a97f }
188/* KeywordDeclaration */ .chroma .kd { color: #ed8796 }
189/* KeywordNamespace */ .chroma .kn { color: #8bd5ca }
190/* KeywordPseudo */ .chroma .kp { color: #c6a0f6 }
191/* KeywordReserved */ .chroma .kr { color: #c6a0f6 }
192/* KeywordType */ .chroma .kt { color: #ed8796 }
193/* NameAttribute */ .chroma .na { color: #8aadf4 }
194/* NameBuiltin */ .chroma .nb { color: #91d7e3 }
195/* NameBuiltinPseudo */ .chroma .bp { color: #91d7e3 }
196/* NameClass */ .chroma .nc { color: #eed49f }
197/* NameConstant */ .chroma .no { color: #eed49f }
198/* NameDecorator */ .chroma .nd { color: #8aadf4; font-weight: bold }
199/* NameEntity */ .chroma .ni { color: #8bd5ca }
200/* NameException */ .chroma .ne { color: #f5a97f }
201/* NameFunction */ .chroma .nf { color: #8aadf4 }
202/* NameFunctionMagic */ .chroma .fm { color: #8aadf4 }
203/* NameLabel */ .chroma .nl { color: #91d7e3 }
204/* NameNamespace */ .chroma .nn { color: #f5a97f }
205/* NameProperty */ .chroma .py { color: #f5a97f }
206/* NameTag */ .chroma .nt { color: #c6a0f6 }
207/* NameVariable */ .chroma .nv { color: #f4dbd6 }
208/* NameVariableClass */ .chroma .vc { color: #f4dbd6 }
209/* NameVariableGlobal */ .chroma .vg { color: #f4dbd6 }
210/* NameVariableInstance */ .chroma .vi { color: #f4dbd6 }
211/* NameVariableMagic */ .chroma .vm { color: #f4dbd6 }
212/* LiteralString */ .chroma .s { color: #a6da95 }
213/* LiteralStringAffix */ .chroma .sa { color: #ed8796 }
214/* LiteralStringBacktick */ .chroma .sb { color: #a6da95 }
215/* LiteralStringChar */ .chroma .sc { color: #a6da95 }
216/* LiteralStringDelimiter */ .chroma .dl { color: #8aadf4 }
217/* LiteralStringDoc */ .chroma .sd { color: #6e738d }
218/* LiteralStringDouble */ .chroma .s2 { color: #a6da95 }
219/* LiteralStringEscape */ .chroma .se { color: #8aadf4 }
220/* LiteralStringHeredoc */ .chroma .sh { color: #6e738d }
221/* LiteralStringInterpol */ .chroma .si { color: #a6da95 }
222/* LiteralStringOther */ .chroma .sx { color: #a6da95 }
223/* LiteralStringRegex */ .chroma .sr { color: #8bd5ca }
224/* LiteralStringSingle */ .chroma .s1 { color: #a6da95 }
225/* LiteralStringSymbol */ .chroma .ss { color: #a6da95 }
226/* LiteralNumber */ .chroma .m { color: #f5a97f }
227/* LiteralNumberBin */ .chroma .mb { color: #f5a97f }
228/* LiteralNumberFloat */ .chroma .mf { color: #f5a97f }
229/* LiteralNumberHex */ .chroma .mh { color: #f5a97f }
230/* LiteralNumberInteger */ .chroma .mi { color: #f5a97f }
231/* LiteralNumberIntegerLong */ .chroma .il { color: #f5a97f }
232/* LiteralNumberOct */ .chroma .mo { color: #f5a97f }
233/* Operator */ .chroma .o { color: #91d7e3; font-weight: bold }
234/* OperatorWord */ .chroma .ow { color: #91d7e3; font-weight: bold }
235/* Comment */ .chroma .c { color: #6e738d; font-style: italic }
236/* CommentHashbang */ .chroma .ch { color: #6e738d; font-style: italic }
237/* CommentMultiline */ .chroma .cm { color: #6e738d; font-style: italic }
238/* CommentSingle */ .chroma .c1 { color: #6e738d; font-style: italic }
239/* CommentSpecial */ .chroma .cs { color: #6e738d; font-style: italic }
240/* CommentPreproc */ .chroma .cp { color: #6e738d; font-style: italic }
241/* CommentPreprocFile */ .chroma .cpf { color: #6e738d; font-weight: bold; font-style: italic }
242/* GenericDeleted */ .chroma .gd { color: #ed8796; background-color: oklch(44.4% 0.177 26.899 / 0.5) }
243/* GenericEmph */ .chroma .ge { font-style: italic }
244/* GenericError */ .chroma .gr { color: #ed8796 }
245/* GenericHeading */ .chroma .gh { color: #f5a97f; font-weight: bold }
246/* GenericInserted */ .chroma .gi { color: #a6da95; background-color: oklch(44.8% 0.119 151.328 / 0.5) }
247/* GenericStrong */ .chroma .gs { font-weight: bold }
248/* GenericSubheading */ .chroma .gu { color: #f5a97f; font-weight: bold }
249/* GenericTraceback */ .chroma .gt { color: #ed8796 }
250/* GenericUnderline */ .chroma .gl { text-decoration: underline }
251}
252
253.chroma .line:has(.ln:target) {
254 @apply bg-amber-400/30 dark:bg-amber-500/20
255}