:root{--bg:#07172e;--bg2:#0d2342;--text:#10213b;--muted:#66748b;--gold:#e7bd55;--gold2:#fff0b8;--red:#c94935;--cream:#fff7e8;--paper:#fffaf0;--white:#fff;--glass:rgba(255,255,255,.12);--line:rgba(255,255,255,.18);--shadow:0 24px 80px rgba(7,23,46,.25);--radius:28px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Be Vietnam Pro",system-ui,sans-serif;color:var(--text);background:#fff7eb;overflow-x:hidden}body.modalOpen{overflow:hidden}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}img{max-width:100%;display:block}.container{width:min(1120px,calc(100% - 32px));margin:auto}.section{position:relative;padding:92px 0}.center{text-align:center}.sectionTitle small,.modalHead small,.costCard small,.locationInfo small,.formInfo small{display:inline-flex;color:var(--red);font-weight:800;text-transform:uppercase;letter-spacing:.18em;font-size:12px;margin-bottom:10px}.sectionTitle h2,.locationInfo h2,.formInfo h2,.modalHead h2{font-family:"Playfair Display",serif;font-size:clamp(34px,4vw,58px);line-height:1.05;margin:0;color:#13213a}.sectionTitle p{color:var(--muted);max-width:700px;margin:14px auto 0}.reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}.reveal.on{opacity:1;transform:none}#petalCanvas{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:.75}#scrollProgress{position:fixed;top:0;left:0;height:3px;width:0;background:linear-gradient(90deg,var(--gold),#fff,#e45d42);z-index:1000}.nav{position:fixed;top:16px;left:50%;transform:translateX(-50%);width:min(1180px,calc(100% - 24px));height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 12px 0 18px;border:1px solid rgba(255,255,255,.22);background:rgba(8,24,47,.46);backdrop-filter:blur(18px);border-radius:999px;z-index:999;color:white;box-shadow:0 18px 60px rgba(0,0,0,.18);transition:.3s}.nav.scrolled{top:8px;background:rgba(8,24,47,.86)}.brand{display:flex;align-items:center;gap:10px}.brand img{width:48px;height:48px}.brand b{display:block;font-size:14px}.brand small{display:block;color:rgba(255,255,255,.7);font-size:11px}.navLinks{display:flex;align-items:center;gap:4px}.navLinks a{padding:10px 12px;border-radius:999px;color:rgba(255,255,255,.78);font-size:13px;font-weight:700}.navLinks a.active,.navLinks a:hover{background:rgba(255,255,255,.12);color:#fff}.navActions{display:flex;gap:8px}.iconBtn,.burger{width:46px;height:46px;border:none;border-radius:50%;background:rgba(255,255,255,.13);color:white;cursor:pointer}.iconBtn.playing{background:var(--gold);color:#10213b}.burger{display:none;position:relative}.burger span{display:block;width:19px;height:2px;background:#fff;margin:4px auto;border-radius:99px;transition:.25s}.burger.open span:nth-child(1){transform:translateY(6px) rotate(45deg)}.burger.open span:nth-child(2){opacity:0}.burger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg)}.hero{min-height:100svh;position:relative;isolation:isolate;display:flex;align-items:center;overflow:hidden;background:#07172e;color:white;padding:120px 0 80px}.heroBg{position:absolute;inset:0;background:linear-gradient(rgba(7,23,46,.68),rgba(7,23,46,.84)),url('assets/hero-school-gate.webp') center center/cover no-repeat;z-index:-3}.hero:after{content:"";position:absolute;inset:auto 0 0;height:35%;background:linear-gradient(transparent,#fff7eb);z-index:-1}.heroGlow{position:absolute;border-radius:50%;filter:blur(18px);opacity:.45;z-index:-2}.heroGlow.one{width:450px;height:450px;background:#d1a23f;left:-120px;top:12%}.heroGlow.two{width:380px;height:380px;background:#be4334;right:-120px;bottom:16%}.heroInner{width:min(1120px,calc(100% - 32px));margin:auto;display:grid;grid-template-columns:minmax(0,1.15fr) 420px;gap:40px;align-items:center}.eyebrow{display:inline-flex;align-items:center;gap:10px;border:1px solid rgba(255,255,255,.25);background:rgba(255,255,255,.1);padding:10px 14px;border-radius:999px;color:#fff4cf;font-weight:700;font-size:13px}.eyebrow span{width:9px;height:9px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 7px rgba(231,189,85,.14)}.script{font-family:"Dancing Script",cursive;font-size:clamp(28px,4vw,48px);color:#ffe7a1;margin:24px 0 4px}.hero h1{font-family:"Playfair Display",serif;line-height:.86;margin:0 0 24px;font-size:clamp(58px,9vw,118px);letter-spacing:-.05em}.hero h1 span,.hero h1 strong,.hero h1 em{display:block}.hero h1 strong{color:var(--gold);text-shadow:0 16px 40px rgba(0,0,0,.2)}.hero h1 em{font-style:normal;font-size:.5em;letter-spacing:0;color:#fff}.lead{max-width:720px;color:rgba(255,255,255,.78);font-size:18px;line-height:1.8}.heroBadges{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin:22px 0;color:#fff}.heroBadges b{background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:9px 13px}.heroBadges span{color:#e7bd55}.btn{border:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:14px 20px;border-radius:999px;font-weight:800;cursor:pointer;transition:.25s;white-space:nowrap}.btn:hover{transform:translateY(-2px)}.gold{background:linear-gradient(135deg,#fff0b8,#e7bd55,#b7791f);color:#13213a;box-shadow:0 14px 36px rgba(231,189,85,.25)}.glass{background:rgba(255,255,255,.13);border:1px solid rgba(255,255,255,.22);color:white}.glass.dark{background:#fff;border-color:#eadfbf;color:#13213a}.ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.3)}.full{width:100%}.heroBtns{display:flex;gap:12px;flex-wrap:wrap}.countCard{background:linear-gradient(180deg,rgba(255,255,255,.16),rgba(255,255,255,.08));border:1px solid rgba(255,255,255,.2);backdrop-filter:blur(24px);padding:26px;border-radius:var(--radius);box-shadow:var(--shadow)}.countHeader span{color:#ffe7a1;font-size:13px;text-transform:uppercase;letter-spacing:.18em;font-weight:800}.countHeader b{display:block;font-size:18px;margin-top:4px}.countGrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:20px 0}.countGrid div{background:rgba(7,23,46,.55);border:1px solid rgba(255,255,255,.16);border-radius:20px;padding:18px 8px;text-align:center}.countGrid strong{font-family:"Playfair Display",serif;font-size:38px;color:#fff0b8;display:block}.countGrid strong.flip{animation:flip .36s ease}@keyframes flip{50%{transform:rotateX(70deg);opacity:.35}}.countGrid span{font-size:12px;color:rgba(255,255,255,.68)}.miniStats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.miniStats div{text-align:center;background:rgba(126, 125, 125, 0.1);border-radius:18px;padding:14px 8px}.miniStats b{display:block;color:var(--gold);font-size:24px}.miniStats span{font-size:11px;color:rgba(0, 0, 0, 0.7)}.scrollHint{position:absolute;bottom:30px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:8px;color:rgba(0, 0, 0, 0.72);font-size:13px}.scrollHint span{width:22px;height:34px;border:1px solid rgba(0, 0, 0, 0.45);border-radius:999px;position:relative}.scrollHint span:after{content:"";position:absolute;left:50%;top:7px;width:4px;height:7px;background:#000000;border-radius:10px;transform:translateX(-50%);animation:wheel 1.6s infinite}@keyframes wheel{to{transform:translate(-50%,12px);opacity:0}}.split{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}.split.reverse{grid-template-columns:1fr 1fr}.letter,.teacherCard,.costCard,.fundPanel,.mapCard,.locationInfo,.formCard,.formInfo{background:rgba(255,255,255,.78);border:1px solid rgba(221,185,105,.28);box-shadow:0 22px 70px rgba(33,32,26,.08);border-radius:var(--radius);padding:32px}.letter p,.teacherCard p,.costCard p,.locationInfo p,.formInfo p{color:#5f6c80;line-height:1.85}.quote{font-family:"Dancing Script",cursive;font-size:32px;color:#b7791f;padding:20px 0 0}.featureGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}.feature{background:#fff;border:1px solid #f0e3bf;border-radius:24px;padding:24px;box-shadow:0 18px 60px rgba(33,32,26,.06)}.feature span{font-size:34px}.feature h3{margin:14px 0 6px}.feature p{color:var(--muted);line-height:1.7;margin:0}.gallery{background:radial-gradient(circle at 20% 0,#102b55 0,#07172e 42%,#040b18 100%);color:white}.gallery .sectionTitle h2,.gallery .sectionTitle p{color:white}.cinema{height:min(66vw,610px);min-height:330px;background:#050912;border:1px solid rgba(255,255,255,.16);border-radius:34px;overflow:hidden;position:relative;box-shadow:0 30px 100px rgba(0,0,0,.45)}.slides,.slide{position:absolute;inset:0}.slide{opacity:0;transition:opacity .7s ease}.slide.active{opacity:1}.slide img{width:100%;height:100%;object-fit:cover;filter:saturate(1.06) contrast(1.02)}.slide:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(0,0,0,.65),transparent 48%,rgba(0,0,0,.3)),linear-gradient(0deg,rgba(0,0,0,.7),transparent 45%)}.slideCaption{position:absolute;left:34px;bottom:34px;z-index:2;max-width:540px}.slideCaption small{color:#ffe7a1;letter-spacing:.15em;text-transform:uppercase;font-weight:800}.slideCaption h3{font-family:"Playfair",serif;font-size:clamp(30px,4.4vw,58px);margin:8px 0;color:#fff}.slideCaption p{color:rgba(255,255,255,.78);line-height:1.7}.slideBtn{position:absolute;z-index:5;top:50%;transform:translateY(-50%);width:50px;height:50px;border:none;border-radius:50%;background:rgba(255,255,255,.16);color:#fff;font-size:38px;cursor:pointer;backdrop-filter:blur(10px)}.slideBtn.prev{left:18px}.slideBtn.next{right:18px}.cinemaBar{position:absolute;left:0;right:0;bottom:0;height:4px;background:rgba(255,255,255,.15);z-index:6}.cinemaBar div{width:0;height:100%;background:linear-gradient(90deg,var(--gold),#fff)}.filmstrip{display:flex;gap:10px;overflow:auto;margin-top:18px;padding:6px 4px 12px}.filmstrip button{min-width:120px;height:74px;border-radius:18px;border:2px solid transparent;background-size:cover;background-position:center;cursor:pointer;opacity:.65;transition:.25s}.filmstrip button.active{opacity:1;border-color:var(--gold);transform:translateY(-3px)}.dots{display:flex;justify-content:center;gap:8px;margin-top:14px}.dots button{width:9px;height:9px;border:none;border-radius:50%;background:rgba(255,255,255,.28);cursor:pointer}.dots button.active{width:28px;background:var(--gold);border-radius:99px}.teachers{background:linear-gradient(135deg,#fff7eb,#fff,#fff7eb)}.seal{width:92px;height:92px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(135deg,#fff0b8,#e7bd55);font-family:"Playfair Display",serif;font-size:44px;font-weight:900;color:#7a4117;float:right;margin-left:22px}.teacherCard ul{padding:0;margin:20px 0 0;list-style:none;color:#5f6c80;line-height:2}.schedule{background:#fff}.timeline{position:relative;display:grid;gap:18px;margin-top:34px}.timeline:before{content:"";position:absolute;left:116px;top:10px;bottom:10px;width:2px;background:#eadfbf}.timeItem{position:relative;display:grid;grid-template-columns:100px 1fr;gap:34px;align-items:start}.timeItem .time{font-weight:900;color:#b7791f;background:#fff7eb;border:1px solid #eadfbf;border-radius:18px;padding:12px;text-align:center;box-shadow:0 12px 30px rgba(33,32,26,.06)}.timeItem .content{background:#fff;border:1px solid #efe2c3;border-radius:24px;padding:22px;box-shadow:0 14px 40px rgba(33,32,26,.05)}.timeItem .content:before{content:"";position:absolute;left:109px;margin-top:7px;width:16px;height:16px;border-radius:50%;background:var(--gold);box-shadow:0 0 0 8px #fff7eb}.timeItem h3{margin:0 0 8px}.timeItem p{margin:0;color:var(--muted);line-height:1.7}.cost{background:linear-gradient(135deg,#07172e,#123969);color:white}.costWrap{display:grid;grid-template-columns:1.1fr .9fr;gap:26px}.costCard,.fundPanel{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.18);color:white;backdrop-filter:blur(18px)}.costCard h2{font-family:"Playfair Display",serif;font-size:clamp(42px,6vw,76px);margin:0;color:#fff0b8}.costCard h2 span{font-family:"Be Vietnam Pro";font-size:18px;color:rgba(255,255,255,.68)}.costCard p{color:rgba(255,255,255,.78)}.bankBox{display:grid;gap:8px;margin-top:20px;background:rgba(0,0,0,.18);border:1px solid rgba(255,255,255,.14);border-radius:20px;padding:18px;color:rgba(255,255,255,.85)}.linkBtn{border:none;background:rgba(255,255,255,.12);color:#fff0b8;border-radius:999px;padding:5px 9px;cursor:pointer}.fundTop .fundLabel{display:block;color:#fff0b8;text-transform:uppercase;font-size:12px;letter-spacing:.18em;font-weight:800;margin-bottom:6px}.fundTop b{display:flex;align-items:baseline;gap:8px;min-width:0;white-space:nowrap;font-family:"Playfair Display",serif;font-size:clamp(36px,5vw,46px);line-height:1;color:white}.fundTop b #fundTotal{display:inline!important;color:inherit!important;text-transform:none!important;letter-spacing:-.03em!important;font:inherit!important;line-height:1!important}.fundTop b em{font-style:normal;font-size:.72em;line-height:1;opacity:.95}.fundMeter{height:14px;border-radius:999px;background:rgba(255,255,255,.16);overflow:hidden;margin:20px 0}.fundMeter div{height:100%;width:0;background:linear-gradient(90deg,#e7bd55,#fff0b8);border-radius:999px}.fundStats{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px}.fundStats div{background:rgba(255,255,255,.1);border-radius:18px;padding:16px;text-align:center}.fundStats b{display:block;font-size:32px;color:#fff0b8}.fundStats span{font-size:12px;color:rgba(255,255,255,.72)}.sponsors{background:#fff7eb}.sponsorGrid,.contactGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px}.sponsorCard,.contactCard,.entryCard{background:white;border:1px solid #efe2c3;border-radius:24px;padding:22px;box-shadow:0 16px 46px rgba(33,32,26,.06)}.sponsorCard .avatar,.contactCard .avatar{width:52px;height:52px;border-radius:18px;display:grid;place-items:center;background:linear-gradient(135deg,#fff0b8,#e7bd55);font-weight:900;color:#7a4117;margin-bottom:14px}.sponsorCard h3,.contactCard h3{margin:0 0 6px}.sponsorCard b{display:block;color:#b7791f;margin:8px 0}.sponsorCard p,.contactCard p,.entryCard p{color:var(--muted);line-height:1.65;margin:0}.contacts{background:#fff}.formsWrap{display:grid;grid-template-columns:.9fr 1.1fr;gap:24px;align-items:start}.tabs{display:flex;gap:8px;margin-top:24px}.tab{border:none;border-radius:999px;padding:11px 14px;background:#f2ead7;color:#6b5b3d;font-weight:800;cursor:pointer}.tab.active{background:#13213a;color:white}.formCard{display:none}.formCard.active{display:block}.field{display:grid;gap:7px;margin-bottom:14px}.field label{font-weight:800;font-size:13px;color:#283a57}.field input,.field textarea{border:1px solid #eadfbf;border-radius:16px;background:#fffdf8;padding:13px 14px;outline:none;color:#13213a}.field textarea{min-height:110px;resize:vertical}.field input:focus,.field textarea:focus{border-color:#d7a737;box-shadow:0 0 0 4px rgba(231,189,85,.16)}.row{display:grid;grid-template-columns:1fr 1fr;gap:12px}.entries{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:28px}.entryGrid{display:grid;gap:12px}.entryCard small{color:#b7791f;font-weight:800}.entryCard h4{margin:4px 0 8px}.location{background:linear-gradient(180deg,#fff7eb,#fff)}.locationWrap{display:grid;grid-template-columns:1.1fr .9fr;gap:26px;align-items:center}.mapCard{padding:12px}.mapCard iframe{border:0;border-radius:20px;width:100%;height:420px;display:block}.dress{display:grid;gap:8px;background:#fff7eb;border:1px solid #eadfbf;border-radius:20px;padding:18px;margin:18px 0}.faq{background:#07172e;color:white}.faq .sectionTitle h2{color:white}.faqList{display:grid;gap:12px;margin-top:32px}.faqItem{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.08);border-radius:20px;overflow:hidden}.faqQ{width:100%;border:none;background:transparent;color:white;text-align:left;padding:20px;font-weight:900;cursor:pointer;display:flex;justify-content:space-between;gap:20px}.faqA{display:none;padding:0 20px 20px;color:rgba(255,255,255,.72);line-height:1.7}.faqItem.open .faqA{display:block}.footer{background:#030812;color:white;padding:32px 0}.footerInner{display:flex;justify-content:space-between;align-items:center;gap:20px}.footer b{display:block;font-family:"Playfair Display",serif;font-size:26px}.footer span{color:rgba(255,255,255,.66)}#backTop{position:fixed;right:18px;bottom:18px;width:48px;height:48px;border:none;border-radius:50%;background:#13213a;color:white;z-index:990;cursor:pointer;box-shadow:0 16px 40px rgba(0,0,0,.2);opacity:0;pointer-events:none;transform:translateY(12px);transition:.25s}#backTop.show{opacity:1;pointer-events:auto;transform:none}.modal,.lightbox{position:fixed;inset:0;background:rgba(2,6,14,.78);backdrop-filter:blur(10px);z-index:1200;display:none;align-items:center;justify-content:center;padding:20px}.modal.open,.lightbox.open{display:flex}.modalBox{width:min(680px,100%);max-height:calc(100svh - 36px);overflow:auto;background:#fff7eb;border:1px solid rgba(255,255,255,.25);border-radius:30px;padding:26px;position:relative;box-shadow:0 30px 90px rgba(0,0,0,.35)}.inviteBox{width:min(1040px,100%)}.modalClose,#closeLightbox{position:absolute;right:18px;top:14px;width:42px;height:42px;border:none;border-radius:50%;background:#13213a;color:white;font-size:24px;cursor:pointer}.inviteLayout{display:grid;grid-template-columns:320px 1fr;gap:18px}.inviteCanvasWrap{}#inviteCanvas{width:100%;height:auto;border-radius:22px;box-shadow:0 16px 50px rgba(33,32,26,.15);background:white}.lightbox img{max-width:min(1100px,92vw);max-height:78svh;border-radius:22px;box-shadow:0 30px 90px rgba(0,0,0,.45)}.lightbox p{position:absolute;bottom:18px;color:white;font-weight:800}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%,20px);z-index:1300;background:#13213a;color:white;border-radius:999px;padding:12px 18px;opacity:0;pointer-events:none;transition:.25s;box-shadow:0 16px 50px rgba(0,0,0,.24)}.toast.show{opacity:1;transform:translate(-50%,0)}code{background:#f0e3c6;border-radius:8px;padding:2px 6px;color:#7a4117}@media(max-width:980px){.navLinks{position:fixed;top:82px;left:12px;right:12px;display:none;flex-direction:column;align-items:stretch;background:rgba(8,24,47,.96);border:1px solid rgba(255,255,255,.16);border-radius:24px;padding:14px}.navLinks.open{display:flex}.navLinks a{padding:14px 16px}.burger{display:block}.brand small{display:none}.heroInner,.split,.split.reverse,.costWrap,.formsWrap,.locationWrap{grid-template-columns:1fr}.hero{padding-top:118px}.countCard{max-width:560px}.featureGrid,.sponsorGrid,.contactGrid{grid-template-columns:1fr 1fr}.entries{grid-template-columns:1fr}.inviteLayout{grid-template-columns:1fr}.inviteForm{order:2}}@media(max-width:640px){.section{padding:70px 0}.nav{height:62px;top:10px}.brand img{width:42px;height:42px}.brand b{font-size:12px}.iconBtn,.burger{width:42px;height:42px}.hero h1{font-size:61px}.lead{font-size:15px}.heroBtns .btn{width:100%}.countGrid{grid-template-columns:repeat(2,1fr)}.miniStats{grid-template-columns:1fr}.featureGrid,.sponsorGrid,.contactGrid{grid-template-columns:1fr}.cinema{min-height:420px}.slideCaption{left:20px;right:20px;bottom:24px}.slideBtn{width:42px;height:42px;font-size:30px}.timeline:before{left:26px}.timeItem{grid-template-columns:1fr;gap:12px;padding-left:54px}.timeItem .time{width:105px}.timeItem .content:before{left:18px}.row{grid-template-columns:1fr}.footerInner{flex-direction:column;text-align:center}.fundTop b{font-size:34px}}

/* Fix tổng quỹ: không để ký hiệu đ bị rớt dòng trên desktop/mobile */
.fundTop{min-width:0;overflow:hidden}
@media(max-width:640px){.fundPanel{padding:24px 18px}.fundTop b{font-size:clamp(32px,10vw,40px);gap:5px}.fundMeter{margin:18px 0}.fundStats{gap:10px}.fundStats div{padding:14px 8px}.fundStats b{font-size:30px}}
@media(max-width:390px){.fundTop b{font-size:31px}.fundTop .fundLabel{font-size:11px;letter-spacing:.14em}.fundStats{grid-template-columns:1fr}.fundPanel .btn{white-space:normal;text-align:center}}


/* === Sponsor + contact upgrade: photos, effects, Zalo CTA === */
.sponsorCard,.contactCard{position:relative;overflow:hidden;isolation:isolate;min-height:224px;padding:24px 24px 22px;transition:transform .32s ease,box-shadow .32s ease,border-color .32s ease;background:linear-gradient(180deg,#fff,#fffdf8)}
.sponsorCard::before,.contactCard::before{content:"";position:absolute;inset:-2px;border-radius:inherit;background:linear-gradient(135deg,rgba(231,189,85,.95),rgba(255,255,255,0),rgba(201,73,53,.55));opacity:.15;z-index:-1;transition:opacity .32s ease}
.sponsorCard::after,.contactCard::after{content:"";position:absolute;top:-45%;left:-75%;width:60%;height:190%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);transform:rotate(22deg);transition:left .75s ease;pointer-events:none}
.sponsorCard:hover,.contactCard:hover{transform:translateY(-8px);border-color:rgba(231,189,85,.75);box-shadow:0 26px 72px rgba(19,33,58,.16)}
.sponsorCard:hover::before,.contactCard:hover::before{opacity:.38}.sponsorCard:hover::after,.contactCard:hover::after{left:120%}
.personPhoto{width:76px;height:76px;border-radius:26px;padding:4px;background:linear-gradient(135deg,#fff5c8,#e7bd55,#fff);box-shadow:0 14px 36px rgba(183,121,31,.18);margin-bottom:16px;transition:transform .32s ease}
.personPhoto img{width:100%;height:100%;object-fit:cover;border-radius:22px;border:1px solid rgba(255,255,255,.72)}
.sponsorCard:hover .personPhoto,.contactCard:hover .personPhoto{transform:scale(1.05) rotate(-2deg)}
.rankBadge{position:absolute;right:22px;top:22px;width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#fff0b8,#e7bd55);color:#7a4117;font-weight:950;box-shadow:0 14px 28px rgba(183,121,31,.16)}
.sponsorCard h3,.contactCard h3{font-size:20px;line-height:1.25;margin-top:2px;color:#07172e}.sponsorCard b{font-size:17px}.sponsorCard p,.contactCard p{font-size:15px}.sponsorCard .avatar,.contactCard .avatar{display:none}
.zaloChip{display:flex;align-items:center;gap:9px;width:max-content;max-width:100%;margin-top:14px;padding:9px 12px;border:1px solid rgba(0,104,255,.22);border-radius:999px;background:linear-gradient(135deg,#eef6ff,#fff);color:#0b55c4;font-weight:850;box-shadow:0 12px 24px rgba(0,104,255,.08);transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}
.zaloChip:hover{transform:translateY(-2px);border-color:rgba(0,104,255,.55);box-shadow:0 16px 34px rgba(0,104,255,.16)}.zaloIcon{width:28px;height:28px;border-radius:50%;display:grid;place-items:center;background:#0068ff;color:#fff;font-weight:950;font-size:14px;flex:0 0 auto}.zaloChip small{color:#5f6c80;font-weight:800;font-size:11px}.zaloChip span:not(.zaloIcon){white-space:nowrap}
@media(max-width:980px){.sponsorCard,.contactCard{min-height:210px}.personPhoto{width:70px;height:70px}}
@media(max-width:640px){.sponsorCard,.contactCard{padding:22px;min-height:auto}.personPhoto{width:66px;height:66px;border-radius:22px}.personPhoto img{border-radius:18px}.rankBadge{right:20px;top:20px;width:42px;height:42px}.zaloChip{width:100%;justify-content:center;white-space:normal}.zaloChip span:not(.zaloIcon){white-space:normal}.zaloChip small{display:none}}


/* Hide gallery scrollbar */
#filmstrip{
  scrollbar-width: none;
  -ms-overflow-style: none;
}

#filmstrip::-webkit-scrollbar{
  display:none;
}


/* Filmstrip drag scroll */
#filmstrip{
  overflow-x:auto !important;
  overflow-y:hidden;
  scroll-behavior:smooth;
  cursor:grab;
  user-select:none;
  -webkit-overflow-scrolling:touch;
}

#filmstrip:active{
  cursor:grabbing;
}

#filmstrip button{
  flex:0 0 auto;
}


/* Custom tribute section */
.teachers{overflow:hidden;background:radial-gradient(circle at 15% 15%,rgba(231,189,85,.18),transparent 28%),linear-gradient(140deg,#07172e 0%,#0f2038 54%,#091326 100%);color:white}.teachers:before{content:"";position:absolute;inset:46px;pointer-events:none;border:1px solid rgba(231,189,85,.2);border-radius:34px}.tributeWrap{position:relative;display:grid;grid-template-columns:.9fr 1.1fr;gap:34px;align-items:center}.tributeIntro{position:relative;z-index:1;padding:26px}.tributeIntro small{display:inline-flex;color:#e7bd55;font-weight:900;text-transform:uppercase;letter-spacing:.24em;font-size:12px;margin-bottom:12px}.tributeIntro h2{font-family:"Playfair Display",serif;font-size:clamp(40px,5vw,72px);line-height:.98;margin:0;color:#fff;letter-spacing:-.04em}.tributeIntro p{color:rgba(255,255,255,.72);line-height:1.9;margin:20px 0 0;max-width:520px}.tributeLine{display:block;width:72px;height:2px;background:linear-gradient(90deg,transparent,#e7bd55);margin-bottom:16px}.tributePanel{position:relative;isolation:isolate;overflow:visible;border-radius:24px;padding:56px 48px 48px 58px;border:1px solid rgba(195,169,110,.72);background:repeating-linear-gradient(to bottom,#f9f1dd 0,#f9f1dd 34px,#e1d3b5 35px,#f9f1dd 36px),linear-gradient(135deg,#fffaf0,#f4ead2);box-shadow:0 24px 70px rgba(0,0,0,.22),0 10px 0 rgba(137,107,55,.14);transform:rotate(-1.1deg)}.tributePanel:before,.tributePanel:after{content:"";position:absolute;top:-16px;width:110px;height:28px;border-radius:8px;background:linear-gradient(180deg,rgba(255,242,194,.9),rgba(235,209,140,.55));box-shadow:0 6px 12px rgba(0,0,0,.12);opacity:.95;pointer-events:none}.tributePanel:before{left:54px;transform:rotate(-8deg)}.tributePanel:after{right:64px;transform:rotate(9deg)}.tributeGlow{display:none}.tributeYear{position:absolute;right:28px;top:26px;font-family:"Playfair Display",serif;font-size:84px;font-weight:900;line-height:1;color:rgba(176,140,70,.12)}.tributeQuoteMark{position:relative;z-index:2;font-family:"Playfair Display",serif;font-size:66px;line-height:.6;color:#cb8f3f;margin:0 0 10px}.tributePanel blockquote{position:relative;z-index:2;margin:0;max-width:760px;font-family:"Playfair Display",serif;font-size:clamp(23px,2.6vw,34px);line-height:1.7;color:#2c2519;font-style:italic;text-shadow:none}.tributePanel blockquote:before{content:"";position:absolute;left:-26px;top:-10px;bottom:-8px;width:3px;border-radius:999px;background:rgba(214,112,81,.5)}.tributeActions{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:34px}.tributeActions div{border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.08);border-radius:20px;padding:18px}.tributeActions b{display:block;color:#fff0b8;font-size:18px;margin-bottom:6px}.tributeActions span{display:block;color:rgba(255,255,255,.7);font-size:13px;line-height:1.55}@media(max-width:980px){.tributeWrap{grid-template-columns:1fr}.tributeIntro{padding:0}.teachers:before{inset:24px}}@media(max-width:640px){.teachers:before{display:none}.tributePanel{padding:42px 22px 30px 30px;border-radius:20px;transform:none}.tributeYear{font-size:56px;right:16px;top:16px}.tributePanel:before{left:28px;width:84px;height:24px}.tributePanel:after{right:24px;width:82px;height:24px}.tributeActions{grid-template-columns:1fr}.tributeIntro h2{font-size:42px}}


/* Typography refresh */
.heroText{max-width:720px}.sectionTitle h2,.tributeIntro h2,.hero h1{text-wrap:balance}.script{font-size:clamp(30px,3.4vw,46px);line-height:1.05;margin:18px 0 10px}.hero h1{font-size:clamp(60px,8.6vw,110px);line-height:.92;letter-spacing:-.045em;margin:0 0 18px}.hero h1 span{margin-bottom:6px}.hero h1 strong{margin-bottom:10px}.hero h1 em{font-size:.43em;letter-spacing:.02em;color:rgba(255,255,255,.92)}.lead{max-width:640px}.about .split{grid-template-columns:1.08fr .92fr;align-items:start}.about .sectionTitle{max-width:590px;padding-top:8px}.about .sectionTitle h2{font-size:clamp(42px,4.9vw,76px);line-height:1.04;letter-spacing:-.035em}.about .sectionTitle h2 span{display:block}.letter{padding:34px 34px 30px}.quote{font-size:30px;line-height:1.35}.tributeWrap{grid-template-columns:1fr 1fr;gap:44px}.tributeIntro{padding:12px 8px 12px 0;align-self:center}.tributeIntro h2{font-size:clamp(42px,5vw,68px);line-height:1.02;letter-spacing:-.03em;max-width:520px}.tributeIntro h2 span{display:block}.tributeIntro p{font-size:17px;max-width:480px}.tributePanel{padding:54px 40px 42px 50px}.tributeQuoteMark{font-size:64px;line-height:.7;margin-bottom:4px}.tributePanel blockquote{font-size:clamp(22px,2.5vw,32px);line-height:1.65}.tributeYear{font-size:78px;opacity:.22}@media(max-width:980px){.about .split,.tributeWrap{grid-template-columns:1fr}.about .sectionTitle,.tributeIntro{max-width:none}}@media(max-width:640px){.script{font-size:clamp(28px,9vw,38px)}.hero h1{font-size:clamp(52px,17vw,74px);line-height:.95}.about .sectionTitle h2{font-size:clamp(36px,11.4vw,54px)}.tributeIntro h2{font-size:clamp(38px,11vw,50px)}.tributePanel{padding:40px 22px 30px 28px}.tributePanel blockquote{font-size:clamp(20px,6.2vw,28px)}}


/* About note-paper styling */
.about .letter{position:relative;overflow:visible;padding:42px 34px 30px 46px;border-radius:24px;border:1px solid rgba(203,174,121,.72);background:repeating-linear-gradient(to bottom,#fbf4e5 0,#fbf4e5 35px,#e2d7bf 36px),linear-gradient(135deg,#fffaf0,#f4ead7);box-shadow:0 24px 56px rgba(46,38,23,.10),0 8px 0 rgba(151,123,76,.08)}
.about .letter:before,.about .letter:after{content:"";position:absolute;top:-14px;width:98px;height:26px;border-radius:8px;background:linear-gradient(180deg,rgba(255,242,194,.96),rgba(236,214,151,.58));box-shadow:0 5px 10px rgba(0,0,0,.10);pointer-events:none}
.about .letter:before{left:36px;transform:rotate(-7deg)}
.about .letter:after{right:48px;transform:rotate(8deg)}
.about .letter p{position:relative;margin:0 0 18px;color:#5f6c80;line-height:1.95;font-size:16px}
.about .letter p:first-of-type{margin-top:6px}
.about .letter:where(*){z-index:1}
.about .letter p,.about .letter .quote{position:relative;z-index:2}
.about .letter::marker{display:none}
.about .quote{margin-top:8px;padding:20px 0 0;color:#c6852f;font-size:clamp(28px,2.7vw,40px);line-height:1.45}
.about .letter::selection{background:rgba(231,189,85,.22)}
@media(max-width:640px){.about .letter{padding:36px 22px 24px 28px}.about .letter:before{left:20px;width:76px;height:22px}.about .letter:after{right:22px;width:76px;height:22px}.about .letter p{font-size:15px;line-height:1.85}}


/* Entry cards as note paper */
.entries > div > h3{margin:0 0 14px;font-family:"Playfair Display",serif;font-size:clamp(28px,3vw,40px);color:#13213a}
.entries .entryGrid{gap:16px}
.entries .entryCard{position:relative;overflow:visible;padding:30px 24px 22px 28px;border-radius:22px;border:1px solid rgba(203,174,121,.72);background:repeating-linear-gradient(to bottom,#fbf4e5 0,#fbf4e5 31px,#e2d7bf 32px),linear-gradient(135deg,#fffaf0,#f5ebd8);box-shadow:0 18px 42px rgba(46,38,23,.08),0 7px 0 rgba(151,123,76,.07)}
.entries .entryCard:before{content:"";position:absolute;top:-12px;left:26px;width:82px;height:22px;border-radius:7px;background:linear-gradient(180deg,rgba(255,242,194,.96),rgba(236,214,151,.58));box-shadow:0 5px 10px rgba(0,0,0,.10);pointer-events:none;transform:rotate(-7deg)}
.entries .entryCard:after{content:"";position:absolute;left:0;top:14px;bottom:14px;width:3px;border-radius:999px;background:rgba(214,112,81,.42)}
.entries .entryCard small{display:inline-block;margin-bottom:8px;color:#c6852f;font-weight:800;letter-spacing:.02em}
.entries .entryCard h4{margin:0 0 10px;font-size:clamp(22px,2vw,28px);color:#13213a}
.entries .entryCard p{color:#5f6c80;line-height:1.85}
@media(max-width:640px){.entries > div > h3{font-size:30px}.entries .entryCard{padding:28px 18px 20px 24px}.entries .entryCard:before{left:18px;width:70px;height:20px}}


/* Limit latest list / guestbook height with internal scroll */
.entries > div{min-width:0}
.entries .entryGrid{max-height:520px;overflow-y:auto;overflow-x:hidden;padding:12px 12px 14px 0;scrollbar-width:thin;scrollbar-color:rgba(19,33,58,.42) rgba(231,189,85,.15)}
.entries .entryGrid::-webkit-scrollbar{width:8px}
.entries .entryGrid::-webkit-scrollbar-track{background:rgba(231,189,85,.16);border-radius:999px}
.entries .entryGrid::-webkit-scrollbar-thumb{background:rgba(19,33,58,.42);border-radius:999px}
.entries .entryGrid::-webkit-scrollbar-thumb:hover{background:rgba(19,33,58,.62)}
@media(max-width:640px){.entries .entryGrid{max-height:430px;padding-right:8px}}


/* Feature cards refresh */
.featureGrid{gap:24px;align-items:stretch}
.feature{position:relative;overflow:hidden;isolation:isolate;padding:30px 26px 24px;border:1px solid rgba(222,191,131,.88);border-radius:28px;background:linear-gradient(180deg,#fffdf7 0%,#fff7eb 100%);box-shadow:0 18px 40px rgba(34,30,20,.07),inset 0 1px 0 rgba(255,255,255,.9)}
.feature:before{content:"";position:absolute;left:0;right:0;top:0;height:8px;background:linear-gradient(90deg,#e7bd55,#f4d887 50%,#efc7b2)}
.feature:after{content:"";position:absolute;right:-18px;bottom:-18px;width:88px;height:88px;border-radius:24px;background:radial-gradient(circle at 30% 30%,rgba(231,189,85,.16),rgba(231,189,85,0) 70%);z-index:-1}
.feature:nth-child(2){transform:translateY(10px)}
.feature:nth-child(1):hover,.feature:nth-child(2):hover,.feature:nth-child(3):hover{transform:translateY(-4px)}
.feature span{display:grid;place-items:center;width:68px;height:68px;margin-bottom:18px;border-radius:20px;background:linear-gradient(135deg,#fff7d8,#e7bd55);box-shadow:0 12px 24px rgba(231,189,85,.24);font-size:34px}
.feature h3{position:relative;margin:0 0 10px;font-size:clamp(24px,2.2vw,30px);color:#13213a}
.feature h3:after{content:"";display:block;width:56px;height:3px;margin-top:10px;border-radius:999px;background:linear-gradient(90deg,#e7bd55,rgba(231,189,85,0))}
.feature p{margin:0;color:#5f6c80;line-height:1.85;font-size:17px}
@media(max-width:980px){.feature:nth-child(2){transform:none}}
@media(max-width:640px){.featureGrid{gap:18px}.feature{padding:24px 20px 20px}.feature span{width:60px;height:60px;border-radius:18px;font-size:30px}.feature p{font-size:16px}}


/* Alternate feature card style */
.featureGrid{gap:26px;align-items:stretch}
.feature{position:relative;isolation:isolate;overflow:hidden;padding:34px 26px 24px 30px;border-radius:30px 30px 30px 12px;background:linear-gradient(180deg,#fffdf8 0%,#fff7ec 100%);border:1px dashed rgba(201,160,84,.85);box-shadow:0 18px 42px rgba(33,32,26,.07),12px 12px 0 rgba(231,189,85,.11);transition:transform .25s ease,box-shadow .25s ease}
.feature::before{content:"";position:absolute;left:0;top:24px;bottom:24px;width:7px;border-radius:0 999px 999px 0;background:linear-gradient(180deg,#e7bd55,#efc7b2)}
.feature::after{content:"";position:absolute;right:18px;top:18px;width:78px;height:78px;border-radius:22px;border:1px solid rgba(231,189,85,.32);background:linear-gradient(135deg,rgba(231,189,85,.10),rgba(255,255,255,0));z-index:-1}
.feature:nth-child(1){transform:rotate(-1.2deg)}
.feature:nth-child(2){transform:translateY(12px)}
.feature:nth-child(3){transform:rotate(1.2deg)}
.feature:hover{transform:translateY(-6px);box-shadow:0 24px 54px rgba(33,32,26,.11),14px 14px 0 rgba(231,189,85,.14)}
.feature span{display:grid;place-items:center;width:70px;height:70px;margin:0 0 18px 4px;border-radius:22px;background:linear-gradient(135deg,#13213a,#213a63);box-shadow:0 14px 24px rgba(19,33,58,.18);font-size:34px}
.feature h3{margin:0 0 10px;font-size:clamp(24px,2.1vw,30px);line-height:1.2;color:#13213a}
.feature h3::after{content:"";display:block;width:64px;height:2px;margin-top:12px;background:linear-gradient(90deg,#e7bd55,rgba(231,189,85,0));border-radius:999px}
.feature p{margin:0;color:#5f6c80;line-height:1.82;font-size:17px}
@media(max-width:980px){.feature:nth-child(1),.feature:nth-child(2),.feature:nth-child(3){transform:none}.feature:hover{transform:translateY(-4px)}}
@media(max-width:640px){.featureGrid{gap:18px}.feature{padding:28px 20px 20px 24px;border-radius:24px 24px 24px 10px;box-shadow:0 14px 30px rgba(33,32,26,.07),8px 8px 0 rgba(231,189,85,.09)}.feature span{width:62px;height:62px;border-radius:18px;font-size:30px}.feature p{font-size:16px}.feature::after{width:64px;height:64px;right:14px;top:14px}}


/* Sponsor cards restyled to match reference */
.sponsors .sectionTitle h2{font-size:clamp(40px,5.6vw,72px);line-height:1.02;letter-spacing:-.035em}
.sponsorGrid{gap:18px;align-items:stretch}
.sponsorCard{
  min-height:250px;
  padding:24px 24px 22px;
  border-radius:26px;
  border:1px solid rgba(231,199,129,.75);
  background:#fbfaf8;
  box-shadow:0 16px 32px rgba(37,31,20,.05);
  transform:none !important;
}
.sponsorCard::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(180deg,rgba(255,255,255,.45),rgba(255,255,255,0));
  opacity:1;
  z-index:0;
}
.sponsorCard::after{display:none}
.sponsorCard:hover{
  transform:translateY(-4px) !important;
  border-color:rgba(231,189,85,.9);
  box-shadow:0 22px 44px rgba(37,31,20,.08);
}
.sponsorCard > *{position:relative;z-index:1}
.sponsorCard .sponsorPhoto,
.sponsorCard .personPhoto.sponsorPhoto{
  width:76px;
  height:76px;
  padding:4px;
  margin-bottom:18px;
  border-radius:24px;
  background:linear-gradient(135deg,#f6e7a1,#e7bd55);
  box-shadow:none;
}
.sponsorCard:nth-child(2) .sponsorPhoto{background:linear-gradient(135deg,#f4de98,#d8b24a)}
.sponsorCard:nth-child(3) .sponsorPhoto{background:linear-gradient(135deg,#f4d9b8,#efc7b2)}
.sponsorCard .sponsorPhoto img{
  border-radius:20px;
  border:none;
  background:#fff;
}
.rankBadge{
  top:22px;
  right:22px;
  width:48px;
  height:48px;
  border-radius:16px;
  background:linear-gradient(180deg,#f5da83,#e7bd55);
  color:#86551c;
  box-shadow:none;
  font-size:28px;
  line-height:1;
}
.sponsorCard h3{
  margin:0 0 10px;
  font-size:clamp(22px,2.2vw,24px);
  line-height:1.26;
  color:#071d45;
  font-weight:900;
}
.sponsorCard b{
  display:block;
  margin:0 0 10px;
  font-size:clamp(18px,2vw,20px);
  line-height:1.2;
  color:#c68217;
  font-weight:900;
}
.sponsorCard p{
  margin:0;
  color:#66748b;
  line-height:1.7;
  font-size:15px;
}
@media(max-width:980px){
  .sponsorCard{min-height:230px}
}
@media(max-width:640px){
  .sponsors .sectionTitle h2{font-size:clamp(34px,11vw,50px)}
  .sponsorCard{min-height:auto;padding:22px 20px 20px;border-radius:22px}
  .sponsorCard .sponsorPhoto{width:70px;height:70px;border-radius:22px}
  .sponsorCard .sponsorPhoto img{border-radius:18px}
  .rankBadge{width:44px;height:44px;border-radius:14px;font-size:24px;right:18px;top:18px}
  .sponsorCard h3{font-size:24px}
  .sponsorCard b{font-size:18px}
}

/* === Classbook redesign inspired by reference site === */
.classbook{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 20% 0%, rgba(25,55,104,.42), transparent 32%),
    radial-gradient(circle at 85% 12%, rgba(231,189,85,.10), transparent 18%),
    linear-gradient(180deg,#07172e 0%,#081a37 45%,#071329 100%);
  color:#fff;
}
.classbook::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:radial-gradient(rgba(255,255,255,.08) 1px, transparent 1px);
  background-size:18px 18px;
  opacity:.16;
  pointer-events:none;
}
.classbook::after{
  content:"";
  position:absolute;
  left:0;right:0;bottom:0;
  height:120px;
  background:linear-gradient(180deg,rgba(7,19,41,0),rgba(4,10,22,.6));
  pointer-events:none;
}
.classbook .container{position:relative;z-index:1}
.classbookGlow{position:absolute;border-radius:50%;filter:blur(16px);opacity:.26;pointer-events:none}
.classbookGlow.one{width:260px;height:260px;background:#d1a23f;left:-90px;top:90px}
.classbookGlow.two{width:220px;height:220px;background:#b14538;right:-80px;top:220px}
.classbookHead{max-width:860px;margin-bottom:34px}
.classbookHead small{display:inline-flex;align-items:center;gap:10px;color:#e7bd55;font-weight:800;text-transform:uppercase;letter-spacing:.22em;font-size:12px;margin-bottom:12px}
.classbookHead small::before,.classbookHead small::after{content:"";width:26px;height:1px;background:rgba(231,189,85,.7)}
.classbookHead h2{font-family:"Playfair Display",serif;font-size:clamp(44px,6vw,76px);line-height:1.02;letter-spacing:-.035em;margin:0;color:#fffdf7}
.classbookHead p{max-width:760px;margin:16px auto 0;color:rgba(255,255,255,.78);font-size:18px;line-height:1.8}
.classbookActions{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:24px}
.classbookActions .btn{min-width:190px}
.classbookWrap{grid-template-columns:.92fr 1.08fr;gap:26px;align-items:stretch}
.classbook .formInfo,
.classbook .formCard{
  background:linear-gradient(180deg,rgba(17,32,63,.88),rgba(11,24,48,.92));
  border:1px solid rgba(231,189,85,.18);
  box-shadow:0 28px 70px rgba(0,0,0,.22);
  color:#fff;
}
.classbook .formInfo{padding:42px 34px;min-height:100%}
.classbook .formInfo small{color:#e7bd55}
.classbook .formInfo h2{color:#fff;font-size:clamp(42px,5.6vw,74px);line-height:.96;letter-spacing:-.04em;max-width:460px}
.classbook .formInfo p{color:rgba(255,255,255,.78);font-size:17px;line-height:1.85;margin:18px 0 0}
.memoryTags{display:flex;flex-wrap:wrap;gap:10px;margin:22px 0 0}
.memoryTags span{display:inline-flex;align-items:center;gap:8px;padding:10px 14px;border-radius:999px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);color:#fff4cf;font-weight:700;font-size:13px}
.classbook .tabs{margin-top:26px;display:flex;gap:10px;flex-wrap:wrap}
.classbook .tab{background:rgba(255,255,255,.08);border:1px solid rgba(231,189,85,.26);color:#fff4cf;padding:12px 16px}
.classbook .tab.active{background:linear-gradient(135deg,#fff0b8,#e7bd55);color:#13213a;border-color:transparent}
.classbookNote{margin-top:18px;padding:14px 16px;border-radius:18px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:rgba(255,255,255,.72);line-height:1.75;font-size:14px}
.classbook code{background:rgba(231,189,85,.14);color:#ffe8a6}
.classbook .formCard{display:none;padding:30px 28px}
.classbook .formCard.active{display:block}
.classbook .formCard small{display:inline-flex;color:#e7bd55;font-weight:800;text-transform:uppercase;letter-spacing:.18em;font-size:12px;margin-bottom:10px}
.classbook .formCard h3{margin:0 0 14px;font-size:34px;color:#fff;font-family:"Playfair Display",serif}
.classbook .field{gap:8px;margin-bottom:14px}
.classbook .field label{color:#fff4cf;font-size:13px;letter-spacing:.02em}
.classbook .field input,
.classbook .field textarea{
  background:rgba(6,16,34,.72);
  border:1px solid rgba(231,189,85,.24);
  color:#fff;
  border-radius:16px;
  padding:14px 15px;
}
.classbook .field input::placeholder,
.classbook .field textarea::placeholder{color:rgba(255,255,255,.42)}
.classbook .field input:focus,
.classbook .field textarea:focus{border-color:#e7bd55;box-shadow:0 0 0 4px rgba(231,189,85,.15)}
.classbook .field textarea{min-height:138px;resize:vertical}
.classbook .row{grid-template-columns:1fr 1fr;gap:12px}
.classbook .gold{box-shadow:0 16px 30px rgba(231,189,85,.18)}
.classbook .entries{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:34px}
.classbook .entryPanel{
  min-width:0;
  padding:22px 20px 18px;
  border-radius:28px;
  background:linear-gradient(180deg,rgba(16,29,56,.88),rgba(10,22,44,.92));
  border:1px solid rgba(231,189,85,.16);
  box-shadow:0 24px 60px rgba(0,0,0,.18);
}
.classbook .entryPanel > small{display:inline-flex;color:#e7bd55;font-weight:800;text-transform:uppercase;letter-spacing:.16em;font-size:12px;margin-bottom:8px}
.classbook .entries > div > h3{margin:0 0 16px;color:#fff;font-family:"Playfair Display",serif;font-size:clamp(30px,3.4vw,44px);line-height:1.05}
.classbook .entryGrid{max-height:560px;overflow-y:auto;overflow-x:hidden;padding-right:10px;scrollbar-width:thin;scrollbar-color:rgba(231,189,85,.52) rgba(255,255,255,.08)}
.classbook .entryGrid::-webkit-scrollbar{width:8px}
.classbook .entryGrid::-webkit-scrollbar-track{background:rgba(255,255,255,.08);border-radius:999px}
.classbook .entryGrid::-webkit-scrollbar-thumb{background:rgba(231,189,85,.5);border-radius:999px}
.classbook .entryCard{background:repeating-linear-gradient(to bottom,#fbf4e5 0,#fbf4e5 31px,#e2d7bf 32px),linear-gradient(135deg,#fffaf0,#f5ebd8);box-shadow:0 14px 26px rgba(0,0,0,.12),0 7px 0 rgba(151,123,76,.07)}
.classbook .entryPanel:first-child .entryCard:nth-child(odd){transform:rotate(-.35deg)}
.classbook .entryPanel:last-child .entryCard:nth-child(odd){transform:rotate(.5deg)}
.classbook .entryPanel:last-child .entryCard:nth-child(even){transform:rotate(-.45deg)}
.classbook .entryCard h4{line-height:1.2}
.classbook .entryCard p{line-height:1.8}
@media(max-width:980px){
  .classbookHead{margin-bottom:28px}
  .classbookWrap,.classbook .entries{grid-template-columns:1fr}
  .classbook .formInfo h2{max-width:none}
}
@media(max-width:640px){
  .classbookHead h2{font-size:clamp(38px,12vw,54px)}
  .classbookHead p{font-size:16px}
  .classbookActions .btn{width:100%;min-width:0}
  .classbook .formInfo,.classbook .formCard,.classbook .entryPanel{padding:22px 18px}
  .classbook .formInfo h2{font-size:clamp(34px,12vw,48px)}
  .memoryTags span{width:100%;justify-content:center}
  .classbook .tabs{display:grid;grid-template-columns:1fr 1fr}
  .classbook .tab{justify-content:center}
  .classbook .row{grid-template-columns:1fr}
  .classbook .formCard h3{font-size:28px}
  .classbook .entryGrid{max-height:460px;padding-right:6px}
}

/* Classbook v2 closer to reference */
.classbookWrap{margin-top:10px}
.classbook .formInfo h2{max-width:520px}
.classbook .formCard{position:relative}
.classbook .formCard::before{content:"";position:absolute;inset:16px;border:1px solid rgba(255,255,255,.05);border-radius:22px;pointer-events:none}
.classbook .field select{
  appearance:none;
  background:rgba(6,16,34,.72) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' fill='none' stroke='%23e7bd55' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center/18px;
  border:1px solid rgba(231,189,85,.24);
  color:#fff;
  border-radius:16px;
  padding:14px 42px 14px 15px;
  outline:none;
}
.classbook .field select:focus{border-color:#e7bd55;box-shadow:0 0 0 4px rgba(231,189,85,.15)}
.classbook .field select option{color:#13213a}
.classFilters{display:flex;gap:10px;overflow:auto;padding:6px 0 12px;margin-bottom:8px;scrollbar-width:thin;scrollbar-color:rgba(231,189,85,.48) transparent}
.classFilters::-webkit-scrollbar{height:7px}
.classFilters::-webkit-scrollbar-thumb{background:rgba(231,189,85,.45);border-radius:999px}
.classChip{flex:0 0 auto;display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:20px;border:1px solid rgba(231,189,85,.2);background:rgba(255,255,255,.06);color:#fff;cursor:pointer;min-width:100px;justify-content:space-between;transition:.22s}
.classChip b{font-size:14px;line-height:1.1}
.classChip span{display:grid;place-items:center;min-width:28px;height:28px;padding:0 8px;border-radius:999px;background:rgba(255,255,255,.08);color:#ffe7a1;font-size:12px;font-weight:800}
.classChip:hover{transform:translateY(-2px);border-color:rgba(231,189,85,.45)}
.classChip.active{background:linear-gradient(135deg,rgba(255,240,184,.18),rgba(231,189,85,.18));border-color:#e7bd55;box-shadow:0 10px 24px rgba(231,189,85,.12)}
.classChip.active span{background:linear-gradient(135deg,#fff0b8,#e7bd55);color:#13213a}
.classbookCards,.memoryWall{display:grid;grid-template-columns:1fr 1fr;gap:14px;align-items:start}
.classbook .entryGrid.classbookCards,.classbook .entryGrid.memoryWall{max-height:620px;overflow:auto;padding-right:8px}
.alumniSheet,.memoryNote{position:relative;overflow:visible;transform:rotate(var(--r,0deg));transition:transform .2s ease, box-shadow .2s ease}
.alumniSheet:hover,.memoryNote:hover{transform:translateY(-4px) rotate(var(--r,0deg))}
.alumniSheet{padding:24px 18px 18px 24px;border-radius:18px;border:1px solid rgba(230,192,126,.8);background:repeating-linear-gradient(to bottom,#f4f1ea 0,#f4f1ea 31px,#d5d9df 32px),linear-gradient(180deg,#f6f3ec,#ece8e0);box-shadow:0 16px 34px rgba(0,0,0,.14)}
.alumniSheet:before{content:"";position:absolute;left:14px;top:0;bottom:0;width:3px;background:#ff6a55;border-radius:999px;opacity:.7}
.alumniSheet small,.memoryNote small{display:block;margin-bottom:8px;color:#a86e13;font-weight:800;letter-spacing:.02em}
.alumniSheet h4,.memoryNote h4{margin:0 0 10px;color:#15203d;font-size:28px;line-height:1.1}
.alumniSheet p,.memoryNote p{margin:0;color:#56657e;line-height:1.75;font-size:15px}
.alumniSheet em,.memoryNote em{display:block;margin-top:12px;color:#8e96a8;font-size:12px;font-style:italic;text-align:right}
.memoryNote{padding:18px 20px 18px;border-radius:18px 18px 18px 8px;border:1px solid rgba(231,189,85,.45);background:linear-gradient(180deg,#fff2d1,#f9e4bb);box-shadow:0 16px 34px rgba(0,0,0,.14)}
.memoryNote:before{content:"";position:absolute;left:50%;top:-8px;transform:translateX(-50%) rotate(-4deg);width:64px;height:14px;border-radius:4px;background:rgba(230,231,228,.9);box-shadow:0 3px 8px rgba(0,0,0,.12)}
.memoryWall .memoryNote:nth-child(2n){background:linear-gradient(180deg,#fff3e6,#f7dfcb)}
.memoryWall .memoryNote:nth-child(3n){background:linear-gradient(180deg,#fff4bf,#fae487)}
.emptyState{display:flex;flex-direction:column;justify-content:center;align-items:flex-start;min-height:180px;background:rgba(255,255,255,.08)!important;border:1px dashed rgba(231,189,85,.32)!important;color:#fff;padding:22px!important}
.emptyState h4{color:#fff!important;font-size:22px!important}
.emptyState p{color:rgba(255,255,255,.72)!important}
@media(max-width:980px){.classbookCards,.memoryWall{grid-template-columns:1fr}}
@media(max-width:640px){
  .classFilters{gap:8px}
  .classChip{min-width:88px;padding:10px 12px;border-radius:18px}
  .classbookCards,.memoryWall{grid-template-columns:1fr}
  .alumniSheet h4,.memoryNote h4{font-size:24px}
}

/* Guestbook-only compact layout */
.classbookWrap.singleGuestbook{grid-template-columns:.95fr 1.05fr}
.singleEntryWrap{grid-template-columns:1fr!important}
.fullWidthPanel{width:min(980px,100%);margin:0 auto}
.classbook .entryGrid.memoryWall{max-height:640px}
.memoryWall{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:980px){.classbookWrap.singleGuestbook{grid-template-columns:1fr}.fullWidthPanel{width:100%}}
@media(max-width:640px){.memoryWall{grid-template-columns:1fr}.classbook .entryGrid.memoryWall{max-height:500px}}

/* Extra lưu bút fields */
.memoryForm .row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.memoryForm .field label{text-transform:uppercase;letter-spacing:.16em;font-size:12px;color:#e7bd55!important}
.memoryForm .withCount{position:relative}
.memoryForm .charCount{position:absolute;right:14px;bottom:10px;color:rgba(255,255,255,.66);font-size:13px;font-weight:800}
.memoryForm .withCount textarea{padding-bottom:32px}
.memoryNote .memoryText{color:#3e4c62;font-weight:700}
.classbook .field input,.classbook .field textarea,.classbook .field select{font-size:15px}
@media(max-width:640px){.memoryForm .row{grid-template-columns:1fr;gap:0}.memoryForm .charCount{right:12px}}

/* Guestbook cards closer to referenced lined note style */
.memoryWall{gap:18px}
.linedNote{
  padding:22px 18px 18px 28px;
  border-radius:8px;
  border:1px solid rgba(217,222,230,.95);
  background:
    linear-gradient(90deg, rgba(244,112,90,.55) 0, rgba(244,112,90,.55) 2px, transparent 2px, transparent 22px),
    repeating-linear-gradient(to bottom,#f4f4f2 0,#f4f4f2 30px,#d7dce3 31px,#f4f4f2 32px);
  box-shadow:0 10px 24px rgba(0,0,0,.16);
}
.linedNote:before{display:none}
.linedNote .noteHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:6px;padding-right:2px}
.linedNote .noteHead h4{margin:0;color:#2b3345;font-family:"Playfair Display",serif;font-size:clamp(18px,1.7vw,26px);line-height:1.08;font-weight:700;max-width:72%}
.linedNote .noteClass{flex:0 0 auto;color:#b14fdd;font-weight:900;font-size:24px;line-height:1;padding-left:10px;border-left:2px solid #b14fdd}
.linedNote .noteMeta{display:flex;flex-direction:column;gap:4px;margin:4px 0 10px;color:#7c8597;font-size:14px;line-height:1.35}
.linedNote .noteMeta span{display:flex;align-items:center;gap:6px}
.linedNote .noteBlock{margin:0;padding:0}
.linedNote .noteBlock + .noteBlock{margin-top:4px}
.linedNote .noteBlock b{display:inline;font-size:16px;color:#3a4458;font-weight:900}
.linedNote .noteBlock p{display:inline;margin:0;color:#4e5c74;line-height:1.8;font-size:16px}
.linedNote em{display:block;margin-top:10px;color:#a6acb8;font-size:12px;font-weight:700;font-style:italic;text-align:right}
.emptyState{min-height:200px}
@media(max-width:640px){
  .linedNote{padding:18px 14px 16px 24px}
  .linedNote .noteHead h4{max-width:68%;font-size:22px}
  .linedNote .noteClass{font-size:20px}
  .linedNote .noteBlock b,.linedNote .noteBlock p{font-size:15px}
}


/* Fix anchor jump under sticky navigation */
#writeGuestbook,#readGuestbook,#guestForm,#guestbookList{scroll-margin-top:130px}
.classbookActions a{scroll-behavior:smooth}
@media(max-width:640px){#writeGuestbook,#readGuestbook,#guestForm,#guestbookList{scroll-margin-top:96px}}

/* Revert Feature + Sponsor sections to v8 style */
.featureGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px;align-items:initial}
.feature{background:#fff!important;border:1px solid #f0e3bf!important;border-radius:24px!important;padding:24px!important;box-shadow:0 18px 60px rgba(33,32,26,.06)!important;position:relative;overflow:visible;isolation:auto;transform:none!important;transition:.25s}
.feature:hover{transform:none!important;box-shadow:0 18px 60px rgba(33,32,26,.06)!important}
.feature:before,.feature:after,.feature h3:after{display:none!important;content:none!important}
.feature span{display:inline!important;width:auto!important;height:auto!important;margin:0!important;border-radius:0!important;background:none!important;box-shadow:none!important;font-size:34px!important;padding:0!important}
.feature h3{margin:14px 0 6px!important;font-size:inherit!important;line-height:normal!important;color:inherit!important}
.feature p{color:var(--muted)!important;line-height:1.7!important;margin:0!important;font-size:inherit!important}
.sponsors .sectionTitle h2{font-family:"Playfair Display",serif;font-size:clamp(34px,4vw,58px);line-height:1.05;letter-spacing:normal;margin:0;color:#13213a}
.sponsorGrid,.contactGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:36px;align-items:initial}
.sponsorCard,.contactCard{position:relative;overflow:hidden;isolation:isolate;min-height:224px;padding:24px 24px 22px;border:1px solid #efe2c3;border-radius:24px;transition:transform .32s ease,box-shadow .32s ease,border-color .32s ease;background:linear-gradient(180deg,#fff,#fffdf8);box-shadow:0 16px 46px rgba(33,32,26,.06);color:var(--text);transform:none!important}
.sponsorCard::before,.contactCard::before{display:block!important;content:""!important;position:absolute;inset:-2px;border-radius:inherit;background:linear-gradient(135deg,rgba(231,189,85,.95),rgba(255,255,255,0),rgba(201,73,53,.55));opacity:.15;z-index:-1;transition:opacity .32s ease}
.sponsorCard::after,.contactCard::after{display:block!important;content:""!important;position:absolute;top:-45%;left:-75%;width:60%;height:190%;background:linear-gradient(90deg,transparent,rgba(255,255,255,.65),transparent);transform:rotate(22deg);transition:left .75s ease;pointer-events:none}
.sponsorCard:hover,.contactCard:hover{transform:translateY(-8px)!important;border-color:rgba(231,189,85,.75);box-shadow:0 26px 72px rgba(19,33,58,.16)}
.sponsorCard:hover::before,.contactCard:hover::before{opacity:.38}.sponsorCard:hover::after,.contactCard:hover::after{left:120%}
.personPhoto{width:76px!important;height:76px!important;border-radius:26px!important;padding:4px!important;background:linear-gradient(135deg,#fff5c8,#e7bd55,#fff)!important;box-shadow:0 14px 36px rgba(183,121,31,.18)!important;margin-bottom:16px!important;transition:transform .32s ease!important;display:block!important}
.personPhoto img{width:100%;height:100%;object-fit:cover;border-radius:22px;border:1px solid rgba(255,255,255,.72)}
.sponsorCard:hover .personPhoto,.contactCard:hover .personPhoto{transform:scale(1.05) rotate(-2deg)}
.rankBadge{position:absolute;right:22px;top:22px;width:46px;height:46px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(135deg,#fff0b8,#e7bd55);color:#7a4117;font-weight:950;box-shadow:0 14px 28px rgba(183,121,31,.16);font-size:inherit;line-height:normal}
.sponsorCard h3,.contactCard h3{font-size:20px!important;line-height:1.25!important;margin:2px 0 6px!important;color:#07172e!important;font-family:inherit!important;font-weight:700!important}.sponsorCard b{display:block;color:#b7791f;margin:8px 0;font-size:17px!important}.sponsorCard p,.contactCard p{font-size:15px!important;color:var(--muted)!important;line-height:1.65!important;margin:0!important}.sponsorCard .avatar,.contactCard .avatar{display:none!important}
@media(max-width:980px){.featureGrid,.sponsorGrid,.contactGrid{grid-template-columns:1fr 1fr}.sponsorCard,.contactCard{min-height:210px}.personPhoto{width:70px!important;height:70px!important}.feature:nth-child(1),.feature:nth-child(2),.feature:nth-child(3){transform:none!important}}
@media(max-width:640px){.featureGrid,.sponsorGrid,.contactGrid{grid-template-columns:1fr}.feature{padding:24px!important}.feature span{font-size:34px!important}.sponsorCard,.contactCard{padding:22px;min-height:auto}.personPhoto{width:66px!important;height:66px!important;border-radius:22px!important}.personPhoto img{border-radius:18px}.rankBadge{right:20px;top:20px;width:42px;height:42px}.zaloChip{width:100%;justify-content:center;white-space:normal}.zaloChip span:not(.zaloIcon){white-space:normal}.zaloChip small{display:none}}

/* ===== Enhanced schedule section ===== */
.schedule{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 10%, rgba(231,189,85,.12), transparent 24%),
    radial-gradient(circle at 88% 14%, rgba(201,73,53,.10), transparent 18%),
    linear-gradient(180deg,#fffaf2 0%, #fff7eb 62%, #fffdf9 100%);
}
.schedule::before{
  content:"";
  position:absolute;
  inset:0;
  background-image:radial-gradient(rgba(19,33,58,.035) 1px, transparent 1px);
  background-size:18px 18px;
  opacity:.4;
  pointer-events:none;
}
.scheduleGlow{position:absolute;border-radius:50%;filter:blur(12px);opacity:.4;pointer-events:none}
.scheduleGlow.one{width:240px;height:240px;background:rgba(231,189,85,.24);left:-80px;top:110px}
.scheduleGlow.two{width:220px;height:220px;background:rgba(201,73,53,.14);right:-90px;bottom:80px}
.schedule .sectionTitle p{max-width:840px;font-size:17px;line-height:1.85}
.timelineShell{
  position:relative;
  margin-top:38px;
  padding:34px 30px;
  border-radius:34px;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,251,243,.98));
  border:1px solid rgba(231,189,85,.28);
  box-shadow:0 28px 80px rgba(33,32,26,.08);
  overflow:hidden;
}
.timelineShell::before,
.timelineShell::after{
  content:"";
  position:absolute;
  width:130px;height:130px;border-radius:28px;
  border:1px dashed rgba(231,189,85,.32);
  opacity:.7;
}
.timelineShell::before{top:-48px;right:26px}
.timelineShell::after{bottom:-54px;left:20px}
.timeline{
  position:relative;
  display:grid;
  gap:18px;
  margin-top:0;
}
.timeline::before{
  content:"";
  position:absolute;
  left:138px;
  top:10px;
  bottom:10px;
  width:4px;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(231,189,85,.2),rgba(231,189,85,.95),rgba(201,73,53,.25));
  box-shadow:0 0 0 8px rgba(231,189,85,.07);
}
.timeline::after{
  content:"";
  position:absolute;
  left:136px;
  top:34px;
  width:8px;
  height:44px;
  border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.85),rgba(255,255,255,0));
  animation:timelineGlow 3s linear infinite;
}
@keyframes timelineGlow{0%{transform:translateY(0);opacity:.15}30%{opacity:.85}100%{transform:translateY(560px);opacity:0}}
.timeItem{
  position:relative;
  display:grid;
  grid-template-columns:118px 1fr;
  gap:24px;
  align-items:stretch;
}
.timeCol{position:relative;display:flex;align-items:flex-start;justify-content:flex-start;padding-top:10px}
.timeItem .time{
  position:relative;
  z-index:2;
  width:100%;
  font-weight:900;
  font-size:28px;
  letter-spacing:-.02em;
  color:#a56814;
  background:linear-gradient(135deg,#fff8e0,#f5d886);
  border:1px solid rgba(231,189,85,.62);
  border-radius:22px;
  padding:14px 10px;
  text-align:center;
  box-shadow:0 14px 34px rgba(231,189,85,.15), inset 0 1px 0 rgba(255,255,255,.65);
}
.timeDot{
  position:absolute;
  right:-18px;
  top:50%;
  transform:translateY(-50%);
  width:18px;height:18px;border-radius:50%;
  background:linear-gradient(135deg,#f4d46e,#d9a63e);
  border:4px solid #fff9ef;
  box-shadow:0 0 0 7px rgba(231,189,85,.16),0 0 18px rgba(231,189,85,.38);
  animation:pulseDot 2.2s ease-in-out infinite;
}
@keyframes pulseDot{50%{transform:translateY(-50%) scale(1.14);box-shadow:0 0 0 9px rgba(231,189,85,.12),0 0 24px rgba(231,189,85,.48)}}
.timeItem .content{
  position:relative;
  overflow:hidden;
  background:linear-gradient(180deg,#ffffff 0%,#fffaf2 100%);
  border:1px solid rgba(239,226,195,.95);
  border-radius:28px;
  padding:22px 24px 22px 26px;
  box-shadow:0 18px 44px rgba(33,32,26,.06);
  transition:transform .28s ease, box-shadow .28s ease, border-color .28s ease;
}
.timeItem .content::before{
  content:"";
  position:absolute;
  inset:auto auto 0 0;
  width:7px;height:100%;
  background:linear-gradient(180deg,#e7bd55,#efc7b2);
  opacity:.9;
}
.timeItem .content::after{
  content:"";
  position:absolute;
  right:-24px;top:-22px;
  width:96px;height:96px;border-radius:28px;
  border:1px dashed rgba(231,189,85,.24);
  opacity:.65;
}
.timeItem:hover .content{
  transform:translateY(-6px);
  box-shadow:0 26px 56px rgba(33,32,26,.10);
  border-color:rgba(231,189,85,.5);
}
.stepBadge{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  margin-bottom:14px;
  padding:7px 12px;
  border-radius:999px;
  background:rgba(231,189,85,.14);
  color:#ad731a;
  font-size:12px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.contentTop{display:grid;grid-template-columns:62px 1fr;gap:16px;align-items:start}
.eventIcon{
  display:grid;place-items:center;
  width:62px;height:62px;border-radius:20px;
  background:linear-gradient(135deg,#13213a,#28477a);
  color:#fff2c3;font-size:28px;
  box-shadow:0 16px 34px rgba(19,33,58,.18);
}
.timeItem h3{
  margin:2px 0 8px;
  font-size:34px;
  color:#13213a;
  line-height:1.08;
}
.timeItem p{
  margin:0;
  color:#627089;
  line-height:1.85;
  font-size:16px;
}
.timeItem.on .content{animation:cardFloat 3.8s ease-in-out infinite alternate;animation-delay:calc(var(--i,0) * .14s)}
@keyframes cardFloat{from{transform:translateY(0)}to{transform:translateY(-4px)}}
@media(max-width:980px){
  .timelineShell{padding:26px 22px}
  .timeline::before{left:126px}
  .timeline::after{left:124px}
  .timeItem{grid-template-columns:108px 1fr}
  .timeItem h3{font-size:30px}
}
@media(max-width:640px){
  .schedule .sectionTitle p{font-size:15px}
  .timelineShell{padding:18px 14px 20px;border-radius:24px}
  .timeline::before{left:26px;top:18px;bottom:18px}
  .timeline::after{left:24px;height:36px}
  .timeItem{grid-template-columns:1fr;gap:12px;padding-left:56px}
  .timeCol{padding-top:0}
  .timeItem .time{width:108px;font-size:22px;padding:12px 10px}
  .timeDot{left:-39px;right:auto;top:52px;transform:none}
  .timeItem .content{padding:20px 18px 18px 20px;border-radius:22px}
  .contentTop{grid-template-columns:1fr;gap:12px}
  .eventIcon{width:52px;height:52px;border-radius:16px;font-size:24px}
  .timeItem h3{font-size:26px}
  .timeItem p{font-size:15px;line-height:1.75}
}

/* ===== Sponsor & contacts: elegant dark spotlight style ===== */
.sponsors,.contacts{
  position:relative;
  overflow:hidden;
  background:radial-gradient(circle at 50% -10%, #18386a 0, #08182e 42%, #04101f 100%);
  color:#fff;
}
.sponsors::before,.contacts::before{
  content:"";
  position:absolute;inset:0;
  background:radial-gradient(rgba(255,255,255,.06) 1px, transparent 1px);
  background-size:20px 20px;
  opacity:.18;pointer-events:none;
}
.sponsorGlow,.contactGlow{position:absolute;border-radius:50%;filter:blur(24px);opacity:.22;pointer-events:none}
.sponsorGlow.one,.contactGlow.one{width:280px;height:280px;background:#d6a53a;left:-100px;top:100px}
.sponsorGlow.two,.contactGlow.two{width:220px;height:220px;background:#b64c33;right:-80px;bottom:120px}
.sponsors .sectionTitle,.contacts .sectionTitle{position:relative;z-index:1}
.sponsors .sectionTitle small,.contacts .sectionTitle small{color:#f0c654}
.sponsors .sectionTitle h2,.contacts .sectionTitle h2{color:#fff;font-size:clamp(42px,5.5vw,72px);letter-spacing:-.035em;line-height:.98}
.sponsors .sectionTitle p,.contacts .sectionTitle p{color:rgba(255,255,255,.82);max-width:720px}
.sponsorTotalLine{margin-top:16px!important;font-size:14px;letter-spacing:.03em;color:#f3d98b!important}
.sponsorTotalLine strong{font-size:clamp(22px,3vw,34px);font-weight:900;color:#f5c647}
.sponsorGrid,.contactGrid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:42px}
.sponsorSpotlight,.contactSpotlight{
  min-height:100%;
  text-align:center;
  padding:26px 26px 24px!important;
  border-radius:24px!important;
  background:linear-gradient(180deg,rgba(15,33,62,.96),rgba(9,22,42,.98))!important;
  border:1px solid rgba(231,189,85,.42)!important;
  box-shadow:0 26px 60px rgba(0,0,0,.26), inset 0 1px 0 rgba(255,255,255,.03)!important;
  color:#fff!important;
}
.sponsorSpotlight::before,.contactSpotlight::before{content:""!important;position:absolute;inset:0;border-radius:inherit;background:radial-gradient(circle at 50% 0, rgba(231,189,85,.14), transparent 45%);opacity:1!important;z-index:0!important}
.sponsorSpotlight::after,.contactSpotlight::after{display:none!important}
.sponsorSpotlight > *,.contactSpotlight > *{position:relative;z-index:1}
.cardNo{
  position:absolute;
  top:26px;left:50%;transform:translateX(-50%);
  width:30px;height:30px;border-radius:50%;
  display:grid;place-items:center;
  background:linear-gradient(135deg,#f5d56d,#d9a63c);
  color:#2e2b1e;font-weight:900;font-size:12px;
  box-shadow:0 0 18px rgba(231,189,85,.45);
}
.portraitRing,.sponsorSpotlight .personPhoto,.contactSpotlight .personPhoto{
  width:154px!important;height:154px!important;
  border-radius:50%!important;padding:3px!important;
  margin:36px auto 18px!important;
  background:linear-gradient(135deg,#f0c654,#fff0b8,#d79f2a)!important;
  box-shadow:0 0 0 4px rgba(231,189,85,.08), 0 0 26px rgba(231,189,85,.20)!important;
}
.portraitRing img,.sponsorSpotlight .personPhoto img,.contactSpotlight .personPhoto img{border-radius:50%!important;border:2px solid rgba(255,255,255,.75);background:#fff}
.sponsorSpotlight h3,.contactSpotlight h3{
  margin:6px 0 8px!important;
  color:#f7c54c!important;
  font-family:"Playfair Display",serif!important;
  font-size:clamp(28px,2.2vw,38px)!important;
  line-height:1.08!important;
}
.miniRole{
  color:#d7e4ff!important;
  margin:0 0 14px!important;
  font-size:15px!important;
  line-height:1.55!important;
}
.amountPill,.phonePill,.zaloPill{
  display:flex;align-items:center;justify-content:center;gap:8px;
  min-height:44px;padding:11px 16px;border-radius:999px;
  text-decoration:none;font-weight:800;
  width:100%;max-width:240px;margin:0 auto 12px;
  transition:transform .22s ease, background .22s ease, border-color .22s ease;
}
.amountPill{
  background:rgba(245,198,71,.08);
  border:1px solid rgba(245,198,71,.55);
  color:#f7c54c;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06);
}
.cardDesc{color:rgba(255,255,255,.8)!important;line-height:1.75!important;margin-top:10px!important}
.phonePill{
  background:rgba(255,255,255,.06);
  border:1px solid rgba(245,198,71,.35);
  color:#f8d26c;
}
.zaloPill{
  background:linear-gradient(180deg,#0f3e7d,#0b2f5d);
  border:1px solid rgba(73,155,255,.45);
  color:#ecf4ff;
  margin-bottom:0;
}
.phonePill:hover,.zaloPill:hover{transform:translateY(-2px)}
.phonePill span,.zaloPill span{font-weight:800}
.contactSpotlight{padding-top:24px!important}
.contactSpotlight .personPhoto{margin-top:8px!important}
.contactSpotlight h3{font-size:clamp(26px,2vw,34px)!important}
@media(max-width:980px){
  .sponsorGrid,.contactGrid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .sponsors .sectionTitle h2,.contacts .sectionTitle h2{font-size:clamp(34px,11vw,52px)}
  .sponsorGrid,.contactGrid{grid-template-columns:1fr;gap:18px}
  .sponsorSpotlight,.contactSpotlight{padding:24px 20px 22px!important}
  .portraitRing,.sponsorSpotlight .personPhoto,.contactSpotlight .personPhoto{width:132px!important;height:132px!important}
  .sponsorSpotlight h3,.contactSpotlight h3{font-size:30px!important}
}

.simpleSponsorCard{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:flex-start;
}
.simpleSponsorCard .miniRole{
  margin:0 0 12px!important;
  font-size:16px!important;
  color:rgba(255,255,255,.78)!important;
}
.simpleSponsorCard .amountPill{
  margin-bottom:0;
}


/* Sponsor card spacing + smaller names */
.simpleSponsorCard{
  gap: 8px;
}
.simpleSponsorCard .cardNo{
  top: 24px;
}
.simpleSponsorCard .portraitRing,
.simpleSponsorCard .sponsorPhoto,
.simpleSponsorCard .personPhoto{
  margin: 34px auto 14px !important;
}
.simpleSponsorCard h3{
  font-size: clamp(22px, 2vw, 32px) !important;
  line-height: 1.12 !important;
  margin: 4px 0 2px !important;
  min-height: 2.3em;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
}
.simpleSponsorCard .miniRole{
  min-height: 1.6em;
  display:flex;
  align-items:center;
  justify-content:center;
  margin: 0 0 10px !important;
}
.simpleSponsorCard .amountPill{
  margin-top: 2px;
  margin-bottom: 0 !important;
}
@media(max-width:640px){
  .simpleSponsorCard h3{
    font-size: clamp(20px, 7vw, 28px) !important;
    min-height: auto;
  }
}

/* schedule compact redesign override */
.schedule{padding:76px 0;background:linear-gradient(180deg,#fff9f0 0%,#fffdf8 100%)}
.schedule .sectionTitle h2{font-size:clamp(32px,4.6vw,48px);line-height:1.02}
.schedule .sectionTitle p{max-width:760px;font-size:15px;line-height:1.8;margin-top:12px}
.timelineShell{
  width:min(980px,100%);
  margin:28px auto 0;
  padding:22px 20px;
  border-radius:26px;
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(255,250,240,.98));
  box-shadow:0 18px 42px rgba(33,32,26,.06);
}
.timelineShell::before,.timelineShell::after{width:92px;height:92px;border-radius:22px;opacity:.45}
.timelineShell::before{top:-30px;right:18px}
.timelineShell::after{bottom:-38px;left:16px}
.timeline{gap:14px}
.timeline::before{left:102px;width:3px;box-shadow:0 0 0 6px rgba(231,189,85,.05)}
.timeline::after{left:100px;width:6px;height:34px;animation-duration:4.4s}
.timeItem{grid-template-columns:84px 1fr;gap:18px}
.timeCol{padding-top:8px}
.timeItem .time{
  font-size:18px;
  padding:10px 8px;
  border-radius:18px;
  box-shadow:0 10px 20px rgba(231,189,85,.10), inset 0 1px 0 rgba(255,255,255,.65);
}
.timeDot{width:14px;height:14px;right:-13px;border-width:3px;box-shadow:0 0 0 5px rgba(231,189,85,.14),0 0 12px rgba(231,189,85,.22)}
.timeItem .content{
  padding:16px 18px 16px 18px;
  border-radius:22px;
  box-shadow:0 12px 28px rgba(33,32,26,.05);
}
.timeItem .content::before{width:5px}
.timeItem .content::after{width:70px;height:70px;right:-18px;top:-16px;border-radius:20px;opacity:.45}
.stepBadge{margin-bottom:10px;padding:5px 10px;font-size:11px;letter-spacing:.1em}
.contentTop{grid-template-columns:48px 1fr;gap:14px}
.eventIcon{width:48px;height:48px;border-radius:15px;font-size:22px;box-shadow:0 10px 20px rgba(19,33,58,.14)}
.timeItem h3{font-size:24px;margin:0 0 6px;line-height:1.14}
.timeItem p{font-size:15px;line-height:1.72}
.timeItem:hover .content{transform:translateY(-3px);box-shadow:0 18px 32px rgba(33,32,26,.08)}
@media(max-width:980px){
  .timelineShell{width:100%;padding:18px 16px}
  .timeline::before{left:96px}
  .timeline::after{left:94px}
  .timeItem{grid-template-columns:80px 1fr;gap:16px}
  .timeItem h3{font-size:22px}
}
@media(max-width:640px){
  .schedule{padding:66px 0}
  .schedule .sectionTitle h2{font-size:clamp(30px,10vw,40px)}
  .schedule .sectionTitle p{font-size:14px}
  .timelineShell{padding:14px 12px 16px;border-radius:20px}
  .timeline::before{left:22px;top:14px;bottom:14px}
  .timeline::after{left:20px;height:28px}
  .timeItem{grid-template-columns:1fr;gap:10px;padding-left:48px}
  .timeItem .time{width:86px;font-size:17px;padding:9px 6px}
  .timeDot{left:-33px;right:auto;top:46px;transform:none}
  .timeItem .content{padding:14px 14px 14px 16px;border-radius:18px}
  .contentTop{grid-template-columns:42px 1fr;gap:12px}
  .eventIcon{width:42px;height:42px;font-size:20px;border-radius:13px}
  .timeItem h3{font-size:20px}
  .timeItem p{font-size:14px;line-height:1.65}
}

/* ===== Filmstrip schedule redesign ===== */
.filmSchedule{
  background:
    radial-gradient(circle at 15% 10%, rgba(231,189,85,.10), transparent 18%),
    radial-gradient(circle at 85% 18%, rgba(201,73,53,.10), transparent 16%),
    linear-gradient(180deg,#07172e 0%, #091a33 55%, #0d2241 100%);
  color:#fff;
}
.filmSchedule::before{
  content:"";
  position:absolute; inset:0;
  background-image: radial-gradient(rgba(255,255,255,.06) 1px, transparent 1px);
  background-size:18px 18px;
  opacity:.16;
}
.filmSchedule .sectionTitle h2,
.filmSchedule .sectionTitle p{color:#fff}
.filmSchedule .sectionTitle small{color:#f1c555}
.filmSchedule .sectionTitle p{max-width:760px;color:rgba(255,255,255,.78)!important}
.filmShell{
  position:relative;
  width:min(980px,100%);
  margin:30px auto 0;
  padding:28px 22px;
  border-radius:26px;
  background:linear-gradient(180deg,#050d1b,#0a1730);
  border:1px solid rgba(231,189,85,.24);
  box-shadow:0 28px 60px rgba(0,0,0,.30), inset 0 0 0 1px rgba(255,255,255,.02);
  overflow:hidden;
}
.filmShell::before,
.filmShell::after{
  content:"";
  position:absolute; left:16px; right:16px; height:16px; z-index:0;
  background:radial-gradient(circle, rgba(255,247,232,.96) 5px, transparent 6px) repeat-x;
  background-size:34px 16px;
}
.filmShell::before{top:10px}
.filmShell::after{bottom:10px}
.filmShell .timeline{position:relative; z-index:1; gap:16px; padding:18px 4px}
.filmShell .timeline::before{
  left:104px;
  width:2px;
  background:linear-gradient(180deg,rgba(231,189,85,.12),rgba(231,189,85,.72),rgba(231,189,85,.12));
  box-shadow:none;
}
.filmShell .timeline::after{display:none}
.filmShell .timeItem{grid-template-columns:88px 1fr; gap:18px; align-items:center}
.filmShell .timeCol{padding-top:0}
.filmShell .time{
  font-size:18px;
  color:#13213a;
  background:linear-gradient(135deg,#fff1bc,#e9c35d);
  border:1px solid rgba(231,189,85,.52);
  border-radius:999px;
  padding:10px 8px;
  box-shadow:0 10px 24px rgba(231,189,85,.16);
}
.filmShell .timeDot{
  width:14px;height:14px;right:-12px;border-width:3px;
  background:linear-gradient(135deg,#ffeaa6,#e7bd55);
  box-shadow:0 0 0 5px rgba(231,189,85,.10),0 0 10px rgba(231,189,85,.24);
}
.filmShell .content{
  background:linear-gradient(180deg,#f8f1df 0%, #f3ead8 100%);
  border:1px solid rgba(226,205,153,.62);
  border-radius:22px;
  padding:14px 16px 14px 16px;
  box-shadow:0 12px 26px rgba(0,0,0,.18);
}
.filmShell .content::before{
  content:"";
  position:absolute; inset:10px;
  width:auto; height:auto;
  border-radius:16px;
  border:1px solid rgba(19,33,58,.14);
  background:linear-gradient(180deg, rgba(255,255,255,.12), rgba(255,255,255,0));
}
.filmShell .content::after{
  content:"";
  position:absolute; left:12px; right:12px; top:50%; height:1px;
  background:repeating-linear-gradient(90deg, transparent 0 8px, rgba(19,33,58,.08) 8px 16px);
  opacity:.28;
  transform:translateY(-50%);
  border:none; width:auto;
}
.filmShell .stepBadge{
  margin-bottom:8px;
  padding:4px 10px;
  font-size:10px;
  background:rgba(231,189,85,.22);
  color:#9d6b13;
}
.filmShell .contentTop{grid-template-columns:44px 1fr; gap:12px; position:relative; z-index:1}
.filmShell .eventIcon{
  width:44px;height:44px;border-radius:14px;
  font-size:20px;
  background:linear-gradient(135deg,#13213a,#20365f);
  color:#ffeab1;
  box-shadow:0 10px 18px rgba(19,33,58,.18);
}
.filmShell .timeItem h3{
  margin:0 0 4px;
  font-size:22px;
  line-height:1.12;
  color:#13213a;
}
.filmShell .timeItem p{
  margin:0;
  font-size:14px;
  line-height:1.68;
  color:#5a6881;
}
.filmShell .timeItem:hover .content{
  transform:translateY(-2px) rotate(-.2deg);
  box-shadow:0 16px 30px rgba(0,0,0,.22);
}
.filmShell .timeItem:nth-child(even):hover .content{transform:translateY(-2px) rotate(.2deg)}
@media(max-width:980px){
  .filmShell{padding:24px 16px}
  .filmShell .timeline::before{left:96px}
  .filmShell .timeItem{grid-template-columns:80px 1fr;gap:14px}
}
@media(max-width:640px){
  .filmSchedule{padding:66px 0}
  .filmShell{padding:16px 10px 18px;border-radius:20px}
  .filmShell::before,.filmShell::after{left:10px;right:10px;height:12px;background-size:24px 12px}
  .filmShell .timeline{padding:14px 0}
  .filmShell .timeline::before{left:22px;top:18px;bottom:18px}
  .filmShell .timeItem{grid-template-columns:1fr;gap:10px;padding-left:48px}
  .filmShell .time{width:86px;font-size:16px;padding:9px 6px}
  .filmShell .timeDot{left:-33px;right:auto;top:42px;transform:none}
  .filmShell .content{padding:12px 12px 12px 12px;border-radius:18px}
  .filmShell .content::before{inset:8px;border-radius:12px}
  .filmShell .contentTop{grid-template-columns:40px 1fr;gap:10px}
  .filmShell .eventIcon{width:40px;height:40px;font-size:18px}
  .filmShell .timeItem h3{font-size:19px}
  .filmShell .timeItem p{font-size:13.5px;line-height:1.6}
}

/* Refined cost section inspired by sample */
.cost{
  position:relative;
  overflow:hidden;
  background:radial-gradient(circle at 20% 0, #0d2449 0, #08172f 42%, #071224 100%);
}
.costGlow{position:absolute;border-radius:50%;filter:blur(20px);opacity:.22;pointer-events:none}
.costGlow.one{width:260px;height:260px;background:#d2a23d;left:-90px;top:120px}
.costGlow.two{width:220px;height:220px;background:#b33a43;right:-80px;bottom:80px}
.refinedCostWrap{align-items:stretch;gap:20px}
.refinedCostCard,.refinedFundPanel{
  position:relative;
  padding:28px 26px 24px;
  border-radius:26px;
  overflow:hidden;
}
.refinedCostCard{
  background:linear-gradient(160deg,#1a3365 0%, #122a57 55%, #10254c 100%);
  border:1px solid rgba(109,148,214,.28);
}
.refinedFundPanel{
  background:linear-gradient(160deg,#34112e 0%, #220d2f 55%, #160b23 100%);
  border:1px solid rgba(212,74,86,.28);
}
.refinedCostCard::before,.refinedFundPanel::before{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,0));
  pointer-events:none;
}
.refinedCostCard small,.refinedFundPanel small{color:#f6d36a!important;margin-bottom:8px}
.refinedCostCard h2{font-size:clamp(40px,5vw,62px);line-height:.95;margin:0;color:#f7c95a}
.refinedCostCard h2 span{display:block;margin-top:6px;font-size:14px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.84)}
.refinedFundPanel h3{margin:0;color:#ff8c7b;font-family:"Playfair Display",serif;font-size:clamp(44px,5vw,60px);line-height:.92}
.refinedFundPanel .fundSub{margin-top:4px;color:rgba(255,255,255,.88);font-weight:800;text-transform:uppercase;letter-spacing:.17em;font-size:12px}
.costDivider{width:56px;height:2px;background:rgba(247,201,90,.75);margin:16px 0 14px;border-radius:99px}
.costDivider.red{background:rgba(255,140,123,.82)}
.costList{list-style:none;padding:0;margin:0 0 18px;display:grid;gap:8px}
.costList li{position:relative;padding-left:16px;color:rgba(255,255,255,.9);line-height:1.7;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:7px}
.costList li:last-child{border-bottom:none}
.costList li::before{content:"•";position:absolute;left:0;top:0;color:#f6d36a;font-weight:900}
.sponsorList li::before{color:#ff8c7b}
.costNote{
  margin-top:10px;
  background:rgba(255,214,96,.08);
  border:1px dashed rgba(247,201,90,.42);
  color:#ffe7a6;
  border-radius:14px;
  padding:14px 14px;
  line-height:1.6;
}
.sponsorNote{background:rgba(255,122,122,.08);border-color:rgba(255,122,122,.36);color:#ffd0ca;margin-bottom:14px}
.compactBankBox{margin-top:14px;background:rgba(0,0,0,.16);border-radius:16px;padding:14px 15px;gap:6px}
.compactBankBox b{color:#fff0bf}
.compactBankBox span{font-size:14px}
.inlineFundTop{margin:6px 0 10px}
.inlineFundTop .fundLabel{color:#ffcdbb}
.inlineFundTop b{font-size:clamp(28px,4vw,38px)}
.compactStats{margin-bottom:12px}
.compactStats div{padding:14px 12px}
.compactStats b{font-size:28px}
.refinedFundPanel .btn.gold{margin-top:2px}
@media(max-width:980px){
  .refinedCostCard,.refinedFundPanel{padding:24px 22px 22px}
  .refinedCostCard h2,.refinedFundPanel h3{font-size:clamp(36px,8vw,50px)}
}
@media(max-width:640px){
  .cost{padding:70px 0}
  .refinedCostWrap{gap:16px}
  .refinedCostCard,.refinedFundPanel{padding:22px 18px 18px;border-radius:22px}
  .refinedCostCard h2{font-size:44px}
  .refinedFundPanel h3{font-size:42px}
  .costList li,.costNote,.compactBankBox span{font-size:14px}
}

/* cost section cleanup and overlap fix */
.refinedCostWrap{align-items:stretch}
.refinedCostCard,.refinedFundPanel{min-width:0}
.refinedCostCard small,
.refinedFundPanel small{
  display:block;
  margin-bottom:12px !important;
  line-height:1.35;
}
.refinedCostCard h2{
  font-size:clamp(34px,4.2vw,56px);
  line-height:.92;
  margin-bottom:0;
}
.refinedCostCard h2 span{
  margin-top:8px;
  font-size:13px;
  letter-spacing:.14em;
  line-height:1.35;
}
.refinedFundPanel h3{
  font-size:clamp(36px,4.2vw,52px);
  line-height:.95;
  margin:0 0 6px;
}
.refinedFundPanel .fundSub{
  display:block;
  max-width:100%;
  line-height:1.45;
  letter-spacing:.12em;
  font-size:11px;
  word-break:break-word;
}
.refinedFundPanel .costDivider.red{margin-top:14px}
.costNote{margin-bottom:0}
.sponsorGuide{margin-top:12px;background:rgba(255,140,123,.08);border:1px dashed rgba(255,140,123,.36);color:#ffd7d0}
.sponsorGuide b{color:#fff0e6}
.compactBankBox,
.sponsorNote,
.refinedFundPanel [data-open-sponsor]{display:none !important}
@media(max-width:1100px){
  .refinedCostWrap{grid-template-columns:1fr;gap:18px}
  .refinedCostCard h2,
  .refinedFundPanel h3{font-size:clamp(32px,7vw,46px)}
}
@media(max-width:760px){
  .refinedCostCard,
  .refinedFundPanel{padding:22px 18px 18px}
  .refinedCostCard small,
  .refinedFundPanel small{margin-bottom:10px !important}
  .refinedCostCard h2 span{font-size:12px;letter-spacing:.1em}
  .refinedFundPanel .fundSub{font-size:10px;letter-spacing:.08em}
}

/* === ChatGPT fixes: hero gradient + Vietnamese heading line-height === */
.heroBg{
  background:linear-gradient(180deg,#07172e 0%,#102646 36%,#6d7480 72%,#fff7eb 100%) !important;
}
.hero:after{
  background:linear-gradient(180deg,rgba(255,247,235,0),#fff7eb) !important;
}
.sectionTitle h2,
.locationInfo h2,
.formInfo h2,
.modalHead h2,
.tributeIntro h2,
.classbookHead h2,
.classbook .formInfo h2{
  line-height:1.18 !important;
  overflow:visible;
  padding-bottom:.04em;
}
.sectionTitle h2 span,
.tributeIntro h2 span{
  display:block;
  line-height:inherit;
}
@media(max-width:640px){
  .sectionTitle h2,
  .locationInfo h2,
  .formInfo h2,
  .modalHead h2{
    font-size:clamp(32px,10vw,46px) !important;
    line-height:1.18 !important;
  }
  .about .sectionTitle h2,
  .tributeIntro h2,
  .classbookHead h2,
  .classbook .formInfo h2{
    font-size:clamp(34px,10.5vw,48px) !important;
    line-height:1.18 !important;
  }
}


/* Fixed guestbook paper style: unify all lưu bút cards to one paper frame */
.memoryWall .linedNote,
.memoryWall .memoryNote,
.memoryWall .memoryNote:nth-child(2n),
.memoryWall .memoryNote:nth-child(3n){
  border-radius:22px;
  border:1px solid rgba(203,174,121,.72);
  background:repeating-linear-gradient(to bottom,#fbf4e5 0,#fbf4e5 31px,#e2d7bf 32px),linear-gradient(135deg,#fffaf0,#f5ebd8);
  box-shadow:0 18px 42px rgba(46,38,23,.08),0 7px 0 rgba(151,123,76,.07);
}
.memoryWall .linedNote:before,
.memoryWall .memoryNote:before{display:none}


/* Sponsor QR payment block */
.sponsorQrBox{
  position:relative;
  display:grid;
  grid-template-columns:minmax(0,1fr) 118px;
  gap:14px;
  align-items:center;
  margin-top:14px;
  padding:14px;
  border-radius:20px;
  background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
.sponsorQrText{min-width:0}
.sponsorQrText span{
  display:block;
  color:#ffcdbb;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:11px;
  font-weight:900;
  margin-bottom:8px;
}
.sponsorQrText strong{
  display:block;
  color:#fff6d5;
  font-size:15px;
  line-height:1.35;
  word-break:break-word;
}
.sponsorQrText em{
  display:block;
  margin-top:4px;
  color:rgba(255,255,255,.78);
  font-style:normal;
  font-size:13px;
  font-weight:700;
}
.sponsorQrBox img{
  width:118px;
  height:118px;
  object-fit:cover;
  border-radius:16px;
  background:#fff;
  padding:6px;
  box-shadow:0 12px 30px rgba(0,0,0,.18);
}
@media(max-width:1100px){
  .sponsorQrBox{grid-template-columns:minmax(0,1fr) 132px}
  .sponsorQrBox img{width:132px;height:132px}
}
@media(max-width:520px){
  .sponsorQrBox{grid-template-columns:1fr;text-align:center;justify-items:center}
  .sponsorQrText span{font-size:10px;letter-spacing:.09em}
  .sponsorQrBox img{width:min(220px,82vw);height:auto;aspect-ratio:1/1}
}

/* PC fix: keep đại diện hội khóa names on one line */
@media (min-width: 981px){
  .contactSpotlight h3{
    font-size:clamp(22px,1.55vw,28px)!important;
    line-height:1.12!important;
    white-space:nowrap!important;
    letter-spacing:-.025em;
  }
}


/* Footer expanded info section */
.footerExpanded{display:grid;grid-template-columns:minmax(260px,360px) minmax(0,1fr);align-items:start;gap:28px}
.footerBrandBlock b{display:block;font-family:"Playfair Display",serif;font-size:28px;color:#fff;margin-bottom:8px}
.footerBrandBlock span{display:block;color:rgba(255,255,255,.72);margin-bottom:14px}
.footerBrandBlock p{margin:0 0 18px;color:rgba(255,255,255,.76);line-height:1.75}
.footerInviteBtn{margin-top:4px}
.footerInfoPanel{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(220px,.75fr);gap:18px}
.footerCol{background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.1);border-radius:24px;padding:22px}
.footerHeading{color:#f6d36a;font-size:13px;font-weight:900;letter-spacing:.18em;text-transform:uppercase;margin-bottom:14px}
.footerContactList{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.footerContactList li{display:grid;grid-template-columns:20px 1fr;gap:10px;align-items:start;color:rgba(255,255,255,.84);line-height:1.7}
.footerContactList li span{display:flex;align-items:center;justify-content:center;transform:translateY(2px)}
.footerQuickLinks{display:grid;gap:10px}
.footerQuickLinks a{display:flex;align-items:center;min-height:48px;padding:12px 16px;border-radius:16px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.08);color:rgba(255,255,255,.88);font-weight:700;transition:.25s}
.footerQuickLinks a:hover{background:rgba(231,189,85,.16);border-color:rgba(231,189,85,.32);color:#fff;transform:translateY(-2px)}
@media(max-width:980px){.footerExpanded,.footerInfoPanel{grid-template-columns:1fr}.footerBrandBlock{text-align:center}.footerInviteBtn{margin-inline:auto}.footerContactList li{grid-template-columns:18px 1fr}.footerLinkCol{padding-top:18px}}
@media(max-width:640px){.footerCol{padding:18px;border-radius:20px}.footerBrandBlock b{font-size:24px}.footerContactList li,.footerQuickLinks a{font-size:14px}}


/* Sponsor QR zoom + save */
.qrOpenBtn{
  border:0;
  padding:0;
  margin:0;
  background:transparent;
  cursor:pointer;
  border-radius:16px;
  display:block;
  transition:.25s;
}
.qrOpenBtn:hover{transform:scale(1.04)}
.qrOpenBtn:focus-visible{outline:3px solid rgba(246,211,106,.85);outline-offset:4px}
.qrOpenBtn img{display:block}
.qrModal{
  position:fixed;
  inset:0;
  z-index:1250;
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:rgba(2,6,14,.78);
  backdrop-filter:blur(10px);
}
.qrModal.open{display:flex}
.qrModalBox{
  position:relative;
  width:min(560px,100%);
  max-height:calc(100svh - 36px);
  overflow:auto;
  border-radius:30px;
  padding:26px;
  background:linear-gradient(160deg,#fffaf0,#fff7eb);
  box-shadow:0 30px 90px rgba(0,0,0,.36);
  border:1px solid rgba(255,255,255,.55);
  text-align:center;
}
.qrModalHead small{
  display:inline-flex;
  color:#c94935;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.16em;
  font-size:12px;
  margin-bottom:8px;
}
.qrModalHead h2{
  margin:0;
  color:#13213a;
  font-family:"Playfair Display",serif;
  font-size:clamp(30px,5vw,46px);
  line-height:1.12;
}
.qrModalHead p{
  margin:10px 0 18px;
  color:#5f6c80;
  font-weight:800;
}
.qrLargeImg{
  width:min(390px,86vw);
  margin:0 auto;
  border-radius:22px;
  background:#fff;
  padding:10px;
  box-shadow:0 18px 52px rgba(33,32,26,.15);
}
.qrModalActions{
  margin-top:18px;
  display:grid;
  gap:10px;
  justify-items:center;
}
.qrModalActions span{
  color:#66748b;
  font-size:13px;
  line-height:1.5;
}
@media(max-width:520px){
  .qrModalBox{padding:22px 16px;border-radius:24px}
  .qrLargeImg{width:min(330px,86vw);padding:8px;border-radius:18px}
}


/* Fixed red phone icon across PC and mobile */
.phoneIcon,
.footerPhoneIcon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#ff3b30 !important;
  font-family:Arial, sans-serif !important;
  font-size:18px;
  line-height:1;
  font-style:normal;
  text-rendering:auto;
}
.phonePill .phoneIcon{
  flex:0 0 auto;
  color:#ff3b30 !important;
}
.footerContactList .footerPhoneIcon{
  color:#ff3b30 !important;
  transform:translateY(3px);
}
