:root{--purple:#44416f;--blue:#94a9ce;--pink:#f3cfca;--ink:#353251;--paper:#f7f7fb}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.7 -apple-system,BlinkMacSystemFont,'PingFang SC','Microsoft YaHei',sans-serif}button,input,textarea,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a{color:inherit;text-decoration:none}header{height:92px;display:flex;align-items:center;justify-content:space-between;padding:0 6%;background:var(--purple);color:white;border-bottom:1px solid #ffffff20}.brand{font-weight:600;letter-spacing:.25em;font-size:22px}.brand small{display:block;font-size:12px;letter-spacing:.5em;font-weight:400}nav{display:flex;gap:32px;font-size:14px}nav a:hover{color:var(--pink)}.hero{min-height:440px;background:var(--purple);color:white;display:grid;grid-template-columns:1.2fr 1fr;overflow:hidden}.hero-copy{padding:62px 0 64px 10%}.eyebrow{font-size:12px;letter-spacing:.3em;color:var(--pink)}h1{font-size:70px;line-height:1.25;letter-spacing:.12em;margin:22px 0 8px;font-weight:600}.english{letter-spacing:.65em;font-size:16px}.role{font-size:25px;margin:32px 0 6px}.intro{color:#d4d2e8;margin:0;max-width:450px}.art{position:relative;min-height:440px}.blue-block{position:absolute;inset:0 15% 17% 15%;background:var(--blue)}.art-word{position:absolute;top:12px;left:-15px;font-size:140px;color:#ffffff22;line-height:1.1;letter-spacing:.1em}.circle{position:absolute;width:180px;height:180px;border-radius:50%;background:var(--pink);bottom:17%;right:22%}.stripes{position:absolute;bottom:0;left:15%;height:100px;width:240px;background:repeating-linear-gradient(90deg,var(--pink) 0 18px,transparent 18px 38px)}.waves{position:absolute;right:0;top:115px;width:80%;height:110px}.dots{position:absolute;right:26%;top:58px;color:var(--pink);font-size:40px;letter-spacing:40px}.works-section{padding:58px 6% 76px;max-width:1600px;margin:auto}.section-top{display:flex;justify-content:space-between;align-items:end;gap:20px;margin-bottom:32px}h2{margin:0;font-size:30px;font-weight:500}.sub{font-size:12px;letter-spacing:.22em;color:#7b7894}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters button{border:0;background:transparent;color:#77738d;padding:9px 17px;border-radius:2px;font-size:14px}.filters button.active{background:var(--purple);color:white}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 24px}.work{border:0;padding:0;text-align:left;background:transparent;color:inherit}.work .image-wrap{overflow:hidden;background:#e9e8f1;aspect-ratio:4/3}.work img{height:100%;width:100%;object-fit:contain;transition:transform .4s}.work:hover img{transform:scale(1.04)}.work-meta{display:flex;justify-content:space-between;gap:8px;margin-top:15px}.work h3{margin:0;font-size:17px;font-weight:500}.category{font-size:12px;color:#85819a;white-space:nowrap}.about{background:var(--blue);padding:64px 8%;display:grid;grid-template-columns:1fr 1.5fr;gap:60px}.about h2{font-size:40px}.about p{max-width:650px}.contact{padding:55px 8%;background:var(--purple);color:white;display:flex;justify-content:space-between;align-items:center;gap:24px}.contact a{font-size:26px;color:var(--pink)}footer{background:var(--purple);color:#c9c6de;padding:22px 8%;font-size:12px;border-top:1px solid #ffffff20;display:flex;justify-content:space-between}dialog{border:0;max-width:90vw;width:1000px;max-height:92vh;padding:36px;background:var(--paper);color:var(--ink)}dialog::backdrop{background:#17152edc}dialog img{width:100%;max-height:70vh;object-fit:contain}.close{float:right;border:0;background:transparent;font-size:32px}.admin{max-width:1100px;margin:40px auto;padding:0 24px}.panel{background:white;border:1px solid #e1deec;padding:28px;margin:22px 0}.login{max-width:440px;margin:80px auto}.admin-head{display:flex;justify-content:space-between;align-items:center;gap:20px}label{display:block;font-size:14px;margin:15px 0 5px}input,textarea,select{border:1px solid #d1cddd;border-radius:3px;padding:10px 12px;width:100%;background:white;color:var(--ink)}textarea{min-height:100px;resize:vertical}.btn{background:var(--purple);color:white;border:0;border-radius:3px;padding:10px 20px;font-size:14px}.btn.secondary{background:#eceaf3;color:var(--purple)}.btn.danger{background:#faecec;color:#a33c3c}.row{display:grid;grid-template-columns:1fr 1fr;gap:20px}.admin-item{display:grid;grid-template-columns:85px 1fr auto;gap:20px;align-items:center;padding:16px 0;border-bottom:1px solid #eeecf4}.admin-item img{width:85px;height:65px;object-fit:contain;background:#f0eef5}.actions{display:flex;gap:8px;flex-wrap:wrap}.error{color:#a33c3c}#toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:var(--purple);color:white;padding:12px 24px;border-radius:4px;display:none;z-index:99}.empty{grid-column:1/-1;padding:50px;text-align:center;color:#817b98}.hint{font-size:14px;color:#817b98}button:focus-visible,a:focus-visible{outline:3px solid var(--blue);outline-offset:4px}@media(min-width:1500px){.hero-copy{padding-left:15%}}@media(max-width:800px){header{height:80px;padding:0 5%}nav{gap:16px}.hero{grid-template-columns:1fr 0.7fr;min-height:370px}.hero-copy{padding:45px 0 40px 8%}h1{font-size:48px}.role{font-size:20px}.intro{font-size:14px}.art{min-height:370px}.art-word{font-size:95px}.circle{width:120px;height:120px}.dots{letter-spacing:15px}.section-top{align-items:start;flex-direction:column}.grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about{gap:25px}.contact a{font-size:20px}}@media(max-width:520px){.brand{font-size:17px}nav{font-size:13px;gap:12px}.hero{grid-template-columns:1fr}.hero-copy{padding:38px 7% 45px}.art{display:none}h1{font-size:48px}.works-section{padding:35px 5%}.filters{gap:0}.filters button{padding:8px 12px}.grid{gap:25px 14px}.work-meta{flex-direction:column;gap:2px}.work h3{font-size:15px}.about{grid-template-columns:1fr;padding:40px 7%}.contact{align-items:start;flex-direction:column;padding:40px 7%}footer{padding:20px 7%;gap:12px}.row{grid-template-columns:1fr}.panel{padding:20px}.admin-item{grid-template-columns:65px 1fr}.admin-item .actions{grid-column:1/-1}.admin-head{align-items:start;flex-direction:column}}

.image-wrap{position:relative}.image-count{position:absolute;bottom:12px;right:12px;background:#44416fe8;color:white;font-size:13px;padding:4px 10px;border-radius:3px}.slide-nav{display:flex;align-items:center;justify-content:center;gap:24px;margin:18px 0}.slide-nav[hidden]{display:none}.slide-thumbs{display:flex;overflow-x:auto;gap:10px;padding:8px 0 16px}.slide-thumbs button{border:2px solid transparent;background:#eceaf3;padding:3px;flex:0 0 72px}.slide-thumbs button.selected{border-color:var(--purple)}.slide-thumbs img{width:64px;height:60px;object-fit:contain;display:block}.dropzone{border:2px dashed #b1a9cc;text-align:center;padding:28px 20px;margin-top:22px;background:#f7f6fc}.dropzone.dragover{border-color:var(--purple);background:#e8e4f4}.dropzone p{margin:8px 0 18px;font-size:14px}.file-label{display:inline-block;margin:0;cursor:pointer}.file-label input{display:block;max-width:300px;margin-top:8px}.image-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px;margin:20px 0}.image-entry{border:1px solid #e1deec;padding:10px;background:#f9f8fc}.image-entry>img{width:100%;height:115px;object-fit:contain}.image-entry>span{display:block;font-size:13px;margin:6px 0}.image-entry .btn{font-size:13px;padding:5px 10px}dialog #full-image{max-height:58vh}

/* Two-column masonry: keep original artwork proportions. */
.works-section{max-width:1240px}.grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:1px;column-gap:28px;row-gap:0;align-items:start}.grid .work{display:block;width:100%;min-width:0;align-self:start}.work .image-wrap{aspect-ratio:auto;border-radius:8px;background:#eeedf4}.work img{display:block;width:100%;height:auto;object-fit:contain}.work-meta{align-items:baseline;margin-top:13px}.work h3{line-height:1.55}.grid .empty{grid-column:1/-1;grid-row:span 140}.image-count{border-radius:5px}@media(max-width:520px){.grid{column-gap:14px;row-gap:0}.work .image-wrap{border-radius:6px}.image-count{font-size:12px;bottom:8px;right:8px;padding:3px 7px}.work-meta{align-items:start}.category{font-size:12px}}
/* Responsive masonry: two columns on phones, three to five on desktop. */
.works-section{max-width:1800px}.grid{grid-template-columns:repeat(3,minmax(0,1fr))}@media(min-width:1440px){.grid{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(min-width:1900px){.grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media(max-width:767px){.grid{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:14px}}
/* Lighter display name. */
.brand,.hero h1{font-weight:300}
/* Smaller name with a little more space between characters. */
.brand{font-size:20px;letter-spacing:.3em}.hero h1{font-size:66px;letter-spacing:.16em}@media(max-width:800px){.hero h1{font-size:44px}}@media(max-width:520px){.brand{font-size:15px}}

.about-text{white-space:pre-line}
/* Contact email: light weight, lower-right alignment. */
.contact{min-height:240px;align-items:stretch}.contact>a{font-weight:300;align-self:flex-end;text-align:right;margin-left:auto;max-width:100%;overflow-wrap:anywhere}@media(max-width:520px){.contact{min-height:240px}.contact>a{align-self:flex-end}}

.language-switch{border:1px solid #ffffff60;border-radius:3px;padding:3px 9px;white-space:nowrap}html[lang="en"] .hero h1{font-size:48px;letter-spacing:.06em}html[lang="en"] .brand{letter-spacing:.08em}html[lang="en"] .about h2{font-size:36px}html[lang="en"] .about-text{white-space:pre-line}html[lang="en"] .about p:last-child{white-space:pre-line}.english-fields{margin:20px 0;padding:15px;background:#f7f6fc}.english-fields summary{cursor:pointer}@media(max-width:520px){nav{gap:9px}.language-switch{padding:2px 6px;font-size:12px}html[lang="en"] .hero h1{font-size:36px}html[lang="en"] .brand{font-size:14px}html[lang="en"] .filters button{padding:8px;font-size:12px}html[lang="en"] .section-top{gap:12px}}

select.language-switch{background:transparent;color:inherit;border:1px solid currentColor;border-radius:4px;font:inherit;padding:4px;max-width:110px}select.language-switch option{color:#44416f;background:white}

header nav{align-items:center;flex-shrink:0}header nav>a{white-space:nowrap;flex-shrink:0}header select.language-switch{width:auto;max-width:100px;flex:0 0 auto;height:30px;padding:2px 5px;font-size:13px;line-height:1.2;border-color:#ffffff60}header .brand{flex-shrink:0}@media(max-width:520px){header nav{gap:9px}header select.language-switch{max-width:82px;height:28px;font-size:12px}}@media(max-width:360px){header{padding:0 3%}header nav{gap:7px}header .brand small{letter-spacing:.3em}}
