*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
body{background:#F5EDE3;color:rgba(61,43,43,0.9);font-family:'DM Sans',sans-serif;font-weight:400;font-size:clamp(1rem,1.2vw,1.15rem);line-height:1.72;overflow-x:hidden}

/* Paper grain */
body::before{content:'';position:fixed;inset:0;z-index:0;pointer-events:none;opacity:0.025;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='200' height='200' filter='url(%23n)' opacity='0.1'/%3E%3C/svg%3E")}

/* Moments */
.moment{position:relative;z-index:1}

/* Hero impression */
.moment-impression{min-height:100vh;display:flex;align-items:center;justify-content:center}
.hero-bowl{width:clamp(300px,70vw,800px);min-height:clamp(250px,40vh,450px);border-radius:50%;box-shadow:inset 8px 8px 16px rgba(120,40,30,0.15),inset -8px -8px 16px rgba(255,248,240,0.9);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(32px,6vw,64px);position:relative;opacity:0;animation:bowlAppear 1.2s ease 0.6s forwards}
@keyframes bowlAppear{to{opacity:1}}

.fern-svg{width:clamp(100px,15vw,160px);margin-bottom:clamp(16px,3vw,32px)}
.fern-path,.fern-frond{stroke-dasharray:300;stroke-dashoffset:300;animation:drawFern 3s ease forwards 1s}
@keyframes drawFern{to{stroke-dashoffset:0}}

.hero-title{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:clamp(3rem,8vw,7rem);letter-spacing:0.15em;color:#6B1D2A;text-align:center;line-height:1}
.hero-title .char{display:inline-block;opacity:0;animation:charPush 0.3s ease forwards}
@keyframes charPush{0%{opacity:0;text-shadow:8px 8px 20px rgba(150,130,110,0.5),-8px -8px 20px rgba(255,253,249,1)}100%{opacity:1;text-shadow:none}}

.hero-whisper{font-family:'Cormorant Garamond',serif;font-weight:300;font-style:italic;font-size:clamp(1rem,1.8vw,1.4rem);color:rgba(107,29,42,0.7);margin-top:8px}

/* Card grid */
.card-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:2.5rem;padding:clamp(40px,6vw,80px) 6vw;max-width:1400px;margin:0 auto}
.span-2{grid-column:span 2}

/* Neomorphic cards */
.neo-card{padding:clamp(24px,3vw,40px);position:relative;transition:box-shadow 0.6s ease}
.neo-card.raised{box-shadow:0 0 0 transparent,0 0 0 transparent;background:#F5EDE3}
.neo-card.raised.visible{box-shadow:8px 8px 20px rgba(150,130,110,0.25),-8px -8px 20px rgba(255,253,249,0.85)}
.neo-card.raised:hover{box-shadow:12px 12px 28px rgba(150,130,110,0.35),-12px -12px 28px rgba(255,253,249,0.95);transition:box-shadow 0.15s ease}

.neo-card.recessed{background:#F5EDE3}
.neo-card.recessed.visible{box-shadow:inset 6px 6px 14px rgba(150,130,110,0.2),inset -6px -6px 14px rgba(255,253,249,0.8)}
.neo-card.recessed:hover{box-shadow:inset 3px 3px 8px rgba(150,130,110,0.12),inset -3px -3px 8px rgba(255,253,249,0.6);transition:box-shadow 0.15s ease}

/* Blob shapes */
.blob-1{border-radius:40% 60% 55% 45% / 55% 45% 60% 40%}
.blob-2{border-radius:50% 50% 45% 55% / 45% 55% 50% 50%}
.blob-3{border-radius:55% 45% 50% 50% / 50% 50% 55% 45%}
.blob-4{border-radius:45% 55% 60% 40% / 60% 40% 45% 55%}
.blob-5{border-radius:50% 50% 40% 60% / 55% 45% 55% 45%}
.blob-6{border-radius:60% 40% 50% 50% / 45% 55% 50% 50%}
.blob-7{border-radius:45% 55% 55% 45% / 50% 50% 45% 55%}
.blob-8{border-radius:50% 50% 45% 55% / 55% 45% 50% 50%}
.blob-9{border-radius:55% 45% 40% 60% / 45% 55% 60% 40%}

.neo-card h2{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:clamp(1.4rem,3vw,2.4rem);letter-spacing:0.15em;color:#6B1D2A;margin-bottom:8px}
.neo-card p{color:rgba(61,43,43,0.9);max-width:45ch}
.card-accent{position:absolute;top:clamp(12px,2vw,20px);right:clamp(12px,2vw,20px);width:40px;height:40px}

/* Pause section */
.moment-pause{min-height:60vh;display:flex;align-items:center;justify-content:center}
.pause-panel{text-align:center;padding:clamp(32px,6vw,64px)}
.pause-aside{font-family:'Cormorant Garamond',serif;font-weight:300;font-style:italic;font-size:clamp(1.1rem,1.8vw,1.5rem);color:rgba(107,29,42,0.7);margin-bottom:clamp(24px,4vw,48px);max-width:40ch;margin-left:auto;margin-right:auto}
.stone-cluster{box-shadow:inset 4px 4px 10px rgba(150,130,110,0.15),inset -4px -4px 10px rgba(255,253,249,0.7);border-radius:50%;width:clamp(180px,30vw,280px);height:clamp(80px,12vw,120px);margin:0 auto;display:flex;align-items:center;justify-content:center}
.stones-svg{width:80%}

/* Closing */
.moment-closing{min-height:50vh;display:flex;align-items:center;justify-content:center}
.footer-bowl{width:clamp(280px,60vw,700px);min-height:clamp(200px,30vh,350px);border-radius:50%;box-shadow:inset 8px 8px 16px rgba(120,40,30,0.12),inset -8px -8px 16px rgba(255,248,240,0.85);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:clamp(32px,6vw,64px);text-align:center}
.branch-svg{width:clamp(160px,25vw,280px);margin-bottom:clamp(16px,3vw,24px)}
.branch-path{stroke-dasharray:400;stroke-dashoffset:400;animation:drawBranch 2.5s ease forwards}
@keyframes drawBranch{to{stroke-dashoffset:0}}
.closing-text{font-family:'DM Sans',sans-serif;font-size:clamp(0.85rem,1vw,0.95rem);color:rgba(61,43,43,0.65);max-width:35ch;margin-bottom:clamp(16px,3vw,24px)}
.closing-brand{font-family:'Bebas Neue',sans-serif;font-weight:400;font-size:clamp(1.2rem,2vw,1.6rem);letter-spacing:0.15em;color:#6B1D2A;animation:finalPulse 4s ease-in-out 1}
@keyframes finalPulse{0%,100%{opacity:0.6}50%{opacity:1}}

/* Reveal */
[data-reveal]{opacity:0;transition:opacity 0.6s ease}
[data-reveal].visible{opacity:1}

/* Responsive */
@media(max-width:768px){
.card-grid{grid-template-columns:1fr;padding:clamp(24px,4vw,40px) clamp(16px,4vw,32px)}
.span-2{grid-column:span 1}
.hero-bowl,.footer-bowl{width:85vw;border-radius:40%}
}
