#nw{--cream:#F4EDE1;--cream2:#EBE1CF;--ink:#3A2E24;--ink2:#6B5A49;--gold:#A8864D;--gold2:#CDB385;--night:#2B231C;
  font-family:'Cormorant Garamond',Georgia,serif;font-size:19px;line-height:1.6;color:var(--ink);background:var(--cream);
  background-image:radial-gradient(rgba(168,134,77,.07) 1px,transparent 1px);background-size:4px 4px;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100vh}
#nw *,#nw *::before,#nw *::after{box-sizing:border-box}
#nw h1,#nw h2,#nw h3,#nw p{margin:0}
#nw a{color:inherit}
#nw .script{font-family:'Pinyon Script',cursive;font-weight:400;line-height:1.1}
#nw .h2{font-size:2.3rem;font-weight:500;letter-spacing:.02em;line-height:1.15}
#nw .wrap{max-width:580px;margin:0 auto;padding:0 26px;position:relative}
#nw section{padding:96px 0;text-align:center;position:relative}
#nw .alt{background-color:var(--cream2)}
#nw .dark{background:var(--night);color:var(--cream)}
#nw .soft{color:var(--ink2)}
#nw .dark .soft{color:var(--gold2)}
#nw .sm{font-size:16px}
#nw .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:inherit;font-size:17px;font-weight:600;letter-spacing:.04em;
  padding:11px 28px;border:1px solid var(--gold);background:transparent;color:var(--ink);cursor:pointer;text-decoration:none;transition:background .25s,color .25s}
#nw .btn:hover{background:var(--gold);color:var(--cream)}
#nw .btn.fill{background:var(--ink);border-color:var(--ink);color:var(--cream)}
#nw .btn.fill:hover{background:var(--gold);border-color:var(--gold)}
#nw :focus-visible{outline:2px solid var(--gold);outline-offset:3px}

/* ---------- ornamen ---------- */
#nw .orn{display:block;width:190px;height:24px;margin:22px auto;color:var(--gold)}
#nw .sprig{position:absolute;width:118px;height:60px;color:var(--gold);pointer-events:none}
#nw .lace{position:absolute;left:0;right:0;top:-1px;height:14px;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='14'%3E%3Cpath d='M0 0 Q14 16 28 0' fill='%23F4EDE1' stroke='%23A8864D' stroke-width='1'/%3E%3Ccircle cx='14' cy='4' r='1.3' fill='%23A8864D'/%3E%3C/svg%3E") repeat-x}
#nw .dark .lace{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='14'%3E%3Cpath d='M0 0 Q14 16 28 0' fill='%23EBE1CF' stroke='%23CDB385' stroke-width='1'/%3E%3Ccircle cx='14' cy='4' r='1.3' fill='%23CDB385'/%3E%3C/svg%3E") repeat-x}
#nw .sec-sprig{width:92px;height:48px;position:static;display:block;margin:0 auto 10px;transform:rotate(-8deg)}

/* ---------- animasi scroll ---------- */
#nw .rv{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
#nw .rv-zoom{opacity:0;transform:scale(.93);transition:opacity 1s ease,transform 1.2s cubic-bezier(.2,.7,.2,1);transition-delay:var(--d,0s)}
#nw .rv-arch .arch-in{clip-path:inset(100% 0 0 0 round 999px 999px 0 0);transition:clip-path 1.4s cubic-bezier(.6,0,.2,1);transition-delay:var(--d,0s)}
#nw .rv-draw{stroke-dasharray:260;stroke-dashoffset:260;transition:stroke-dashoffset 2s ease;transition-delay:var(--d,0s)}
#nw .rv.in,#nw .rv-zoom.in{opacity:1;transform:none}
#nw .rv-arch.in .arch-in{clip-path:inset(0 0 0 0 round 999px 999px 0 0)}
#nw .rv-draw.in{stroke-dashoffset:0}
#nw .sprig.r.rv-draw,#nw .sprig.r{transform:scaleX(-1)}

/* arch frame */
#nw .arch{position:relative;padding:7px;border:1px solid var(--gold);border-radius:999px 999px 4px 4px;margin:0 auto}
#nw .arch-in{border-radius:999px 999px 2px 2px;overflow:hidden;aspect-ratio:3/4;background:#DCCBAC;position:relative}
#nw .arch-in img{width:100%;height:100%;object-fit:cover;display:block}
#nw .archbox{position:relative;display:inline-block}
#nw .archbox .sprig.l{left:-66px;bottom:-4px}
#nw .archbox .sprig.r{right:-66px;bottom:-4px}

