💎 Investment Diamonds
Step into a world where timeless beauty meets intelligent investment. For centuries, diamonds have embodied exclusivity, prestige, and lasting value — and from July 2026, we will introduce a truly unique investment opportunity.
Through our presence in Antwerp, the European heart of the diamond trade, we offer natural, internationally certified diamonds with fast and secure delivery.
Unlike conventional offerings, we focus exclusively on investment-grade diamonds — carefully selected stones of the highest quality, intended for those who seek not only beauty, but also stability and long-term appreciation. Each diamond reflects discreet luxury and a thoughtful approach to preserving value over time.
Each diamond represents more than luxury — it is security and value that grows over time.
....
<!DOCTYPE html>
<html lang="cs">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Praha – Diamant</title>
<style>
* { margin: 0; padding: 0; box-sizing: border-box; }
body {
width: 100%;
height: 100vh;
overflow: hidden;
background: #0a0a1a;
font-family: 'Georgia', serif;
}
/* ── Sky gradient ── */
.sky {
position: absolute;
inset: 0;
background: radial-gradient(ellipse at 50% 30%,
#1a1040 0%, #0d0820 40%, #050310 100%);
}
/* ── Stars ── */
.stars {
position: absolute;
inset: 0;
overflow: hidden;
}
.star {
position: absolute;
background: #fff;
border-radius: 50%;
animation: twinkle var(--dur, 3s) ease-in-out infinite;
animation-delay: var(--delay, 0s);
opacity: 0;
}
@keyframes twinkle {
0%, 100% { opacity: 0; }
50% { opacity: var(--peak, 0.8); }
}
/* ── Prague skyline SVG ── */
.prague-skyline {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 55%;
}
/* ── River reflection ── */
.river {
position: absolute;
bottom: 0;
left: 0;
width: 100%;
height: 18%;
background: linear-gradient(180deg,
rgba(20, 15, 50, 0.95) 0%,
rgba(10, 8, 30, 1) 100%);
overflow: hidden;
}
.river::before {
content: '';
position: absolute;
top: 0; left: 0; right: 0;
height: 2px;
background: linear-gradient(90deg,
transparent, rgba(200,170,100,0.3), transparent);
}
/* Shimmering reflections in river */
.reflection {
position: absolute;
bottom: 0;
width: 2px;
background: linear-gradient(180deg,
rgba(255,220,100,0.4) 0%,
transparent 100%);
animation: shimmer var(--dur, 2s) ease-in-out infinite;
animation-delay: var(--delay, 0s);
}
@keyframes shimmer {
0%, 100% { opacity: 0.2; transform: scaleX(1); }
50% { opacity: 0.8; transform: scaleX(2.5); }
}
/* ── Diamond container ── */
.diamond-wrap {
position: absolute;
top: 50%;
left: 50%;
transform: translate(-50%, -62%);
display: flex;
flex-direction: column;
align-items: center;
gap: 0;
z-index: 10;
}
/* Glow halo behind diamond */
.glow-halo {
position: absolute;
top: 50%; left: 50%;
width: 260px; height: 260px;
transform: translate(-50%, -50%);
border-radius: 50%;
background: radial-gradient(circle,
rgba(150,200,255,0.18) 0%,
rgba(100,160,255,0.08) 40%,
transparent 70%);
animation: halo-pulse 3s ease-in-out infinite;
pointer-events: none;
}
@keyframes halo-pulse {
0%, 100% { transform: translate(-50%,-50%) scale(1); opacity: 0.6; }
50% { transform: translate(-50%,-50%) scale(1.3); opacity: 1; }
}
/* 3-D diamond via CSS */
.diamond-scene {
width: 140px;
height: 140px;
perspective: 600px;
position: relative;
z-index: 2;
}
.diamond-3d {
width: 100%;
height: 100%;
transform-style: preserve-3d;
animation: spin-diamond 8s linear infinite;
position: relative;
}
@keyframes spin-diamond {
from { transform: rotateY(0deg) rotateX(15deg); }
to { transform: rotateY(360deg) rotateX(15deg); }
}
/* Diamond SVG approach – rendered in canvas */
canvas#diamond {
display: block;
filter: drop-shadow(0 0 18px rgba(160,210,255,0.9))
drop-shadow(0 0 40px rgba(120,180,255,0.5));
}
/* ── Sparkle particles ── */
.sparkle {
position: absolute;
pointer-events: none;
z-index: 11;
animation: sparkle-anim var(--dur, 1.5s) ease-out infinite;
animation-delay: var(--delay, 0s);
opacity: 0;
}
.sparkle::before {
content: '✦';
font-size: var(--size, 14px);
color: rgba(200,230,255,0.9);
text-shadow: 0 0 6px #fff, 0 0 12px rgba(160,210,255,1);
}
@keyframes sparkle-anim {
0% { opacity: 0; transform: translate(0,0) scale(0.3); }
30% { opacity: 1; transform: translate(var(--tx,0), var(--ty,0)) scale(1); }
100% { opacity: 0; transform: translate(calc(var(--tx,0)*1.8), calc(var(--ty,0)*1.8)) scale(0.2); }
}
/* Title */
.title {
position: absolute;
bottom: 22%;
left: 50%;
transform: translateX(-50%);
color: rgba(220,200,150,0.85);
font-size: clamp(0.8rem, 2vw, 1.1rem);
letter-spacing: 0.4em;
text-transform: uppercase;
white-space: nowrap;
text-shadow: 0 0 20px rgba(200,170,100,0.6);
z-index: 12;
}
</style>
</head>
<body>
<div class="sky"></div>
<div class="stars" id="stars"></div>
<!-- Prague skyline SVG -->
<svg class="prague-skyline" viewBox="0 0 1440 500" preserveAspectRatio="xMidYMax meet" xmlns="http://www.w3.org/2000/svg">
<defs>
<linearGradient id="skyGrad" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#0d0820"/>
<stop offset="100%" stop-color="#1a0e35"/>
</linearGradient>
<linearGradient id="buildingGrad" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#1e1540"/>
<stop offset="100%" stop-color="#0e0a25"/>
</linearGradient>
<linearGradient id="buildingGrad2" x1="0" y1="0" x2="0" y2="1">
<stop offset="0%" stop-color="#251a4a"/>
<stop offset="100%" stop-color="#130e30"/>
</linearGradient>
<!-- Window glow filter -->
<filter id="winGlow">
<feGaussianBlur stdDeviation="1.5" result="blur"/>
<feMerge><feMergeNode in="blur"/><feMergeNode in="SourceGraphic"/></feMerge>
</filter>
</defs>
<!-- Far background hills / distant city mass -->
<ellipse cx="720" cy="430" rx="900" ry="120" fill="#0d0a22" opacity="0.8"/>
<!-- === PRAGUE PANORAMA === -->
<!-- Far left – Strahov area hills -->
<polygon points="0,500 0,310 80,280 160,260 200,250 240,260 280,300 320,380 320,500" fill="url(#buildingGrad)"/>
<!-- Petřín hill silhouette -->
<path d="M180,500 L180,240 Q220,200 260,195 Q300,190 340,220 L380,500Z" fill="#130e2a"/>
<!-- Petřín tower tiny -->
<rect x="248" y="155" width="6" height="40" fill="#1a1340"/>
<polygon points="245,155 251,120 257,155" fill="#1e1640"/>
<!-- Left bank buildings – Malá Strana -->
<rect x="320" y="320" width="60" height="180" rx="2" fill="url(#buildingGrad2)"/>
<rect x="385" y="300" width="45" height="200" rx="2" fill="url(#buildingGrad)"/>
<rect x="435" y="330" width="30" height="170" rx="1" fill="url(#buildingGrad2)"/>
<!-- Baroque rooftops Malá Strana -->
<polygon points="320,320 350,290 380,320" fill="#1a133a"/>
<polygon points="385,300 407,270 430,300" fill="#180f35"/>
<!-- Charles Bridge towers left -->
<rect x="460" y="310" width="28" height="190" fill="#1c1438"/>
<polygon points="460,310 474,270 488,310" fill="#211840"/>
<rect x="466" y="270" width="16" height="25" fill="#1c1438"/>
<polygon points="466,270 474,250 482,270" fill="#241b42"/>
<!-- Bridge span -->
<rect x="488" y="380" width="160" height="12" rx="2" fill="#16102e"/>
<!-- Bridge arches hint -->
<path d="M488,392 Q510,382 530,392 Q550,382 570,392 Q590,382 610,392 Q630,382 648,392" stroke="#0e0a22" stroke-width="2" fill="none"/>
<!-- Charles Bridge tower right -->
<rect x="648" y="310" width="28" height="190" fill="#1c1438"/>
<polygon points="648,310 662,270 676,310" fill="#211840"/>
<rect x="654" y="270" width="16" height="25" fill="#1c1438"/>
<polygon points="654,270 662,250 670,270" fill="#241b42"/>
<!-- Staré Město – Old Town area right of bridge -->
<rect x="680" y="290" width="50" height="210" fill="url(#buildingGrad2)"/>
<rect x="735" y="275" width="40" height="225" fill="url(#buildingGrad)"/>
<rect x="780" y="300" width="35" height="200" fill="url(#buildingGrad2)"/>
<!-- Old Town Hall tower + Astronomical Clock area -->
<rect x="820" y="240" width="36" height="260" fill="#1d1540"/>
<polygon points="820,240 838,190 856,240" fill="#221943"/>
<!-- Clock face hint -->
<circle cx="838" cy="270" r="9" fill="#2a2050" stroke="#3a305a" stroke-width="1"/>
<line x1="838" y1="270" x2="838" y2="263" stroke="#4a3f6a" stroke-width="1"/>
<line x1="838" y1="270" x2="844" y2="270" stroke="#4a3f6a" stroke-width="1"/>
<!-- Týn church towers -->
<rect x="862" y="220" width="22" height="280" fill="#18123a"/>
<polygon points="862,220 873,170 884,220" fill="#1e1640"/>
<rect x="898" y="225" width="22" height="275" fill="#18123a"/>
<polygon points="898,225 909,175 920,225" fill="#1e1640"/>
<!-- Týn church spire ornaments -->
<rect x="870" y="155" width="6" height="15" fill="#221a42"/>
<rect x="906" y="160" width="6" height="15" fill="#221a42"/>
<!-- St. Vitus Cathedral (Hradčany) – dominant left-center -->
<!-- Main towers -->
<rect x="200" y="180" width="34" height="320" fill="#1a1340"/>
<polygon points="200,180 217,110 234,180" fill="#201840"/>
<!-- Flying buttresses hint -->
<path d="M200,230 Q185,250 180,280" stroke="#160e30" stroke-width="3" fill="none"/>
<path d="M234,230 Q249,250 254,280" stroke="#160e30" stroke-width="3" fill="none"/>
<!-- Cathedral nave -->
<rect x="175" y="280" width="90" height="220" fill="#160f38"/>
<polygon points="175,280 220,250 265,280" fill="#1c1440"/>
<!-- Second spire -->
<rect x="250" y="210" width="22" height="290" fill="#1c1440"/>
<polygon points="250,210 261,155 272,210" fill="#221840"/>
<!-- Prague Castle walls -->
<rect x="140" y="310" width="220" height="190" fill="#120d30"/>
<!-- Battlements -->
<rect x="140" y="305" width="10" height="15" fill="#160f38"/>
<rect x="158" y="305" width="10" height="15" fill="#160f38"/>
<rect x="176" y="305" width="10" height="15" fill="#160f38"/>
<rect x="310" y="305" width="10" height="15" fill="#160f38"/>
<rect x="328" y="305" width="10" height="15" fill="#160f38"/>
<rect x="346" y="305" width="10" height="15" fill="#160f38"/>
<!-- Nové Město right side buildings -->
<rect x="920" y="270" width="55" height="230" fill="url(#buildingGrad)"/>
<rect x="980" y="290" width="45" height="210" fill="url(#buildingGrad2)"/>
<rect x="1030" y="260" width="60" height="240" fill="url(#buildingGrad)"/>
<rect x="1095" y="280" width="40" height="220" fill="url(#buildingGrad2)"/>
<rect x="1140" y="300" width="50" height="200" fill="url(#buildingGrad)"/>
<!-- Žižkov TV Tower (right side) -->
<rect x="1190" y="200" width="14" height="300" fill="#1a1340"/>
<ellipse cx="1197" cy="280" rx="22" ry="10" fill="#1c1545" opacity="0.9"/>
<ellipse cx="1197" cy="260" rx="18" ry="8" fill="#201840" opacity="0.9"/>
<!-- Tower "babies" hint (Černý babies) -->
<circle cx="1185" cy="300" r="4" fill="#160e35"/>
<circle cx="1209" cy="310" r="4" fill="#160e35"/>
<circle cx="1197" cy="295" r="3" fill="#160e35"/>
<!-- Blinking light -->
<circle cx="1197" cy="198" r="3" fill="#ff4444" opacity="0.9">
<animate attributeName="opacity" values="0.9;0.1;0.9" dur="1.4s" repeatCount="indefinite"/>
</circle>
<!-- Vinohrady church (far right) -->
<rect x="1250" y="280" width="30" height="220" fill="url(#buildingGrad)"/>
<polygon points="1250,280 1265,240 1280,280" fill="#1e1640"/>
<rect x="1300" y="290" width="50" height="210" fill="url(#buildingGrad2)"/>
<rect x="1356" y="310" width="84" height="190" fill="url(#buildingGrad)"/>
<!-- === WINDOWS – warm amber glow === -->
<g filter="url(#winGlow)" opacity="0.85">
<!-- Scattered windows across buildings -->
<!-- Left buildings -->
<rect x="328" y="330" width="8" height="6" rx="1" fill="#c8a050"/>
<rect x="345" y="345" width="8" height="6" rx="1" fill="#c09040"/>
<rect x="328" y="360" width="8" height="6" rx="1" fill="#b88030"/>
<rect x="393" y="315" width="7" height="5" rx="1" fill="#c8a050"/>
<rect x="408" y="330" width="7" height="5" rx="1" fill="#c09040"/>
<rect x="393" y="350" width="7" height="5" rx="1" fill="#c8a050"/>
<!-- Center area -->
<rect x="688" y="305" width="9" height="6" rx="1" fill="#c8a050"/>
<rect x="705" y="320" width="9" height="6" rx="1" fill="#b88030"/>
<rect x="688" y="340" width="9" height="6" rx="1" fill="#c09040"/>
<rect x="743" y="290" width="8" height="5" rx="1" fill="#c8a050"/>
<rect x="758" y="308" width="8" height="5" rx="1" fill="#c8a050"/>
<rect x="743" y="325" width="8" height="5" rx="1" fill="#b88030"/>
<!-- Right buildings -->
<rect x="928" y="285" width="9" height="6" rx="1" fill="#c8a050"/>
<rect x="945" y="300" width="9" height="6" rx="1" fill="#c09040"/>
<rect x="928" y="320" width="9" height="6" rx="1" fill="#c8a050"/>
<rect x="960" y="285" width="9" height="6" rx="1" fill="#b88030"/>
<rect x="988" y="298" width="8" height="5" rx="1" fill="#c8a050"/>
<rect x="1003" y="315" width="8" height="5" rx="1" fill="#c09040"/>
<rect x="1038" y="275" width="10" height="7" rx="1" fill="#c8a050"/>
<rect x="1055" y="290" width="10" height="7" rx="1" fill="#c8a050"/>
<rect x="1038" y="310" width="10" height="7" rx="1" fill="#b88030"/>
<rect x="1103" y="295" width="8" height="6" rx="1" fill="#c8a050"/>
<rect x="1148" y="315" width="9" height="6" rx="1" fill="#c09040"/>
<rect x="1258" y="295" width="8" height="6" rx="1" fill="#c8a050"/>
<rect x="1310" y="300" width="9" height="6" rx="1" fill="#c8a050"/>
<!-- Castle windows - arched shapes hint -->
<rect x="155" y="325" width="12" height="9" rx="3" fill="#b07828"/>
<rect x="178" y="325" width="12" height="9" rx="3" fill="#c08030"/>
<rect x="201" y="325" width="12" height="9" rx="3" fill="#b07828"/>
<!-- Cathedral rose window hint -->
<circle cx="217" cy="230" r="8" fill="none" stroke="#3a2e60" stroke-width="1.5"/>
<circle cx="217" cy="230" r="5" fill="#251d48" opacity="0.8"/>
</g>
<!-- Water/river base -->
<rect x="0" y="430" width="1440" height="70" fill="#0a0820" opacity="0.9"/>
<!-- Vltava river surface sheen -->
<path d="M0,435 Q360,425 720,432 Q1080,439 1440,430 L1440,500 L0,500Z"
fill="#080618" opacity="0.95"/>
</svg>
<!-- River with reflections -->
<div class="river" id="river"></div>
<!-- Diamond + sparkles -->
<div class="diamond-wrap" id="diamondWrap">
<div class="glow-halo"></div>
<div class="diamond-scene">
<canvas id="diamond" width="140" height="140"></canvas>
</div>
</div>
<!-- Title -->
<div class="title">Praha — Věčný Diamant</div>
<script>
// ── Stars ──────────────────────────────────────────────
const starsEl = document.getElementById('stars');
for (let i = 0; i < 200; i++) {
const s = document.createElement('div');
s.className = 'star';
const sz = Math.random() * 2.5 + 0.5;
s.style.cssText = `
width:${sz}px; height:${sz}px;
top:${Math.random()*65}%;
left:${Math.random()*100}%;
--dur:${(Math.random()*4+2).toFixed(1)}s;
--delay:${(Math.random()*6).toFixed(1)}s;
--peak:${(Math.random()*0.7+0.3).toFixed(2)};
`;
starsEl.appendChild(s);
}
// ── River reflections ──────────────────────────────────
const riverEl = document.getElementById('river');
for (let i = 0; i < 40; i++) {
const r = document.createElement('div');
r.className = 'reflection';
const h = Math.random() * 60 + 20;
r.style.cssText = `
left:${Math.random()*100}%;
height:${h}%;
--dur:${(Math.random()*2+1.5).toFixed(1)}s;
--delay:${(Math.random()*4).toFixed(1)}s;
`;
riverEl.appendChild(r);
}
// ── Diamond Canvas Renderer ────────────────────────────
const canvas = document.getElementById('diamond');
const ctx = canvas.getContext('2d');
const W = canvas.width, H = canvas.height;
const CX = W/2, CY = H/2;
let angle = 0;
let sparkleTimer = 0;
// Diamond geometry (brilliant cut top view projected to 3D)
function project(x, y, z, rotY, rotX=0.25) {
// Rotate around Y axis
const x1 = x * Math.cos(rotY) - z * Math.sin(rotY);
const z1 = x * Math.sin(rotY) + z * Math.cos(rotY);
// Slight X tilt
const y1 = y * Math.cos(rotX) - z1 * Math.sin(rotX);
const z2 = y * Math.sin(rotX) + z1 * Math.cos(rotX);
// Perspective
const fov = 300;
const scale = fov / (fov + z2 + 80);
return { x: CX + x1 * scale, y: CY + y1 * scale, z: z2, scale };
}
function lerp(a, b, t) { return a + (b - a) * t; }
function drawFace(pts2d, fill, stroke, alpha=1) {
ctx.globalAlpha = alpha;
ctx.beginPath();
ctx.moveTo(pts2d[0].x, pts2d[0].y);
for (let i = 1; i < pts2d.length; i++) ctx.lineTo(pts2d[i].x, pts2d[i].y);
ctx.closePath();
ctx.fillStyle = fill;
ctx.fill();
ctx.strokeStyle = stroke;
ctx.lineWidth = 0.7;
ctx.stroke();
ctx.globalAlpha = 1;
}
// Diamond 3D points
// Crown (top): table, then 8 bezel facets, 16 upper girdle
// Pavilion (bottom): 8 pavilion mains, 16 lower girdle, culet
const R = 48; // girdle radius
const TH = 12; // table half-size factor
const crownH = 18; // crown height
const pavH = 38; // pavilion depth
function getDiamondFaces(ang) {
const N = 8;
const angles = Array.from({length: N}, (_, i) => (Math.PI*2*i/N) - ang);
const angles2 = Array.from({length: N}, (_, i) => (Math.PI*2*(i+0.5)/N) - ang);
// Girdle ring
const girdleTop = angles.map(a => ({
x: R * Math.cos(a), y: -4, z: R * Math.sin(a)
}));
const girdleBot = angles.map(a => ({
x: R * Math.cos(a), y: 4, z: R * Math.sin(a)
}));
// Table: smaller octagon at top
const TR = R * 0.52;
const tableVerts = angles.map(a => ({
x: TR * Math.cos(a), y: -(crownH+4), z: TR * Math.sin(a)
}));
// Culet: bottom point
const culet = { x: 0, y: pavH, z: 0 };
// Star facets (connect table corners to girdle points)
const starFacets = angles.map((_, i) => {
const i2 = (i+1) % N;
return [tableVerts[i], tableVerts[i2], girdleTop[i2], girdleTop[i]];
});
// Bezel facets (connect table to intermediate girdle)
const girdleMid = angles2.map(a => ({
x: R * Math.cos(a), y: -(crownH*0.1), z: R * Math.sin(a)
}));
const bezelFacets = angles.map((_, i) => {
const i2 = (i+1) % N;
const m = i;
return [tableVerts[i], girdleMid[m], girdleTop[i2], tableVerts[i2]];
// simplified: just bezel main
});
// Kite/main bezel facets (table mid to girdle)
const kite = angles2.map((_, i) => {
const i1 = i; const i2 = (i+1) % N;
return [tableVerts[i1], tableVerts[i2], girdleTop[i2]];
});
// Pavilion main facets
const pavFacets = angles.map((_, i) => {
const i2 = (i+1) % N;
return [girdleBot[i], girdleBot[i2], culet];
});
// Lower girdle facets
const pavHalf = angles2.map((a, i) => {
const gm = { x: R * Math.cos(a), y: 4, z: R * Math.sin(a) };
const i1 = i; const i2 = (i+1) % N;
return [girdleBot[i1], gm, girdleBot[i2]];
});
// Table face
const table = [tableVerts];
return { tableVerts, girdleTop, girdleBot, girdleMid, culet,
starFacets, bezelFacets, kite, pavFacets, pavHalf, table,
angles, N, R };
}
// Color palette for facets
const palette = {
table: '#e8f4ff',
starLight: '#c5e3ff',
starDark: '#8ab5e8',
bezelA: '#d0ecff',
bezelB: '#a8d4f5',
pavLight: '#b8d8f8',
pavDark: '#7aade0',
girdle: '#d8eeff',
edge: 'rgba(200,230,255,0.5)',
edgeDark: 'rgba(100,160,220,0.6)',
};
function facetColor(base, shade, flashAmt) {
// Parse hex
const r = parseInt(base.slice(1,3),16);
const g = parseInt(base.slice(3,5),16);
const b = parseInt(base.slice(5,7),16);
const fr = Math.min(255, r + flashAmt * 80);
const fg = Math.min(255, g + flashAmt * 80);
const fb = Math.min(255, b + flashAmt * 100);
const brightness = lerp(0.6, 1.0, shade);
return `rgb(${Math.round(fr*brightness)},${Math.round(fg*brightness)},${Math.round(fb*brightness)})`;
}
// Sparkle DOM elements
const wrap = document.getElementById('diamondWrap');
const sparklePool = [];
for (let i = 0; i < 12; i++) {
const sp = document.createElement('div');
sp.className = 'sparkle';
const sizes = ['10px','12px','14px','8px','16px'];
sp.style.setProperty('--size', sizes[i % sizes.length]);
sp.style.setProperty('--dur', `${(Math.random()*