/* HANOI POOLS — lorong lentera */
.hn-page { --color-primary:#b91c1c; --color-accent:#facc15; --color-bg:#fcf8f0; --hn-ink:#2a1e18; --hn-muted:#7d6f63;
  background:var(--color-bg); color:var(--hn-ink); font-family:'Be Vietnam Pro',system-ui,sans-serif; margin:-1.5rem -12px 0; padding-bottom:52px; }
.hn-col { width:100%; max-width:640px; margin:0 auto; padding:0 18px; }
.hn-breadcrumb { padding:14px 0 0; font-size:12px; color:var(--hn-muted); } .hn-breadcrumb a { color:var(--color-primary); }
.hn-hero { text-align:center; padding:30px 0 8px; }
.hn-kicker { margin:0 0 8px; font-size:11px; font-weight:700; letter-spacing:.28em; color:var(--color-primary); }
.hn-h1 { font-size:clamp(23px,5.6vw,34px); font-weight:700; line-height:1.16; margin:0 0 8px; }
.hn-date { margin:0; font-size:12.5px; color:var(--hn-muted); }
.hn-lanterns { position:relative; display:flex; flex-wrap:wrap; justify-content:center; gap:14px; padding:36px 0 6px; }
.hn-wire { position:absolute; left:0; right:0; top:8px; height:2px; background:var(--hn-ink); opacity:.5; }
.hn-lantern { position:relative; display:flex; flex-direction:column; align-items:center; opacity:0; transform:translateY(-8px);
  animation:hn-drop .5s ease forwards; transform-origin:top center; }
.hn-cord { width:2px; height:22px; background:var(--hn-ink); opacity:.6; }
.hn-body { display:flex; align-items:center; justify-content:center; width:clamp(56px,15vw,74px); height:clamp(72px,19vw,94px);
  background:linear-gradient(180deg,#d32626,var(--color-primary)); color:var(--color-accent); border-radius:6px;
  clip-path:polygon(18% 0,82% 0,100% 22%,100% 78%,82% 100%,18% 100%,0 78%,0 22%);
  font-size:clamp(28px,8vw,40px); font-weight:700; box-shadow:0 6px 14px rgba(185,28,28,.28); animation:hn-sway 4s ease-in-out infinite; }
.hn-lantern-empty .hn-body { background:#e6ded0; color:#b5a794; box-shadow:none; animation:none; }
@keyframes hn-drop { to{opacity:1;transform:translateY(0);} }
@keyframes hn-sway { 0%,100%{transform:rotate(-1.4deg);} 50%{transform:rotate(1.4deg);} }
.hn-meta { margin:22px 0 0; text-align:center; font-size:12px; color:var(--hn-muted); }
.hn-desc { margin:18px 0 0; font-size:14px; color:var(--hn-muted); text-align:center; }
.hn-section { margin-top:38px; }
.hn-h2 { font-size:clamp(18px,4.2vw,23px); font-weight:700; margin:0 0 14px; padding-bottom:8px; border-bottom:2px solid var(--color-primary); }
.hn-filter { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.hn-filter select { height:40px; padding:0 12px; border:1px solid #ddd0bc; border-radius:6px; background:#fff; font-family:inherit; font-size:13px; }
.hn-btn { display:inline-flex; align-items:center; height:40px; padding:0 16px; border:1px solid var(--color-primary); border-radius:6px;
  background:var(--color-primary); color:var(--color-accent); font-size:12px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; cursor:pointer; }
.hn-btn:hover { background:#991b1b; color:var(--color-accent); } .hn-btn-ghost { background:#fff; color:var(--color-primary); }
.hn-list { list-style:none; margin:0; padding:0; }
.hn-row { display:flex; align-items:center; gap:12px; padding:12px 2px; border-bottom:1px dashed #d9cbb6; }
.hn-row::after { content:''; flex:1 1 auto; order:2; border-bottom:1px dotted #cdbda5; margin:0 4px; height:1px; }
.hn-row-date { order:1; font-size:13px; font-weight:700; display:flex; flex-direction:column; }
.hn-row-date small { font-size:11px; font-weight:400; color:var(--hn-muted); }
.hn-row-num { order:3; font-size:20px; font-weight:700; letter-spacing:.16em; color:var(--color-primary); }
.hn-empty { border:1px dashed var(--color-primary); border-radius:6px; background:#fff; padding:38px 18px; text-align:center; }
.hn-empty-mark { display:inline-block; width:40px; height:52px; background:var(--color-primary); margin-bottom:14px;
  clip-path:polygon(18% 0,82% 0,100% 22%,100% 78%,82% 100%,18% 100%,0 78%,0 22%); }
.hn-empty h3 { font-size:17px; margin:0 0 6px; } .hn-empty p { margin:0; font-size:13px; color:var(--hn-muted); }
.hn-pagination { margin-top:14px; font-size:12.5px; color:var(--hn-muted); }
.hn-pagination .page-link { border-radius:6px; border:1px solid #ddd0bc; color:var(--hn-ink); font-weight:600; }
.hn-pagination .page-item.active .page-link { background:var(--color-primary); border-color:var(--color-primary); color:#fff; }
.hn-mini { display:grid; gap:12px; }
.hn-mini-lantern { background:#fff; border:1px solid #e2d5c0; border-radius:6px; padding:16px 14px; border-top:4px solid var(--color-primary); text-align:center; }
.hn-mini-label { display:block; font-size:10px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--hn-muted); }
.hn-mini-value { display:block; margin:6px 0 3px; font-size:18px; font-weight:700; color:var(--color-primary); }
.hn-mini-note { display:block; font-size:11.5px; color:var(--hn-muted); }
.hn-note { margin:18px 0 0; font-size:12.5px; color:var(--hn-muted); text-align:center; }
.hn-note a { color:var(--color-primary); font-weight:700; }
@media (min-width:576px) { .hn-mini { grid-template-columns:repeat(3,1fr); } }
@media (min-width:992px) { .hn-page { margin-left:-24px; margin-right:-24px; } }
@media (prefers-reduced-motion:reduce) { .hn-lantern { animation:none; opacity:1; transform:none; } .hn-body { animation:none; } }