/* cover – full photo background */
#nw .cover-bg{position:absolute;inset:0;overflow:hidden;display:none}
#nw .cover-bg img{width:100%;height:100%;object-fit:cover;display:block;animation:nwKen 18s ease-out both}
#nw .cover-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(to bottom,rgba(244,237,225,.55) 0%,rgba(244,237,225,0) 20%,rgba(244,237,225,0) 40%,rgba(244,237,225,.82) 62%,#F4EDE1 80%)}
@keyframes nwKen{from{transform:scale(1.12)}to{transform:scale(1)}}
#nw .cover.bg{padding:0}
#nw .cover.bg .cover-bg{display:block}
#nw .cover.bg .frame{max-width:none;border:0;outline:0;justify-content:flex-end;padding:36px 28px calc(56px + env(safe-area-inset-bottom,0px))}
#nw .cover.bg .frame::before{content:"";position:absolute;inset:14px;border:1px solid var(--gold);outline:1px solid var(--gold);outline-offset:-7px;pointer-events:none}
#nw .cover.bg .corner.tl,#nw .cover.bg .corner.tr{top:24px}#nw .cover.bg .corner.bl,#nw .cover.bg .corner.br{bottom:24px}
#nw .cover.bg .corner.tl,#nw .cover.bg .corner.bl{left:24px}#nw .cover.bg .corner.tr,#nw .cover.bg .corner.br{right:24px}
#nw .cover.bg .archbox{display:none}
#nw .cover.bg .kicker{margin-top:0}
@media (min-width:900px){#nw .cover.bg .frame{padding-bottom:72px}}

/* cover */
#nw .cover{position:fixed;inset:0;z-index:99999;background:var(--cream);background-image:inherit;display:flex;align-items:center;justify-content:center;
  padding:18px 18px calc(18px + env(safe-area-inset-bottom,0px));transition:transform 1.2s cubic-bezier(.7,0,.2,1),opacity 1.2s}
#nw .cover.open{transform:translateY(-100%)}
#nw .frame{position:relative;width:100%;height:100%;max-width:560px;border:1px solid var(--gold);outline:1px solid var(--gold);outline-offset:-7px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:36px 28px;overflow:auto}
#nw .corner{position:absolute;width:64px;height:64px;color:var(--gold)}
#nw .corner.tl{top:10px;left:10px}#nw .corner.tr{top:10px;right:10px;transform:scaleX(-1)}
#nw .corner.bl{bottom:10px;left:10px;transform:scaleY(-1)}#nw .corner.br{bottom:10px;right:10px;transform:scale(-1)}
#nw .cover .arch{width:min(44vw,180px)}
#nw .cover .archbox .sprig{width:96px;height:50px}
#nw .cover .archbox .sprig.l{left:-52px}#nw .cover .archbox .sprig.r{right:-52px}
#nw .cover .kicker{margin-top:22px;letter-spacing:.14em;font-size:15px;color:var(--ink2)}
#nw .cover .names{font-size:clamp(2.9rem,12vw,4.2rem);margin:4px 0}
#nw .cover .to{margin-top:18px;padding-top:16px;border-top:1px solid rgba(168,134,77,.4);min-width:220px}
#nw .cover .guest{font-size:1.65rem;font-weight:600;margin:2px 0;word-break:break-word}
#nw .cover .btn{margin-top:20px}
#nw .cover-in > *{animation:nwUp 1s both cubic-bezier(.2,.7,.2,1)}
#nw .cover-in > .corner{animation:nwFade 1.2s both}
@keyframes nwFade{from{opacity:0}to{opacity:1}}
#nw .cover-in > *:nth-child(6){animation-delay:.1s}#nw .cover-in > *:nth-child(7){animation-delay:.25s}
#nw .cover-in > *:nth-child(8){animation-delay:.4s}#nw .cover-in > *:nth-child(9){animation-delay:.5s}
#nw .cover-in > *:nth-child(10){animation-delay:.65s}#nw .cover-in > *:nth-child(11){animation-delay:.8s}
@keyframes nwUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

