 :root{
      --bg:#f6f1ea;
      --bg-soft:#efe7dd;
      --bg-card:#f3ece4;
      --text:#191919;
      --muted:#6e665e;
      --line:rgba(25,25,25,.10);
      --white:#ffffff;
      --max:1360px;
      --pad:clamp(18px, 3vw, 40px);
      --serif:"Cormorant Garamond", serif;
      --sans:"IBM Plex Sans", sans-serif;
      --radius:20px;
      --ease:cubic-bezier(.22,.61,.36,1);
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      background:var(--bg);
      color:var(--text);
      font-family:var(--sans);
      -webkit-font-smoothing:antialiased;
      text-rendering:optimizeLegibility;
    }

    img{
      max-width:100%;
      display:block;
    }

    a{
      color:inherit;
      text-decoration:none;
    }

    .container{
      width:min(var(--max), calc(100% - 2*var(--pad)));
      margin:0 auto;
    }

    .site-header{
      position:sticky;
      top:0;
      z-index:50;
      backdrop-filter:blur(12px);
      background:rgba(246,241,234,.82);
      border-bottom:1px solid var(--line);
    }

    .nav-bar{
      min-height:78px;
      display:flex;
      align-items:center;
      justify-content:space-between;
      gap:20px;
      position:relative;
    }

    .brand{
      display:flex;
      align-items:baseline;
      gap:10px;
      font-size:.82rem;
      letter-spacing:.22em;
      text-transform:uppercase;
      white-space:nowrap;
    }

    .brand b{
      font-weight:600;
      letter-spacing:.08em;
    }

    .brand span{
      font-weight:400;
      color:rgba(25,25,25,.74);
    }

    .nav{
      display:flex;
      align-items:center;
      gap:24px;
    }

    .nav a{
      font-size:.92rem;
      color:var(--muted);
      transition:.25s ease;
    }

    .nav a:hover{
      color:var(--text);
    }

    .nav-cta{
      border:1px solid var(--text);
      padding:11px 16px;
      border-radius:999px;
      color:var(--text)!important;
    }

    .nav-toggle{
      display:none;
      background:none;
      border:none;
      font-size:1.3rem;
      color:var(--text);
      cursor:pointer;
      padding:0;
    }

    .hero{
      position:relative;
      min-height:92vh;
      display:flex;
      align-items:end;
      overflow:hidden;
      background:
        linear-gradient(
          180deg,
          rgba(246,241,234,.78) 0%,
          rgba(244,237,229,.58) 28%,
          rgba(240,231,221,.36) 58%,
          rgba(236,227,217,.50) 100%
        ),
        url("https://xcandlesdesignstudio.com/weddings/index/european-reverie-wedding-editorial-colombia-xcandles.jpg") center center / cover no-repeat;
    }

    .hero::after{
      content:"";
      position:absolute;
      inset:0;
      background:
        linear-gradient(
          to right,
          rgba(255,250,245,.34) 0%,
          rgba(246,239,231,.14) 38%,
          rgba(245,238,230,0) 72%
        );
      pointer-events:none;
    }

    .hero__inner{
      position:relative;
      z-index:1;
      width:min(980px, calc(100% - 2*var(--pad)));
      margin:0 auto;
      padding:0 0 clamp(38px, 7vw, 84px);
      color:var(--text);
    }

    .kicker{
      display:inline-block;
      margin-bottom:18px;
      font-size:.78rem;
      letter-spacing:.26em;
      text-transform:uppercase;
      color:rgba(25,25,25,.62);
    }

    .hero h1{
      margin:0;
      max-width:900px;
      font-family:var(--serif);
      font-size:clamp(3.2rem, 7vw, 7rem);
      line-height:.92;
      font-weight:400;
      letter-spacing:-.02em;
      color:var(--text);
    }

    .hero__text{
      margin-top:22px;
      max-width:560px;
      font-size:1rem;
      line-height:1.7;
      color:rgba(25,25,25,.74);
    }

    .hero__actions{
      display:flex;
      flex-wrap:wrap;
      gap:14px;
      margin-top:30px;
    }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:48px;
      padding:0 18px;
      border-radius:999px;
      border:1px solid rgba(25,25,25,.22);
      color:var(--text);
      background:rgba(255,255,255,.22);
      backdrop-filter:blur(6px);
      font-size:.9rem;
      letter-spacing:.04em;
      text-transform:uppercase;
      transition:.35s var(--ease);
    }

    .btn:hover{
      background:rgba(255,255,255,.40);
      transform:translateY(-1px);
    }

    .btn--ghost{
      border-color:rgba(25,25,25,.14);
      color:rgba(25,25,25,.70);
      background:rgba(255,255,255,.10);
    }

    .section{
      padding:clamp(56px, 8vw, 110px) 0;
    }

    .section--tight{
      padding-top:44px;
    }

    .eyebrow{
      margin-bottom:18px;
      font-size:.76rem;
      letter-spacing:.24em;
      text-transform:uppercase;
      color:var(--muted);
    }

    .intro{
      display:grid;
      grid-template-columns:1.15fr .85fr;
      gap:50px;
      align-items:start;
      border-top:1px solid var(--line);
      padding-top:34px;
    }

    .intro__title{
      margin:0;
      font-family:var(--serif);
      font-weight:400;
      line-height:1;
      letter-spacing:-.02em;
      font-size:clamp(2.2rem, 4.2vw, 4.5rem);
    }

    .intro__text{
      margin:0;
      color:var(--muted);
      font-size:1rem;
      line-height:1.8;
      max-width:530px;
    }

    .feature-strip{
      display:grid;
      grid-template-columns:1.2fr .8fr;
      gap:24px;
      align-items:stretch;
    }

    .feature-card{
      position:relative;
      overflow:hidden;
      border-radius:var(--radius);
      min-height:580px;
      background:#ddd;
    }

    .feature-card img{
      width:100%;
      height:100%;
      object-fit:cover;
      transform:scale(1.04);
      transition:1.2s var(--ease);
      filter:saturate(.96);
    }

    .feature-card:hover img{
      transform:scale(1.08);
    }

    .feature-card__overlay{
      position:absolute;
      inset:auto 0 0 0;
      padding:30px 28px;
      background:linear-gradient(to top, rgba(28,21,18,.48), rgba(28,21,18,0));
      color:#fff;
    }

    .feature-card__title{
      font-family:var(--serif);
      font-size:2rem;
      line-height:1;
      margin:0 0 10px;
      font-weight:400;
    }

    .feature-card__desc{
      margin:0;
      max-width:520px;
      color:rgba(255,255,255,.88);
      line-height:1.7;
      font-size:.96rem;
    }

    .quote-box{
      background:var(--bg-soft);
      border-radius:var(--radius);
      padding:34px 28px;
      display:flex;
      flex-direction:column;
      justify-content:space-between;
      min-height:580px;
      border:1px solid rgba(25,25,25,.06);
    }

    .quote-box__big{
      margin:0;
      font-family:var(--serif);
      font-size:clamp(2rem, 3.1vw, 3.4rem);
      line-height:1;
      font-weight:400;
      letter-spacing:-.02em;
    }

    .quote-box__small{
      margin:28px 0 0;
      color:var(--muted);
      line-height:1.8;
      font-size:.98rem;
    }

    .albums-head{
      display:grid;
      grid-template-columns:1fr auto;
      gap:20px;
      align-items:end;
      margin-bottom:28px;
    }

    .albums-title{
      margin:0;
      font-family:var(--serif);
      font-weight:400;
      font-size:clamp(2.2rem, 4vw, 4rem);
      line-height:1;
      letter-spacing:-.02em;
    }

    .albums-sub{
      margin:10px 0 0;
      color:var(--muted);
      line-height:1.7;
      max-width:560px;
    }

    .album-grid{
      display:grid;
      grid-template-columns:repeat(2, minmax(0,1fr));
      gap:26px;
    }

    .album-card{
      position:relative;
      display:block;
      overflow:hidden;
      border-radius:20px;
      background:#ddd;
      min-height:640px;
      isolation:isolate;
    }

    .album-card__image{
      position:absolute;
      inset:0;
    }

    .album-card__image img{
      width:100%;
      height:100%;
      object-fit:cover;
      transition:1.1s var(--ease);
      transform:scale(1.03);
      filter:saturate(.96);
    }

    .album-card:hover .album-card__image img{
      transform:scale(1.08);
    }

    .album-card__shade{
      position:absolute;
      inset:0;
      background:
        linear-gradient(to top, rgba(28,21,18,.62), rgba(28,21,18,.08) 42%, rgba(28,21,18,.06));
      z-index:1;
    }

    .album-card__content{
      position:absolute;
      inset:auto 0 0 0;
      z-index:2;
      padding:28px;
      color:#fff;
    }

    .album-card__number{
      font-size:.76rem;
      letter-spacing:.22em;
      text-transform:uppercase;
      opacity:.84;
      margin-bottom:12px;
    }

    .album-card__title{
      margin:0 0 12px;
      font-family:var(--serif);
      font-size:clamp(2rem, 3vw, 3rem);
      line-height:.95;
      font-weight:400;
      letter-spacing:-.02em;
    }

    .album-card__text{
      margin:0 0 22px;
      max-width:480px;
      color:rgba(255,255,255,.88);
      line-height:1.75;
      font-size:.96rem;
    }

    .album-card__link{
      display:inline-flex;
      align-items:center;
      gap:8px;
      font-size:.85rem;
      letter-spacing:.14em;
      text-transform:uppercase;
      border-bottom:1px solid rgba(255,255,255,.6);
      padding-bottom:4px;
    }

    .manifesto{
      display:grid;
      grid-template-columns:.9fr 1.1fr;
      gap:38px;
      align-items:center;
      border-top:1px solid var(--line);
      border-bottom:1px solid var(--line);
      padding:38px 0;
    }

    .manifesto__small{
      font-size:.8rem;
      letter-spacing:.24em;
      text-transform:uppercase;
      color:var(--muted);
      margin-bottom:16px;
    }

    .manifesto__big{
      margin:0;
      font-family:var(--serif);
      font-weight:400;
      font-size:clamp(2.1rem, 4vw, 4.4rem);
      line-height:1;
      letter-spacing:-.02em;
    }

    .manifesto__text{
      margin:0;
      color:var(--muted);
      line-height:1.9;
      max-width:620px;
    }

    .cta{
      text-align:center;
      background:linear-gradient(to bottom, rgba(255,255,255,.12), rgba(255,255,255,.34));
      border-radius:22px;
      padding:clamp(34px, 6vw, 70px) clamp(20px, 4vw, 36px);
      border:1px solid rgba(25,25,25,.08);
    }

    .cta h2{
      margin:0;
      font-family:var(--serif);
      font-size:clamp(2.2rem, 4vw, 4rem);
      line-height:1;
      font-weight:400;
      letter-spacing:-.02em;
    }

    .cta p{
      max-width:640px;
      margin:18px auto 0;
      color:var(--muted);
      line-height:1.8;
    }

    .btn-dark{
      display:inline-flex;
      margin-top:24px;
      min-height:50px;
      align-items:center;
      justify-content:center;
      padding:0 20px;
      border-radius:999px;
      border:1px solid var(--text);
      color:var(--text);
      text-transform:uppercase;
      font-size:.88rem;
      letter-spacing:.12em;
      transition:.35s var(--ease);
    }

    .btn-dark:hover{
      transform:translateY(-1px);
      background:rgba(25,25,25,.03);
    }

    .site-footer{
      padding:26px 0 40px;
    }

    .site-footer__inner{
      border-top:1px solid var(--line);
      padding-top:18px;
      display:flex;
      justify-content:space-between;
      gap:18px;
      flex-wrap:wrap;
      color:var(--muted);
      font-size:.84rem;
    }

    .reveal{
      opacity:0;
      transform:translateY(38px);
      transition:1s var(--ease);
      will-change:transform, opacity;
    }

    .reveal.is-visible{
      opacity:1;
      transform:translateY(0);
    }

    .reveal-left{
      transform:translateX(-40px);
    }

    .reveal-right{
      transform:translateX(40px);
    }

    .reveal-left.is-visible,
    .reveal-right.is-visible{
      transform:translateX(0);
    }

    @media (max-width: 980px){
      .intro,
      .feature-strip,
      .manifesto,
      .albums-head{
        grid-template-columns:1fr;
      }

      .album-grid{
        grid-template-columns:1fr;
      }

      .feature-card,
      .quote-box,
      .album-card{
        min-height:auto;
      }

      .feature-card{
        min-height:460px;
      }

      .quote-box{
        min-height:unset;
      }
    }

    @media (max-width: 760px){
      .nav-toggle{
        display:block;
      }

      .nav{
        position:absolute;
        top:100%;
        left:0;
        right:0;
        display:none;
        flex-direction:column;
        align-items:flex-start;
        gap:0;
        padding:12px var(--pad) 18px;
        background:rgba(246,241,234,.98);
        border-bottom:1px solid var(--line);
      }

      .nav.open{
        display:flex;
      }

      .nav a{
        width:100%;
        padding:12px 0;
      }

      .nav-cta{
        margin-top:8px;
        text-align:center;
      }

      .hero{
        min-height:84vh;
        align-items:end;
      }

      .hero__text{
        font-size:.95rem;
      }

      .album-card{
        min-height:520px;
      }

      .album-card__content{
        padding:22px;
      }

      .feature-card__overlay{
        padding:22px;
      }
    }

    @media (max-width: 480px){
      .hero h1{
        font-size:3.1rem;
      }

      .album-card{
        min-height:460px;
      }

      .album-card__title{
        font-size:2.1rem;
      }

      .feature-card{
        min-height:380px;
      }

      .quote-box__big{
        font-size:2.1rem;
      }
    }