@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap');

* { box-sizing: border-box; }
body { margin: 0; font-family: 'DM Sans', sans-serif; }
.scene { min-height: 100vh; background: #f0f2dc; overflow: hidden; position: relative; display: grid; place-items: center; color: #233d31; }
.orb { position: absolute; border-radius: 50%; filter: blur(45px); opacity: .8; animation: drift 12s ease-in-out infinite alternate; }
.orb-one { width: 70vw; height: 70vw; background: #b8df7a; top: -35%; right: -20%; }
.orb-two { width: 60vw; height: 60vw; background: #91c7ad; bottom: -45%; left: -20%; animation-delay: -6s; }
.grain { position: absolute; inset: 0; opacity: .17; background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' opacity='.5' filter='url(%23n)'/%3E%3C/svg%3E"); }
.content { text-align: center; position: relative; padding: 64px 24px; z-index: 1; }
.eyebrow { font-size: 9px; letter-spacing: .24em; font-weight: 600; }
h1 { font-family: 'Instrument Serif', Georgia, serif; font-size: clamp(42px, 8vw, 84px); line-height: .98; font-weight: 400; letter-spacing: -.035em; margin: 26px 0 18px; }
h1 em { font-weight: 400; }
p { font-size: 12px; opacity: .65; }
button { border: 1px solid #233d3133; background: #ffffff45; color: inherit; padding: 12px 18px; border-radius: 24px; margin-top: 20px; font: 500 11px 'DM Sans', sans-serif; cursor: pointer; backdrop-filter: blur(10px); }
button span { margin-left: 20px; }
button:hover { background: #ffffff80; }
footer { position: absolute; bottom: 18px; left: 22px; right: 22px; display: flex; justify-content: space-between; font-size: 7px; letter-spacing: .13em; opacity: .55; }
@keyframes drift { to { transform: translate(12%, 18%) scale(1.2); } }
@media (prefers-reduced-motion: reduce) { .orb { animation: none; } }