/* hero */
#nw .hero{min-height:100svh;display:flex;align-items:center;padding:80px 0}
#nw .bism{font-size:1.9rem;color:var(--gold);font-family:'Amiri','Scheherazade New','Times New Roman',serif;direction:rtl}
#nw .hero .archbox{margin-top:26px}
#nw .hero .arch{width:min(76vw,340px)}
#nw .hero .archbox .sprig{width:100px;height:51px}
#nw .hero .archbox .sprig.l{left:-42px}#nw .hero .archbox .sprig.r{right:-42px}
#nw .hero .names{font-size:clamp(3.4rem,15vw,5.4rem);margin-top:22px}
#nw .date-line{font-size:1.25rem;font-weight:600;letter-spacing:.08em;margin-top:6px}
#nw .count{display:flex;justify-content:center;gap:8px;margin:30px 0 26px}
#nw .count div{width:72px;padding:10px 4px;border:1px solid rgba(168,134,77,.5);border-radius:40px 40px 4px 4px}
#nw .count b{display:block;font-size:1.9rem;font-weight:500;line-height:1.1}
#nw .count small{font-size:14px;color:var(--ink2)}

/* couple */
#nw .couple{display:grid;grid-template-columns:1fr;gap:26px;margin-top:40px;align-items:start}
#nw .person .arch{width:min(72vw,280px)}
#nw .person h3{font-family:'Pinyon Script',cursive;font-weight:400;font-size:2.7rem;margin-top:18px;line-height:1.1}
#nw .person .full{font-weight:600;letter-spacing:.06em;margin-top:2px}
#nw .person p.par{font-size:17px;color:var(--ink2);margin-top:6px}
#nw .person a{font-size:16px;display:inline-block;margin-top:6px;color:var(--gold)}
#nw .and{font-family:'Pinyon Script',cursive;font-size:3.2rem;color:var(--gold);line-height:1}
@media (min-width:720px){#nw .couple{grid-template-columns:1fr auto 1fr}#nw .and{align-self:center;margin-top:-80px}}

/* events */
#nw .events{display:grid;gap:18px;margin-top:36px}
#nw .ev{position:relative;background:var(--cream);border:1px solid var(--gold);outline:1px solid rgba(168,134,77,.45);outline-offset:-7px;padding:40px 24px 34px;border-radius:120px 120px 4px 4px}
#nw .ev .sprig{position:static;display:block;margin:0 auto 4px;width:80px;height:40px}
#nw .ev h3{font-family:'Pinyon Script',cursive;font-weight:400;font-size:2.5rem;line-height:1.1}
#nw .ev .day{font-weight:600;letter-spacing:.08em;margin-top:10px}
#nw .ev .time{font-size:1.5rem;font-weight:500;margin-top:4px}
#nw .venue{margin-top:40px}
#nw .venue .vn{font-size:1.5rem;font-weight:600}
#nw .venue .btn{margin-top:16px}
#nw .map{margin-top:28px;border:1px solid var(--gold);padding:6px}
#nw .map iframe{display:block;width:100%;height:300px;border:0;filter:sepia(.25)}

/* gallery */
#nw .gal{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-top:34px}
#nw .gal button{padding:6px;border:1px solid rgba(168,134,77,.55);background:var(--cream);cursor:zoom-in;aspect-ratio:3/4;overflow:hidden}
#nw .gal button:nth-child(5n+1){grid-column:span 2;aspect-ratio:16/10}
#nw .gal button:nth-child(5n+4){border-radius:999px 999px 2px 2px}
#nw .gal button:nth-child(5n+4) img{border-radius:999px 999px 0 0}
#nw .gal img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .8s ease}
#nw .gal button:hover img{transform:scale(1.04)}
#nw .lb{position:fixed;inset:0;z-index:99998;background:rgba(43,35,28,.96);display:none;align-items:center;justify-content:center;padding:56px 16px}
#nw .lb.on{display:flex}
#nw .lb img{max-width:100%;max-height:100%;border:1px solid var(--gold2);padding:5px}
#nw .lb button{position:absolute;background:none;border:1px solid var(--gold2);color:var(--cream);width:44px;height:44px;border-radius:50%;font:inherit;font-size:22px;cursor:pointer}
#nw .lb .x{top:calc(12px + env(safe-area-inset-top,0px));right:12px}
#nw .lb .pv{left:12px;top:50%;margin-top:-22px}#nw .lb .nx{right:12px;top:50%;margin-top:-22px}
#nw .lb .n{position:absolute;bottom:calc(16px + env(safe-area-inset-bottom,0px));left:0;right:0;text-align:center;color:var(--gold2);font-size:15px}

/* rsvp */
#nw form{text-align:left;margin-top:30px;display:grid;gap:16px}
#nw label{font-size:17px;font-weight:600;display:grid;gap:6px}
#nw input,#nw select,#nw textarea{font:inherit;font-size:17px;font-weight:400;color:var(--ink);background:#FBF8F2;border:1px solid rgba(168,134,77,.55);border-radius:2px;padding:10px 13px;width:100%}
#nw textarea{min-height:110px;resize:vertical}
#nw .row2{display:grid;grid-template-columns:1.4fr 1fr;gap:12px}
#nw .status{font-size:17px;min-height:1.4em;color:var(--ink2)}
#nw .wishes{margin-top:40px;text-align:left;max-height:480px;overflow:auto;border-top:1px solid var(--gold)}
#nw .wish{padding:16px 2px;border-bottom:1px solid rgba(168,134,77,.3)}
#nw .wish b{font-weight:600}
#nw .wish .tag{font-size:14px;margin-left:8px;color:var(--gold);font-style:italic}
#nw .wish p{margin-top:4px;white-space:pre-line;color:var(--ink2)}

/* gift */
#nw .acc{margin-top:20px;padding:26px;border:1px solid var(--gold);outline:1px solid rgba(168,134,77,.45);outline-offset:-7px;background:var(--cream)}
#nw .acc .bank{font-weight:600;letter-spacing:.14em}
#nw .acc .num{font-size:1.9rem;font-weight:500;letter-spacing:.06em;margin:4px 0 0}
#nw .acc .btn{margin-top:14px;padding:8px 20px;font-size:15px}

/* closing */
#nw .closing .names{font-size:clamp(3rem,13vw,4.6rem);color:var(--gold2);margin-top:12px}
#nw .closing .sprig{color:var(--gold2)}
#nw footer{background:var(--night);color:var(--gold2);padding:0 24px calc(30px + env(safe-area-inset-bottom,0px));text-align:center;font-size:14px;letter-spacing:.06em}

/* music */
#nw .music{position:fixed;right:18px;bottom:calc(18px + env(safe-area-inset-bottom,0px));z-index:9999;width:48px;height:48px;border-radius:50%;
  border:1px solid var(--gold);background:var(--cream);color:var(--gold);display:none;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 0 0 5px rgba(244,237,225,.7)}
