@font-face{font-family:Corm;src:url(/fine-arts/assets/fonts/cormorant-garamond-latin-300-normal.woff2) format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:Corm;src:url(/fine-arts/assets/fonts/cormorant-garamond-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
@font-face{font-family:Corm;src:url(/fine-arts/assets/fonts/cormorant-garamond-latin-300-italic.woff2) format("woff2");font-weight:300;font-style:italic;font-display:swap}
@font-face{font-family:Corm;src:url(/fine-arts/assets/fonts/cormorant-garamond-latin-400-italic.woff2) format("woff2");font-weight:400;font-style:italic;font-display:swap}
@font-face{font-family:Jost;src:url(/fine-arts/assets/fonts/jost-latin-300-normal.woff2) format("woff2");font-weight:300;font-display:swap}
@font-face{font-family:Jost;src:url(/fine-arts/assets/fonts/jost-latin-400-normal.woff2) format("woff2");font-weight:400;font-display:swap}
*{box-sizing:border-box;margin:0}
html{background:var(--bg);color:var(--fg);scroll-behavior:smooth}
body{font:300 17px/1.7 Jost,system-ui,sans-serif;letter-spacing:.01em;-webkit-font-smoothing:antialiased}
img{display:block;width:100%;height:100%;object-fit:cover}
a{color:inherit;text-decoration:none}
:focus-visible{outline:1px solid var(--acc);outline-offset:4px}
.skip{position:absolute;left:-999px}.skip:focus{left:16px;top:16px;z-index:99;background:var(--fg);color:var(--bg);padding:8px 12px}
h1,h2,h3,blockquote,.mark,.mail,.big-mark{font-family:Corm,Georgia,serif;font-weight:300;letter-spacing:-.01em}
i,em{font-style:italic}
.sec,.eyebrow,.rn,.label .no,.col,.cells figcaption,.top nav,.grp,.scroll,.cats,figcaption{font:400 11px/1.4 Jost,sans-serif;letter-spacing:.24em;text-transform:uppercase}
.sec{color:var(--acc);margin-bottom:40px}
.mut{color:var(--mut)}
section{padding:160px 6vw}
.top{position:fixed;inset:0 0 auto;z-index:20;display:flex;align-items:center;gap:40px;padding:22px 6vw;transition:background .8s,padding .8s}
.top.solid{background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(10px);padding:14px 6vw}
.mark{font-size:24px;margin-right:auto}.mark i{color:var(--acc)}
.top nav{display:flex;gap:32px;color:var(--mut)}.top nav a:hover,.grp:hover{color:var(--fg)}
.grp{color:var(--mut)}
.hero{position:relative;height:100vh;min-height:620px;padding:0;overflow:hidden;display:grid;align-items:end}
.hero-img{position:absolute;inset:0}
.hero-img img{object-position:60% 40%;transform:scale(1.08);animation:breathe 14s ease-out forwards}
.hero-img::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 0%,color-mix(in srgb,var(--bg) 70%,transparent) 38%,transparent 70%),linear-gradient(0deg,var(--bg) 0%,transparent 40%)}
@keyframes breathe{to{transform:scale(1)}}
.hero-txt{position:relative;padding:0 6vw 16vh;max-width:900px}
.eyebrow{color:var(--acc);margin-bottom:28px}
h1{font-size:clamp(64px,11vw,168px);line-height:.88}
h1 .w2{font-style:italic;display:block;padding-left:.5em}
.lede{font:300 italic clamp(20px,2vw,28px)/1.3 Corm,serif;margin-top:32px;color:var(--fg)}
.cats{color:var(--mut);margin-top:18px}
.hero-label{position:absolute;right:6vw;bottom:16vh;text-align:right;max-width:300px;font-size:14px;color:var(--mut);border-right:1px solid var(--acc);padding-right:16px;line-height:1.5}
.hero-label span{display:block;color:var(--acc);font-size:11px;letter-spacing:.24em;margin-bottom:6px}
.hero-label em{font-family:Corm,serif;font-size:16px}
.scroll{position:absolute;left:50%;bottom:32px;color:var(--mut)}
.scroll::after{content:"";display:block;width:1px;height:40px;margin:12px auto 0;background:var(--acc);animation:drip 2.4s infinite}
@keyframes drip{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.paltag{position:fixed;left:6vw;top:80px;font:400 12px Jost;letter-spacing:.2em;text-transform:uppercase;color:var(--acc)}
.big{font-size:clamp(30px,4.2vw,60px);line-height:1.12;max-width:20ch}
.about-cols{display:grid;grid-template-columns:1.3fr 1fr;gap:8vw;margin-top:96px;color:var(--mut)}
.facts div{border-top:1px solid var(--line);padding:20px 0}.facts dt{font:300 34px/1.1 Corm,serif;color:var(--fg)}.facts dd{font-size:14px}
.galleries{background:var(--bg2)}
.rooms{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.room figure{aspect-ratio:3/4;overflow:hidden;margin-bottom:24px}
.room img{transition:transform 1.6s cubic-bezier(.2,.7,.2,1),filter 1.6s;filter:brightness(.82)}
.room:hover img{transform:scale(1.04);filter:brightness(1)}
.rn{color:var(--acc)}.room h3{font-size:34px;margin:6px 0}.rd{color:var(--mut);font-size:14px}
.mw-head{margin-bottom:120px}
h2{font-size:clamp(40px,5.6vw,84px);line-height:1}h2 i{color:var(--acc)}
.work{display:grid;grid-template-columns:7fr 4fr;gap:6vw;align-items:end;margin-bottom:180px}
.work.rt{grid-template-columns:4fr 7fr}.work.rt figure{order:2}
.work figure{aspect-ratio:4/3;overflow:hidden;background:var(--bg2)}
.label{border-left:1px solid var(--acc);padding-left:20px;max-width:340px}
.label .no{color:var(--acc)}.label h3{font-size:clamp(26px,2.4vw,36px);line-height:1.1;margin:12px 0 8px}
.label .zh{font-family:WKTC,"Songti TC",serif;color:var(--mut);font-size:15px}
.label .dt{margin-top:16px;font-size:14px}.label .col{color:var(--mut);margin-top:16px;font-size:10px}
.wall{border-top:1px solid var(--line)}
.wall-head{display:grid;grid-template-columns:1fr 1fr;align-items:end;margin-bottom:72px;color:var(--mut)}.wall-head .sec{grid-column:1/-1}.wall-head h2{color:var(--fg)}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:48px 24px}
.cell .rv{aspect-ratio:1;overflow:hidden;background:var(--bg2)}
figcaption{display:flex;justify-content:space-between;margin-top:14px;color:var(--fg)}figcaption span{color:var(--mut)}
.furn{background:var(--bg2)}.furn h2{margin-bottom:64px}
.furn-grid{display:grid;grid-template-columns:1fr 1.4fr;gap:24px}.furn-grid .tall{grid-row:span 2;aspect-ratio:3/4}.furn-grid figure{overflow:hidden}
.ph{border:1px dashed var(--line);display:flex;flex-direction:column;justify-content:center;padding:32px;color:var(--mut);font-size:14px;min-height:200px}.ph span{color:var(--acc);font-size:11px;letter-spacing:.24em;text-transform:uppercase;margin-bottom:8px}
.queen{display:grid;grid-template-columns:5fr 6fr;gap:7vw;align-items:center}
.queen figure{aspect-ratio:1354/1600;overflow:hidden}.qt p{color:var(--mut);margin-top:28px;max-width:48ch}.qt p.sec{color:var(--acc);margin:0 0 40px}
.qstrip{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}.qstrip img{aspect-ratio:2/3}
.founder{text-align:center;background:var(--bg2)}.founder figure{max-width:880px;margin:0 auto 96px;aspect-ratio:16/9;overflow:hidden}
.founder blockquote{margin:0 auto}.who{margin-top:32px;color:var(--acc);font-size:12px;letter-spacing:.24em;text-transform:uppercase}
.narrow{max-width:58ch;margin:28px auto 0;color:var(--mut)}
.channel{text-align:center}.channel .sec{margin-bottom:32px}
.btn{display:inline-block;margin-top:48px;border:1px solid var(--acc);padding:16px 32px;font-size:12px;letter-spacing:.24em;text-transform:uppercase;transition:background .6s,color .6s}.btn:hover{background:var(--acc);color:var(--bg)}
.foot{padding:140px 6vw 0;border-top:1px solid var(--line);overflow:hidden}
.mail{font-size:clamp(30px,5vw,72px);border-bottom:1px solid var(--acc)}
.fcols{display:flex;gap:10vw;margin:72px 0;color:var(--mut);font-size:14px}
.big-mark{font-size:22vw;line-height:.8;white-space:nowrap;color:var(--bg3);margin-bottom:-.12em}
/* motion */
.js .r{opacity:0;transform:translateY(28px);transition:opacity 1.4s ease,transform 1.4s cubic-bezier(.2,.7,.2,1)}
.js .rv{clip-path:inset(12% 0 12% 0);transition:clip-path 1.8s cubic-bezier(.7,0,.2,1)}
.js .rv img,.js img.rv{transform:scale(1.12);transition:transform 2.4s cubic-bezier(.2,.7,.2,1)}
.js .in.r{opacity:1;transform:none}.js .in.rv{clip-path:inset(0)}.js .in.rv img,.js img.rv.in{transform:none}
.js .hero-txt>*{opacity:0;transform:translateY(20px);animation:up 1.6s cubic-bezier(.2,.7,.2,1) forwards}
.js .hero-txt>*:nth-child(2){animation-delay:.25s}.js .hero-txt>*:nth-child(3){animation-delay:.6s}.js .hero-txt>*:nth-child(4){animation-delay:.8s}
@keyframes up{to{opacity:1;transform:none}}
.still *{animation:none!important}.still .hero-txt>*{opacity:1!important;transform:none!important}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}.js .r,.js .hero-txt>*{opacity:1;transform:none}.js .rv{clip-path:none}.js .rv img,.js img.rv,.hero-img img{transform:none}}
@media (max-width:820px){
 body{font-size:16px}section{padding:96px 24px}.top{padding:16px 24px;gap:16px}.top nav{display:none}
 .hero-txt{padding:0 24px 22vh}.hero-img img{object-position:70% 30%}
 .hero-img::after{background:linear-gradient(0deg,var(--bg) 8%,color-mix(in srgb,var(--bg) 55%,transparent) 50%,transparent 85%)}
 .hero-label{left:24px;right:auto;bottom:7vh;text-align:left;border-right:0;border-left:1px solid var(--acc);padding:0 0 0 14px}
 .scroll{display:none}h1 .w2{padding-left:0}
 .about-cols,.wall-head,.queen,.furn-grid{grid-template-columns:1fr;gap:40px}.rooms,.grid{grid-template-columns:1fr 1fr;gap:32px 14px}
 .work,.work.rt{grid-template-columns:1fr;gap:24px;margin-bottom:96px}.work.rt figure{order:0}
 .furn-grid .tall{grid-row:auto}.qstrip{gap:10px}.fcols{flex-direction:column;gap:24px}.room h3{font-size:26px}
}
body{font-variant-numeric:lining-nums}
.top::before{content:"";position:absolute;inset:0 0 -60px;z-index:-1;background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 85%,transparent),transparent);pointer-events:none;transition:opacity .8s}
.top.solid::before{opacity:0}
.hero-label{max-width:380px}
