Follow and Share Lens profiles https://lens.orbiter.website/
1@layer base, utils, components;
2
3/* Import the base stylesheet */
4@import "@webtui/css/base.css";
5
6/* Utils */
7@import "@webtui/css/utils/box.css";
8
9/* Components */
10@import "@webtui/css/components/button.css";
11@import "@webtui/css/components/typography.css";
12@import "@webtui/css/components/badge.css";
13
14/* Catppuccin Theme */
15@import "@webtui/theme-catppuccin";
16
17/* Custom theme overrides for pixel/gameboy style */
18@layer base {
19 :root {
20 --font-size: 14px;
21 --line-height: 1.5;
22 --font-family: 'Press Start 2P', monospace;
23 --font-weight-bold: 700;
24 --font-weight-normal: 400;
25
26 /* Box customization */
27 --box-border-color: var(--green);
28 --box-border-width: 3px;
29 --box-rounded-radius: 0px;
30
31 /* Pixel style variables */
32 --pixel-border: 4px;
33 --pixel-shadow: 5px 5px 0px rgba(0, 0, 0, 0.2);
34
35 /* Gameboy screen colors */
36 --gameboy-bg: var(--crust);
37 --gameboy-fg: var(--green);
38 --gameboy-accent: var(--teal);
39 --gameboy-button: var(--mauve);
40 --gameboy-button-hover: var(--pink);
41
42 /* Gameboy dimensions */
43 --gameboy-width: 480px;
44 --gameboy-screen-padding: 1.25rem;
45 }
46}
47
48html {
49 font-family: 'Press Start 2P', monospace;
50}
51
52body {
53 margin: 0;
54 display: flex;
55 align-items: center;
56 justify-content: center;
57 min-width: 320px;
58 min-height: 100vh;
59 background-color: var(--gameboy-bg);
60 color: var(--text);
61 padding: 1rem;
62}
63
64#app {
65 width: 100%;
66 max-width: var(--gameboy-width);
67 min-height: auto;
68 margin: 0 auto;
69 padding: var(--gameboy-screen-padding);
70 text-align: center;
71 background-color: var(--mantle);
72 border: var(--pixel-border) solid var(--green);
73 box-shadow: 0 0 0 8px var(--surface0), var(--pixel-shadow);
74 overflow: auto;
75}
76
77/* Pixel-styled containers using box utility */
78.pixel-container {
79 padding: 1rem;
80 margin-bottom: 1.5rem;
81 --box-border-color: var(--green);
82}
83
84/* Make the last container have no bottom margin */
85.pixel-container:last-child {
86 margin-bottom: 0;
87}
88
89/* Title styles */
90h1 {
91 color: var(--mauve);
92 margin-bottom: 1rem;
93 font-size: 1.4rem;
94 text-shadow: 2px 2px 0px rgba(0, 0, 0, 0.3);
95}
96
97h2 {
98 color: var(--blue);
99 margin-bottom: 0.75rem;
100 font-size: 1rem;
101}
102
103p {
104 color: var(--text);
105 font-size: 0.8rem;
106}
107
108/* Pixel style buttons */
109button.pixel-btn {
110 background-color: var(--surface0);
111 border: var(--pixel-border) solid var(--mauve);
112 border-radius: 0;
113 padding: 0.75rem 1.25rem;
114 font-family: inherit;
115 font-size: 0.8rem;
116 text-transform: uppercase;
117 cursor: pointer;
118 box-shadow: var(--pixel-shadow);
119 transition: transform 0.1s, box-shadow 0.1s;
120 margin-bottom: 0.5rem;
121 position: relative;
122 color: var(--text);
123}
124
125button.pixel-btn:hover {
126 background-color: var(--blue);
127 color: var(--crust);
128 border-color: var(--lavender);
129}
130
131button.pixel-btn:active {
132 transform: translate(3px, 3px);
133 box-shadow: 2px 2px 0px rgba(0, 0, 0, 0.2);
134}
135
136button.pixel-btn:disabled {
137 opacity: 0.6;
138 cursor: not-allowed;
139}
140
141/* Button hover animation */
142button.pixel-btn::after {
143 content: '';
144 position: absolute;
145 top: 0;
146 left: 0;
147 width: 100%;
148 height: 100%;
149 background: linear-gradient(45deg,
150 transparent 0%,
151 rgba(255, 255, 255, 0.1) 50%,
152 transparent 100%);
153 opacity: 0;
154 transition: opacity 0.3s;
155}
156
157button.pixel-btn:hover::after {
158 opacity: 1;
159}
160
161/* Custom form elements */
162.input-field {
163 width: 100%;
164 padding: 0.75rem;
165 font-family: inherit;
166 background-color: var(--surface0);
167 color: var(--text);
168 border: var(--pixel-border) solid var(--surface2);
169 border-radius: 0;
170 box-sizing: border-box;
171 margin-bottom: 0.5rem;
172 font-size: 0.8rem;
173}
174
175.input-field:focus {
176 outline: none;
177 border-color: var(--blue);
178 box-shadow: 0 0 0 2px var(--blue);
179}
180
181.input-field.error {
182 border-color: var(--red);
183}
184
185/* Error styling */
186.error-text {
187 color: var(--red);
188 font-size: 0.7rem;
189 margin-top: 0.25rem;
190}
191
192/* Utility classes */
193.form-group {
194 margin-bottom: 1rem;
195 text-align: left;
196}
197
198.follow-buttons {
199 display: flex;
200 flex-direction: column;
201 gap: 0.5rem;
202 margin-top: 1rem;
203}
204
205.share-url {
206 margin-top: 1rem;
207}
208
209label {
210 color: var(--text);
211 font-weight: bold;
212 display: block;
213 margin-bottom: 0.5rem;
214 font-size: 0.8rem;
215}
216
217.mb-2 {
218 margin-bottom: 0.5rem;
219}
220
221.block {
222 display: block;
223}
224
225/* Footer styling */
226.footer {
227 margin-top: 2rem;
228 margin-bottom: 0;
229}
230
231.footer-links {
232 display: flex;
233 justify-content: center;
234 gap: 1rem;
235}
236
237.footer-link {
238 text-decoration: none;
239}
240
241.footer-btn {
242 background-color: var(--surface1);
243 border-color: var(--peach);
244}
245
246.footer-btn:hover {
247 background-color: var(--peach);
248 color: var(--crust);
249 border-color: var(--yellow);
250}
251
252/* Mobile optimization */
253@media (max-width: 768px) {
254 :root {
255 --gameboy-width: 100%;
256 }
257
258 #app {
259 padding: 0.75rem;
260 max-width: none;
261 box-shadow: none;
262 border: none;
263 }
264
265 button.pixel-btn {
266 width: 100%;
267 }
268
269 h1 {
270 font-size: 1.2rem;
271 }
272
273 h2 {
274 font-size: 0.9rem;
275 }
276
277 .footer-links {
278 flex-direction: column;
279 gap: 0.5rem;
280 }
281}