#nw .music.on{display:flex}
#nw .music svg{width:22px;height:22px}
#nw .music .bars{display:none}
#nw .music.playing .bars{display:block}#nw .music.playing .off{display:none}
#nw .music .bars rect{animation:nwEq 1s ease-in-out infinite;transform-origin:center bottom}
#nw .music .bars rect:nth-child(2){animation-delay:-.3s}#nw .music .bars rect:nth-child(3){animation-delay:-.6s}
@keyframes nwEq{0%,100%{transform:scaleY(.35)}50%{transform:scaleY(1)}}

@media (prefers-reduced-motion:reduce){
  #nw .cover{transition:opacity .3s}#nw .cover.open{transform:none;opacity:0;pointer-events:none}
  #nw .rv,#nw .rv-zoom{opacity:1;transform:none;transition:none}
  #nw .rv-arch .arch-in{clip-path:none;transition:none}
  #nw .rv-draw{stroke-dashoffset:0;transition:none}
  #nw .cover-in > *,#nw .cover-in > .corner,#nw .music .bars rect,#nw .cover-bg img{animation:none}
}
@media (min-width:900px){#nw section{padding:124px 0}}

/* ---------- section photo backgrounds ---------- */
#nw .bgsec{background-color:var(--cream);isolation:isolate}
#nw .bgsec::before{content:"";position:absolute;inset:0;z-index:-2;background:var(--bg) center/cover no-repeat}
#nw .bgsec::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:radial-gradient(ellipse at center,rgba(244,237,225,var(--o1)) 0%,rgba(244,237,225,var(--o2)) 75%)}
#nw.has-bg{--o1:.8;--o2:.55}
#nw.has-bg.ov-light{--o1:.68;--o2:.35}
#nw.has-bg.ov-strong{--o1:.9;--o2:.72}
#nw .bgsec.hero::after{background:radial-gradient(ellipse at center,rgba(244,237,225,calc(var(--o1) - .05)) 0%,rgba(244,237,225,calc(var(--o2) - .1)) 70%)}
#nw .bgsec.dark::after{background:radial-gradient(ellipse at center,rgba(43,35,28,.9) 0%,rgba(43,35,28,.78) 80%)}
#nw .bgsec .lace{z-index:1}
#nw.has-bg .ev,#nw.has-bg .acc{background:rgba(244,237,225,.9)}
#nw.has-bg form input,#nw.has-bg form select,#nw.has-bg form textarea{background:rgba(251,248,242,.95)}
#nw.has-bg .wishes{background:rgba(244,237,225,.75);padding:0 14px}
@media (min-width:1024px){#nw .bgsec::before{background-attachment:fixed}}

/* ---------- masonry gallery: full width, no gaps, no borders ---------- */
#nw .gal{display:block!important;column-count:2;column-gap:0;line-height:0}
#nw .gal button{display:block!important;width:100%;margin:0;padding:0!important;border:0!important;border-radius:0!important;background:none!important;
  aspect-ratio:auto!important;grid-column:auto!important;break-inside:avoid;-webkit-column-break-inside:avoid;overflow:hidden;cursor:zoom-in}
#nw .gal img{display:block;width:100%;height:auto!important;aspect-ratio:auto!important;border-radius:0!important;-webkit-mask:none!important;mask:none!important}
#nw .gal button:hover img{transform:scale(1.04)}
@media (min-width:720px){#nw .gal{column-count:3}}
@media (min-width:1100px){#nw .gal{column-count:4}}
#nw .gal{width:100vw;margin:34px 0 0 calc(50% - 50vw)}
#nw #nwGalSec{padding-bottom:0}

/* ---------- dress code palette ---------- */
#nw .dpal{margin:26px auto 0;display:grid;gap:18px;max-width:440px}
#nw .dlabel{font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin-bottom:8px;opacity:.75}
#nw .dsw{display:grid;grid-template-columns:repeat(7,minmax(0,38px));justify-content:center;gap:7px}
#nw .sw{width:100%;height:auto;aspect-ratio:1;border-radius:50%;background:var(--c);border:0;padding:0;cursor:pointer;position:relative;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 0 0 3px transparent;transition:transform .25s ease,box-shadow .25s ease}
#nw .sw:hover,#nw .sw.on{transform:translateY(-3px) scale(1.08)}
#nw .dpick{margin-top:18px;min-height:1.6em;font-size:16px;display:flex;align-items:center;justify-content:center;gap:8px}
#nw .dpick .dot{width:14px;height:14px;border-radius:50%;box-shadow:inset 0 0 0 1px rgba(0,0,0,.12)}
#nw .dpick small{opacity:.6;letter-spacing:.06em}
@media (max-width:380px){#nw .dsw{gap:5px}}
#nw .dsub{font-size:2.4rem;color:var(--gold);margin-top:2px}
#nw .dlabel{color:var(--ink2)}
#nw .sw.on{box-shadow:inset 0 0 0 1px rgba(0,0,0,.08),0 0 0 3px var(--cream),0 0 0 4px var(--gold)}
#nw .dpick{color:var(--ink)}
#nw.has-bg .dpal{background:rgba(244,237,225,.7);padding:18px 12px;border:1px solid rgba(168,134,77,.35)}
#nw .ev .room{margin-top:8px;font-size:1.05rem;font-style:italic;color:var(--ink2)}
#nw .ev .room::before{content:"";display:block;width:36px;height:1px;background:var(--gold);margin:0 auto 8px;opacity:.7}

/* ================= readability (Vintage Cream) ================= */
#nw{font-size:20px;font-weight:500;--ink:#2E2219;--ink2:#4F3F33;--gold:#9A7840}
#nw .sm{font-size:17px}
#nw .h2{font-weight:600}
#nw .cover .kicker{font-size:16px;font-weight:600;color:var(--ink2)}
#nw .cover .guest{font-weight:700}
#nw .date-line,#nw .ev .day,#nw .acc .bank,#nw .person .full{font-weight:700}
#nw .count small{font-size:15px;font-weight:600;color:var(--ink2)}
#nw .person p.par{font-size:18px}
#nw label{font-size:18px;font-weight:700}
#nw input,#nw select,#nw textarea{font-size:18px;font-weight:500}
#nw .wish p{color:var(--ink)}
#nw .wish .tag,#nw .dlabel{color:#8C6D3A;font-weight:600}
#nw .ev .room{color:var(--ink2);font-weight:600}
#nw .dark{color:#FBF6EC}
#nw .dark .soft,#nw .closing .names{color:#EBD3A2}
#nw footer{color:#EBD3A2}
#nw.has-bg{--o1:.88;--o2:.68}
#nw.has-bg.ov-light{--o1:.8;--o2:.52}
#nw.has-bg.ov-strong{--o1:.94;--o2:.82}

/* RSVP note (adults-only) */
#nw .anote{margin:26px auto 0;padding:6px 18px 20px;max-width:460px;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold);background:rgba(244,237,225,.75)}
#nw .anote .orn{margin:10px auto 8px;width:150px}
#nw .anote p{font-style:italic;font-size:1.15rem;line-height:1.55;white-space:pre-line;color:var(--ink)}

#nw .gnote{white-space:pre-line;max-width:470px;margin-left:auto;margin-right:auto}

/* venue areas per session */
#nw .vrooms{list-style:none;margin:18px auto 4px;padding:0;max-width:420px;display:grid;gap:10px}
#nw .vrooms li{display:grid;gap:1px;padding:12px 14px}
#nw .vrooms .vt{font-size:14px;letter-spacing:.08em}
#nw .vrooms .vr{font-size:1.25rem;line-height:1.3}
#nw .vrooms .vh{font-size:15px}
#nw .vrooms li{border:1px solid rgba(168,134,77,.55);background:rgba(244,237,225,.85)}
#nw .vrooms .vt{color:#8C6D3A;font-weight:700}
#nw .vrooms .vr{font-weight:700;color:var(--ink)}
#nw .vrooms .vh{color:var(--ink2)}

/* gift copy */
#nw .gintro{margin:22px auto 0;max-width:420px;font-style:italic}
#nw .acc .alabel{font-size:13px;letter-spacing:.14em;text-transform:uppercase;margin-top:10px}
#nw .acc .alabel:first-child{margin-top:0}
#nw .acc .aval{font-size:1.2rem;line-height:1.35}
#nw .acc .num{margin:0}
#nw .gsign{white-space:pre-line;margin-top:26px;line-height:1.5}
#nw .gintro{color:var(--ink);font-size:1.15rem}
#nw .acc .alabel{color:#8C6D3A;font-weight:700}
#nw .acc .aval{font-weight:700;color:var(--ink)}
#nw .gsign{font-family:'Pinyon Script',cursive;font-size:2rem;color:var(--ink)}

/* named palette (8 colours or fewer) */
#nw .dpal.named .dsw{display:flex;flex-wrap:wrap;justify-content:center;gap:16px 4px}
#nw .dpal.named .swi{width:66px;display:flex;flex-direction:column;align-items:center;gap:7px}
#nw .dpal.named .sw{width:50px;height:50px;aspect-ratio:auto}
#nw .dpal.named .swi span{font-size:13px;line-height:1.25;text-align:center}
#nw .dpal.named + .dpick{display:none}
#nw .dpal.named .swi span{color:var(--ink);font-weight:600}

/* balanced masonry (JS-built columns, equal bottoms) */
#nw .gal{display:flex!important;column-count:auto!important;align-items:flex-start}
#nw .gal .gcol{flex:1 1 0;min-width:0;display:flex;flex-direction:column}
#nw .gal button{flex:none}
#nw .gal img{height:100%!important;object-fit:cover}

/* RSVP deadline badge */
#nw .rsvpby{display:inline-block;margin:14px auto 0;padding:7px 20px;letter-spacing:.08em;border-top:1px solid var(--gold);border-bottom:1px solid var(--gold)}
#nw .rsvpby{font-size:1.2rem;font-weight:700;color:var(--ink)}
