/* LSK site styles. Brand colours are the variables just below. */
:root{--pink:#f03181;--blue:#0192D1;--lite:#fc70af;--ink:#1d2433;--mist:#eef8fd;--rose:#fff1f7;--link:#0a6a99;--r:18px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:76px;-webkit-text-size-adjust:100%}
body{margin:0;font:1.0625rem/1.65 'Nunito Sans','PingFang SC','Microsoft YaHei','Noto Sans SC',system-ui,sans-serif;color:var(--ink);background:#fff}
h1,h2,h3,.h3{font-family:Fraunces,'PingFang SC','Microsoft YaHei',serif;line-height:1.2;margin:0 0 .5em}
h2{font-size:clamp(1.7rem,4vw,2.5rem)}h3,.h3{font-size:1.35rem}
a{color:var(--link)}img{max-width:100%;height:auto}
.w{width:min(1120px,92%);margin-inline:auto}
section{padding:clamp(2.5rem,7vw,5rem) 0}.alt{background:var(--mist)}
.center{text-align:center}.mt{margin-top:3rem}.lead{max-width:46em;font-size:1.1rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.skip{position:absolute;left:-999px;top:0;z-index:100;background:#fff;padding:.7rem 1rem}.skip:focus{left:8px;top:8px}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--blue);outline-offset:3px}

/* ---- Menu ---- */
nav.main{position:sticky;top:0;z-index:50;background:#fffffff2;backdrop-filter:blur(8px);box-shadow:0 1px 0 #0001}
nav.main .w{display:flex;align-items:center;justify-content:space-between;gap:1rem;min-height:64px}
.brand{display:flex;align-items:center;gap:.6rem;min-height:48px;font:700 1.2rem Fraunces,serif;color:var(--pink);text-decoration:none}
.brand img{width:38px;height:38px;border-radius:50%;object-fit:cover}
#m{display:flex;align-items:center;gap:1rem;list-style:none;margin:0;padding:0}
#m a{display:inline-block;padding:.5rem .15rem;color:var(--ink);font-weight:700;text-decoration:none}
#m a:hover,#m a[aria-current]{color:var(--pink)}
.has-sub{position:relative}
.drop{display:none;position:absolute;top:100%;left:-1rem;min-width:230px;margin:0;padding:.5rem 1rem;list-style:none;background:#fff;border-radius:14px;box-shadow:0 8px 24px #0002}
.has-sub:hover>.drop,.has-sub:focus-within>.drop{display:block}
.lang{display:flex;flex-wrap:wrap;gap:0 .9rem}.lang a{display:inline-block!important;min-width:44px;font-size:.95rem;padding:.5rem .3rem!important;text-align:center}
#mb{display:none;width:46px;height:46px;border:0;border-radius:12px;background:var(--rose);color:var(--pink);font-size:1.6rem;cursor:pointer}
@media(max-width:1080px){
  #mb{display:grid;place-items:center}
  #m{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:.4rem 4% 1rem;background:#fff;box-shadow:0 14px 24px #0002;max-height:calc(100vh - 64px);overflow:auto}
  #m.on{display:flex}#m a{display:block;padding:.85rem .2rem}
  .drop{display:block;position:static;box-shadow:none;padding:0 0 0 1rem;min-width:0}
}

/* ---- Buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:.6em 1.5em;border:2px solid var(--pink);border-radius:99px;background:var(--pink);color:#fff;font-family:inherit;font-weight:700;font-size:1.17rem;line-height:1.2;text-align:center;text-decoration:none;cursor:pointer}
.btn:hover{filter:brightness(1.06)}
.btn.blue{background:var(--blue);border-color:var(--blue)}
.btn.lite{background:var(--lite);border-color:var(--lite);color:var(--ink)}
.btn.wa{background:#25D366;border-color:#25D366;color:#073b1d}
.btn.big{padding:.75em 2em;font-size:1.3rem}.btn.sm{min-height:44px;padding:.4em 1.2em}
.btns{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem}.btns.l{justify-content:flex-start}

/* ---- Hero & page banner ---- */
.hero{padding:clamp(2.5rem,9vw,6rem) 0;background-color:#1d2433;background-position:center;background-size:cover;color:#fff;text-align:center}
.hero-logo{height:clamp(110px,20vw,190px);width:auto}
.hero h1{font-size:clamp(2rem,6vw,3.8rem);max-width:16em;margin:.4em auto}
.hero .sub{max-width:40em;margin:0 auto 1.4rem;font-size:1.2rem}
.hero small{display:block;margin-top:1.2rem;opacity:.9}
.lead-in{margin:1.4rem 0 .7rem;font-weight:700;font-size:1.1rem}
.hero.slim{padding:clamp(2.2rem,6vw,4rem) 0;background-image:linear-gradient(135deg,#f03181,#0192D1)}
.hero.slim h1{font-size:clamp(1.8rem,5vw,3rem);margin:0 auto .3em}.hero.slim .sub{margin:0 auto}

/* ---- Cards & grids ---- */
.g{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));margin-top:1.5rem}
.g2{display:grid;gap:2rem;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr))}
.card{padding:1.5rem;border-radius:var(--r);background:var(--mist);border-top:5px solid var(--blue)}
.card:nth-child(even){background:var(--rose);border-color:var(--pink)}
.prose{max-width:780px}.prose h2{margin-top:2rem}.prose ol,.prose ul{padding-left:1.3rem}.prose li{margin:.4rem 0}
.vid{position:relative;aspect-ratio:16/9;border-radius:16px;overflow:hidden;background:#000;box-shadow:0 4px 18px #0002}
.vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

/* ---- Projects ---- */
.pgrid{display:grid;gap:1.2rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr));margin-top:1.5rem}
.pcard{display:flex;flex-direction:column;overflow:hidden;border-radius:var(--r);background:#fff;box-shadow:0 2px 14px #0001;border:1px solid #e6edf2}
.pcard.big{grid-column:span 2}.pcard.big .pc-img img{aspect-ratio:16/9}
.pc-img img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover}
.pc-body{display:flex;flex:1;flex-direction:column;align-items:flex-start;gap:.3rem;padding:1.1rem 1.2rem 1.3rem}.pc-body h3{margin:0}.pc-body h3 a{display:inline-flex;align-items:center;min-height:44px;color:var(--ink);text-decoration:none}.pc-body p{margin:.2rem 0 .6rem;flex:1}
.cover{border-radius:var(--r);width:100%}
.pphotos{display:grid;gap:.8rem;grid-template-columns:repeat(auto-fill,minmax(min(100%,200px),1fr))}.pphotos figure{margin:0}.pphotos img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:12px;cursor:zoom-in}.pphotos figcaption{font-size:.9rem}
@media(max-width:640px){.pcard.big{grid-column:auto}}

/* ---- Wall of Fame ---- */
.wall{background:linear-gradient(135deg,var(--rose),var(--mist))}
.tier{margin:2rem 0 .8rem;color:#c2185b;font-size:1.25rem}
.cl{display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem}
.d{padding:.5em 1.1em;border-radius:28px;background:#fff;box-shadow:0 2px 10px #0001;font-weight:700}.d i{display:block;font:italic 400 .9rem 'Nunito Sans',sans-serif;color:#566074}
.d.Champion{padding:1em 1.8em;border:3px solid var(--pink);border-radius:22px;color:#c2185b;font:700 clamp(1.3rem,3vw,1.9rem) Fraunces,'PingFang SC','Microsoft YaHei',serif}
.d.Patron{border:2px solid var(--blue);color:var(--link);font-size:1.2rem}
.d.has-img{border-radius:22px}.d img{display:block;margin:0 auto .5rem;width:60px;height:60px;object-fit:contain;border-radius:12px;background:#fff}.d.Champion img{width:110px;height:110px}

/* ---- Sliders (gallery + testimonies) ---- */
.slider{position:relative;margin-top:1.5rem}
.track{display:flex;gap:1rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:.4rem 0}.track::-webkit-scrollbar{display:none}
.slide{flex:0 0 min(80%,520px);scroll-snap-align:start;margin:0;position:relative;overflow:hidden;border-radius:20px;background:#000}
.slide img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;cursor:zoom-in;transition:transform .6s}.slide:hover img{transform:scale(1.04)}
.slide figcaption{position:absolute;inset:auto 0 0;padding:2rem 1rem .8rem;color:#fff;font-weight:700;background:linear-gradient(transparent,#000a)}
.tcard{flex:0 0 min(88%,430px);scroll-snap-align:start;margin:0;padding:1.6rem;border-left:6px solid var(--pink);border-radius:20px;background:#fff;box-shadow:0 2px 12px #0001}
.tcard p{margin:0 0 .8rem;font-family:Fraunces,'PingFang SC','Microsoft YaHei',serif;font-size:1.15rem}.tcard cite{color:var(--link);font-weight:700;font-style:normal}
.prev,.next{position:absolute;top:calc(50% - 1.2rem);width:46px;height:46px;border:0;border-radius:50%;background:#fffffff0;color:var(--pink);font-size:1.8rem;line-height:1;box-shadow:0 2px 10px #0003;cursor:pointer}.prev{left:.4rem}.next{right:.4rem}
.dots{display:flex;flex-wrap:wrap;justify-content:center;gap:.2rem;margin-top:.6rem}
.dots button{position:relative;width:24px;height:24px;padding:0;border:0;background:none;cursor:pointer}
.dots button::after{content:"";position:absolute;inset:7px;border-radius:50%;background:#0192D155;transition:all .2s}.dots button.on::after{background:var(--pink);inset:7px -2px;border-radius:9px}

/* ---- Forms, donate, contact ---- */
.fb{display:grid;gap:.7rem;max-width:560px;margin:2.5rem auto 0}.fb input,.fb textarea{width:100%;padding:.8rem;border:2px solid #c5d9e4;border-radius:12px;font:inherit}
.fb .hp{position:absolute;left:-9999px}.fb button{justify-self:start}
.ok{color:#0a6b35;font-weight:700}.note{font-size:.95rem;color:#a3124f}
.don{display:grid;gap:2rem;align-items:center;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}.don img{max-height:420px;width:auto;border-radius:14px}
.bank{padding:1.4rem;border-radius:16px;background:var(--mist)}.wanum{margin:.8rem 0 0;font-weight:700}

/* ---- Popup & lightbox ---- */
.pop{position:fixed;inset:0;z-index:99;display:grid;place-items:center;padding:1rem;background:#000a}.pop[hidden]{display:none}
.pop-box{position:relative;width:100%;max-width:440px;max-height:90vh;overflow:auto;border-radius:20px;background:#fff;text-align:center}
.pop-box img{display:block;width:100%}.pop-box>div{padding:1.4rem}
.pop-x{position:absolute;top:.5rem;right:.6rem;width:44px;height:44px;border:0;border-radius:50%;background:#fffffff0;font-size:1.6rem;cursor:pointer}
.lb{position:fixed;inset:0;z-index:98;display:grid;place-items:center;background:#000e;cursor:zoom-out}.lb img{max-width:94vw;max-height:90vh;border-radius:10px}

/* ---- Footer ---- */
.site-foot{padding:2.2rem 0;background:var(--ink);color:#fff;text-align:center}.site-foot a{display:inline-block;margin:0 .7rem;padding:.4rem 0;color:#fff}

/* ---- Chinese: use clean sans-serif headings ---- */
html[lang=zh-Hans] h1,html[lang=zh-Hans] h2,html[lang=zh-Hans] h3,html[lang=zh-Hans] .brand,html[lang=zh-Hans] .tcard p{font-family:'PingFang SC','Microsoft YaHei','Noto Sans SC',sans-serif;font-weight:700}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* ---- Wall of Fame: date and news link ---- */
.d time{display:block;margin-top:.15rem;font:400 .85rem 'Nunito Sans','PingFang SC','Microsoft YaHei',sans-serif;color:#566074}
.d a.news{display:inline-flex;align-items:center;min-height:44px;font:700 .9rem 'Nunito Sans','PingFang SC','Microsoft YaHei',sans-serif}
