diff --git a/public/profile/Mono.png b/public/profile/Mono.png new file mode 100644 index 0000000..0a70baf Binary files /dev/null and b/public/profile/Mono.png differ diff --git a/src/app/about/page.tsx b/src/app/about/page.tsx index 6b5b3f3..cf380cb 100644 --- a/src/app/about/page.tsx +++ b/src/app/about/page.tsx @@ -1,7 +1,7 @@ import type { Metadata } from "next"; import Link from "next/link"; import { dossier } from "@/content/dossier"; -import { orus, profile } from "@/content/profile"; +import { profile } from "@/content/profile"; export const metadata: Metadata = { title: "Dossier", @@ -25,8 +25,8 @@ export default function AboutPage() {
SUBJECT
{profile.displayName}
-
ROOT
-
{orus.name}
+
DOMAIN
+
selimaj.dev
FILES
{String(dossier.length).padStart(2, "0")}
ACCESS
diff --git a/src/app/globals.css b/src/app/globals.css index 8711caa..50dea43 100644 --- a/src/app/globals.css +++ b/src/app/globals.css @@ -97,10 +97,6 @@ html[data-boot] .seq { animation-fill-mode: both; } - .drift { - animation: drift 80s ease-in-out infinite alternate; - will-change: transform; - } .spin { animation: spin 16s linear infinite; transform-origin: 60px 60px; @@ -185,11 +181,6 @@ html[data-boot] .seq { } } -@keyframes drift { - to { - transform: translate3d(-28px, 14px, 0); - } -} @keyframes spin { to { transform: rotate(360deg); diff --git a/src/app/icon.svg b/src/app/icon.svg index 1b0d670..079e0f0 100644 --- a/src/app/icon.svg +++ b/src/app/icon.svg @@ -1,5 +1,5 @@ - - + + diff --git a/src/app/layout.tsx b/src/app/layout.tsx index de31dcf..37c1bfd 100644 --- a/src/app/layout.tsx +++ b/src/app/layout.tsx @@ -17,7 +17,7 @@ const jetbrains = JetBrains_Mono({ export const metadata: Metadata = { title: { default: "Selimaj · Entrepreneur & Builder", template: "%s · Selimaj" }, - description: "Selimaj, entrepreneur and builder. Founder of Orus. I build the layer underneath.", + description: "Selimaj, entrepreneur and builder. I build the layer underneath.", metadataBase: new URL("https://selimaj.dev"), }; diff --git a/src/app/projects/page.tsx b/src/app/projects/page.tsx index 9e5491c..58bc2ce 100644 --- a/src/app/projects/page.tsx +++ b/src/app/projects/page.tsx @@ -4,14 +4,14 @@ import { projects } from "@/content/projects"; export const metadata: Metadata = { title: "Projects", - description: "Everything built and conceived under Orus, from Saturn and Enclave to cyberdecks and RC planes.", + description: "Everything I’ve built and conceived, from Enclave and Osias to cyberdecks and RC planes.", }; export default function ProjectsPage() { return (
-
Node index · Root Orus · {projects.length} nodes
+
Node index · Root selimaj.dev · {projects.length} nodes

Projects

Most of what I've built and conceived. Concepts are labelled as concepts. diff --git a/src/app/template.tsx b/src/app/template.tsx index 5b6446d..2f6eb37 100644 --- a/src/app/template.tsx +++ b/src/app/template.tsx @@ -1,4 +1,11 @@ +"use client"; + +import { usePathname } from "next/navigation"; + // Re-mounts on every navigation, so each page resolves in from wireframe. +// Home is skipped: the hero runs its own sequence and the terrain stays still. export default function Template({ children }: { children: React.ReactNode }) { + const pathname = usePathname(); + if (pathname === "/") return <>{children}; return

{children}
; } diff --git a/src/components/BootSequence.tsx b/src/components/BootSequence.tsx index 2f6400d..f7d5439 100644 --- a/src/components/BootSequence.tsx +++ b/src/components/BootSequence.tsx @@ -27,7 +27,10 @@ export function BootSequence() { sessionStorage.setItem("boot", "1"); } catch {} setLeaving(true); - outTimer = window.setTimeout(() => root.removeAttribute("data-boot"), 250); + outTimer = window.setTimeout(() => { + root.removeAttribute("data-boot"); + window.dispatchEvent(new Event("boot:done")); + }, 250); }; const timer = window.setTimeout(finish, DURATION); window.addEventListener("keydown", finish); diff --git a/src/components/FeaturedNodes.tsx b/src/components/FeaturedNodes.tsx index 35e905c..946db45 100644 --- a/src/components/FeaturedNodes.tsx +++ b/src/components/FeaturedNodes.tsx @@ -2,11 +2,9 @@ import Link from "next/link"; import { useEffect, useRef, useState } from "react"; -import { featured, projectById, projects } from "@/content/projects"; +import { brandOf, featured, featuredRoot, projectById, projects, root } from "@/content/projects"; import { Segment } from "./Segment"; -const ROOT = featured[0]; - export function FeaturedNodes() { const [active, setActive] = useState(null); const nodes = featured.map((f) => ({ ...f, project: projectById(f.id)! })); @@ -30,11 +28,11 @@ export function FeaturedNodes() { > {size && (