*{box-sizing:border-box;}
  body{margin:0; background:#0C0C15; color:#E8E4D8; font-family:'Be Vietnam Pro',sans-serif; line-height:1.6;
    background-image:radial-gradient(1px 1px at 15% 20%,rgba(212,180,131,.6) 99%,transparent),
                      radial-gradient(1px 1px at 80% 10%,rgba(212,180,131,.4) 99%,transparent),
                      radial-gradient(1px 1px at 60% 60%,rgba(212,180,131,.3) 99%,transparent),
                      radial-gradient(1px 1px at 30% 80%,rgba(212,180,131,.4) 99%,transparent);
  }
  .wrap{max-width:640px; margin:0 auto; padding:0 0 40px;}

  /* VÉ MỜI - ticket header */
  .ticket{
    margin:24px 16px 0; background:#14141F; position:relative;
    border:1px solid rgba(212,180,131,.35);
  }
  .ticket::before,.ticket::after{
    content:""; position:absolute; width:20px; height:20px; background:#0C0C15; border-radius:50%; top:50%; transform:translateY(-50%);
  }
  .ticket::before{left:-10px;} .ticket::after{right:-10px;}
  .ticket-inner{padding:36px 24px; text-align:center; border-bottom:1px dashed rgba(212,180,131,.4); position:relative;}
  .ticket-label{font-size:11px; letter-spacing:.3em; color:#D4B483; margin-bottom:14px;}
  .spotlight{width:170px; height:170px; border-radius:50%; margin:0 auto 18px; position:relative;}
  .spotlight img{width:100%; height:100%; object-fit:cover; border-radius:50%; box-shadow:0 0 0 1px rgba(212,180,131,.5), 0 0 60px 10px rgba(212,180,131,.15);}
  .ticket h1{font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:500; font-size:42px; margin:0 0 6px; color:#F3EBD8;}
  .ticket p{margin:0; font-size:13.5px; color:#9C97AE;}
  .stub{display:flex; justify-content:space-between; padding:14px 24px; font-size:11px; letter-spacing:.08em; color:#7A7690;}

  .section{padding:44px 24px 8px;}
  .section h2{font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:500; font-size:30px; margin:0 0 4px; color:#D4B483; text-align:center;}
  .section .sub{text-align:center; font-size:13px; color:#7A7690; margin:0 0 30px;}

  /* GALLERY - hàng ảnh spotlight nhỏ */
  .gallery{display:flex; gap:14px; overflow-x:auto; padding-bottom:10px;}
  .gcard{flex:0 0 130px; text-align:center;}
  .gcard .round{width:130px; height:130px; border-radius:50%; overflow:hidden; box-shadow:0 0 40px 4px rgba(212,180,131,.12), 0 0 0 1px rgba(212,180,131,.3);}
  .gcard img{width:100%; height:100%; object-fit:cover; filter:brightness(.95);}
  .gcard figcaption{font-size:12px; color:#9C97AE; margin-top:8px; font-style:italic; font-family:'Cormorant Garamond',serif;}

  .see-full{text-align:center; margin:20px 0 0;}
  .see-full a{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:15px; color:#D4B483; text-decoration:none; border-bottom:1px solid rgba(212,180,131,.5);}

  /* TIMELINE - chương trình đêm hội / lời nhắn */
  .timeline{position:relative; max-width:480px; margin:0 auto; padding-left:24px;}
  .timeline::before{content:""; position:absolute; left:5px; top:6px; bottom:6px; width:1px; background:rgba(212,180,131,.35);}
  .t-item{position:relative; margin-bottom:26px;}
  .t-item::before{content:""; position:absolute; left:-24px; top:5px; width:9px; height:9px; border-radius:50%; background:#D4B483; box-shadow:0 0 8px 2px rgba(212,180,131,.5);}
  .t-item p{margin:0 0 4px; font-size:15px; font-style:italic; color:#E8E4D8;}
  .t-item cite{font-size:12px; color:#D4B483; font-style:normal;}

  .share{margin:44px 16px 0; background:#14141F; border:1px solid rgba(212,180,131,.35); padding:34px 22px; text-align:center;}
  .share h2{font-family:'Cormorant Garamond',serif; font-style:italic; font-size:26px; margin:0 0 6px; color:#F3EBD8;}
  .share p{font-size:13px; color:#9C97AE; margin:0 0 18px;}
  #qrcode{background:#fff; display:inline-block; padding:8px; margin-bottom:14px;}
  .link-row{display:flex; justify-content:center; gap:8px; flex-wrap:wrap; font-size:13px;}
  .link-row code{background:rgba(212,180,131,.1); padding:6px 12px; color:#D4B483;}
  .link-row button{background:#D4B483; color:#0C0C15; border:none; padding:6px 14px; font-size:12.5px; font-weight:600; cursor:pointer;}

  .foot{text-align:center; font-size:11.5px; color:#5A566B; padding:26px 20px 10px; letter-spacing:.05em;}
