*{box-sizing:border-box;}
:root{--kyyeu-accent:#C9A961; --kyyeu-heading-font:'Cormorant Garamond',serif; --kyyeu-heading-scale:1;}
html{background:#0E1220;}
body{margin:0; color:#EDE7DA; font-family:'Literata',serif; line-height:1.8; overflow-x:hidden;
  background:var(--kyyeu-bg,
    radial-gradient(ellipse 70% 50% at 50% 0%, rgba(201,169,97,.09), transparent 60%),
    linear-gradient(180deg,#0E1220 0%,#141A2C 55%,#0E1220 100%));
}
.wrap{max-width:720px; margin:0 auto; position:relative; z-index:2;}
@media (prefers-reduced-motion: reduce){ .crystal, .frame-shine{animation:none !important;} }

.crystal-field{position:fixed; inset:0; z-index:0; pointer-events:none; overflow:hidden;}
.crystal{position:absolute; background:var(--kyyeu-accent); border-radius:50%; opacity:.5; animation:sparkle 3.5s ease-in-out infinite;}
@keyframes sparkle{0%,100%{opacity:.15; transform:scale(.7);} 50%{opacity:.85; transform:scale(1.25);}}

/* BÌA ART DECO */
.cover{padding:44px 20px 26px; position:relative; z-index:2;}
.deco-border{
  max-width:520px; margin:0 auto; padding:46px 30px 38px; text-align:center; position:relative;
  border:1px solid rgba(201,169,97,.35);
  background:rgba(255,255,255,.018);
}
.deco-corner{position:absolute; width:26px; height:26px; border:2px solid var(--kyyeu-accent);}
.deco-corner.tl{top:-2px; left:-2px; border-right:none; border-bottom:none;}
.deco-corner.tr{top:-2px; right:-2px; border-left:none; border-bottom:none;}
.deco-corner.bl{bottom:-2px; left:-2px; border-right:none; border-top:none;}
.deco-corner.br{bottom:-2px; right:-2px; border-left:none; border-top:none;}
.deco-fan{
  width:70px; height:34px; margin:0 auto 22px;
  background:
    repeating-conic-gradient(from 180deg at 50% 100%, var(--kyyeu-accent) 0deg 3deg, transparent 3deg 15deg);
  opacity:.65;
}
.eyebrow{font-size:10px; letter-spacing:.4em; color:var(--kyyeu-accent); margin-bottom:24px;}
.cover-photo{position:relative; width:170px; height:170px; margin:0 auto 24px;}
.cover-photo img{width:100%; height:100%; object-fit:cover; border-radius:50%; filter:contrast(1.04);}
.photo-ring{position:absolute; inset:-9px; border-radius:50%; border:1px solid var(--kyyeu-accent); box-shadow:0 0 26px rgba(201,169,97,.28), inset 0 0 20px rgba(201,169,97,.12);}
.cover h1{font-family:var(--kyyeu-heading-font); font-style:italic; font-weight:600; font-size:calc(46px * var(--kyyeu-heading-scale)); margin:0 0 12px;
  background:linear-gradient(100deg,#B08D46,#F0DFAE 45%,#B08D46); -webkit-background-clip:text; background-clip:text; color:transparent;}
.deco-divider{display:flex; align-items:center; justify-content:center; gap:12px; color:var(--kyyeu-accent); font-size:11px; margin-bottom:14px;}
.deco-divider span{width:52px; height:1px; background:linear-gradient(90deg,transparent,var(--kyyeu-accent));}
.deco-divider span:last-child{background:linear-gradient(90deg,var(--kyyeu-accent),transparent);}
.cover-meta{margin:0 0 22px; font-size:13.5px; color:#A9A79E; letter-spacing:.03em;}
.cover-stats{display:flex; justify-content:center; gap:44px; padding-top:18px; border-top:1px solid rgba(201,169,97,.2);}
.cover-stats span{display:block; font-size:9.5px; letter-spacing:.22em; color:#8A8880;}
.cover-stats strong{display:block; font-family:var(--kyyeu-heading-font); font-size:19px; color:var(--kyyeu-accent); margin-top:4px; font-weight:500;}

.section{padding:56px 24px 8px; position:relative; z-index:2;}
.section-head{text-align:center; margin-bottom:32px;}
.section h2{font-family:var(--kyyeu-heading-font); font-style:italic; font-weight:600; font-size:calc(29px * var(--kyyeu-heading-scale)); color:var(--kyyeu-accent); margin:0 0 6px;}
.section .sub{font-size:12.5px; color:#8A8880; letter-spacing:.02em;}

/* LỜI MỞ ĐẦU */
.opening-speech{max-width:520px; margin:0 auto; text-align:center; padding:34px 30px; border:1px solid rgba(201,169,97,.22); background:rgba(255,255,255,.02);}
.speech-mark{display:block; font-size:34px; color:var(--kyyeu-accent); line-height:1; margin-bottom:12px; opacity:.6;}
.opening-speech p{margin:0 0 14px; font-family:var(--kyyeu-heading-font); font-style:italic; font-size:18px; line-height:1.85; color:#EDE7DA;}
.opening-speech cite{font-style:normal; font-size:13px; color:var(--kyyeu-accent); letter-spacing:.04em;}

/* GALLERY ART DECO */
.deco-gallery{display:grid; grid-template-columns:repeat(3,1fr); gap:20px;}
.deco-frame{margin:0;}
.frame-inner{position:relative; overflow:hidden; border:1px solid rgba(201,169,97,.4); padding:6px; background:rgba(255,255,255,.03);}
.frame-inner img{width:100%; height:150px; object-fit:cover; display:block; filter:contrast(1.05) saturate(.95);}
.frame-shine{
  position:absolute; top:0; left:-120%; width:60%; height:100%; pointer-events:none;
  background:linear-gradient(105deg, transparent, rgba(255,255,255,.24), transparent);
  animation:shine 5s ease-in-out infinite;
}
.deco-frame:nth-child(2) .frame-shine{animation-delay:1.2s;}
.deco-frame:nth-child(3) .frame-shine{animation-delay:2.4s;}
.deco-frame:nth-child(4) .frame-shine{animation-delay:.6s;}
.deco-frame:nth-child(5) .frame-shine{animation-delay:1.8s;}
.deco-frame:nth-child(6) .frame-shine{animation-delay:3s;}
@keyframes shine{0%{left:-120%;} 35%,100%{left:150%;}}
.deco-frame figcaption{text-align:center; font-family:var(--kyyeu-heading-font); font-style:italic; font-size:13px; color:#A9A79E; margin-top:10px;}
@media(max-width:600px){.deco-gallery{grid-template-columns:repeat(2,1fr);} .frame-inner img{height:130px;}}

.see-full{text-align:center; margin:38px 0 0;}
.see-full a{font-family:var(--kyyeu-heading-font); font-style:italic; font-size:15px; color:var(--kyyeu-accent); text-decoration:none; letter-spacing:.06em;}

/* LỄ TRAO GIẢI */
.award-list{max-width:520px; margin:0 auto;}
.award-row{display:flex; gap:18px; align-items:center; padding:18px 0; border-bottom:1px solid rgba(201,169,97,.15);}
.award-row:last-child{border-bottom:none;}
.award-medal{
  width:40px; height:40px; border-radius:50%; flex-shrink:0;
  border:1px solid var(--kyyeu-accent); display:flex; align-items:center; justify-content:center;
  color:var(--kyyeu-accent); font-size:15px; box-shadow:0 0 16px rgba(201,169,97,.2);
}
.award-body strong{display:block; font-family:var(--kyyeu-heading-font); font-size:17px; color:#EDE7DA;}
.award-body span{font-size:13.5px; color:var(--kyyeu-accent); font-style:italic;}

/* CHƯƠNG TRÌNH */
.programme{max-width:500px; margin:0 auto;}
.prog-row{display:flex; align-items:baseline; gap:12px; padding:12px 0;}
.prog-time{font-family:var(--kyyeu-heading-font); font-size:16px; color:var(--kyyeu-accent); min-width:58px; flex-shrink:0;}
.prog-dots{flex:1; border-bottom:1px dotted rgba(201,169,97,.35); transform:translateY(-4px);}
.prog-name{font-size:14px; color:#EDE7DA; text-align:right; max-width:60%;}

/* LỜI CHÚC */
.toast-grid{display:grid; grid-template-columns:1fr 1fr; gap:18px; max-width:560px; margin:0 auto;}
.toast-card{border:1px solid rgba(201,169,97,.2); background:rgba(255,255,255,.02); padding:18px 20px;}
.toast-card p{margin:0 0 10px; font-size:14px; font-style:italic; color:#EDE7DA; line-height:1.75;}
.toast-card cite{font-family:var(--kyyeu-heading-font); font-style:normal; font-size:13px; color:var(--kyyeu-accent);}
@media(max-width:560px){.toast-grid{grid-template-columns:1fr;}}

.share{margin:62px 24px 30px; padding:44px 26px; text-align:center; border:1px solid rgba(201,169,97,.35); background:rgba(255,255,255,.02); position:relative; z-index:2;}
.share h2{font-family:var(--kyyeu-heading-font); font-style:italic; font-size:26px; margin:0 0 8px; color:var(--kyyeu-accent);}
.share p{font-size:13px; margin:0 0 22px; color:#A9A79E;}
#qrcode{background:#fff; display:inline-block; padding:9px; margin-bottom:18px;}
.link-row{display:flex; justify-content:center; gap:8px; flex-wrap:wrap; font-size:12.5px;}
.link-row code{background:rgba(201,169,97,.09); padding:7px 13px; color:var(--kyyeu-accent);}
.link-row button{background:var(--kyyeu-accent); color:#0E1220; border:none; padding:7px 15px; font-size:12px; font-weight:700; cursor:pointer; letter-spacing:.04em;}

.foot{text-align:center; font-size:11.5px; color:#6E6C66; padding:0 20px 44px; letter-spacing:.04em; position:relative; z-index:2;}

/* ============ HIỆU ỨNG ĐỘNG BỔ SUNG ============ */

/* 1. ĐÈN CHÙM PHA LÊ ĐU ĐƯA TRÊN ĐẦU TRANG */
.chandelier{position:absolute; top:0; left:50%; transform-origin:top center; z-index:3;
  animation:chandelierSway 6s ease-in-out infinite; pointer-events:none;}
@keyframes chandelierSway{0%,100%{transform:translateX(-50%) rotate(-1.2deg);} 50%{transform:translateX(-50%) rotate(1.2deg);}}
.ch-cord{width:1px; height:44px; background:linear-gradient(180deg,transparent,var(--kyyeu-accent)); margin:0 auto;}
.ch-body{position:relative; width:110px; height:52px; margin:0 auto;
  background:conic-gradient(from 180deg at 50% 0%, transparent 0deg 22deg, rgba(201,169,97,.4) 22deg 26deg, transparent 26deg 48deg, rgba(201,169,97,.4) 48deg 52deg, transparent 52deg 74deg, rgba(201,169,97,.4) 74deg 78deg, transparent 78deg 100deg, rgba(201,169,97,.4) 100deg 104deg, transparent 104deg 180deg);
  filter:drop-shadow(0 0 14px rgba(201,169,97,.45));}
.ch-glow{position:absolute; top:34px; left:50%; transform:translateX(-50%); width:150px; height:150px; border-radius:50%;
  background:radial-gradient(circle, rgba(201,169,97,.22), transparent 68%); animation:chGlow 4s ease-in-out infinite;}
@keyframes chGlow{0%,100%{opacity:.55; transform:translateX(-50%) scale(.94);} 50%{opacity:1; transform:translateX(-50%) scale(1.06);}}

/* 2. NÚT KHAI MẠC + PHÁO GIẤY VÀNG */
.gala-open{margin-top:26px;}
.gala-btn{
  background:none; border:1px solid var(--kyyeu-accent); color:var(--kyyeu-accent);
  padding:12px 30px; font-family:'Cormorant Garamond',serif; font-style:italic; font-size:16px;
  letter-spacing:.1em; cursor:pointer; position:relative; overflow:hidden;
  transition:color .4s ease, box-shadow .4s ease;
}
.gala-btn::before{content:""; position:absolute; inset:0; background:var(--kyyeu-accent); transform:scaleX(0); transform-origin:left; transition:transform .45s cubic-bezier(.3,.8,.3,1);}
.gala-btn span{position:relative; z-index:2;}
.gala-btn:hover{color:#0E1220; box-shadow:0 0 26px rgba(201,169,97,.35);}
.gala-btn:hover::before{transform:scaleX(1);}
.confetti-field{position:fixed; inset:0; z-index:90; pointer-events:none; overflow:hidden;}
.confetti{position:absolute; top:-14px; width:7px; height:12px; animation:confFall linear forwards;}
@keyframes confFall{
  0%{opacity:1; transform:translateY(0) rotate(0);}
  100%{opacity:.15; transform:translateY(105vh) rotate(680deg);}
}

/* 3. SỐ LIỆU ĐẾM TĂNG DẦN */
.cover-stats strong{transition:color .4s ease;}

/* 4. HÀNG GIẢI THƯỞNG HIỆN LẦN LƯỢT + HUY CHƯƠNG QUAY */
.award-row{opacity:0; transform:translateX(-16px); transition:opacity .7s ease, transform .7s cubic-bezier(.2,.8,.3,1);}
.award-row.revealed{opacity:1; transform:translateX(0);}
.award-row.revealed .award-medal{animation:medalSpin 1.1s cubic-bezier(.3,.9,.3,1);}
@keyframes medalSpin{from{transform:rotateY(-540deg) scale(.5);} to{transform:rotateY(0) scale(1);}}
.award-medal{transition:box-shadow .4s ease;}
.award-row:hover .award-medal{box-shadow:0 0 26px rgba(201,169,97,.5);}

/* 5. DÒNG CHƯƠNG TRÌNH SÁNG LÊN KHI DI CHUỘT */
.prog-row{transition:transform .35s ease;}
.prog-row:hover{transform:translateX(6px);}
.prog-row:hover .prog-time{color:#F0DFAE;}
.prog-time{transition:color .35s ease;}
