/* OpenHero source by Cristian Olivera Chávez. MIT License Copyright (c) 2026 Cristian Olivera Chávez Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ "use client" import { useEffect, useRef, useState } from "react" import { Icon } from "@iconify/react" const manifestoLines = [ "Nocturnal code cycles are a craft, not a constraint.", "Atmospheric deployment should feel like turning on a lantern in a quiet room.", "Artisanal digital architecture rewards patience, material contrast, and sharp editorial focus.", "Low-latency tranquility keeps interfaces calm even when systems move fast.", "Twilight-logic engineering balances warmth, speed, and precision.", ] const projectCards = [ { tag: "Digital Architecture", title: "Midnight journal for a quiet luxury brand.", description: "Typography-led landing pages that feel hand-assembled, with precise rhythm and velvet-toned transitions.", wide: true, tall: true, }, { tag: "Creator Studio", title: "Editorial toolkits for founders.", description: "Systems for storytelling, product launches, and ambient portfolio pages with nocturnal restraint.", }, { tag: "Luxury Commerce", title: "High-trust boutique storefronts.", description: "Warm, tactile shopping experiences that balance focus, softness, and conversion clarity.", }, { tag: "Atmospheric System", title: "Dark-mode design infrastructure for modern teams.", description: "Reusable motion, layout, and content primitives built to feel cohesive under late-night creative pressure.", wide: true, }, { tag: "Motion Language", title: "Soft flicker, branch sway, and lantern glow.", description: "A motion layer that behaves like a city at dusk, not a dashboard at noon.", }, { tag: "Product Strategy", title: "Quiet systems for sharp operators.", description: "Strategic landing experiences that turn complex services into warm, navigable spaces.", }, ] export default function Page() { const heroVideoRef = useRef(null) const manifestoRef = useRef(null) const [manifestoText, setManifestoText] = useState("") const [revealReady, setRevealReady] = useState(false) useEffect(() => { document.documentElement.classList.add("dark") }, []) useEffect(() => { let cancelled = false let lineIndex = 0 let charIndex = 0 let completedText = "" const tick = () => { if (cancelled) return if (lineIndex >= manifestoLines.length) return const currentLine = manifestoLines[lineIndex] const currentProgress = currentLine.slice(0, charIndex + 1) setManifestoText(`${completedText}${lineIndex > 0 ? "\n\n" : ""}${currentProgress}`) charIndex += 1 if (charIndex < currentLine.length) { window.setTimeout(tick, 25) } else { completedText += `${lineIndex > 0 ? "\n\n" : ""}${currentLine}` lineIndex += 1 charIndex = 0 window.setTimeout(tick, 800) } } tick() return () => { cancelled = true } }, []) useEffect(() => { const heroVideo = heroVideoRef.current if (!heroVideo) return let ticking = false const updateHero = () => { const progress = Math.min(window.scrollY / (window.innerHeight * 1.15), 1) const scale = 1.07 + progress * 0.1 const translate = progress * 14 heroVideo.style.transform = `scale(${scale}) translateY(${translate}px)` } const onScroll = () => { if (!ticking) { window.requestAnimationFrame(() => { updateHero() ticking = false }) ticking = true } } updateHero() window.addEventListener("scroll", onScroll, { passive: true }) return () => { window.removeEventListener("scroll", onScroll) } }, []) useEffect(() => { const observer = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { entry.target.classList.add("in") observer.unobserve(entry.target) } }) }, { threshold: 0.16 } ) const nodes = document.querySelectorAll(".reveal") nodes.forEach((node) => { observer.observe(node) }) return () => { observer.disconnect() } }, []) return (
Nocturnal code cycles · atmospheric deployment

Aether House

Crafting the nocturnal web through artisanal digital architecture, low-latency tranquility, and twilight-logic engineering.

{["Teal Wood", "Amber Glow", "Twilight Blue"].map((chip) => ( {chip} ))}
The Code Window

A manifesto written in real time.

The studio’s principles appear as a live terminal, floating inside a rounded liquid window with warm glass edges and lantern-like glow.

Nocturnal logic console
LIVE
Manifesto
                  {manifestoText}
                
Deployment rhythm
24/7
Atmospheric releases, quiet handoffs, and calm production cycles.
Latency posture
Low
Interfaces tuned for speed without abandoning warmth or editorial focus.
Creative signal
High
A craft-first studio for creators, founders, and digital builders.
City-Lights Grid

Projects that light up only when they are approached.

Hover to reveal each project as a lit apartment window in the city below. Every tile carries a different atmosphere, tone, and craft note.

{projectCards.map((project, index) => (
{project.tag}

{project.title}

{project.description}

Open window
))}
Sunset-to-Night Transition

A background that deepens as the page descends.

Warm sunset notes drift into indigo as the page moves downward, keeping the interface human, soft, and focused.

Branch-level deployment

The studio’s operating rhythm is built for quiet focus.

Aether House combines nocturnal code cycles, slow atmospheric motion, and warm digital surfaces to create a premium environment for creators.

Low-latency tranquility
Strategy Editorial systems
Motion 120fps feel
Tone Warm, nocturnal
The Rooftop Footer

A panoramic city edge for star-mapped navigation.

The final view opens wide, like a rooftop above the city, with a minimalist list of links suspended under the night sky.

{[ { label: "Studio", icon: "mdi:home-city-outline" }, { label: "Services", icon: "mdi:briefcase-outline" }, { label: "Projects", icon: "mdi:view-grid-outline" }, { label: "Contact", icon: "mdi:email-outline" }, ].map((item) => ( {item.label} ))}
Aether House
Amber Gold · Teal Wood · Twilight Blue
Crafting the nocturnal web
) }