*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:#fff;color:#111;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-tap-highlight-color:transparent}
a{color:inherit;text-decoration:none}
.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:12px;height:64px;padding:0 16px;background:rgba(255,255,255,.94);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.brand{font-weight:700;font-size:18px;color:#e60023;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.back{display:inline-flex;align-items:center;gap:6px;height:44px;padding:0 16px 0 10px;border-radius:22px;background:#efefef;font-weight:600;font-size:15px;flex-shrink:0}
.back:hover{background:#e2e2e2}
.project .brand{margin-left:auto}
.top.center{justify-content:center;height:auto;min-height:72px;padding:12px 16px}
.logo{display:block;height:56px;width:auto;max-width:70vw;object-fit:contain}
.project .top{position:sticky;justify-content:space-between}
.project .logo{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);height:40px;max-width:52vw}
.homemain{padding-top:12px}
.top.center{flex-direction:column;gap:10px;position:relative}
.lang{position:absolute;right:12px;top:12px;display:flex;gap:2px;font-size:13px;font-weight:700;z-index:2}
.lang a{padding:6px 8px;border-radius:14px;color:#5f5f5f}
.lang a:hover{background:#efefef}
.lang a.on{color:#111;cursor:default}
.project .lang{top:50%;transform:translateY(-50%)}
.cats{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;width:100%;max-width:1228px;padding:2px 0 4px}
.cats::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;padding:9px 16px;border-radius:20px;background:#efefef;color:#111;font-weight:600;font-size:15px;white-space:nowrap}
.chip:hover{background:#e2e2e2}
.chip.on{background:#111;color:#fff}
.empty{text-align:center;color:#5f5f5f;padding:40px 16px}
@media(max-width:599px){.cats{gap:6px}.chip{padding:8px 13px;font-size:14px}}
main{max-width:1260px;margin:0 auto;padding:0 16px 48px}
.intro{text-align:center;padding:20px 8px 28px}
.intro h1{margin:0 0 6px;font-size:clamp(24px,5vw,36px);font-weight:700;letter-spacing:-.5px}
.count{margin:0;color:#5f5f5f;font-size:15px}
.desc{max-width:680px;margin:14px auto 0;color:#333;line-height:1.55;font-size:16px}
/* grid: CSS-columns fallback, JS builds Pinterest-style columns */
.grid{column-count:2;column-gap:3px}
@media(min-width:900px){.grid{column-count:3}}
.grid.js{display:flex;gap:3px;align-items:flex-start;column-count:auto}
.col{flex:1 1 0;min-width:0;display:flex;flex-direction:column;gap:3px}
.grid:not(.js) .pin{margin-bottom:3px}
.pin{display:block;position:relative;break-inside:avoid;cursor:zoom-in}
.pin img{display:block;width:100%;height:auto}
.ph{display:block;position:relative;overflow:hidden;background:#efefef}
.ph::after{content:"";position:absolute;inset:0;background:rgba(0,0,0,0);transition:background .15s;pointer-events:none}
.pin:hover .ph::after{background:rgba(0,0,0,.18)}
.card{cursor:pointer}
.cap{display:block;padding:8px 6px 4px}
.cap b{display:block;font-size:15px;font-weight:600;line-height:1.3}
.cap small{display:block;color:#5f5f5f;font-size:13px;margin-top:2px}
@media(max-width:599px){main{padding:0 10px 40px}.back span{display:none}.back{padding:0 11px 0 10px}}
/* lightbox */
.lb{position:fixed;inset:0;z-index:100;background:#000;display:none;touch-action:none;user-select:none;-webkit-user-select:none}
.lb.open{display:block}
.lb .track{position:absolute;inset:0;display:flex;will-change:transform}
.lb .slide{flex:0 0 100%;display:flex;align-items:center;justify-content:center;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}
.lb .slide img{max-width:100%;max-height:100%;object-fit:contain}
.lb button{position:absolute;border:0;background:rgba(255,255,255,.14);color:#fff;width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:2}
.lb button:hover{background:rgba(255,255,255,.28)}
.lb .x{top:calc(12px + env(safe-area-inset-top));right:12px}
.lb .prev{left:12px;top:50%;margin-top:-24px}
.lb .next{right:12px;top:50%;margin-top:-24px}
.lb .n{position:absolute;top:calc(24px + env(safe-area-inset-top));left:0;right:0;text-align:center;color:#fff;font-size:14px;opacity:.85;pointer-events:none}
@media(hover:none){.lb .prev,.lb .next{display:none}}
body.noscroll{overflow:hidden}
.alt .ph{aspect-ratio:3/4}
.alt .o-h .ph{aspect-ratio:4/3}
.alt .ph img{width:100%;height:100%;object-fit:cover}