Esta flor todavía no ha brotado.
La página que buscas no está en nuestro escaparate. Prueba con el ramo de temporada, recién cortado esta mañana.
Ver ramosFlorist 404
A glass vase of flowers that bloom on load; from the empty stem hangs a kraft 404 tag that sways gently.
Settings
Code
<!doctype html>
<html lang="es">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="robots" content="noindex" />
<title>404 · Page not found</title>
<style>
body { margin: 0; background: #000; }
.n4-florist {
--accent: #fb7185;
--k: 1;
position: fixed;
inset: 0;
z-index: 0;
overflow: hidden;
container-type: size;
display: grid;
place-items: center;
background: #000;
color: #f5f5f7;
font-family: -apple-system,BlinkMacSystemFont,"SF Pro Display","Inter","Segoe UI",system-ui,sans-serif;
-webkit-font-smoothing: antialiased;
text-align: center;
line-height: 1.4;
}
.n4-florist *,.n4-florist *::before,.n4-florist *::after {
box-sizing: border-box;
}
.n4-florist .n4-copy {
position: relative;
z-index: 5;
display: flex;
flex-direction: column;
align-items: center;
gap: 1.6cqmin;
width: 100%;
max-width: 680px;
padding: 0 6cqw;
}
.n4-florist .n4-title {
margin: 0;
font-size: clamp(17px,4.2cqmin,36px);
font-weight: 600;
letter-spacing: -.02em;
line-height: 1.15;
text-wrap: balance;
}
.n4-florist .n4-sub {
margin: 0;
max-width: 34em;
font-size: clamp(13px,2.4cqmin,18px);
color: #a1a1a6;
text-wrap: balance;
}
.n4-florist .n4-tag {
font: 600 clamp(10px,1.9cqmin,13px)/1 ui-monospace,"SF Mono",Menlo,Consolas,monospace;
letter-spacing: .16em;
text-transform: uppercase;
color: var(--accent);
}
.n4-florist .n4-cta {
margin-top: 1.8cqmin;
display: inline-flex;
align-items: center;
gap: .5em;
padding: .85em 1.5em;
border-radius: 999px;
background: #f5f5f7;
color: #000;
font-size: clamp(13px,2.2cqmin,16px);
font-weight: 600;
text-decoration: none;
transition: transform .3s cubic-bezier(.25,.1,.25,1),box-shadow .3s cubic-bezier(.25,.1,.25,1);
}
.n4-florist .n4-cta:hover {
transform: translateY(-2px);
box-shadow: 0 12px 32px -10px var(--accent);
}
.n4-florist .n4-cta:focus-visible {
outline: 2px solid var(--accent);
outline-offset: 3px;
}
.n4-florist .n4-stars,.n4-florist .n4-stars2 {
position: absolute;
inset: -4%;
pointer-events: none;
}
.n4-florist .n4-stars {
background-image: radial-gradient(1px 1px at 8% 12%,#fff 60%,transparent),radial-gradient(1px 1px at 22% 68%,#fff 60%,transparent),radial-gradient(1.5px 1.5px at 35% 24%,#fff 60%,transparent),radial-gradient(1px 1px at 48% 82%,#fff 60%,transparent),radial-gradient(1px 1px at 57% 9%,#fff 60%,transparent),radial-gradient(1.5px 1.5px at 66% 44%,#fff 60%,transparent),radial-gradient(1px 1px at 74% 72%,#fff 60%,transparent),radial-gradient(1px 1px at 86% 18%,#fff 60%,transparent),radial-gradient(1.5px 1.5px at 93% 58%,#fff 60%,transparent),radial-gradient(1px 1px at 14% 42%,#fff 60%,transparent),radial-gradient(1px 1px at 40% 55%,#fff 60%,transparent),radial-gradient(1px 1px at 81% 90%,#fff 60%,transparent),radial-gradient(1px 1px at 4% 88%,#fff 60%,transparent),radial-gradient(1px 1px at 62% 30%,#fff 60%,transparent);
opacity: .75;
animation: n4-florist-tw calc(5s / var(--k)) ease-in-out infinite alternate;
}
.n4-florist .n4-stars2 {
background-image: radial-gradient(2px 2px at 18% 30%,rgba(255,255,255,.9) 50%,transparent),radial-gradient(1.5px 1.5px at 72% 20%,rgba(255,255,255,.8) 50%,transparent),radial-gradient(2px 2px at 30% 85%,rgba(255,255,255,.7) 50%,transparent),radial-gradient(1.5px 1.5px at 88% 70%,rgba(255,255,255,.8) 50%,transparent),radial-gradient(2px 2px at 52% 60%,rgba(255,255,255,.6) 50%,transparent),radial-gradient(1.5px 1.5px at 6% 55%,rgba(255,255,255,.8) 50%,transparent);
opacity: .55;
animation: n4-florist-tw calc(7s / var(--k)) ease-in-out infinite alternate-reverse;
}
.n4-florist [data-depth] {
transition: transform .9s cubic-bezier(.2,.7,.2,1);
}
@keyframes n4-florist-tw {
from {
opacity: .3;
}
}
@keyframes n4-florist-spin {
to {
transform: rotate(1turn);
}
}
@keyframes n4-florist-fade {
from {
opacity: 0;
transform: translateY(10px);
}
}
@media (prefers-reduced-motion:reduce) {
.n4-florist *,.n4-florist *::before,.n4-florist *::after {
animation: none!important;
transition: none!important;
}
}
.n4-florist {
background: radial-gradient(70% 60% at 50% 35%,#4a1d35,#1f0a17 75%);
color: #fff1f4;
font-family: "Iowan Old Style","Palatino Linotype",Palatino,"Book Antiqua",Georgia,serif;
}
.n4-florist .n4-vase {
width: min(56cqmin,380px);
height: auto;
margin-bottom: 1cqmin;
overflow: visible;
}
.n4-florist .n4-flower {
transform: translate(var(--x),var(--y)) scale(0);
animation: n4-florist-bloom calc(1s / var(--k)) calc(var(--d) / var(--k)) cubic-bezier(.34,1.56,.64,1) forwards;
}
.n4-florist .n4-flower ellipse {
fill: var(--c);
opacity: .92;
}
.n4-florist .n4-core {
fill: #fde68a;
}
.n4-florist .n4-tagx {
transform-origin: 220px 74px;
animation: n4-florist-swing calc(3s / var(--k)) ease-in-out infinite alternate;
}
.n4-florist .n4-tagx text {
font: 700 10px ui-monospace,"SF Mono",Menlo,Consolas,monospace;
fill: #2a0f1f;
}
.n4-florist .n4-glass {
fill: rgba(186,230,253,.14);
stroke: rgba(255,255,255,.45);
stroke-width: 1.5;
}
.n4-florist .n4-petal {
animation: n4-florist-fall calc(7s / var(--k)) calc(2s / var(--k)) linear infinite;
opacity: 0;
}
.n4-florist .n4-title {
font-size: clamp(22px,5.4cqmin,46px);
font-weight: 500;
font-style: italic;
}
.n4-florist .n4-sub {
color: #e4b9c6;
}
.n4-florist .n4-tag {
font-family: inherit;
text-transform: none;
letter-spacing: .06em;
}
.n4-florist .n4-cta {
background: var(--accent);
color: #1f0a17;
}
@keyframes n4-florist-bloom {
to {
transform: translate(var(--x),var(--y)) scale(1);
}
}
@keyframes n4-florist-swing {
from {
rotate: -8deg;
}
to {
rotate: 8deg;
}
}
@keyframes n4-florist-fall {
0% {
opacity: 0;
transform: translate(84px,74px) rotate(0);
}
10% {
opacity: .9;
}
100% {
opacity: 0;
transform: translate(40px,270px) rotate(540deg);
}
}
@media (prefers-reduced-motion:reduce) {
.n4-florist .n4-flower {
transform: translate(var(--x),var(--y));
}
}
</style>
</head>
<body>
<main class="n4-florist">
<div class="n4-copy">
<svg class="n4-vase" viewBox="0 0 300 260" aria-hidden="true">
<g class="n4-stems" fill="none" stroke="#4d7c0f" stroke-width="3" stroke-linecap="round">
<path d="M150 190C140 140 100 110 82 70"/><path d="M150 190C150 130 150 90 150 46"/><path d="M150 190C160 140 200 110 220 74"/><path d="M150 190C145 150 120 130 112 112"/><path d="M150 190C158 150 186 130 196 124"/>
<path d="M120 120c-14-6-22 2-24 10 12 2 20-2 24-10z" fill="#65a30d" stroke="none"/><path d="M178 132c14-4 22 4 22 12-12 0-20-4-22-12z" fill="#65a30d" stroke="none"/>
</g>
<g class="n4-flower" style="--d:.2s;--c:#fb7185;--x:82px;--y:70px"><ellipse rx="9" ry="17" transform="rotate(0) translate(0 -13)"/><ellipse rx="9" ry="17" transform="rotate(60) translate(0 -13)"/><ellipse rx="9" ry="17" transform="rotate(120) translate(0 -13)"/><ellipse rx="9" ry="17" transform="rotate(180) translate(0 -13)"/><ellipse rx="9" ry="17" transform="rotate(240) translate(0 -13)"/><ellipse rx="9" ry="17" transform="rotate(300) translate(0 -13)"/><circle r="7" class="n4-core"/></g>
<g class="n4-flower" style="--d:.5s;--c:#fbbf24;--x:150px;--y:46px"><ellipse rx="7" ry="16" transform="rotate(0) translate(0 -13)"/><ellipse rx="7" ry="16" transform="rotate(45) translate(0 -13)"/><ellipse rx="7" ry="16" transform="rotate(90) translate(0 -13)"/><ellipse rx="7" ry="16" transform="rotate(135) translate(0 -13)"/><ellipse rx="7" ry="16" transform="rotate(180) translate(0 -13)"/><ellipse rx="7" ry="16" transform="rotate(225) translate(0 -13)"/><ellipse rx="7" ry="16" transform="rotate(270) translate(0 -13)"/><ellipse rx="7" ry="16" transform="rotate(315) translate(0 -13)"/><circle r="7" class="n4-core"/></g>
<g class="n4-flower" style="--d:.8s;--c:#c084fc;--x:112px;--y:112px"><ellipse rx="8" ry="13" transform="rotate(0) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(72) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(144) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(216) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(288) translate(0 -10)"/><circle r="5" class="n4-core"/></g>
<g class="n4-flower" style="--d:1.1s;--c:#fda4af;--x:196px;--y:124px"><ellipse rx="8" ry="13" transform="rotate(0) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(72) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(144) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(216) translate(0 -10)"/><ellipse rx="8" ry="13" transform="rotate(288) translate(0 -10)"/><circle r="5" class="n4-core"/></g>
<g class="n4-tagx"><path d="M220 74v16" stroke="#e7e5e4" stroke-width="1.2"/><rect x="203" y="90" width="34" height="22" rx="3" fill="#d6b88a"/><circle cx="220" cy="95" r="2" fill="#2a0f1f"/><text x="220" y="108" text-anchor="middle">404</text></g>
<path class="n4-glass" d="M118 180h64l-6 70c-1 6-5 8-10 8h-32c-5 0-9-2-10-8z"/>
<path d="M121 206h58" stroke="rgba(186,230,253,.5)" stroke-width="1.5"/>
<ellipse class="n4-petal" cx="0" cy="0" rx="4" ry="7" fill="#fb7185"/>
</svg>
<span class="n4-tag">Bouquet no. 404</span>
<h1 class="n4-title">This flower hasn't bloomed yet.</h1>
<p class="n4-sub">The page you're looking for isn't in our window. Try the seasonal bouquet, freshly cut this morning.</p>
<a class="n4-cta" href="/">See bouquets</a>
</div>
</main>
</body>
</html>
Prompt for AI
Paste it into ChatGPT, Claude or Cursor and it will adapt the block to your project with these settings, even if you don’t use React.
More in 404
See all 404Where to use it
Florists change their range with the seasons, so bouquet pages disappear often. This error page shows a clear glass vase with green stems. As it loads, the flowers open one after another with a springy bloom, a petal drifts down to the table, and on the one stem without a flower hangs a little kraft paper tag marked 404, swinging gently.
Italic serif headings and a deep plum background give it a boutique feel. The flowers are inline SVG with CSS animations, the text stays readable and translatable, and reduced motion shows the bouquet already open. Link the button to seasonal bouquets.