
#anhxua .album-k28-categories{display:flex;gap:8px;flex-wrap:wrap;margin:16px 0 15px}
#anhxua .album-k28-categories a{display:inline-flex;align-items:center;min-height:44px;border:1px solid #decdb5;border-radius:99px;background:#fff8ee;padding:10px 14px;font:600 12px 'Be Vietnam Pro',sans-serif;color:#743c3d;text-decoration:none}
#anhxua .album-k28-options{display:flex;gap:9px;flex-wrap:wrap;align-items:center;margin:10px 0}
#anhxua .album-k28-choice{min-height:44px;border:1px solid #bba48a;border-radius:99px;background:#fffdf3;padding:10px 17px;color:#69463d;font:600 13px 'Be Vietnam Pro',sans-serif;cursor:pointer}
#anhxua .album-k28-choice.is-selected{background:#6b3037;color:#fff8ed;border-color:#6b3037}
#anhxua .album-k28-count{margin-left:auto;color:#795a4b;font-size:12px;font-weight:600}
#anhxua .album-k28-disclaimer{font-size:12px;line-height:1.7;color:#876e5e}
#anhxua .album-k28-groups{margin-top:24px;display:grid;gap:36px}
#anhxua .album-k28-group{scroll-margin-top:24px}
#anhxua .album-k28-group-head{display:flex;gap:8px 22px;align-items:baseline;flex-wrap:wrap;padding-bottom:13px;margin-bottom:15px;border-bottom:1px solid #d7bea3}
#anhxua .album-k28-group-head h3{font:600 clamp(27px,4vw,39px)/1.2 'Cormorant Garamond',Georgia,serif;color:#6d3536;margin:0}
#anhxua .album-k28-group-head p{color:#88644e;font-size:13px;margin:0;flex:1 1 180px}
#anhxua .album-k28-group-head span{font:600 12px 'Be Vietnam Pro',sans-serif;color:#8e7060}
#anhxua .album-k28-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
#anhxua .album-k28-card{min-width:0;margin:0;background:#fffaf0;border:1px solid #e7d8c4;border-radius:15px;overflow:hidden;box-shadow:0 10px 22px #3d22100e}
#anhxua .album-k28-thumb{display:block;position:relative;width:100%;aspect-ratio:4/3;padding:0;border:0;background:#eae4d8;cursor:zoom-in}
#anhxua .album-k28-thumb:disabled{cursor:default}
#anhxua .album-k28-thumb img{width:100%;height:100%;display:block;object-fit:contain;background:#28221f}
#anhxua .album-k28-thumb [hidden]{display:none!important}
#anhxua .album-k28-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;position:absolute;inset:0;color:#7a685a;background:linear-gradient(140deg,#f0e6d8,#dbccb7);text-align:center}
#anhxua .album-k28-placeholder span{font-size:29px}
#anhxua .album-k28-placeholder small{font-size:11px}
#anhxua .album-k28-photo-label{padding:11px 14px 14px;color:#5d4137;font:600 13px/1.5 'Be Vietnam Pro',sans-serif}
#anhxua .album-k28-photo-label small{display:block;font-size:11px;color:#927666;font-weight:400}
#anhxua .album-k28-message{font-size:13px;line-height:1.75;padding:12px 15px;border-radius:12px;background:#fff5e8;color:#7a4c3f}
#anhxua .album-k28-message[hidden]{display:none}
#anhxua .album-k28-lightbox{border:0;padding:0;width:min(96vw,1150px);max-width:96vw;max-height:94dvh;border-radius:14px;overflow:auto;background:#191415;color:white;box-shadow:0 25px 95px #0009}
#anhxua .album-k28-lightbox::backdrop{background:#000e}
#anhxua .album-k28-lightbox-head,#anhxua .album-k28-lightbox-controls{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:10px 13px}
#anhxua .album-k28-lightbox-head strong{font-size:13px}
#anhxua .album-k28-lightbox-head button,#anhxua .album-k28-lightbox-controls button{min-height:44px;min-width:44px;background:#3d3030;border:1px solid #81685b;color:white;border-radius:9px;padding:8px 11px}
#anhxua .album-k28-lightbox img{display:block;width:100%;height:auto;max-height:calc(94dvh - 130px);object-fit:contain;background:#111}
#anhxua .album-k28-lightbox-controls span{font-size:12px}
#anhxua button:focus-visible,#anhxua a:focus-visible{outline:3px solid #b57736;outline-offset:3px}
@media(max-width:870px){#anhxua .album-k28-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){
 #anhxua .album-k28-grid{grid-template-columns:1fr;gap:13px}
 #anhxua .album-k28-count{margin-left:0;width:100%}
 #anhxua .album-k28-group-head{display:block}
 #anhxua .album-k28-group-head p{margin-top:5px}
 #anhxua .album-k28-group-head span{display:inline-block;margin-top:7px}
}

