:root{--vlh-season:#a65b2b;--vlh-wash:rgba(166,91,43,.07);--vlh-time:rgba(255,255,255,0);--vlh-fall:#d8843d}
html[data-season=spring]{--vlh-season:#b73b52;--vlh-wash:rgba(220,93,124,.08);--vlh-fall:#d96683}
html[data-season=summer]{--vlh-season:#337d5c;--vlh-wash:rgba(62,143,98,.07);--vlh-fall:#4f986f}
html[data-season=autumn]{--vlh-season:#a65b2b;--vlh-wash:rgba(186,105,43,.08);--vlh-fall:#d37a35}
html[data-season=winter]{--vlh-season:#596d86;--vlh-wash:rgba(89,109,134,.07);--vlh-fall:#f4f7fb}
html[data-day-phase=morning]{--vlh-time:rgba(255,246,215,.045)}html[data-day-phase=noon]{--vlh-time:rgba(255,221,148,.055)}html[data-day-phase=afternoon]{--vlh-time:rgba(255,190,120,.06)}html[data-day-phase=evening]{--vlh-time:rgba(106,59,50,.075)}html[data-day-phase=night]{--vlh-time:rgba(35,38,62,.11)}html[data-day-phase=late-night]{--vlh-time:rgba(20,24,43,.15)}
body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background-image:linear-gradient(var(--vlh-time),var(--vlh-time)),radial-gradient(circle at 12% 8%,var(--vlh-wash),transparent 25%),linear-gradient(135deg,#fbf5e9,#f5ead7 55%,#fbf6ec)}
.vlh-decoration-root{position:absolute;inset:0;z-index:7;pointer-events:none;overflow:clip;contain:layout style paint}.site-shell>.vlh-decoration-root{min-height:100%}body>.vlh-decoration-root{position:fixed;z-index:4}
.vlh-corner{position:absolute;background-repeat:no-repeat;background-size:contain;opacity:.9;filter:drop-shadow(0 4px 7px rgba(72,34,20,.12))}.vlh-corner-tl{top:0;left:0;width:260px;height:175px}.vlh-corner-tr{top:8px;right:0;width:190px;height:140px}.vlh-corner-bl{bottom:0;left:0;width:230px;height:170px}.vlh-corner-br{bottom:0;right:88px;width:180px;height:145px}
/* Vector-like ornaments: sharp at every scale. */
.vlh-corner-tl::before{content:"";position:absolute;left:10px;top:0;width:185px;height:108px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 380 220'%3E%3Cpath d='M0 24c80 8 113 30 190 22 70-7 124-32 190-9' fill='none' stroke='%236b3028' stroke-width='6'/%3E%3Cg fill='%23b12820' stroke='%23751d18' stroke-width='4'%3E%3Cpath d='M54 43h52l-8 18v68l8 18H54l8-18V61z'/%3E%3Cpath d='M164 45h50l-8 18v61l8 18h-50l8-18V63z'/%3E%3Cpath d='M272 31h48l-8 18v58l8 18h-48l8-18V49z'/%3E%3C/g%3E%3Cg fill='%23ffd58a' opacity='.92'%3E%3Cellipse cx='80' cy='93' rx='18' ry='30'/%3E%3Cellipse cx='189' cy='91' rx='17' ry='27'/%3E%3Cellipse cx='296' cy='78' rx='16' ry='25'/%3E%3C/g%3E%3Cg stroke='%238b2e23' stroke-width='4'%3E%3Cpath d='M80 147v35m109-40v34m107-51v36'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat;opacity:0;transition:opacity .25s}
html[data-day-phase=evening] .vlh-corner-tl::before,html[data-day-phase=night] .vlh-corner-tl::before,html[data-day-phase=late-night] .vlh-corner-tl::before,html[data-event=tet] .vlh-corner-tl::before,html[data-event=christmas] .vlh-corner-tl::before{opacity:1}

.vlh-corner-bl::before{content:"";position:absolute;inset:auto 0 0 0;height:130px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 220'%3E%3Cpath d='M0 190c70-48 132-36 183-66 57-34 80-78 151-84 36-3 60 6 86 20v160H0z' fill='%23efe2c9'/%3E%3Cpath d='M0 194c69-51 127-35 183-68 51-30 80-76 151-84' fill='none' stroke='%23946b43' stroke-width='5' opacity='.55'/%3E%3Cpath d='M44 170c22-38 46-51 70-70m-52 55c16 2 30 8 42 20m42-69c18-8 30-4 42 10' fill='none' stroke='%23a64d32' stroke-width='5'/%3E%3Ccircle cx='113' cy='95' r='12' fill='%23c9564c'/%3E%3Ccircle cx='145' cy='83' r='10' fill='%23d87562'/%3E%3C/svg%3E") left bottom/contain no-repeat}
html[data-event=christmas] .vlh-corner-bl::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 220'%3E%3Cpath d='M30 210l90-185 90 185z' fill='%232f6f4f'/%3E%3Cpath d='M90 210l95-160 95 160z' fill='%23478963'/%3E%3Ccircle cx='120' cy='95' r='9' fill='%23c62d2d'/%3E%3Ccircle cx='170' cy='130' r='9' fill='%23ffd37c'/%3E%3Ccircle cx='215' cy='105' r='9' fill='%23c62d2d'/%3E%3Cellipse cx='330' cy='160' rx='54' ry='50' fill='white'/%3E%3Ccircle cx='330' cy='85' r='38' fill='white'/%3E%3Cpath d='M295 70h70' stroke='%23b52d26' stroke-width='11'/%3E%3C/svg%3E")}
html[data-event=halloween] .vlh-corner-bl::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 220'%3E%3Cellipse cx='115' cy='165' rx='85' ry='55' fill='%23e87322' stroke='%238d3618' stroke-width='6'/%3E%3Cpath d='M115 105V62' stroke='%235b4923' stroke-width='12'/%3E%3Cpath d='M70 150l25 14-30 18m95-32l-25 14 30 18' fill='none' stroke='%23372218' stroke-width='10'/%3E%3Cpath d='M265 70c35-22 70-22 105 0-28-4-43 7-52 22-10-15-25-26-53-22z' fill='%233d2948'/%3E%3C/svg%3E")}
html[data-event=valentine] .vlh-corner-bl::before{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 220'%3E%3Cpath d='M70 185c90-80 145-60 220-140' fill='none' stroke='%234f7b45' stroke-width='7'/%3E%3Cg fill='%23c94f66'%3E%3Cpath d='M100 160c-50-35-45-80 0-72 45-8 50 37 0 72z'/%3E%3Cpath d='M215 104c-43-32-38-70 0-64 38-6 43 32 0 64z'/%3E%3C/g%3E%3C/svg%3E")}
html[data-event=newyear] .vlh-corner-tr{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 220'%3E%3Cg fill='none' stroke='%23c57b2e' stroke-width='5'%3E%3Cpath d='M150 110L20 20m130 90L280 20m-130 90V0m0 110L40 190m110-80l110 80'/%3E%3C/g%3E%3C/svg%3E") center/contain no-repeat}
.vlh-year{position:absolute;right:4%;top:128px;font:800 clamp(38px,5vw,74px)/1 Georgia,serif;color:#a62b24;text-shadow:0 2px 0 #fff7e6,0 0 18px rgba(214,122,40,.25)}
.vlh-fall{position:fixed;inset:0;z-index:9;overflow:hidden;pointer-events:none}.vlh-fall i{position:absolute;top:-8vh;left:var(--x);width:var(--s);height:calc(var(--s)*1.35);background:var(--vlh-fall);border-radius:80% 15% 70% 25%;opacity:.62;box-shadow:inset 1px 1px 2px rgba(255,255,255,.55);animation:vlhFall var(--dur) linear var(--delay) infinite}
html[data-season=autumn] .vlh-fall i{clip-path:polygon(50% 0,63% 27%,91% 14%,78% 43%,100% 57%,68% 64%,73% 96%,50% 77%,27% 96%,32% 64%,0 57%,22% 43%,9% 14%,37% 27%);border-radius:0}html[data-season=winter] .vlh-fall i{height:var(--s);border-radius:50%;box-shadow:0 0 6px white}html[data-event=christmas] .vlh-fall i{background:white;border-radius:50%;height:var(--s)}html[data-event=valentine] .vlh-fall i{background:#d85f76}html[data-event=newyear] .vlh-fall i{background:#f1b94b;border-radius:50%;height:var(--s)}
@keyframes vlhFall{0%{transform:translate3d(0,-10vh,0) rotate(0)}35%{transform:translate3d(36px,35vh,0) rotate(180deg)}70%{transform:translate3d(-20px,72vh,0) rotate(380deg)}100%{transform:translate3d(45px,112vh,0) rotate(600deg)}}
html[data-decor-speed=slow] .vlh-fall i{animation-duration:calc(var(--dur)*1.45)}html[data-decor-mode=minimal] .vlh-fall{opacity:.25}html[data-decor-mode=soft] .vlh-fall{opacity:.55}html[data-decor-mode=off] .vlh-decoration-root{display:none!important}
html[data-event=christmas] .logo-image-link::after{content:"";position:absolute;width:42px;height:32px;left:4px;top:-8px;background:linear-gradient(150deg,#c52e2a 0 65%,white 66%);clip-path:polygon(0 100%,35% 0,100% 70%,80% 100%);filter:drop-shadow(0 2px 2px rgba(0,0,0,.12))}
@media(max-width:800px){.vlh-corner-tl{width:150px;height:110px}.vlh-corner-tl::before{width:125px;height:76px}.vlh-corner-bl{width:145px;height:105px}.vlh-corner-tr,.vlh-corner-br{display:none}.vlh-year{top:104px;right:3%;font-size:34px}.vlh-fall i:nth-child(n+9){display:none}}
@media(prefers-reduced-motion:reduce){.vlh-fall i{animation-duration:24s!important;opacity:.42}}
/* V259 uses one decoration engine only; the old render-home layer is kept in DOM but hidden. */
.petal-layer,.season-page-ornaments{display:none!important}
.logo-image-link img{image-rendering:auto;transform:translateZ(0);backface-visibility:hidden}
/* V260: crisp approved ornaments, compact safe zones, no disconnected tail. */
.vlh-corner-tl::before{left:8px;top:2px;width:210px;height:122px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 420 240'%3E%3Cpath d='M0 34C78 5 145 31 213 26c65-5 126-32 207-4' fill='none' stroke='%236a3028' stroke-width='5' stroke-linecap='round'/%3E%3Cg stroke='%23861f19' stroke-width='4'%3E%3Cpath d='M60 42v25m122-37v29m121-36v25'/%3E%3Cg fill='%23b3261e'%3E%3Cpath d='M30 69c14-18 58-18 72 0l-7 74c-12 17-46 17-58 0z'/%3E%3Cpath d='M151 62c13-17 55-17 68 0l-7 68c-12 16-42 16-54 0z'/%3E%3Cpath d='M273 52c12-16 51-16 63 0l-6 62c-11 15-40 15-51 0z'/%3E%3C/g%3E%3C/g%3E%3Cg fill='%23f8c86d' opacity='.7'%3E%3Cellipse cx='66' cy='105' rx='24' ry='38'/%3E%3Cellipse cx='185' cy='96' rx='22' ry='34'/%3E%3Cellipse cx='304' cy='83' rx='20' ry='31'/%3E%3C/g%3E%3Cg stroke='%23861f19' stroke-width='4'%3E%3Cpath d='M66 158v33m119-48v31m119-47v29'/%3E%3C/g%3E%3C/svg%3E")}.vlh-corner-bl{width:150px;height:110px;bottom:6px;left:4px}.vlh-corner-bl::before{height:100px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 300 200'%3E%3Cpath d='M8 180c45-24 78-50 106-88' fill='none' stroke='%23865a3e' stroke-width='6' stroke-linecap='round'/%3E%3Cpath d='M45 150c32-10 60-6 82 8M75 119c21-4 38 1 54 14' fill='none' stroke='%23aa5a42' stroke-width='5' stroke-linecap='round'/%3E%3Cg fill='%23c85b53'%3E%3Ccircle cx='113' cy='90' r='12'/%3E%3Ccircle cx='132' cy='71' r='9'/%3E%3Ccircle cx='92' cy='111' r='8'/%3E%3C/g%3E%3Cpath d='M0 190h150' stroke='%23e7d4b4' stroke-width='4' opacity='.7'/%3E%3C/svg%3E")}.logo-image-link img{transform:none!important;backface-visibility:visible!important;image-rendering:auto!important}.admin-login-logo img,.admin-compact-brand img{transform:none!important;filter:none!important}
@media(max-width:800px){.vlh-corner-bl{width:92px;height:70px;bottom:3px}.vlh-corner-bl::before{height:68px}.vlh-corner-tl::before{width:132px;height:80px}}

/* V261: cụm đèn cũ đã loại bỏ hoàn toàn. */
.vlh-corner-tl::before{display:none!important;background-image:none!important;content:none!important}

/* V267: áp dụng đúng lựa chọn trang trí, không ảnh hưởng cấu trúc/nút */
.vlh-decoration-root,.vlh-decoration-root *{pointer-events:none!important}.vlh-corner{display:block!important}.vlh-corner::before{display:block!important;content:""!important;background-image:none!important}.vlh-corner-tl{top:0;left:0;width:220px;height:145px}.vlh-corner-tr{top:6px;right:0;width:180px;height:125px}.vlh-corner-bl{bottom:0;left:0;width:160px;height:115px}.vlh-corner-br{display:none!important}
html[data-fall-type=none] .vlh-fall,html[data-decor-density=off] .vlh-fall,html[data-decor-speed=off] .vlh-fall{display:none!important}
html[data-fall-type=peach] .vlh-fall i{background:#ef8da5}html[data-fall-type=apricot] .vlh-fall i{background:#f4bd42}html[data-fall-type="leaf-green"] .vlh-fall i{background:#63a870}html[data-fall-type="leaf-autumn"] .vlh-fall i{background:#dc7b35;clip-path:polygon(50% 0,63% 27%,91% 14%,78% 43%,100% 57%,68% 64%,73% 96%,50% 77%,27% 96%,32% 64%,0 57%,22% 43%,9% 14%,37% 27%);border-radius:0}html[data-fall-type=snow] .vlh-fall i{background:#fff;border-radius:50%;height:var(--s);box-shadow:0 0 6px #c8d5e3}html[data-fall-type=rose] .vlh-fall i{background:#d85f76}html[data-fall-type=sparkle] .vlh-fall i{background:#f1b94b;border-radius:50%;height:var(--s);box-shadow:0 0 7px #f1b94b}
html[data-decor-density=low] .vlh-fall i:nth-child(n+9){display:none}html[data-decor-density=medium] .vlh-fall i:nth-child(n+13){display:none}html[data-decor-speed=slow] .vlh-fall i{animation-duration:calc(var(--dur)*1.45)}
html[data-decor-theme=spring] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background-image:linear-gradient(rgba(255,236,241,.16),rgba(255,236,241,.16)),linear-gradient(135deg,#fbf5e9,#f5ead7)}html[data-decor-theme=summer] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background-image:linear-gradient(rgba(229,244,222,.14),rgba(229,244,222,.14)),linear-gradient(135deg,#fbf5e9,#f5ead7)}html[data-decor-theme=autumn] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background-image:linear-gradient(rgba(248,214,160,.13),rgba(248,214,160,.13)),linear-gradient(135deg,#fbf5e9,#f5ead7)}html[data-decor-theme=winter] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background-image:linear-gradient(rgba(220,231,246,.15),rgba(220,231,246,.15)),linear-gradient(135deg,#fbf5e9,#f5ead7)}

/* V268 — bộ giao diện thật dựng từ các mẫu đã duyệt.
   Chỉ dùng ảnh ở lớp trang trí; menu, logo, chữ và nút vẫn là HTML thật. */
html[data-decor-theme] .vlh-corner::before,
html[data-decor-theme] .vlh-corner::after{content:none!important;display:none!important}
html[data-decor-theme] .vlh-corner{background-size:contain!important;background-position:center!important;background-repeat:no-repeat!important;filter:none!important;opacity:1!important}
html[data-decor-theme] .vlh-corner-tl{width:min(38vw,620px);height:min(44vw,460px);top:0;left:0;background-position:left top!important}
html[data-decor-theme] .vlh-corner-tr{width:min(34vw,560px);height:min(42vw,440px);top:0;right:0;background-position:right top!important}
html[data-decor-theme] .vlh-corner-bl{width:min(40vw,650px);height:min(38vw,460px);bottom:0;left:0;background-position:left bottom!important}
html[data-decor-theme] .vlh-corner-br{width:min(40vw,650px);height:min(38vw,460px);bottom:0;right:0;background-position:right bottom!important}

html[data-decor-theme=normal] .vlh-corner-tl{background-image:url('./assets/themes/normal/corner-tl.png?v=288')}
html[data-decor-theme=normal] .vlh-corner-tr{background-image:url('./assets/themes/normal/corner-tr.png?v=288')}
html[data-decor-theme=normal] .vlh-corner-bl{background-image:url('./assets/themes/normal/corner-bl.png?v=288')}
html[data-decor-theme=normal] .vlh-corner-br{background-image:url('./assets/themes/normal/corner-br.png?v=288')}
html[data-decor-theme=christmas] .vlh-corner-tl{background-image:url('./assets/themes/christmas/corner-tl.png?v=288')}
html[data-decor-theme=christmas] .vlh-corner-tr{background-image:url('./assets/themes/christmas/corner-tr.png?v=288')}
html[data-decor-theme=christmas] .vlh-corner-bl{background-image:url('./assets/themes/christmas/corner-bl.png?v=288')}
html[data-decor-theme=christmas] .vlh-corner-br{background-image:url('./assets/themes/christmas/corner-br.png?v=288')}
html[data-decor-theme=tet] .vlh-corner-tl{background-image:url('./assets/themes/tet/corner-tl.png?v=288')}
html[data-decor-theme=tet] .vlh-corner-tr{background-image:url('./assets/themes/tet/corner-tr.png?v=288')}
html[data-decor-theme=tet] .vlh-corner-bl{background-image:url('./assets/themes/tet/corner-bl.png?v=288')}
html[data-decor-theme=tet] .vlh-corner-br{background-image:url('./assets/themes/tet/corner-br.png?v=288')}
html[data-decor-theme=newyear] .vlh-corner-tl{background-image:url('./assets/themes/newyear/corner-tl.png?v=288')}
html[data-decor-theme=newyear] .vlh-corner-tr{background-image:url('./assets/themes/newyear/corner-tr.png?v=288')}
html[data-decor-theme=newyear] .vlh-corner-bl{background-image:url('./assets/themes/newyear/corner-bl.png?v=288')}
html[data-decor-theme=newyear] .vlh-corner-br{background-image:url('./assets/themes/newyear/corner-br.png?v=288')}
html[data-decor-theme=valentine] .vlh-corner-tl{background-image:url('./assets/themes/valentine/corner-tl.png?v=288')}
html[data-decor-theme=valentine] .vlh-corner-tr{background-image:url('./assets/themes/valentine/corner-tr.png?v=288')}
html[data-decor-theme=valentine] .vlh-corner-bl{background-image:url('./assets/themes/valentine/corner-bl.png?v=288')}
html[data-decor-theme=valentine] .vlh-corner-br{background-image:url('./assets/themes/valentine/corner-br.png?v=288')}
html[data-decor-theme=halloween] .vlh-corner-tl{background-image:url('./assets/themes/halloween/corner-tl.png?v=288')}
html[data-decor-theme=halloween] .vlh-corner-tr{background-image:url('./assets/themes/halloween/corner-tr.png?v=288')}
html[data-decor-theme=halloween] .vlh-corner-bl{background-image:url('./assets/themes/halloween/corner-bl.png?v=288')}
html[data-decor-theme=halloween] .vlh-corner-br{background-image:url('./assets/themes/halloween/corner-br.png?v=288')}

html[data-decor-theme=normal] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background:linear-gradient(rgba(255,251,243,.78),rgba(255,248,237,.88)),radial-gradient(circle at 50% 34%,#fffdf8 0,#f8eddb 78%)}
html[data-decor-theme=christmas] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background:radial-gradient(circle at 50% 18%,#fffdfa 0,#fbf3e7 66%,#f4e3ca 100%)}
html[data-decor-theme=tet] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background:radial-gradient(circle at 50% 24%,#fffdf7 0,#f9ead5 68%,#efd3ac 100%)}
html[data-decor-theme=newyear] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background:radial-gradient(circle at 50% 28%,#fffefa 0,#fbf2e5 70%,#f1dcc0 100%)}
html[data-decor-theme=valentine] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background:radial-gradient(circle at 48% 28%,#fffdfb 0,#fdf0ec 70%,#f4d8d5 100%)}
html[data-decor-theme=halloween] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background:radial-gradient(circle at 50% 25%,#fffdfa 0,#f7ecdc 70%,#ead6bc 100%)}


@media(max-width:800px){
 html[data-decor-theme] .vlh-corner-tl,html[data-decor-theme] .vlh-corner-tr{width:42vw;height:36vw}
 html[data-decor-theme] .vlh-corner-bl,html[data-decor-theme] .vlh-corner-br{width:46vw;height:38vw}
}

/* V269 — mùa/giờ là lớp tự động; preset sự kiện luôn được giữ nguyên. */
.vlh-decoration-root::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:2;opacity:.12;background:transparent;transition:background .35s ease,opacity .35s ease}
html[data-decor-theme=normal][data-season=spring] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background:radial-gradient(circle at 55% 20%,#fffdf8 0,#fcefeb 58%,#f4ddd8 100%)}
html[data-decor-theme=normal][data-season=summer] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background:radial-gradient(circle at 50% 18%,#fffef4 0,#eef5df 58%,#e0ebcf 100%)}
html[data-decor-theme=normal][data-season=autumn] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background:radial-gradient(circle at 50% 18%,#fffaf0 0,#f7e4c8 60%,#efd2a7 100%)}
html[data-decor-theme=normal][data-season=winter] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{background:radial-gradient(circle at 50% 18%,#fffdf9 0,#eef2f5 60%,#dfe7ee 100%)}
html[data-day-phase=morning] .vlh-decoration-root::after{background:linear-gradient(rgba(255,245,214,.05),rgba(255,255,255,0));opacity:.12}
html[data-day-phase=noon] .vlh-decoration-root::after{background:linear-gradient(rgba(255,228,158,.055),rgba(255,255,255,0));opacity:.14}
html[data-day-phase=afternoon] .vlh-decoration-root::after{background:linear-gradient(rgba(246,167,100,.08),rgba(255,255,255,0));opacity:.18}
html[data-day-phase=evening] .vlh-decoration-root::after{background:linear-gradient(rgba(111,55,45,.12),rgba(45,35,45,.04));opacity:.22}
html[data-day-phase=night] .vlh-decoration-root::after{background:linear-gradient(rgba(30,37,64,.16),rgba(20,26,48,.08));opacity:.26}
html[data-day-phase=late-night] .vlh-decoration-root::after{background:linear-gradient(rgba(16,24,46,.20),rgba(10,16,34,.10));opacity:.29}
/* Với preset sự kiện, giảm cường độ biến thể giờ còn khoảng 10–15%. */
html:not([data-decor-theme=normal]) .vlh-decoration-root::after{opacity:.12}
html:not([data-decor-theme=normal])[data-day-phase=night] .vlh-decoration-root::after,html:not([data-decor-theme=normal])[data-day-phase=late-night] .vlh-decoration-root::after{opacity:.15}

/* Các lựa chọn góc thủ công dùng asset thật của bộ mẫu, không dùng hình vẽ/sticker. */

/* Khuya giảm hiệu ứng động để dễ đọc; không tắt preset. */
html[data-day-phase=late-night] .vlh-fall{opacity:.48}
html[data-day-phase=night] .vlh-fall{opacity:.62}


/* V270 FIX: trang trí chỉ làm nền, tuyệt đối không che nội dung */
.site-shell{position:relative;isolation:isolate}
.site-shell>.vlh-decoration-root{z-index:0!important}
.site-shell>:not(.vlh-decoration-root){position:relative;z-index:2}
body>.vlh-decoration-root{z-index:0!important}
body>main,body>header,body>nav,body>footer,body>.public-site-header,body>.writing-shell,body>.student-shell,body>.article-shell,body>.recruitment-shell{position:relative;z-index:2}
body[data-decor-mode]:not([data-decor-mode=off]) .vlh-fall{position:fixed!important;inset:0!important;z-index:18!important;pointer-events:none!important}
body[data-decor-mode]:not([data-decor-mode=off]) .vlh-fall i{will-change:transform,opacity}
.vlh-decoration-root{pointer-events:none!important}
.vlh-corner{opacity:.78!important;mix-blend-mode:normal!important}
html[data-decor-theme] .vlh-corner-tl{width:min(24vw,360px)!important;height:min(30vw,330px)!important}
html[data-decor-theme] .vlh-corner-tr{width:min(22vw,330px)!important;height:min(28vw,310px)!important}
html[data-decor-theme] .vlh-corner-bl{width:min(24vw,360px)!important;height:min(26vw,320px)!important}
html[data-decor-theme] .vlh-corner-br{display:block!important;width:min(24vw,360px)!important;height:min(26vw,320px)!important}
.vlh-fall{z-index:18!important;opacity:.72;pointer-events:none!important;mix-blend-mode:normal!important}
.vlh-decoration-root::after{z-index:0!important;opacity:.06!important}
@media(max-width:760px){
  html[data-decor-theme] .vlh-corner-tl,html[data-decor-theme] .vlh-corner-tr{width:32vw!important;height:28vw!important;opacity:.56!important}
  html[data-decor-theme] .vlh-corner-bl,html[data-decor-theme] .vlh-corner-br{width:34vw!important;height:30vw!important;opacity:.56!important}
  .vlh-fall{opacity:.5}
}


/* V271: góc trên ôm sát mép nền, không chen vào logo/menu */
html[data-decor-theme] .vlh-corner-tl{width:min(21vw,320px)!important;height:min(25vw,285px)!important;opacity:.72!important;background-position:left top!important}
html[data-decor-theme] .vlh-corner-tr{width:min(19vw,290px)!important;height:min(23vw,270px)!important;opacity:.68!important;background-position:right top!important}
html[data-decor-theme] .vlh-corner-bl,html[data-decor-theme] .vlh-corner-br{opacity:.78!important}
@media(max-width:760px){
 html[data-decor-theme] .vlh-corner-tl,html[data-decor-theme] .vlh-corner-tr{width:28vw!important;height:23vw!important;opacity:.48!important}
}


/* V273 — chốt họa tiết rơi theo mẫu duyệt: xuân/đóm đóm/lá phong/tuyết/tim/Tết/Halloween */
.vlh-fall i{width:max(14px,var(--s)*1.8)!important;height:max(14px,var(--s)*1.8)!important;background:transparent!important;background-repeat:no-repeat!important;background-position:center!important;background-size:contain!important;border-radius:0!important;box-shadow:none!important;opacity:.88;filter:drop-shadow(0 3px 7px rgba(50,28,18,.12))}
html[data-fall-type=peach] .vlh-fall i{width:clamp(16px,1.5vw,24px)!important;height:clamp(14px,1.2vw,22px)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 80 64'%3E%3Cdefs%3E%3ClinearGradient id='g' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23fff2f6'/%3E%3Cstop offset='.55' stop-color='%23f9b8c8'/%3E%3Cstop offset='1' stop-color='%23ee8fa6'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M40 6c17 0 29 13 29 27 0 15-13 25-29 25S11 48 11 33C11 19 23 6 40 6Z' fill='url(%23g)' transform='rotate(-28 40 32)'/%3E%3Cpath d='M44 11c4 10 0 31-15 44' fill='none' stroke='%23f7d8df' stroke-width='3' opacity='.75'/%3E%3C/svg%3E")}
html[data-fall-type='leaf-green'] .vlh-fall i,html[data-fall-type=sparkle]:not([data-decor-theme=newyear]) .vlh-fall i{width:clamp(10px,.95vw,16px)!important;height:clamp(10px,.95vw,16px)!important;border-radius:50%!important;background:radial-gradient(circle,#fffce0 0,#ffe98a 22%,rgba(255,215,69,.98) 42%,rgba(255,225,128,.62) 58%,rgba(255,220,120,0) 80%)!important;box-shadow:0 0 12px rgba(255,222,114,.92),0 0 26px rgba(255,210,78,.55)!important;filter:none!important;opacity:.96!important;animation-name:vlhFireflyGlow!important;animation-timing-function:ease-in-out!important}
html[data-fall-type='leaf-autumn'] .vlh-fall i{width:clamp(18px,1.55vw,28px)!important;height:clamp(18px,1.55vw,28px)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 96'%3E%3Cdefs%3E%3ClinearGradient id='m' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23ffd36b'/%3E%3Cstop offset='.42' stop-color='%23f39a34'/%3E%3Cstop offset='1' stop-color='%23d74a2f'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M49 3 58 21 79 12 71 31 92 35 74 47 89 63 67 61 68 85 49 71 31 85 31 61 8 63 24 47 4 35 26 31 18 12 39 21z' fill='url(%23m)' stroke='%23b64a22' stroke-width='4' stroke-linejoin='round'/%3E%3Cpath d='M49 8v58M49 38 70 28M49 46 30 32' stroke='%23ffe8b6' stroke-width='3' stroke-linecap='round' opacity='.75'/%3E%3C/svg%3E")}
html[data-fall-type=snow] .vlh-fall i{width:clamp(18px,1.35vw,24px)!important;height:clamp(18px,1.35vw,24px)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23ffffff' stroke-width='6' stroke-linecap='round'%3E%3Cpath d='M48 8v80M8 48h80M18 18l60 60M78 18 18 78'/%3E%3C/g%3E%3Cg fill='%23ffffff'%3E%3Ccircle cx='48' cy='48' r='7'/%3E%3Ccircle cx='48' cy='8' r='4'/%3E%3Ccircle cx='48' cy='88' r='4'/%3E%3Ccircle cx='8' cy='48' r='4'/%3E%3Ccircle cx='88' cy='48' r='4'/%3E%3Ccircle cx='18' cy='18' r='4'/%3E%3Ccircle cx='78' cy='18' r='4'/%3E%3Ccircle cx='18' cy='78' r='4'/%3E%3Ccircle cx='78' cy='78' r='4'/%3E%3C/g%3E%3C/svg%3E");filter:drop-shadow(0 0 10px rgba(175,205,235,.72));opacity:.96!important}
html[data-fall-type=rose] .vlh-fall i{width:clamp(18px,1.5vw,26px)!important;height:clamp(16px,1.35vw,24px)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 82'%3E%3Cdefs%3E%3ClinearGradient id='h' x1='0' y1='0' x2='1' y2='1'%3E%3Cstop offset='0' stop-color='%23ffd6df'/%3E%3Cstop offset='.48' stop-color='%23ff748d'/%3E%3Cstop offset='1' stop-color='%23e53e63'/%3E%3C/linearGradient%3E%3C/defs%3E%3Cpath d='M48 75 14 44C4 35 3 17 18 9c10-5 22-2 30 8 8-10 20-13 30-8 15 8 14 26 4 35z' fill='url(%23h)'/%3E%3C/svg%3E")}
html[data-fall-type=apricot] .vlh-fall i{width:clamp(18px,1.55vw,28px)!important;height:clamp(18px,1.55vw,28px)!important}
html[data-fall-type=apricot] .vlh-fall i:nth-child(3n+1){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 96'%3E%3Cellipse cx='48' cy='48' rx='38' ry='38' fill='%23f4c14e'/%3E%3Cellipse cx='48' cy='48' rx='28' ry='28' fill='%23ffd86c'/%3E%3Crect x='44' y='20' width='8' height='56' rx='4' fill='%23f2b53c'/%3E%3Crect x='20' y='44' width='56' height='8' rx='4' fill='%23f2b53c'/%3E%3C/svg%3E")}
html[data-fall-type=apricot] .vlh-fall i:nth-child(3n+2){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 86 98'%3E%3Crect x='14' y='10' width='58' height='78' rx='6' fill='%23c32722'/%3E%3Crect x='20' y='16' width='46' height='66' rx='4' fill='%23e8483a'/%3E%3Cpath d='M43 26v48M29 40h28' stroke='%23ffd66e' stroke-width='6' stroke-linecap='round'/%3E%3Cpath d='M23 13h40' stroke='%23f4d28c' stroke-width='6' stroke-linecap='round'/%3E%3C/svg%3E")}
html[data-fall-type=apricot] .vlh-fall i:nth-child(3n){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23ffcb55' stroke-width='6' stroke-linecap='round'%3E%3Cpath d='M48 10v76M10 48h76M19 19l58 58M77 19 19 77'/%3E%3C/g%3E%3Ccircle cx='48' cy='48' r='9' fill='%23ff8e2c'/%3E%3C/svg%3E")}
html[data-fall-type=halloween] .vlh-fall i{width:clamp(16px,1.4vw,24px)!important;height:clamp(16px,1.4vw,24px)!important}
html[data-fall-type=halloween] .vlh-fall i:nth-child(3n+1){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 60'%3E%3Cpath d='M6 44c10-17 23-22 36-14 2-11 7-20 17-26-1 9 1 17 8 22 10-4 19-2 29 6-12 0-19 4-25 13-11-6-22-6-34 0-6-8-14-12-31-1Z' fill='%23463155'/%3E%3C/svg%3E")}
html[data-fall-type=halloween] .vlh-fall i:nth-child(3n+2){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 96'%3E%3Cellipse cx='48' cy='55' rx='26' ry='22' fill='%23e67d22' stroke='%23834118' stroke-width='6'/%3E%3Cpath d='M48 33V16' stroke='%23654e25' stroke-width='8' stroke-linecap='round'/%3E%3Cpath d='M36 50l8 7-12 7m36-14-8 7 12 7' fill='none' stroke='%23301b12' stroke-width='6' stroke-linecap='round'/%3E%3C/svg%3E")}
html[data-fall-type=halloween] .vlh-fall i:nth-child(3n){background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 96'%3E%3Cpath d='M49 3 58 21 79 12 71 31 92 35 74 47 89 63 67 61 68 85 49 71 31 85 31 61 8 63 24 47 4 35 26 31 18 12 39 21z' fill='%23f39a34' stroke='%23d64c2f' stroke-width='4' stroke-linejoin='round'/%3E%3C/svg%3E")}
html[data-fall-type=sparkle][data-decor-theme=newyear] .vlh-fall i{width:clamp(14px,1.2vw,22px)!important;height:clamp(14px,1.2vw,22px)!important;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 96 96'%3E%3Cg fill='none' stroke='%23f3c35c' stroke-width='6' stroke-linecap='round'%3E%3Cpath d='M48 10v76M10 48h76M19 19l58 58M77 19 19 77'/%3E%3C/g%3E%3Ccircle cx='48' cy='48' r='10' fill='%23fff1b0'/%3E%3C/svg%3E");box-shadow:0 0 10px rgba(255,204,92,.45)!important;filter:none!important}
@keyframes vlhFireflyGlow{0%{transform:translate3d(0,-10vh,0) scale(.55);opacity:.18}18%{opacity:.98}30%{transform:translate3d(34px,24vh,0) scale(1)}45%{opacity:.55}60%{transform:translate3d(-20px,55vh,0) scale(.78)}78%{opacity:.95}100%{transform:translate3d(26px,106vh,0) scale(.45);opacity:.2}}
@keyframes vlhFirefly{0%{transform:translate3d(0,-10vh,0) scale(.6);opacity:.2}20%{opacity:.95}35%{transform:translate3d(34px,26vh,0) scale(1)}55%{opacity:.5}70%{transform:translate3d(-18px,58vh,0) scale(.82)}100%{transform:translate3d(24px,106vh,0) scale(.4);opacity:.18}}
html[data-decor-speed=slow] .vlh-fall i{animation-duration:calc(var(--dur)*1.55)!important}

html[data-fall-type=snow] .vlh-fall{opacity:.94!important}
html[data-fall-type=sparkle] .vlh-fall,html[data-fall-type='leaf-green'] .vlh-fall{opacity:.96!important}

/* V275: hiệu ứng rơi hiển thị trên nội dung để nhìn thấy rõ, vẫn không chặn bấm */
.site-shell > .vlh-decoration-root .vlh-fall{z-index:18!important;opacity:.92!important}
.site-shell > .vlh-decoration-root .vlh-corner,.site-shell > .vlh-decoration-root .vlh-year{z-index:0!important}

/* V276 FIX ROOT CAUSE: falling particles live in a global viewport overlay,
   outside .site-shell's z-index:0 decoration stacking context. This keeps
   corner ornaments behind content while falling particles remain visible. */
body > .vlh-fall-overlay{
  position:fixed!important;
  inset:0!important;
  z-index:40!important;
  width:100vw!important;
  height:100vh!important;
  overflow:hidden!important;
  pointer-events:none!important;
  contain:none!important;
  isolation:auto!important;
  opacity:.92!important;
}
body > .vlh-fall-overlay i{pointer-events:none!important;will-change:transform,opacity!important}
html[data-fall-type=snow] body > .vlh-fall-overlay{opacity:.96!important}
html[data-fall-type=sparkle] body > .vlh-fall-overlay,
html[data-fall-type='leaf-green'] body > .vlh-fall-overlay{opacity:.98!important}
@media(max-width:760px){body > .vlh-fall-overlay{opacity:.82!important}}

/* V277 FINAL FALL OVERLAY: always above rendered home content, never clickable. */
html body > .vlh-fall-overlay{position:fixed!important;inset:0!important;z-index:9998!important;width:100vw!important;height:100dvh!important;display:block!important;visibility:visible!important;overflow:hidden!important;pointer-events:none!important;transform:none!important;filter:none!important;isolation:isolate!important;contain:none!important;}
html body > .vlh-fall-overlay i{position:absolute!important;display:block!important;visibility:visible!important;pointer-events:none!important;}
html[data-fall-type=none] body > .vlh-fall-overlay,html[data-decor-density=off] body > .vlh-fall-overlay,html[data-decor-speed=off] body > .vlh-fall-overlay{display:none!important;}

/* V278: Legacy DOM falling layer retired. Canvas renderer owns falling effects. */
.vlh-fall-overlay{display:none!important}
#vlh-fall-canvas{position:fixed!important;inset:0!important;z-index:1!important;pointer-events:none!important;background:transparent!important;display:block;visibility:visible!important;opacity:1!important;max-width:none!important;max-height:none!important;}

/* V279: legacy falling DOM disabled completely; top-layer popover canvas owns falling effects. */
.vlh-decoration-root .vlh-fall,.vlh-fall-overlay{display:none!important}
#vlh-fall-top-layer{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;margin:0!important;padding:0!important;border:0!important;background:transparent!important;overflow:hidden!important;pointer-events:none!important;z-index:9999!important;max-width:none!important;max-height:none!important;}
#vlh-fall-top-layer::backdrop{display:none!important;background:transparent!important;}
#vlh-fall-top-layer>#vlh-fall-canvas{position:absolute!important;inset:0!important;width:100%!important;height:100%!important;display:block!important;visibility:visible!important;opacity:1!important;pointer-events:none!important;background:transparent!important;max-width:none!important;max-height:none!important;}

/* V281: logo lễ được đổi bằng ảnh logo hoàn chỉnh; tắt overlay phụ kiện cũ để tránh chồng hình */
.logo-image-link::after,.admin-compact-brand::after,.admin-login-logo::after,.writing-brand::after{display:none!important;content:none!important;background-image:none!important}

/* V284 — Họa tiết góc khóa tuyệt đối theo preset, không có lựa chọn riêng */
html[data-decor-theme=normal] .vlh-decoration-root .vlh-corner-tl{background-image:url('./assets/themes/normal/corner-tl.png?v=288')!important}
html[data-decor-theme=normal] .vlh-decoration-root .vlh-corner-tr{background-image:url('./assets/themes/normal/corner-tr.png?v=288')!important}
html[data-decor-theme=normal] .vlh-decoration-root .vlh-corner-bl{background-image:url('./assets/themes/normal/corner-bl.png?v=288')!important}
html[data-decor-theme=normal] .vlh-decoration-root .vlh-corner-br{background-image:url('./assets/themes/normal/corner-br.png?v=288')!important}
html[data-decor-theme=christmas] .vlh-decoration-root .vlh-corner-tl{background-image:url('./assets/themes/christmas/corner-tl.png?v=288')!important}
html[data-decor-theme=christmas] .vlh-decoration-root .vlh-corner-tr{background-image:url('./assets/themes/christmas/corner-tr.png?v=288')!important}
html[data-decor-theme=christmas] .vlh-decoration-root .vlh-corner-bl{background-image:url('./assets/themes/christmas/corner-bl.png?v=288')!important}
html[data-decor-theme=christmas] .vlh-decoration-root .vlh-corner-br{background-image:url('./assets/themes/christmas/corner-br.png?v=288')!important}
html[data-decor-theme=tet] .vlh-decoration-root .vlh-corner-tl{background-image:url('./assets/themes/tet/corner-tl.png?v=288')!important}
html[data-decor-theme=tet] .vlh-decoration-root .vlh-corner-tr{background-image:url('./assets/themes/tet/corner-tr.png?v=288')!important}
html[data-decor-theme=tet] .vlh-decoration-root .vlh-corner-bl{background-image:url('./assets/themes/tet/corner-bl.png?v=288')!important}
html[data-decor-theme=tet] .vlh-decoration-root .vlh-corner-br{background-image:url('./assets/themes/tet/corner-br.png?v=288')!important}
html[data-decor-theme=newyear] .vlh-decoration-root .vlh-corner-tl{background-image:url('./assets/themes/newyear/corner-tl.png?v=288')!important}
html[data-decor-theme=newyear] .vlh-decoration-root .vlh-corner-tr{background-image:url('./assets/themes/newyear/corner-tr.png?v=288')!important}
html[data-decor-theme=newyear] .vlh-decoration-root .vlh-corner-bl{background-image:url('./assets/themes/newyear/corner-bl.png?v=288')!important}
html[data-decor-theme=newyear] .vlh-decoration-root .vlh-corner-br{background-image:url('./assets/themes/newyear/corner-br.png?v=288')!important}
html[data-decor-theme=valentine] .vlh-decoration-root .vlh-corner-tl{background-image:url('./assets/themes/valentine/corner-tl.png?v=288')!important}
html[data-decor-theme=valentine] .vlh-decoration-root .vlh-corner-tr{background-image:url('./assets/themes/valentine/corner-tr.png?v=288')!important}
html[data-decor-theme=valentine] .vlh-decoration-root .vlh-corner-bl{background-image:url('./assets/themes/valentine/corner-bl.png?v=288')!important}
html[data-decor-theme=valentine] .vlh-decoration-root .vlh-corner-br{background-image:url('./assets/themes/valentine/corner-br.png?v=288')!important}
html[data-decor-theme=halloween] .vlh-decoration-root .vlh-corner-tl{background-image:url('./assets/themes/halloween/corner-tl.png?v=288')!important}
html[data-decor-theme=halloween] .vlh-decoration-root .vlh-corner-tr{background-image:url('./assets/themes/halloween/corner-tr.png?v=288')!important}
html[data-decor-theme=halloween] .vlh-decoration-root .vlh-corner-bl{background-image:url('./assets/themes/halloween/corner-bl.png?v=288')!important}
html[data-decor-theme=halloween] .vlh-decoration-root .vlh-corner-br{background-image:url('./assets/themes/halloween/corner-br.png?v=288')!important}
html[data-decor-mode]:not([data-decor-mode=off]) .vlh-decoration-root .vlh-corner{display:block!important}

/* === V284 authoritative preset decoration layer === */
html[data-decor-theme] .vlh-corner::before,
html[data-decor-theme] .vlh-corner::after{content:none!important;display:none!important}
html[data-decor-theme] .vlh-corner{
  display:block!important;pointer-events:none!important;background-repeat:no-repeat!important;
  background-size:contain!important;filter:none!important;opacity:.82!important;
}
html[data-decor-theme] .vlh-corner-tl{top:0!important;left:0!important;right:auto!important;bottom:auto!important;width:min(24vw,320px)!important;height:min(26vw,330px)!important;background-position:left top!important}
html[data-decor-theme] .vlh-corner-tr{top:0!important;right:0!important;left:auto!important;bottom:auto!important;width:min(21vw,285px)!important;height:min(23vw,300px)!important;background-position:right top!important;opacity:.64!important}
html[data-decor-theme] .vlh-corner-bl{bottom:0!important;left:0!important;right:auto!important;top:auto!important;width:min(22vw,300px)!important;height:min(23vw,300px)!important;background-position:left bottom!important;opacity:.64!important}
html[data-decor-theme] .vlh-corner-br{bottom:0!important;right:0!important;left:auto!important;top:auto!important;width:min(24vw,320px)!important;height:min(26vw,330px)!important;background-position:right bottom!important}

/* Complete holiday logos: there is no CSS accessory layer in V284. */
.logo-image-link,.writing-brand,.academy-brand{position:relative}
.logo-image-link img,.writing-brand img,.academy-brand img{height:auto!important;object-fit:contain!important;object-position:center!important}
.logo-image-link::before,.logo-image-link::after,
.writing-brand::before,.writing-brand::after,
.academy-brand::before,.academy-brand::after{content:none!important;background:none!important}

@media(max-width:800px){
 html[data-decor-theme] .vlh-corner-tl,html[data-decor-theme] .vlh-corner-br{width:31vw!important;height:33vw!important;opacity:.62!important}
 html[data-decor-theme] .vlh-corner-tr,html[data-decor-theme] .vlh-corner-bl{width:25vw!important;height:28vw!important;opacity:.46!important}
}

/* V297 — Nền mùa đông/Noel tối nhẹ ban ngày + chế độ ban đêm phát sáng cho mọi preset */
/* Mùa đông (preset ngày thường + season=winter): tối nhẹ sẵn để chuẩn bị cho tuyết. */
html[data-decor-theme=normal][data-season=winter] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{
  background:
    radial-gradient(circle at 48% 16%,rgba(137,164,190,.26) 0,rgba(62,80,103,.10) 30%,transparent 58%),
    linear-gradient(145deg,#8ea0b2 0%,#6d8196 42%,#596f86 100%)!important;
}
/* Noel ban ngày vẫn có sắc tối nhẹ, xanh thông lạnh nhưng không thành dark mode hoàn toàn. */
html[data-decor-theme=christmas] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{
  background:
    radial-gradient(circle at 50% 15%,rgba(255,224,168,.13) 0,transparent 30%),
    linear-gradient(145deg,#5e746f 0%,#465f5b 46%,#344c4a 100%)!important;
}

/* Buổi tối 17:00–19:59: mọi preset chuyển nhẹ sang cảm giác trời tối. */
html[data-day-phase=evening] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{
  background-image:
    linear-gradient(rgba(22,30,46,.34),rgba(22,30,46,.34)),
    var(--vlh-evening-base,linear-gradient(135deg,#6f675f,#514d50))!important;
  background-blend-mode:multiply,normal!important;
}
/* Ban đêm 20:00–23:29: tối rõ hơn. */
html[data-day-phase=night] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{
  background-image:
    radial-gradient(circle at 50% 8%,rgba(120,155,200,.12),transparent 30%),
    linear-gradient(rgba(10,17,32,.54),rgba(10,17,32,.54)),
    var(--vlh-night-base,linear-gradient(145deg,#344157,#202b40))!important;
  background-blend-mode:screen,multiply,normal!important;
}
/* Khuya 23:30–04:59: sâu hơn một bậc, nhưng không đen tuyệt đối. */
html[data-day-phase=late-night] body[data-decor-mode]:not([data-decor-mode=off]) .site-shell{
  background-image:
    radial-gradient(circle at 50% 8%,rgba(120,150,205,.10),transparent 30%),
    linear-gradient(rgba(5,11,25,.66),rgba(5,11,25,.66)),
    var(--vlh-night-base,linear-gradient(145deg,#253249,#141e31))!important;
  background-blend-mode:screen,multiply,normal!important;
}

/* Các preset giữ bản sắc màu riêng khi tối/khuya. */
html[data-decor-theme=normal]{--vlh-evening-base:linear-gradient(145deg,#8b735f,#5e5c68);--vlh-night-base:linear-gradient(145deg,#4c566d,#29364d)}
html[data-decor-theme=normal][data-season=winter]{--vlh-evening-base:linear-gradient(145deg,#71859b,#465c75);--vlh-night-base:linear-gradient(145deg,#435b75,#20334e)}
html[data-decor-theme=christmas]{--vlh-evening-base:linear-gradient(145deg,#49645d,#314d48);--vlh-night-base:linear-gradient(145deg,#27443f,#142f2d)}
html[data-decor-theme=tet]{--vlh-evening-base:linear-gradient(145deg,#7b5149,#553b43);--vlh-night-base:linear-gradient(145deg,#50323b,#2b2434)}
html[data-decor-theme=newyear]{--vlh-evening-base:linear-gradient(145deg,#796b58,#544c50);--vlh-night-base:linear-gradient(145deg,#4e4657,#282c42)}
html[data-decor-theme=valentine]{--vlh-evening-base:linear-gradient(145deg,#77545f,#554450);--vlh-night-base:linear-gradient(145deg,#4d3548,#2a253a)}
html[data-decor-theme=halloween]{--vlh-evening-base:linear-gradient(145deg,#665444,#4c4041);--vlh-night-base:linear-gradient(145deg,#3d3544,#211f32)}

/* "Bật đèn" — logo, chữ, nút và khung nổi lên nhẹ khi trời tối. */
html:is([data-day-phase=evening],[data-day-phase=night],[data-day-phase=late-night]) body[data-decor-mode]:not([data-decor-mode=off]) .logo-image-link img,
html:is([data-day-phase=evening],[data-day-phase=night],[data-day-phase=late-night]) body[data-decor-mode]:not([data-decor-mode=off]) .academy-brand img,
html:is([data-day-phase=evening],[data-day-phase=night],[data-day-phase=late-night]) body[data-decor-mode]:not([data-decor-mode=off]) .writing-brand img{
  filter:drop-shadow(0 0 5px rgba(255,248,220,.50)) drop-shadow(0 0 14px rgba(255,221,150,.28))!important;
}
html:is([data-day-phase=night],[data-day-phase=late-night]) body[data-decor-mode]:not([data-decor-mode=off]) .logo-image-link img,
html:is([data-day-phase=night],[data-day-phase=late-night]) body[data-decor-mode]:not([data-decor-mode=off]) .academy-brand img,
html:is([data-day-phase=night],[data-day-phase=late-night]) body[data-decor-mode]:not([data-decor-mode=off]) .writing-brand img{
  filter:drop-shadow(0 0 7px rgba(255,250,225,.70)) drop-shadow(0 0 18px rgba(255,215,125,.38))!important;
}

html:is([data-day-phase=evening],[data-day-phase=night],[data-day-phase=late-night]) body[data-decor-mode]:not([data-decor-mode=off]) :is(.topbar,.hero-copy,.home-section-heading,.home-footer,.student-welcome,.quiz-header) :is(h1,h2,h3,p,.eyebrow,a,span,strong){
  text-shadow:0 0 5px rgba(255,249,229,.34),0 0 12px rgba(255,220,150,.16);
}
html:is([data-day-phase=night],[data-day-phase=late-night]) body[data-decor-mode]:not([data-decor-mode=off]) :is(.topbar,.hero-copy,.home-section-heading,.home-footer,.student-welcome,.quiz-header) :is(h1,h2,h3,p,.eyebrow,a,span,strong){
  text-shadow:0 0 6px rgba(255,250,232,.48),0 0 15px rgba(255,220,150,.22);
}

html:is([data-day-phase=evening],[data-day-phase=night],[data-day-phase=late-night]) body[data-decor-mode]:not([data-decor-mode=off]) :is(button,.primary-button,.data-button,.placement-button,.writing-home-button,.floating-contact,.quick-channel,.channel-card){
  box-shadow:0 0 0 1px rgba(255,244,214,.18),0 0 9px rgba(255,219,143,.20),0 7px 20px rgba(0,0,0,.16)!important;
}
html:is([data-day-phase=night],[data-day-phase=late-night]) body[data-decor-mode]:not([data-decor-mode=off]) :is(button,.primary-button,.data-button,.placement-button,.writing-home-button,.floating-contact,.quick-channel,.channel-card){
  box-shadow:0 0 0 1px rgba(255,244,214,.28),0 0 13px rgba(255,219,143,.30),0 8px 24px rgba(0,0,0,.22)!important;
}
html:is([data-day-phase=evening],[data-day-phase=night],[data-day-phase=late-night]) body[data-decor-mode]:not([data-decor-mode=off]) :is(button,.primary-button,.data-button,.placement-button,.writing-home-button,.floating-contact):hover{
  filter:brightness(1.06);
  box-shadow:0 0 0 1px rgba(255,248,220,.38),0 0 17px rgba(255,224,150,.38),0 9px 26px rgba(0,0,0,.20)!important;
}

/* Card vẫn sáng để đọc rõ, nhưng có viền sáng rất nhẹ như ánh đèn hắt. */
html:is([data-day-phase=evening],[data-day-phase=night],[data-day-phase=late-night]) body[data-decor-mode]:not([data-decor-mode=off]) :is(.setup-card,.student-guide,.recruitment-aside,.home-article-card,.contact-location-card,.student-login-card,.student-results-card,.student-change-password-card){
  box-shadow:0 0 0 1px rgba(255,244,220,.15),0 0 16px rgba(255,235,195,.12),0 12px 34px rgba(0,0,0,.16)!important;
}

/* Họa tiết góc cũng bắt ánh sáng nhẹ vào ban đêm. */
html:is([data-day-phase=evening],[data-day-phase=night],[data-day-phase=late-night]) .vlh-decoration-root .vlh-corner{
  filter:drop-shadow(0 0 6px rgba(255,226,160,.20))!important;
}
html:is([data-day-phase=night],[data-day-phase=late-night]) .vlh-decoration-root .vlh-corner{
  filter:drop-shadow(0 0 9px rgba(255,226,160,.28))!important;
}

@media(max-width:760px){
  html:is([data-day-phase=evening],[data-day-phase=night],[data-day-phase=late-night]) body[data-decor-mode]:not([data-decor-mode=off]) .logo-image-link img{
    filter:drop-shadow(0 0 5px rgba(255,248,220,.58)) drop-shadow(0 0 12px rgba(255,220,145,.26))!important;
  }
}


/* V300 MOBILE FIX — tránh lớp canvas trong suốt bị Android/Chromium compositing thành nền đen */
#vlh-fall-top-layer{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100dvh!important;
  z-index:9999!important;
  background-color:transparent!important;
  opacity:1!important;
  pointer-events:none!important;
  overflow:hidden!important;
  isolation:auto!important;
  contain:none!important;
  transform:none!important;
  filter:none!important;
}
#vlh-fall-top-layer > #vlh-fall-canvas{
  position:absolute!important;
  inset:0!important;
  width:100%!important;
  height:100%!important;
  z-index:1!important;
  background-color:transparent!important;
  opacity:1!important;
  pointer-events:none!important;
  transform:none!important;
  filter:none!important;
}
@media (max-width: 900px){
  #vlh-fall-top-layer{
    height:100dvh!important;
    max-height:100dvh!important;
  }
}
