:root{--bg:#101112;--surface:#191a1b;--text:#f4f4f1;--muted:#b6b8b9;--gold:#ceb27c;--line:#363737}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif;font-size:16px;line-height:1.65}a{color:inherit;text-underline-offset:6px}a:hover{color:var(--gold)}button{font:inherit;cursor:pointer}a:focus-visible,button:focus-visible,summary:focus-visible{outline:2px solid var(--gold);outline-offset:6px}.skip{position:absolute;top:-100px;left:20px;background:var(--gold);color:#101112;padding:10px;z-index:20}.skip:focus{top:10px}header{height:98px;padding:0 5.5%;display:flex;align-items:center;justify-content:space-between;background:#101112;position:relative;z-index:10;border-bottom:1px solid var(--line)}.brand{font-size:16px;letter-spacing:.14em;font-weight:600;text-decoration:none;white-space:nowrap}.brand span{display:block;font-size:14px;font-weight:400;color:var(--gold);letter-spacing:.3em}nav{display:flex;gap:28px}nav a{font-size:14px;text-decoration:none}.menu{display:none}.hero{min-height:720px;height:calc(100svh - 98px);max-height:980px;position:relative;isolation:isolate;overflow:hidden}.hero>img{position:absolute;right:0;top:0;width:78%;height:100%;object-fit:cover;object-position:60% 40%;z-index:-2}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#101112 1%,#101112ed 16%,#10111270 43%,transparent 70%),linear-gradient(0deg,#101112 0%,transparent 30%);z-index:-1}.hero-copy{padding:105px 5.5% 90px;max-width:760px}.eyebrow{font-size:13px;letter-spacing:.16em;font-weight:500;color:var(--gold);margin:0 0 27px}h1,h2,h3{font-family:Georgia,'Times New Roman',serif;font-weight:400;line-height:1.12;margin:0}h1{font-size:clamp(84px,9.5vw,144px);letter-spacing:-.035em}em{font-weight:400}h1 em{color:var(--gold)}.hero-sub{font-size:19px;margin:25px 0 30px;color:#ddd}.button{display:inline-block;border:1px solid var(--gold);padding:12px 24px;text-decoration:none;font-size:14px}.hero-bottom{position:absolute;bottom:30px;left:5.5%;right:5.5%;display:flex;justify-content:space-between;gap:20px;font-size:12px;letter-spacing:.13em;color:var(--muted)}.section{padding:110px 8%;scroll-margin-top:20px}h2{font-size:clamp(40px,4.5vw,66px);letter-spacing:-.03em}.about{display:grid;grid-template-columns:1fr 1fr;gap:10%;border-bottom:1px solid var(--line)}.lead{font-family:Georgia,serif;font-size:25px;line-height:1.5;margin:30px 0 0}.body-copy{padding-top:52px;color:var(--muted)}.body-copy p:first-child{margin-top:0}details{margin-top:25px;border-top:1px solid var(--line);padding-top:20px}summary{color:var(--text);cursor:pointer}details li{margin:12px 0}.recognition{padding:40px 8%;display:grid;grid-template-columns:repeat(3,1fr);gap:45px;border-bottom:1px solid var(--line)}.recognition p{display:flex;gap:20px;align-items:center;margin:0}.recognition strong{font-family:Georgia,serif;font-size:32px;font-weight:400;color:var(--gold)}.recognition span{font-size:14px;color:var(--muted)}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:40px}.section-heading>p{max-width:360px;color:var(--muted)}.filters{display:flex;gap:10px;flex-wrap:wrap;margin:40px 0 30px}.filters button{color:var(--muted);border:1px solid var(--line);background:transparent;padding:9px 20px;font-size:14px}.filters button[aria-pressed=true]{background:var(--gold);border-color:var(--gold);color:#101112}.video-grid{display:grid;grid-template-columns:1fr 1fr;gap:45px 30px}.video-card{background:var(--surface)}.video-card[hidden]{display:none}.video-card iframe{width:100%;aspect-ratio:16/9;display:block;border:0;background:#050505}.video-caption{padding:25px}.video-caption .eyebrow{font-size:12px;margin:0 0 12px}.video-caption h3{font-size:28px}.video-caption p:not(.eyebrow){font-size:14px;color:var(--muted)}.video-caption a{font-size:14px;color:var(--gold)}.compositions{background:#202324}.compositions h2 em{color:var(--gold)}.works{margin-top:55px}.works article{display:grid;grid-template-columns:70px 1fr;padding:35px 0;border-top:1px solid #494b4b;gap:20px}.work-number{font-family:Georgia,serif;color:var(--gold);font-size:27px}.works h3{font-size:36px}.works .eyebrow{margin:0 0 13px}.works article p:not(.eyebrow){max-width:700px;color:#c6c8c8}.work-meta{font-size:14px}.works a{color:var(--gold);font-size:14px}.education{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:7%}.education img{width:100%;height:620px;object-fit:cover;object-position:35% center}.education p:not(.eyebrow):not(.lead){color:var(--muted)}.press{padding-top:35px}.press h2{margin-bottom:50px}.press-item{display:grid;grid-template-columns:200px 1fr 55px;gap:35px;border-top:1px solid var(--line);padding:30px 0;text-decoration:none;align-items:start}.press-item>span{font-size:12px;letter-spacing:.1em;color:var(--gold)}.press-item h3{font-size:28px}.press-item p{font-size:14px;color:var(--muted);max-width:660px}.contact{background:var(--gold);color:#101112;padding-top:90px;padding-bottom:100px}.contact .eyebrow{color:#413620}.contact h2{font-size:clamp(64px,7vw,100px)}.contact p:not(.eyebrow){max-width:420px}.email{font-family:Georgia,serif;font-size:clamp(24px,3.4vw,44px);word-break:break-word}.contact a:hover{color:#44341b}footer{padding:40px 5.5%;display:flex;justify-content:space-between;gap:25px;align-items:center}footer p,footer>a:last-child{font-size:14px;color:var(--muted)}@media(min-width:1600px){.section,.recognition{padding-left:max(8%,calc((100% - 1350px)/2));padding-right:max(8%,calc((100% - 1350px)/2))}}@media(max-width:900px){header{height:auto;min-height:90px;flex-wrap:wrap;padding:20px 6%}.menu{display:block;background:transparent;color:var(--text);border:1px solid var(--line);padding:6px 13px;font-size:14px}nav{display:none;width:100%;padding-top:25px;flex-wrap:wrap;gap:18px 25px}nav.open{display:flex}.hero{min-height:640px;height:80svh}.hero>img{width:100%;object-position:58% center}.hero:after{background:linear-gradient(90deg,#101112da,transparent 85%),linear-gradient(0deg,#101112,transparent 70%)}.hero-copy{padding:100px 6% 80px}.hero h1{font-size:100px}.hero-bottom span+span{display:none}.section{padding:75px 6%}.about,.education{grid-template-columns:1fr;gap:30px}.body-copy{padding-top:0}.recognition{padding:30px 6%;gap:25px;grid-template-columns:1fr}.education img{height:440px}.section-heading{display:block}.section-heading>p{max-width:600px}.press-item{grid-template-columns:1fr 50px;gap:12px}.press-item>span:first-child{grid-column:1/-1}.press-item h3{font-size:25px}footer{flex-wrap:wrap}footer p{width:100%;order:3;margin:0}}@media(max-width:560px){.hero{min-height:610px;height:82svh}.hero-copy{padding-top:85px}.hero h1{font-size:86px}.hero .eyebrow{font-size:12px;max-width:230px}.hero-sub{font-size:16px}.hero-bottom{font-size:10px;max-width:270px}.hero>img{object-position:58% center}.video-grid{grid-template-columns:1fr}.video-caption{padding:23px}.video-caption h3{font-size:27px}.works article{grid-template-columns:35px 1fr;gap:12px}.works h3{font-size:29px}.education img{height:360px}.lead{font-size:23px}.brand{font-size:14px}.contact h2{font-size:65px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

.bio-portrait{display:block;width:100%;max-width:600px;aspect-ratio:3/2;object-fit:contain;margin:0 0 35px}.education img{height:auto;aspect-ratio:1.7;object-fit:contain}

.recording-collection{display:grid;grid-template-columns:1fr 1fr;gap:7%;align-items:start;margin-top:50px}.recording-collection>img{width:100%;height:auto;display:block}.recording-list article{border-top:1px solid var(--line);padding:25px 0 30px}.recording-list .eyebrow{margin-bottom:12px}.recording-list h3{font-size:30px}.recording-list p:not(.eyebrow){color:var(--muted)}.recording-list a{font-size:14px;color:var(--gold)}@media(max-width:900px){.recording-collection{grid-template-columns:1fr;gap:30px;margin-top:30px}.recording-collection>img{max-width:680px}}

.honorific{display:block;font-size:clamp(32px,3.2vw,48px);line-height:1.2;letter-spacing:.01em;margin-bottom:12px;color:var(--gold)}.preferred-name{font-size:16px;color:var(--muted);margin-top:22px}@media(max-width:560px){header .brand{font-size:12px;letter-spacing:.11em}.hero-copy{padding-top:65px}}

.contact h2{font-size:clamp(46px,6.4vw,92px)}.contact p:not(.eyebrow){max-width:640px}@media(max-width:560px){.contact h2{font-size:clamp(36px,9vw,50px)}}

/* Architectural sans-serif wordmark for the opening display. */
.hero h1{font-family:Arial,Helvetica,sans-serif;font-style:normal;font-weight:500;font-size:clamp(58px,7.4vw,112px);line-height:1.04;letter-spacing:.045em}
.hero h1>span{display:block}
.hero h1 .honorific{font-family:inherit;font-weight:500;font-size:clamp(48px,5.2vw,78px);line-height:1.08;letter-spacing:.065em;margin-bottom:18px;color:var(--gold)}
.hero h1 .family-name{color:var(--gold);margin-top:6px}
header .brand{font-family:Arial,Helvetica,sans-serif;font-weight:500;letter-spacing:.18em}
@media(max-width:900px){.hero h1{font-size:clamp(52px,9.4vw,84px)}.hero h1 .honorific{font-size:clamp(44px,7vw,62px)}}
@media(max-width:560px){.hero h1{font-size:clamp(36px,10.5vw,58px);letter-spacing:.035em}.hero h1 .honorific{font-size:clamp(38px,9vw,50px);margin-bottom:16px}header .brand{letter-spacing:.11em}}

.hero h1 .honorific{font-size:1em;line-height:inherit;letter-spacing:inherit;margin-bottom:10px}

.positioning{font-size:17px;line-height:1.7;color:var(--muted);margin-top:24px}.hero-bottom span:first-child{max-width:560px;line-height:1.6}.contact h2{font-size:clamp(40px,5.8vw,84px)}@media(max-width:560px){.hero-bottom{max-width:320px;font-size:11px}.contact h2{font-size:clamp(30px,8vw,44px)}}

.piano-section{border-bottom:1px solid var(--line)}.piano-section h2 em{color:var(--gold)}.piano-copy{max-width:820px;margin-top:35px}.piano-copy p:not(.lead){color:var(--muted)}.piano-copy .button{margin-top:12px}@media(min-width:901px){nav{gap:22px}}

.about .lead{font-size:23px;color:#f4f4f1}@media(max-width:560px){.about .lead{font-size:21px}}

.news-section{border-top:1px solid var(--line)}.engagement-list{margin-top:45px}.engagement-list article{display:flex;align-items:center;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding:26px 0}.engagement-list h3{font-size:28px}.engagement-list p{margin:0;color:var(--gold);font-size:16px;letter-spacing:.08em}@media(min-width:901px) and (max-width:1200px){header{flex-wrap:wrap;height:auto;gap:20px;padding-top:22px;padding-bottom:22px}nav{flex-wrap:wrap;gap:16px 22px}}@media(max-width:560px){.engagement-list h3{font-size:24px}}

.bio-photo{margin:0 0 35px}.bio-photo .bio-portrait{margin-bottom:10px}.photo-credit{font-size:.8125rem;line-height:1.5;color:var(--muted)}

.hero-photo-credit{position:absolute;right:5.5%;bottom:68px;margin:0;color:#f4f4f1;text-shadow:0 1px 4px #000}.recording-photo,.education-photo{margin:0;min-width:0}.recording-photo img{width:100%;height:auto;display:block}.recording-photo .photo-credit,.education-photo .photo-credit{margin-top:10px}@media(max-width:900px){.recording-photo{max-width:680px}.hero-photo-credit{right:6%;bottom:72px}}

.recognition>h2{grid-column:1/-1;font-size:clamp(30px,3vw,42px);margin-bottom:8px}.recognition>.leadership-recognition{grid-column:1/-1}

/* Aligned awards and leadership */
.recognition{display:block;padding-top:55px;padding-bottom:60px}.recognition>h2{margin-bottom:35px}.recognition-columns{display:grid;grid-template-columns:1fr 1fr;gap:7%}.recognition-columns h3{font-size:27px;margin-bottom:18px}.recognition .organization{display:block;min-height:48px;margin:0 0 18px;color:var(--muted);font-size:14px}.recognition-list{margin:0}.recognition-list>div{display:grid;grid-template-columns:120px minmax(0,1fr);gap:24px;border-top:1px solid var(--line);padding:20px 0}.recognition-list dt{color:var(--gold);font-size:18px;white-space:nowrap;font-variant-numeric:tabular-nums}.recognition-list dd{margin:0;min-width:0;font-size:16px}.recognition-list dd strong{display:block;font-family:inherit;font-weight:500;font-size:16px;color:var(--text)}.recognition-list dd span{display:block;font-size:14px;margin-top:5px}.spotlight-project{margin-top:45px}.project-heading{display:grid;grid-template-columns:1fr 1fr;gap:7%;padding:28px 0}.project-heading h3{font-size:35px}.project-heading .eyebrow{margin-bottom:12px}.project-heading>p{color:var(--muted);margin:0}.press-item h4{font-family:Georgia,serif;font-size:23px;font-weight:400;line-height:1.25;margin:0}.press-item{grid-template-columns:180px minmax(0,1fr) 55px;gap:25px;padding:22px 0}.press-item p{margin-bottom:0}.language-control select{background:var(--bg);color:var(--text);border:1px solid var(--line);padding:9px 8px;font:inherit;font-size:13px;max-width:150px}.language-control{margin-left:20px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}header{gap:20px}nav{gap:20px}.languages{font-size:14px;color:var(--muted);margin-top:25px}html[lang="zh-Hans"] body{font-family:Arial,"Noto Sans SC","Microsoft YaHei",sans-serif}html[lang="zh-Hans"] h2,html[lang="zh-Hans"] h3,html[lang="zh-Hans"] h4,html[lang="zh-Hans"] .lead{font-family:"Noto Serif SC","Songti SC",serif;line-height:1.4}html[lang="de-DE"] .hero-bottom{letter-spacing:.05em} @media(max-width:1200px){header{flex-wrap:wrap;height:auto;min-height:98px;padding-top:18px;padding-bottom:18px}nav{order:3;width:100%;justify-content:center}.language-control{margin-left:auto}}@media(max-width:900px){nav{justify-content:flex-start}.recognition-columns,.project-heading{grid-template-columns:1fr;gap:30px}.recognition-columns>div+div{margin-top:12px}.recognition .organization{min-height:0}.press-item{grid-template-columns:minmax(0,1fr) 55px}.press-item>span:first-child{grid-column:1/-1}.language-control{margin-left:0}.recognition-list>div{grid-template-columns:110px minmax(0,1fr);gap:15px}.project-heading h3{font-size:30px}header>.brand{margin-right:auto}.language-control select{max-width:135px}}

.recognition-columns>div{display:grid;grid-template-rows:auto 66px 1fr;align-content:start}.recognition-columns h3{margin-bottom:18px}.recognition .organization{min-height:0}.recognition-list{align-self:start} @media(max-width:900px){.recognition-columns>div{grid-template-rows:auto auto 1fr}.recognition .organization{margin-bottom:20px}}

/* Consistent editorial hierarchy across sections and languages. */
:root{--heading-font:Arial,Helvetica,sans-serif;--section-title-size:clamp(2rem,4.2vw,3.75rem)}
html[lang="zh-Hans"]{--heading-font:"PingFang SC","Microsoft YaHei","Noto Sans SC",sans-serif}
main .section h2,.recognition>h2{font-family:var(--heading-font);font-size:var(--section-title-size);font-weight:400;font-style:normal;line-height:1.2;letter-spacing:-.025em;overflow-wrap:break-word;text-wrap:balance}
main .section h2 em{font:inherit;color:var(--gold)}
main .contact h2 em{color:inherit}
main h3,.press-item h4{font-family:var(--heading-font);font-weight:400;font-style:normal;line-height:1.3;letter-spacing:-.015em;text-wrap:balance;overflow-wrap:break-word}
main h3,.works h3,.project-heading h3,.recording-list h3,.recognition-columns h3{font-size:clamp(1.5rem,2.25vw,2rem)}
.press-item h4{font-size:clamp(1.125rem,1.6vw,1.375rem)}
.eyebrow{font-family:var(--heading-font);font-size:.875rem;font-weight:500;line-height:1.5;letter-spacing:.14em}
.section .eyebrow{margin-bottom:22px}
.works .eyebrow,.recording-list .eyebrow,.project-heading .eyebrow{margin-bottom:12px}
.section-heading{align-items:start}
.section-heading>p{margin-top:43px;line-height:1.7;max-width:390px}
html[lang="zh-Hans"] main h2,html[lang="zh-Hans"] main h3,html[lang="zh-Hans"] .press-item h4{font-family:var(--heading-font);line-height:1.45;letter-spacing:.025em}
html[lang="zh-Hans"] .section .eyebrow{letter-spacing:.1em}
html[lang="de-DE"] main h2,html[lang="de-DE"] main h3{hyphens:auto}
.contact-email{font-size:clamp(1.125rem,2.3vw,1.625rem);overflow-wrap:anywhere;margin-top:30px}
@media(max-width:900px){.section-heading>p{margin-top:24px;max-width:640px}}
@media(max-width:560px){main .section h2,.recognition>h2{letter-spacing:-.02em}.section .eyebrow{letter-spacing:.1em}html[lang="zh-Hans"] main h2{letter-spacing:.015em}}

.professional-training{margin-top:40px;padding-top:30px;border-top:1px solid var(--line)}.professional-training h3{color:var(--text);font-size:clamp(1.375rem,2vw,1.75rem)}.professional-training details{margin-top:20px}.professional-training summary{font-size:1rem;line-height:1.6}

/* Standalone Gallery: generous spacing and uncropped photographs. */
.gallery-intro{padding-bottom:50px;border-bottom:1px solid var(--line)}
.gallery-intro h1{font-family:var(--heading-font);font-size:var(--section-title-size);line-height:1.2;font-weight:400;letter-spacing:-.025em}
.gallery-intro>p:not(.eyebrow){max-width:640px;color:var(--muted);margin-top:24px}
.gallery-return{display:inline-block;margin-top:12px;font-size:.875rem;color:var(--gold)}
.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:60px 45px;padding:60px 8% 100px;align-items:start}
.gallery-card{margin:0;min-width:0}
.gallery-card img{display:block;width:100%;height:auto;background:var(--surface)}
.gallery-card figcaption{padding-top:22px;border-top:1px solid var(--line);margin-top:20px}
.gallery-card h2{font-family:var(--heading-font);font-size:clamp(1.375rem,2.2vw,1.875rem);line-height:1.35;font-weight:400;letter-spacing:-.015em}
.gallery-card figcaption>p:not(.photo-credit){font-size:1rem;line-height:1.7;color:var(--muted);max-width:640px}
.gallery-card .photo-credit{margin-top:18px}
nav a[aria-current="page"]{color:var(--gold);text-decoration:underline}
@media(max-width:900px){.gallery-grid{padding:40px 6% 75px;gap:40px 25px}}
@media(max-width:600px){.gallery-grid{grid-template-columns:1fr}.gallery-intro{padding-bottom:35px}}

.gallery-group{padding:50px 8% 20px}.gallery-group>h2{font-family:var(--heading-font);font-size:clamp(1.75rem,3vw,2.5rem);line-height:1.3;font-weight:400;margin:0;padding-bottom:24px;border-bottom:1px solid var(--line)}.gallery-group .gallery-grid{padding:35px 0 30px}.gallery-group+.gallery-group{padding-top:20px}.gallery-card h3{font-size:clamp(1.375rem,2.2vw,1.875rem)}@media(max-width:900px){.gallery-group{padding-left:6%;padding-right:6%}}

.piano-performance-photo{margin:0 0 35px}.piano-performance-photo img{display:block;width:100%;height:auto}.piano-performance-photo figcaption{font-size:.875rem;line-height:1.6;color:var(--muted);margin-top:12px}

/* Photos and institutional posts have separate, linked collections. */
.collection-tabs{display:flex;flex-wrap:wrap;gap:12px 24px;margin:32px 0 20px}.collection-tabs a{font-size:1rem;text-decoration:none;padding:8px 0;border-bottom:2px solid transparent}.collection-tabs a[aria-current="page"]{color:var(--gold);border-bottom-color:var(--gold)}
.archive-list{padding:15px 8% 90px}.archive-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:30px;align-items:start;padding:32px 0;border-bottom:1px solid var(--line)}.archive-item .eyebrow{margin-bottom:12px;letter-spacing:.08em}.archive-item h2{font-size:clamp(1.375rem,2.2vw,1.875rem);line-height:1.35;letter-spacing:-.015em}.archive-item details{margin-top:16px;max-width:760px}.archive-item details p{color:var(--muted);font-size:1rem;line-height:1.7}.archive-source{font-size:.875rem;color:var(--gold);margin-top:36px;white-space:nowrap}.archive-browse{margin-top:36px}.archive-browse a{color:var(--gold)}
@media(max-width:900px){.archive-list{padding-left:6%;padding-right:6%}}
@media(max-width:600px){.archive-item{grid-template-columns:1fr;gap:12px}.archive-source{margin-top:0;justify-self:start}.collection-tabs{gap:8px 20px}}

.press-institutional{margin-top:65px}.press-subheading{font-size:clamp(1.625rem,3vw,2.375rem);line-height:1.3;padding-bottom:24px;border-bottom:1px solid var(--line)}.press-institutional .archive-item h4{font-family:var(--heading-font);font-size:clamp(1.375rem,2.2vw,1.875rem);font-weight:400;line-height:1.35;letter-spacing:-.015em;margin:0}.press-institutional .archive-item .eyebrow{margin-bottom:12px}

img{-webkit-user-drag:none;-webkit-touch-callout:none;user-select:none}
.protected-photo{display:flex;align-items:center;justify-content:center;aspect-ratio:3/2;background:var(--surface);border:1px solid var(--line);padding:24px}
.protected-photo.unlocked{display:block;aspect-ratio:auto;padding:0;border:0}
.protected-photo img{display:block;width:100%;height:auto}
.photo-unlock,.private-photo-actions button,.private-photo-viewer button,.private-lock-control{font:inherit;font-size:1rem;color:var(--gold);background:var(--surface);border:1px solid var(--gold);padding:14px 20px;cursor:pointer}
.private-collection-note{font-size:1rem;color:var(--muted);line-height:1.6;margin:20px 0 0}
.private-photo-dialog,.private-photo-viewer{color:var(--text,#f0ede7);background:var(--bg,#101112);border:1px solid var(--gold);padding:32px;width:min(480px,calc(100vw - 32px));max-height:90vh;overflow:auto}
.private-photo-dialog::backdrop,.private-photo-viewer::backdrop{background:rgba(0,0,0,.8)}
.private-photo-dialog h2{font-size:1.75rem;margin:0 0 16px}.private-photo-dialog p{font-size:1rem;line-height:1.6}
.private-photo-dialog label{display:block;font-size:1rem;margin-top:24px}.private-photo-dialog input{display:block;width:100%;box-sizing:border-box;font:inherit;padding:14px;color:inherit;background:var(--surface);border:1px solid var(--line);margin-top:10px}
.private-photo-actions{display:flex;flex-wrap:wrap;gap:12px;margin:18px 0}.private-photo-dialog a{color:var(--gold);font-size:1rem}.private-photo-error{color:#ffb4a9;min-height:1.5em}.private-photo-actions button:disabled{opacity:.6;cursor:wait}
.private-photo-viewer{width:min(1000px,calc(100vw - 32px))}.private-photo-viewer img{display:block;width:100%;height:auto;margin-top:20px}
.private-lock-control{position:fixed;bottom:20px;right:20px;z-index:20}.private-lock-control[hidden]{display:none}
@media print{.protected-photo img,.private-photo-viewer{display:none!important}}
@media print{
 body::after{content:"Dr. Qinqing Qian · Portfolio";position:fixed;top:45%;left:10%;width:80%;text-align:center;transform:rotate(-25deg);font:32px Georgia,serif;color:rgba(90,90,90,.26);z-index:9999;pointer-events:none}
 img{print-color-adjust:exact;-webkit-print-color-adjust:exact}
}