/* QA v3: album groups and controls match index.html and album-k28.js */
#anhxua .album-k28-categories{display:flex;flex-wrap:wrap;gap:10px;margin:14px 0 24px}
#anhxua .album-k28-categories a{padding:9px 13px;border:1px solid #d8c3a1;border-radius:999px;background:#fbf4e8;color:#703d3d;font-size:12px;text-decoration:none}
#anhxua .album-k28-categories a:hover{background:#eee0c4}
#anhxua .album-k28-group{margin:28px 0 42px;scroll-margin-top:105px}
#anhxua .album-k28-heading{font:600 clamp(28px,3.7vw,42px)/1.1 "Cormorant Garamond",Georgia,serif;color:#713637;margin:0 0 16px}
#anhxua .album-k28-empty{padding:20px;background:#f9f1e4;border:1px dashed #d0b994;color:#876a54}
#anhxua .album-k28-message{border-left:3px solid #9d684e;padding:10px 13px;background:#fbf1e0;color:#714c40;font-size:13px}
#anhxua .album-k28-message[hidden]{display:none}
#anhxua .album-k28-choice:disabled{opacity:.48;cursor:not-allowed}
#anhxua .album-k28-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr))}
#anhxua .album-k28-thumb:disabled{cursor:not-allowed;opacity:.55}
@media(max-width:540px){#anhxua .album-k28-grid{grid-template-columns:1fr}#anhxua .album-k28-group{margin-bottom:28px}}

/* K28 v5 — single-frame slideshow, portrait and landscape with no cropping */
#anhxua .album-k28-groups{width:100%;max-width:1050px;margin:0 auto}
#anhxua .k28-carousel{border:1px solid #dec9aa;border-radius:20px;overflow:hidden;background:#fff9ed;box-shadow:0 20px 60px #38211b20}
#anhxua .k28-carousel-stage{display:flex;align-items:stretch;justify-content:center;position:relative;aspect-ratio:16/10;min-height:300px;max-height:680px;background:radial-gradient(circle at 50% 40%,#423339,#1b181e);touch-action:pan-y}
#anhxua .k28-carousel-image-button{display:flex;justify-content:center;align-items:center;width:100%;height:100%;padding:0;border:0;background:transparent;cursor:zoom-in}
#anhxua .k28-carousel-image{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;color:#fff}
#anhxua .k28-carousel-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:3;width:48px;height:58px;display:grid;place-items:center;border:1px solid #ffffff63;border-radius:12px;background:#160f15af;color:#fff;font-size:23px;cursor:pointer}
#anhxua .k28-carousel-arrow.prev{left:14px}
#anhxua .k28-carousel-arrow.next{right:14px}
#anhxua .k28-carousel-arrow:hover{background:#763e42}
#anhxua .k28-carousel-count{position:absolute;bottom:14px;right:15px;background:#170c12ba;color:#fff;padding:5px 13px;border-radius:999px;font-size:12px;font-weight:700;pointer-events:none;letter-spacing:.08em}
#anhxua .k28-carousel-footer{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:21px 25px}
#anhxua .k28-carousel-category{font-size:11px;letter-spacing:.13em;text-transform:uppercase;font-weight:700;color:#926843}
#anhxua .k28-carousel-title{font:600 clamp(29px,4vw,46px)/1.08 "Cormorant Garamond",Georgia,serif;color:#683238;margin:3px 0}
#anhxua .k28-carousel-origin{font-size:12px;color:#806855;margin:4px 0}
#anhxua .k28-carousel-controls{display:flex;gap:8px;flex-shrink:0}
#anhxua .k28-carousel-controls button{background:#f7e8d1;color:#673338;border:1px solid #d1ae81;border-radius:9px;padding:10px 17px;min-height:46px;font-weight:700;cursor:pointer}
#anhxua .k28-carousel-controls button.next{background:#753a3d;color:#fff8ef;border-color:#753a3d}
#anhxua .k28-carousel-controls button:hover{filter:brightness(.94)}
#anhxua .k28-carousel-dots{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:6px;padding:4px 16px 12px}
#anhxua .k28-carousel-dot{border:1px solid #d9c3a0;color:#65403b;background:#faf0dd;border-radius:50%;width:36px;height:36px;font-size:12px;font-weight:700;cursor:pointer}
#anhxua .k28-carousel-dot.active{background:#76393e;color:white;border-color:#76393e;box-shadow:0 0 0 3px #e3cba8}
#anhxua .k28-carousel-dot:disabled{opacity:.3;cursor:not-allowed}
#anhxua .k28-carousel-help{text-align:center;font-size:12px;color:#91755e;padding:0 16px 16px;margin:0}
#anhxua .k28-carousel.is-empty .k28-carousel-stage{min-height:260px}
#anhxua .k28-carousel.is-empty .k28-carousel-image-button{cursor:default}
#anhxua .k28-carousel :is(button):focus-visible{outline:3px solid #d09d52;outline-offset:3px}
#anhxua .album-k28-categories{display:none}
@media(max-width:700px){
 #anhxua .k28-carousel{border-radius:14px}
 #anhxua .k28-carousel-stage{aspect-ratio:4/5;min-height:340px;max-height:min(72dvh,620px)}
 #anhxua .k28-carousel-arrow{width:42px;height:50px;font-size:19px}
 #anhxua .k28-carousel-arrow.prev{left:8px}
 #anhxua .k28-carousel-arrow.next{right:8px}
 #anhxua .k28-carousel-footer{align-items:stretch;flex-direction:column;padding:18px 16px 12px;gap:12px}
 #anhxua .k28-carousel-controls{display:grid;grid-template-columns:1fr 1fr}
 #anhxua .k28-carousel-controls button{width:100%}
 #anhxua .k28-carousel-dot{width:32px;height:32px}
}
