/* Little Dream Spaces — homepage */

/* Hero */
.h-hero{position:relative;overflow:hidden;padding:4.5rem 0 5.5rem;background:
  radial-gradient(60% 70% at 85% 30%,rgba(243,217,168,.55),transparent 65%),
  radial-gradient(50% 60% at 0% 100%,rgba(143,163,138,.18),transparent 60%),
  var(--ld-linen)}
.h-hero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.35;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .4 0 0 0 0 .32 0 0 0 0 .28 0 0 0 .18 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.h-hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr 1fr;gap:3rem;align-items:center}
.h-hero h1{font-family:var(--ld-serif);font-weight:300;font-size:clamp(2.6rem,5.6vw,4.6rem);line-height:1.02;letter-spacing:-.03em;color:var(--ld-slate);margin:1rem 0 1.4rem}
.h-hero h1 em{font-style:italic;font-weight:400;color:var(--ld-clay)}
.h-hero .h-lede{font-size:1.12rem;color:var(--ld-muted);max-width:32rem;margin:0 0 2rem}
.h-actions{display:flex;flex-wrap:wrap;gap:.75rem}
.h-tags{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:2.25rem;padding:0;list-style:none}
.h-tags li{font-size:.78rem;font-weight:600;color:var(--ld-slate);background:rgba(255,255,255,.6);border:1px solid var(--ld-line);padding:.35rem .8rem;border-radius:999px}

.h-collage{position:relative;height:560px}
.h-collage a{position:absolute;display:block;border-radius:1.1rem;overflow:hidden;box-shadow:0 30px 60px -30px rgba(47,58,74,.55),0 0 0 6px #fff;transition:transform .5s cubic-bezier(.2,.8,.2,1)}
.h-collage img{width:100%;height:auto}
.h-collage .c1{width:52%;left:0;top:40px;transform:rotate(-4deg);z-index:2}
.h-collage .c2{width:48%;right:2%;top:0;transform:rotate(3deg);z-index:1}
.h-collage .c3{width:42%;left:34%;bottom:-30px;transform:rotate(-1deg);z-index:3}
.h-collage a:hover{transform:rotate(0) translateY(-8px) scale(1.02);z-index:4}
.h-glow{position:absolute;width:180px;height:180px;right:-30px;bottom:60px;border-radius:50%;background:radial-gradient(circle,rgba(255,226,170,.95),rgba(243,217,168,0) 70%);filter:blur(4px);animation:h-breathe 6s ease-in-out infinite;z-index:0}
.h-sticker{position:absolute;left:-18px;bottom:70px;z-index:5;background:var(--ld-slate);color:var(--ld-cream);font-family:var(--ld-serif);font-style:italic;font-size:1rem;padding:.75rem 1.1rem;border-radius:999px;transform:rotate(-6deg);box-shadow:0 14px 30px -16px rgba(47,58,74,.8)}
@keyframes h-breathe{0%,100%{transform:scale(1);opacity:.85}50%{transform:scale(1.18);opacity:1}}

/* Load-in stagger */
.h-in{opacity:0;transform:translateY(18px);animation:h-rise .9s cubic-bezier(.2,.8,.2,1) forwards}
.h-in.d1{animation-delay:.08s}.h-in.d2{animation-delay:.18s}.h-in.d3{animation-delay:.3s}.h-in.d4{animation-delay:.42s}.h-in.d5{animation-delay:.55s}
@keyframes h-rise{to{opacity:1;transform:none}}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s cubic-bezier(.2,.8,.2,1),transform .9s cubic-bezier(.2,.8,.2,1)}
.reveal.is-in{opacity:1;transform:none}

