diff --git a/app/globals.css b/app/globals.css
index 1951a70..a3f7ce9 100644
--- a/app/globals.css
+++ b/app/globals.css
@@ -167,9 +167,3 @@ body {
animation: none;
}
}
-
-@media (hover: none) {
- .fluid-shape {
- display: none;
- }
-}
\ No newline at end of file
diff --git a/components/ui/animated-marquee.tsx b/components/ui/animated-marquee.tsx
index b1e730c..f5994ea 100644
--- a/components/ui/animated-marquee.tsx
+++ b/components/ui/animated-marquee.tsx
@@ -14,7 +14,7 @@ export function AnimatedMarquee({ items }: AnimatedMarqueeProps) {
{marqueeItems.map((item, i) => (
{item}
diff --git a/components/ui/back-to-top.tsx b/components/ui/back-to-top.tsx
index dd9e59c..3f7f365 100644
--- a/components/ui/back-to-top.tsx
+++ b/components/ui/back-to-top.tsx
@@ -18,6 +18,7 @@ export function BackToTop() {
className={`fixed bottom-8 right-8 z-50 p-3 rounded-full glass-card text-zinc-500 dark:text-zinc-400 hover:text-accent dark:hover:text-accent transition-all duration-200 ${visible ? 'opacity-100 translate-y-0' : 'opacity-0 translate-y-4 pointer-events-none'}`}
aria-label="Back to top"
aria-hidden={!visible}
+ tabIndex={visible ? undefined : -1}
>
diff --git a/components/ui/experience-card.tsx b/components/ui/experience-card.tsx
index 3f6aba8..d3cb867 100644
--- a/components/ui/experience-card.tsx
+++ b/components/ui/experience-card.tsx
@@ -67,7 +67,7 @@ export function ExperienceCard({ experience, isOpen, onToggle }: ExperienceCardP
}}
>
-
{experience.description}
+
{experience.description}
diff --git a/package.json b/package.json
index 7dd2dc5..5929831 100644
--- a/package.json
+++ b/package.json
@@ -19,6 +19,19 @@
"react-markdown": "^10.1.0",
"remark-gfm": "^4.0.1"
},
+ "browserslist": {
+ "production": [
+ "chrome >= 100",
+ "edge >= 100",
+ "firefox >= 100",
+ "safari >= 15.4"
+ ],
+ "development": [
+ "last 1 chrome version",
+ "last 1 firefox version",
+ "last 1 safari version"
+ ]
+ },
"devDependencies": {
"@tailwindcss/postcss": "^4",
"@types/node": "^20",
diff --git a/public/about-me.webp b/public/about-me.webp
index 069385f..19426ad 100644
Binary files a/public/about-me.webp and b/public/about-me.webp differ
diff --git a/public/swift-logo.webp b/public/swift-logo.webp
index d9dab3c..736758c 100644
Binary files a/public/swift-logo.webp and b/public/swift-logo.webp differ
diff --git a/public/tri.webp b/public/tri.webp
index 8e9b98e..0ad77eb 100644
Binary files a/public/tri.webp and b/public/tri.webp differ
diff --git a/todo.md b/todo.md
index 0cca92f..9445754 100644
--- a/todo.md
+++ b/todo.md
@@ -1,5 +1,14 @@
# Todo
+## Render-blocking CSS
+
+Next.js App Router injects CSS via ``. Because of the `data-precedence` attribute (React's internal hydration ordering), `beasties` inlines critical CSS but leaves the blocking `` intact — Lighthouse still flags it. Work was reverted.
+
+- [ ] Find a strategy compatible with `data-precedence`:
+ - Option A: run beasties, then patch remaining `` tags to `media="print" onload="this.media='all'"` + `