:root{
    --ink:#0B0806; --ink-2:#080504;
    --gold:#E4C583; --gold-2:#C69A54; --gold-deep:#8C6A38;
    --cream:#F1EADC;
    --cream-dim:rgba(241,234,220,.74);
    --cream-faint:rgba(241,234,220,.45);
    --hair:rgba(198,154,84,.35);
    --serif:'Cormorant Garamond','Hoefler Text',Georgia,serif;
    --sans:'Jost','Century Gothic',system-ui,sans-serif;
    --col:560px;
  }
  *{margin:0;padding:0;box-sizing:border-box}
  html{scroll-behavior:smooth}
  body{
    background:var(--ink);color:var(--cream);
    font-family:var(--serif);font-weight:400;
    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
    overflow-x:hidden;line-height:1.6;
  }
  body::before{content:"";position:fixed;inset:0;z-index:-2;
    background:radial-gradient(130% 55% at 50% -8%, #1c1109 0%, var(--ink) 48%, var(--ink-2) 100%);}
  .wrap{max-width:var(--col);margin:0 auto;position:relative;
    background:linear-gradient(180deg,#0c0805,#0a0605);
    box-shadow:0 0 140px rgba(0,0,0,.7);}

  /* ---------- sections ---------- */
  .section{position:relative;overflow:hidden;
    padding:clamp(104px,19vw,158px) clamp(30px,8vw,50px);}
  .inner{position:relative;z-index:2}

  /* ---------- texture layers (símbolo/fogo fundido ao preto) ---------- */
  .tex{position:absolute;inset:0;z-index:1;pointer-events:none;
    background-repeat:no-repeat;background-size:cover;background-position:center;
    mix-blend-mode:screen;}
  .tex.fire-r{background-position:right center;background-size:auto 118%;opacity:.55;
    -webkit-mask-image:linear-gradient(90deg,transparent 6%,#000 60%,#000 100%);
            mask-image:linear-gradient(90deg,transparent 6%,#000 60%,#000 100%);}
  .tex.fire-full{background-size:cover;opacity:.34;
    -webkit-mask-image:radial-gradient(120% 85% at 50% 62%,#000 0%,#000 34%,transparent 82%);
            mask-image:radial-gradient(120% 85% at 50% 62%,#000 0%,#000 34%,transparent 82%);}
  .tex.center{opacity:.30;background-size:auto 96%;
    -webkit-mask-image:radial-gradient(70% 60% at 50% 42%,#000 0%,#000 30%,transparent 74%);
            mask-image:radial-gradient(70% 60% at 50% 42%,#000 0%,#000 30%,transparent 74%);}
  .tex.bottom{opacity:.26;background-position:center bottom;background-size:auto 70%;
    -webkit-mask-image:radial-gradient(90% 60% at 50% 92%,#000 0%,transparent 80%);
            mask-image:radial-gradient(90% 60% at 50% 92%,#000 0%,transparent 80%);}
  .tex.top{opacity:.24;background-position:center top;background-size:auto 72%;
    -webkit-mask-image:radial-gradient(80% 55% at 50% 12%,#000 0%,transparent 78%);
            mask-image:radial-gradient(80% 55% at 50% 12%,#000 0%,transparent 78%);}
  .tex.dance{mix-blend-mode:soft-light;opacity:.5;background-position:center bottom;background-size:cover;
    -webkit-mask-image:linear-gradient(180deg,transparent 8%,#000 78%);
            mask-image:linear-gradient(180deg,transparent 8%,#000 78%);}

  /* ---------- type ---------- */
  .eyebrow{font-family:var(--sans);font-weight:400;font-size:.7rem;
    letter-spacing:.4em;text-transform:uppercase;color:var(--gold);opacity:.92;
    display:block;margin-bottom:34px;}
  .h{font-family:var(--serif);font-weight:500;line-height:1.08;
    font-size:clamp(2.5rem,9.6vw,3.5rem);letter-spacing:.004em;color:var(--cream);
    text-wrap:balance;}
  .lead{font-family:var(--serif);font-weight:500;
    font-size:clamp(1.72rem,6.6vw,2.18rem);line-height:1.3;color:var(--cream);
    letter-spacing:.004em;text-wrap:balance;}
  .body{font-family:var(--serif);font-weight:400;
    font-size:clamp(1.2rem,4.7vw,1.42rem);line-height:1.6;color:var(--cream-dim);
    max-width:32ch;text-wrap:pretty;}
  .g{color:var(--gold)}
  .gi{color:var(--gold);font-style:italic;font-weight:500}
  .rule{width:46px;height:1px;background:linear-gradient(90deg,var(--gold-2),transparent);
    margin:30px 0;border:0;}
  .sp{height:26px}
  .sp-s{height:16px}

  .fleuron{margin-top:52px;color:var(--gold-2);opacity:.8;width:52px;height:auto}
  .fleuron svg{width:100%;display:block}

  /* ---------- HERO ---------- */
  .hero{padding:0;position:relative}
  .hero img{width:100%;height:auto;display:block}
  .hero-cta{background:#0a0605;text-align:center;
    padding:44px clamp(30px,8vw,50px) clamp(64px,13vw,90px);}
  .scrollcue{margin-top:44px;font-family:var(--sans);font-size:.6rem;
    letter-spacing:.36em;text-transform:uppercase;color:var(--cream-faint);
    display:flex;flex-direction:column;align-items:center;gap:13px;}
  .scrollcue i{width:1px;height:42px;background:linear-gradient(180deg,var(--gold-2),transparent);display:block}

  /* ---------- buttons ---------- */
  .btn{-webkit-appearance:none;appearance:none;cursor:pointer;display:inline-block;
    font-family:var(--sans);font-weight:400;font-size:.76rem;letter-spacing:.26em;
    text-transform:uppercase;color:var(--cream);background:transparent;
    border:1px solid var(--gold-2);padding:20px 36px;line-height:1.3;
    transition:background .5s ease,color .5s ease,letter-spacing .5s ease;}
  .btn:hover,.btn:focus-visible{background:linear-gradient(180deg,rgba(198,154,84,.18),rgba(198,154,84,.07));
    color:#fff;letter-spacing:.30em;outline:none;}
  .btn:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
  .btn-solid{border-color:var(--gold);
    background:linear-gradient(180deg,rgba(198,154,84,.22),rgba(198,154,84,.06));}

  /* ---------- lists (menu editorial) ---------- */
  .listing{margin-top:40px}
  .listing li{list-style:none;display:flex;align-items:baseline;gap:18px;
    padding:20px 2px;border-top:1px solid var(--hair);
    font-family:var(--serif);font-weight:400;
    font-size:clamp(1.36rem,5.5vw,1.66rem);line-height:1.34;color:var(--cream);
    letter-spacing:.006em;text-wrap:pretty;}
  .listing li:last-child{border-bottom:1px solid var(--hair)}
  .listing li .m{flex:none;width:7px;height:7px;margin-top:.5em;border-radius:50%;
    background:var(--gold);box-shadow:0 0 9px rgba(228,197,131,.6);}

  /* ---------- portrait ---------- */
  .portrait{position:relative;margin:0 0 42px;}
  .portrait img{width:100%;height:auto;display:block;filter:saturate(.97) contrast(1.02)}
  .portrait::after{content:"";position:absolute;inset:0;
    box-shadow:inset 0 0 0 1px rgba(198,154,84,.4);
    background:linear-gradient(180deg,transparent 62%,rgba(10,6,5,.5));}
  .name{font-family:var(--serif);font-style:italic;font-weight:500;
    font-size:clamp(2rem,7.6vw,2.5rem);color:var(--gold);margin-bottom:22px;letter-spacing:.01em;}
  .bio .body+.body{margin-top:22px}

  /* ---------- calendar ---------- */
  .cal{margin-top:44px}
  .cal li{list-style:none;display:flex;align-items:baseline;gap:20px;
    padding:22px 2px;border-top:1px solid var(--hair);}
  .cal li:last-child{border-bottom:1px solid var(--hair)}
  .cal .day{font-family:var(--serif);font-weight:500;
    font-size:clamp(2.3rem,9.2vw,2.9rem);color:var(--cream);line-height:.9;min-width:2.2ch;}
  .cal .mon{font-family:var(--sans);font-weight:400;font-size:.82rem;
    letter-spacing:.32em;text-transform:uppercase;color:var(--gold);}

  /* ---------- statement ---------- */
  .statement{text-align:center}
  .statement .h{max-width:16ch;margin:0 auto}

  /* ---------- CTA ---------- */
  .cta{background:linear-gradient(180deg,#0a0605,#0d0906)}
  .embers{position:absolute;inset:0;z-index:1;pointer-events:none}
  .spark{position:absolute;bottom:-12px;width:3px;height:3px;border-radius:50%;
    background:var(--gold);opacity:0;box-shadow:0 0 9px 2px rgba(228,197,131,.6);
    animation:rise linear infinite;}
  @keyframes rise{0%{transform:translateY(0) scale(1);opacity:0}12%{opacity:.9}80%{opacity:.5}
    100%{transform:translateY(-300px) scale(.4);opacity:0}}
  .glow{position:absolute;left:50%;bottom:-50px;transform:translateX(-50%);
    width:320px;height:250px;z-index:1;pointer-events:none;
    background:radial-gradient(50% 60% at 50% 100%,rgba(228,197,131,.3),transparent 70%);filter:blur(6px);}
  .form{margin-top:44px}
  .field{margin-bottom:22px}
  .field label{display:block;font-family:var(--sans);font-size:.62rem;letter-spacing:.28em;
    text-transform:uppercase;color:var(--gold);margin-bottom:10px;opacity:.88;}
  .field input{width:100%;background:transparent;border:none;border-bottom:1px solid var(--hair);
    color:var(--cream);font-family:var(--serif);font-size:1.4rem;padding:8px 2px 13px;letter-spacing:.01em;
    transition:border-color .4s ease;}
  .field input::placeholder{color:rgba(241,234,220,.3)}
  .field input:focus{outline:none;border-color:var(--gold)}
  .form .btn{width:100%;margin-top:16px}
  .thanks{margin-top:40px;text-align:center;display:none}
  .thanks.show{display:block;animation:soft .9s ease both}
  @keyframes soft{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

  /* ---------- footer ---------- */
  footer{padding:56px 30px 68px;text-align:center;border-top:1px solid var(--hair);background:#080504}
  .fmark{color:var(--gold);opacity:.6;margin:0 auto 22px;width:34px;height:34px}
  .fname{font-family:var(--serif);font-size:1.5rem;color:var(--cream);letter-spacing:.16em}
  .fsub{font-family:var(--sans);font-size:.64rem;letter-spacing:.3em;text-transform:uppercase;
    color:var(--cream-faint);margin-top:14px;}

  /* ---------- reveal ---------- */
  .reveal{opacity:0;transform:translateY(24px);
    transition:opacity 1.2s cubic-bezier(.2,.7,.2,1),transform 1.2s cubic-bezier(.2,.7,.2,1);}
  .reveal.in{opacity:1;transform:none}
  .d1{transition-delay:.12s}.d2{transition-delay:.24s}.d3{transition-delay:.36s}.d4{transition-delay:.48s}

  @media (prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    .reveal{opacity:1;transform:none;transition:none}
    .spark{display:none}.btn{transition:none}
  }
