/* site chrome on Fine Arts: language switcher + menu (Palette C) */
.top .langsw{position:relative;margin-left:18px;font:400 11px Jost,system-ui,sans-serif;letter-spacing:.14em;color:var(--fg)}
.top .langsw summary{list-style:none;cursor:pointer;border:1px solid var(--line);padding:6px 10px;color:var(--acc-t)}
.top .langsw summary::-webkit-details-marker{display:none}
.top .langsw summary::after{content:" ▾";font-size:9px}
.top .langsw>div{position:absolute;right:0;top:calc(100% + 6px);min-width:160px;background:var(--bg2);border:1px solid var(--line);padding:8px 0;display:none;z-index:40}
.top .langsw[open]>div{display:flex;flex-direction:column}
.top .langsw a{padding:8px 14px;color:var(--mut);font:400 11px Jost,system-ui,sans-serif;letter-spacing:.1em}
.top .langsw a[aria-current]{color:var(--fg)}
.top .menubtn{display:none;position:relative;z-index:62;width:40px;height:40px;margin-left:8px;border:0;background:none;cursor:pointer;color:var(--fg);padding:0;flex:none}
.top .menubtn span{position:absolute;left:10px;right:10px;height:1px;background:currentColor;transition:transform .4s,top .4s}
.top .menubtn span:first-child{top:16px}.top .menubtn span:last-child{top:23px}
.top .menubtn[aria-expanded="true"] span:first-child{top:20px;transform:rotate(45deg)}
.top .menubtn[aria-expanded="true"] span:last-child{top:20px;transform:rotate(-45deg)}
@media(max-width:1440px){.top .menubtn{display:block}.top nav{display:none!important}.top .langsw{margin-left:auto}}
.mnav{position:fixed;inset:0;z-index:60;background:var(--bg);color:var(--fg);overflow-y:auto;opacity:0;transition:opacity .45s ease}
.mnav.on{opacity:1}
.mnav-in{min-height:100%;box-sizing:border-box;padding:calc(88px + env(safe-area-inset-top)) max(28px,env(safe-area-inset-right)) calc(40px + env(safe-area-inset-bottom)) max(28px,env(safe-area-inset-left));display:flex;flex-direction:column;gap:28px;max-width:720px}
.mnav-nav{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.mnav-nav a{font:300 clamp(24px,5vw,36px)/1.2 Corm,serif;padding:12px 0;border-bottom:1px solid var(--line);color:var(--fg)}
.mnav-nav a[aria-current="page"]{color:var(--acc-t)}
.mnav-lang{display:flex;flex-wrap:wrap;gap:6px 18px;padding-top:18px;border-top:1px solid var(--line);font:11px Jost,system-ui,sans-serif;letter-spacing:.14em;text-transform:uppercase}
.mnav-lang a{color:var(--mut);padding:6px 0}.mnav-lang a[aria-current]{color:var(--fg)}
html.mn-open,html.mn-open body{overflow:hidden!important}
html.mn-open .top{z-index:61;position:relative}
@media(prefers-reduced-motion:reduce){.mnav,.top .menubtn span{transition:none}}
@media(max-width:1100px){.top{flex-wrap:nowrap}.top .mark{flex:none}}
@media(max-width:520px){.top .grp{display:none}.top .langsw{margin-left:auto}}
.mnav-nav a.mnav-grp{font:400 12px/1.4 Jost,system-ui,sans-serif;letter-spacing:.2em;text-transform:uppercase;color:var(--mut);padding:18px 0}
.pg-head h1,.room h2,h1,h2,h3{overflow-wrap:break-word;hyphens:auto}
.cells>*,.cell{min-width:0}.cells figcaption{flex-wrap:wrap;gap:4px 12px}
figcaption{flex-wrap:wrap;gap:2px 10px;min-width:0}figcaption span{overflow-wrap:anywhere}
/* ===== v3 Fine Arts ===== */
.hero .step{display:inline-block;margin-top:26px;font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--acc-t);border-bottom:1px solid var(--line);padding-bottom:6px}
/* The Museum: dark image-led panel */
.museum{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:0;background:#0d0d0c;border-top:1px solid var(--line);border-bottom:1px solid var(--line);min-height:88vh}
.museum .m-img{margin:0;position:relative;overflow:hidden;background:#0a0a09}.museum .m-img img{width:100%;height:100%;object-fit:cover;opacity:.9}
.museum .m-img:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 55%,#0d0d0c)}
.museum .m-txt{padding:clamp(56px,8vw,130px) clamp(26px,6vw,110px);align-self:center;max-width:720px}
.museum h2{font-size:clamp(34px,4vw,58px);line-height:1.08;margin:18px 0 34px}
.museum p{color:var(--mut);line-height:1.8;margin:0 0 20px;font-size:16px}
.museum blockquote{font-size:clamp(20px,1.9vw,26px);line-height:1.5;color:var(--fg);border-left:1px solid var(--acc);padding-left:24px;margin:34px 0}
.museum .tl{display:inline-block;margin-top:16px;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--acc-t)}
@media(max-width:860px){.museum{grid-template-columns:1fr;min-height:0}.museum .m-img{aspect-ratio:4/3}.museum .m-img:after{background:linear-gradient(180deg,transparent 60%,#0d0d0c)}}
.exp,.cont{text-align:center;padding:clamp(90px,12vw,170px) 24px;max-width:980px;margin:0 auto}
.exp h2,.cont h2{font-size:clamp(34px,5vw,72px);line-height:1.08;margin:18px 0 26px}.big2{font:300 clamp(20px,2vw,28px)/1.4 Corm,WKTC,Georgia,serif;color:var(--fg)}
.exp .narrow{margin:0 auto;color:var(--mut)}
.galleries .three{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--mut);margin:-6px 0 40px}
.room .ex{display:inline-block;margin-top:12px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--acc-t);transition:transform .8s cubic-bezier(.2,.7,.2,1)}.room:hover .ex{transform:translateX(6px)}
.cont .cl{display:flex;gap:16px 40px;justify-content:center;flex-wrap:wrap;font-size:12px;letter-spacing:.2em;text-transform:uppercase}.cont .cl a{color:var(--acc-t);border-bottom:1px solid var(--line);padding-bottom:6px}
/* about / founder / queen / channel long text */
.aboutfa,.channel{max-width:1100px;margin:0 auto;padding:clamp(120px,14vw,180px) 24px 60px}.aboutfa h1,.channel h1{font-size:clamp(40px,6vw,86px);line-height:1.02;margin:16px 0 44px}
.cols2{columns:2 340px;column-gap:56px}.cols2 p,.narrow p,.qbody p{color:var(--mut);line-height:1.85;margin:0 0 20px;break-inside:avoid}
.aboutfa .btn,.channel .btn{margin-top:26px}
.founder{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,6fr);gap:clamp(30px,6vw,100px);align-items:center;max-width:1200px;margin:0 auto;padding:60px 24px 120px;text-align:left}
.founder figure{margin:0}.founder .ftxt .big{max-width:none;text-wrap:balance;margin:18px 0 34px}
.founder .narrow{max-width:620px}
@media(max-width:860px){.founder{grid-template-columns:1fr}}
.qbody{max-width:860px;margin:0 auto;padding:40px 24px 100px}.qbody .qcol p:first-child{font:300 clamp(20px,2vw,26px)/1.55 Corm,WKTC,Georgia,serif;color:var(--fg)}
.qsec{padding-top:70px;margin-top:70px;border-top:1px solid var(--line)}.qsec h3{font-size:clamp(24px,2.6vw,34px);margin:14px 0 18px}.qsec ul{color:var(--mut);line-height:1.85;padding-left:18px}.qsec li{margin-bottom:12px}
.channel .narrow{max-width:700px}.channel .big2{margin:34px 0 10px}
/* understated enquiries */
.foot.quiet{padding:90px clamp(22px,5vw,80px) 50px;border-top:1px solid var(--line)}
.foot.quiet .fcols{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:30px;margin:26px 0 46px;font-size:13px;line-height:1.8;color:var(--mut)}
.foot.quiet .k{display:block;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--acc-t);margin-bottom:8px}
.foot.quiet a:hover{color:var(--fg)}.foot.quiet .qr{display:block;width:88px;height:88px;margin:4px 0 6px;filter:grayscale(1) contrast(1.05);border:1px solid var(--line)}
.foot.quiet .enq{display:flex;flex-wrap:wrap;gap:14px 34px;font-size:11px;letter-spacing:.22em;text-transform:uppercase}
.foot.quiet .enq-l{color:var(--fg);border:1px solid var(--line);padding:14px 22px;transition:border-color .5s,color .5s}.foot.quiet .enq-l:hover{border-color:var(--acc);color:var(--acc-t)}
.foot.quiet .enq a:not(.enq-l){padding:14px 0;color:var(--mut)}
.foot.quiet .indep{margin-top:60px;font-size:10px;letter-spacing:.24em;text-transform:uppercase;color:var(--mut);opacity:.7}
@media(max-width:860px){.foot.quiet .fcols{grid-template-columns:1fr 1fr}}
/* Traditional Chinese: slightly smaller */
html[lang="zh-Hant"] body{font-size:15px}
html[lang="zh-Hant"] .big{font-size:clamp(24px,3.3vw,46px);line-height:1.35;max-width:none}
html[lang="zh-Hant"] h1{font-size:clamp(32px,5vw,70px)}html[lang="zh-Hant"] .exp h2,html[lang="zh-Hant"] .cont h2{font-size:clamp(28px,4vw,56px);line-height:1.3}
html[lang="zh-Hant"] .museum h2{font-size:clamp(28px,3.2vw,46px)}html[lang="zh-Hant"] .museum p,html[lang="zh-Hant"] .cols2 p,html[lang="zh-Hant"] .qbody p,html[lang="zh-Hant"] .narrow p{font-size:15px}
html[lang="zh-Hant"] .founder .big{font-size:clamp(22px,2.6vw,38px)}
@media(max-width:600px){html[lang="zh-Hant"] .founder .big{font-size:clamp(20px,6.2vw,26px)}}
/* slower, museum-like motion */
@media(prefers-reduced-motion:no-preference){.js .r{transition-duration:1.4s!important}.js .rv img{transition-duration:2s!important}}
/* drift wall (ref: React Bits Drift Wall, MIT — vanilla CSS rebuild) */
.drift{padding:90px 0 70px;overflow:hidden;background:#0d0d0c}.drift .sec{padding:0 clamp(22px,5vw,80px);margin-bottom:34px}
.dw-row{overflow:hidden;margin-bottom:18px}.dw-track{display:flex;width:max-content}.dw-dup{display:flex}.dw-i{margin-right:18px}
.dw-i{flex:0 0 auto;width:clamp(150px,16vw,240px);aspect-ratio:4/5;background:#151513;overflow:hidden;display:block}
.dw-i img{width:100%;height:100%;object-fit:cover;opacity:.82;filter:saturate(.85);transition:opacity 1.2s,transform 1.6s cubic-bezier(.2,.7,.2,1)}
.dw-i:hover img,.dw-i:focus-visible img{opacity:1;transform:scale(1.04)}
@media(prefers-reduced-motion:no-preference){.dw-l .dw-track{animation:dwl 140s linear infinite}.dw-r .dw-track{animation:dwr 160s linear infinite}
 .drift:hover .dw-track,.drift:focus-within .dw-track{animation-play-state:paused}}
@keyframes dwl{to{transform:translateX(-50%)}}@keyframes dwr{from{transform:translateX(-50%)}to{transform:none}}
@media(prefers-reduced-motion:reduce){.dw-track{width:auto;flex-wrap:wrap;padding:0 22px}.dw-dup{display:none}}
/* v4 queen photos restored from live */
.qbody .qimg{margin:36px 0;overflow:hidden}.qbody .qimg img{width:100%;height:auto;display:block}
.qbody .qpair{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin:36px 0}.qbody .qpair .qimg{margin:0}
.qbody .designer .qpair{grid-template-columns:1fr 1fr}
.wall.more{padding-top:0}
.aboutfa .afig{margin:0 0 40px;overflow:hidden}.aboutfa .afig img{width:100%;height:auto;max-height:70vh;object-fit:cover;display:block}
.top .mark .est{font:500 9px/1 Inter,"Noto Sans TC",sans-serif;letter-spacing:.28em;color:var(--acc,#b08d57);margin-left:10px;padding-left:10px;border-left:1px solid currentColor;opacity:.85;font-style:normal;vertical-align:middle}
@media(max-width:700px){.top .mark{position:relative}.top .mark .est{position:absolute;left:1px;top:100%;margin:3px 0 0;padding:0;border:0;font-size:8px;letter-spacing:.2em;white-space:nowrap}}

/* v7: collection lightbox */
main .wall img,main .mw img{cursor:zoom-in}
html.falb-lock,html.falb-lock body{overflow:hidden}
.falb{position:fixed;inset:0;z-index:9999;display:flex;align-items:center;justify-content:center;background:color-mix(in srgb,var(--bg,#14110e) 94%,transparent);opacity:0;transition:opacity .45s cubic-bezier(.22,.61,.36,1);cursor:zoom-out;-webkit-tap-highlight-color:transparent;overscroll-behavior:contain;touch-action:none}
.falb[hidden]{display:none}
.falb.on{opacity:1}
.falb-f{margin:0;padding:0;line-height:0}
.falb-f img{display:block;max-width:calc(100vw - 160px);max-height:calc(100vh - 96px);max-height:calc(100dvh - 96px);width:auto;height:auto;object-fit:contain;cursor:default;transform:scale(.97);transition:transform .55s cubic-bezier(.22,.61,.36,1);box-shadow:0 30px 80px rgba(0,0,0,.45)}
.falb.on .falb-f img{transform:none}
.falb button{position:absolute;background:none;border:0;color:var(--fg,#e9e1d3);opacity:.55;cursor:pointer;font:300 30px/1 Corm,Georgia,serif;padding:14px;transition:opacity .3s}
.falb button:hover,.falb button:focus-visible{opacity:1;outline:none}
.falb button:focus-visible{box-shadow:0 0 0 1px var(--acc,#b08d57)}
.falb-x{top:14px;right:18px;font-size:34px}
.falb-p{left:14px;top:50%;transform:translateY(-50%);font-size:44px}
.falb-n{right:14px;top:50%;transform:translateY(-50%);font-size:44px}
.falb-one .falb-p,.falb-one .falb-n{display:none}
.falb-rm,.falb-rm .falb-f img{transition:none!important;transform:none!important}
@media (prefers-reduced-motion:reduce){.falb,.falb-f img{transition:none!important;transform:none!important}}
@media (max-width:700px){.falb-f img{max-width:calc(100vw - 24px);max-height:calc(100dvh - 120px);box-shadow:none}.falb-p,.falb-n{top:auto;bottom:10px;transform:none}.falb-x{top:8px;right:8px}}