/* Featured pick */
.h-feature{position:relative;background:var(--ld-slate);color:#e7e9ee;padding:6rem 0;overflow:hidden}
.h-feature::before{content:"";position:absolute;width:640px;height:640px;left:-180px;top:-200px;border-radius:50%;background:radial-gradient(circle,rgba(243,217,168,.22),transparent 65%)}
.h-feature-grid{position:relative;display:grid;grid-template-columns:.85fr 1.15fr;gap:4rem;align-items:center}
.h-feature-media{position:relative;max-width:420px;justify-self:center}
.h-feature-media img{border-radius:1.25rem;box-shadow:0 40px 80px -40px rgba(0,0,0,.7)}
.h-feature-media .h-badge{position:absolute;top:1.25rem;right:-1.25rem;background:var(--ld-glow);color:var(--ld-slate);font-weight:700;font-size:.78rem;letter-spacing:.08em;text-transform:uppercase;padding:.55rem .9rem;border-radius:.6rem;transform:rotate(4deg)}
.h-feature .ld-eyebrow{color:var(--ld-glow)}
.h-feature .ld-h2{color:#fff}
.h-feature .ld-h2 em{color:var(--ld-glow)}
.h-feature p{color:#b9c1cc;font-size:1.05rem;max-width:34rem}
.h-checks{list-style:none;padding:0;margin:1.75rem 0 2.25rem;display:grid;gap:.85rem}
.h-checks li{display:grid;grid-template-columns:28px 1fr;gap:.75rem;align-items:start;color:#e7e9ee}
.h-checks svg{width:28px;height:28px;color:var(--ld-glow)}
.h-feature .ld-btn-primary{background:var(--ld-glow);color:var(--ld-slate)}
.h-feature .ld-btn-ghost{color:#fff;box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.35)}
.h-feature .ld-btn-ghost:hover{background:rgba(255,255,255,.08)}
.h-micro{font-size:.78rem!important;color:#8b97a6!important;margin-top:1.1rem}

/* Boards */
.h-boards{padding:6.5rem 0;background:var(--ld-cream)}
.h-boards-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:1.5rem;margin-bottom:3rem}
.h-boards-head p{max-width:26rem;color:var(--ld-muted);margin:0}
.h-board-grid{display:grid;grid-template-columns:repeat(6,1fr);grid-auto-rows:minmax(150px,auto);gap:1rem}
.h-board{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem;padding:1.4rem;border-radius:var(--ld-radius);text-decoration:none;color:var(--ld-slate);background:var(--ld-linen);border:1px solid var(--ld-line);grid-column:span 2;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s ease,background-color .3s ease;overflow:hidden}
.h-board:hover{transform:translateY(-4px);box-shadow:0 24px 44px -30px rgba(47,58,74,.6)}
.h-board:focus-visible{outline:2px solid var(--ld-clay);outline-offset:3px}
.h-board-icon{width:46px;height:46px;border-radius:14px;display:grid;place-items:center;background:#fff;color:var(--ld-clay-deep)}
.h-board-icon svg{width:24px;height:24px}
.h-board h3{font-family:var(--ld-serif);font-weight:500;font-size:1.3rem;line-height:1.15;margin:0 0 .3rem}
.h-board p{margin:0;font-size:.88rem;color:var(--ld-muted)}
.h-board .h-arrow{position:absolute;top:1.4rem;right:1.4rem;width:20px;height:20px;color:var(--ld-taupe);transition:transform .3s ease,color .3s ease}
.h-board:hover .h-arrow{transform:translate(3px,-3px);color:var(--ld-clay)}
.h-board.wide{grid-column:span 3}
.h-board.tall{grid-row:span 2}
.h-board.sage{background:#e7ece3}
.h-board.sand{background:#efe4d6}
.h-board.ink{background:var(--ld-slate);color:#fff;border-color:transparent}
.h-board.ink p{color:#b9c1cc}
.h-board.ink .h-board-icon{background:rgba(243,217,168,.15);color:var(--ld-glow)}
.h-board.ink .h-arrow{color:var(--ld-glow)}
.h-board.photo{padding:0;justify-content:flex-end;color:#fff;border:0}
.h-board.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 70%;transition:transform .8s cubic-bezier(.2,.8,.2,1)}
.h-board.photo:hover img{transform:scale(1.05)}
.h-board.photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(38,34,42,0) 35%,rgba(38,34,42,.82))}
.h-board.photo .h-board-body{position:relative;z-index:1;padding:1.4rem}
.h-board.photo p{color:#e5e0dc}
.h-board.photo .h-arrow{z-index:1;color:#fff}
.h-pill{display:inline-block;font-family:var(--ld-sans);font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;background:var(--ld-glow);color:var(--ld-slate);padding:.25rem .55rem;border-radius:.4rem;margin-bottom:.6rem}

/* Pin wall */
.h-pins{padding:6rem 0;background:linear-gradient(180deg,var(--ld-linen),var(--ld-cream))}
.h-pins-head{text-align:left;max-width:40rem;margin-bottom:2.75rem}
.h-pins-head p{color:var(--ld-muted)}
.h-pin-row{display:grid;grid-template-columns:repeat(5,1fr);gap:1.1rem;align-items:start}
.h-pin{position:relative;display:block;border-radius:1rem;overflow:hidden;background:var(--ld-sand);aspect-ratio:736/1008;box-shadow:0 18px 36px -26px rgba(47,58,74,.55)}
.h-pin:nth-child(even){margin-top:2.5rem}
.h-pin img{width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.8,.2,1)}
.h-pin-over{position:absolute;inset:auto .75rem .75rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;background:rgba(251,248,243,.94);color:var(--ld-slate);font-size:.8rem;font-weight:700;padding:.6rem .8rem;border-radius:.7rem;opacity:0;transform:translateY(10px);transition:opacity .3s ease,transform .3s ease}
.h-pin-over svg{width:16px;height:16px;flex-shrink:0}
.h-pin:hover img{transform:scale(1.04)}
.h-pin:hover .h-pin-over,.h-pin:focus-visible .h-pin-over{opacity:1;transform:none}
.h-pin:focus-visible{outline:2px solid var(--ld-clay);outline-offset:3px}

/* How we pick */
.h-how{padding:6rem 0;background:var(--ld-cream)}
.h-how-grid{display:grid;grid-template-columns:1fr 1.3fr;gap:4rem;align-items:start}
.h-how-steps{list-style:none;margin:0;padding:0;display:grid;gap:0;counter-reset:s}
.h-how-steps li{counter-increment:s;display:grid;grid-template-columns:72px 1fr;gap:1rem;padding:1.6rem 0;border-top:1px solid var(--ld-line)}
.h-how-steps li:last-child{border-bottom:1px solid var(--ld-line)}
.h-how-steps li::before{content:counter(s,decimal-leading-zero);font-family:var(--ld-serif);font-style:italic;font-size:2rem;line-height:1;color:var(--ld-clay)}
.h-how-steps h3{font-family:var(--ld-serif);font-weight:500;font-size:1.25rem;color:var(--ld-slate);margin:0 0 .35rem}
.h-how-steps p{margin:0;color:var(--ld-muted);font-size:.96rem}
.h-how-aside p{color:var(--ld-muted);margin-top:1.2rem;max-width:26rem}

/* Follow CTA */
.h-follow{padding:0 0 6rem;background:var(--ld-cream)}
.h-follow-card{position:relative;overflow:hidden;display:grid;grid-template-columns:1.4fr auto;gap:2rem;align-items:center;padding:3rem;border-radius:1.75rem;background:
  radial-gradient(70% 120% at 100% 0%,rgba(243,217,168,.6),transparent 60%),#efe4d6}
.h-follow-card h2{font-family:var(--ld-serif);font-weight:400;font-size:clamp(1.7rem,3vw,2.4rem);line-height:1.1;letter-spacing:-.02em;color:var(--ld-slate);margin:0 0 .5rem}
.h-follow-card h2 em{font-style:italic;color:var(--ld-clay)}
.h-follow-card p{margin:0;color:var(--ld-muted)}
.h-follow-card .ld-btn-primary{background:var(--ld-clay)}
.h-follow-card .ld-btn-primary:hover{background:var(--ld-clay-deep)}

/* Responsive */
@media (max-width:980px){
  .h-hero-grid,.h-feature-grid,.h-how-grid{grid-template-columns:1fr;gap:3rem}
  .h-collage{height:480px;max-width:520px;margin:0 auto;width:100%}
  .h-feature-media{max-width:380px}
  .h-board-grid{grid-template-columns:repeat(2,1fr)}
  .h-board,.h-board.wide{grid-column:span 1}
  .h-board.tall{grid-row:span 1;min-height:260px}
  .h-pin-row{grid-template-columns:repeat(3,1fr)}
  .h-pin:nth-child(n+4){display:none}
}
@media (max-width:600px){
  .h-hero{padding:3rem 0 4rem}
  .h-collage{height:400px}
  .h-sticker{left:0}
  .h-board-grid{grid-template-columns:1fr}
  .h-pin-row{grid-template-columns:repeat(2,1fr)}
  .h-pin:nth-child(n+3){display:none}
  .h-pin-over{opacity:1;transform:none}
  .h-follow-card{grid-template-columns:1fr;padding:2rem}
  .h-feature{padding:4.5rem 0}
  .h-feature-media .h-badge{right:.75rem}
}
@media (prefers-reduced-motion:reduce){.h-in,.reveal{opacity:1;transform:none}}
