:root{--paper:#f7f7f2;--ink:#22251f;--muted:#85867d;--line:#ddded6;--orange:#e36b41;--green:#687c57}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:100px}body{margin:0;background:var(--paper);color:var(--ink);font:14px/1.7 Arial,'Microsoft YaHei',sans-serif}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button,a,input,textarea,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:2px solid var(--orange);outline-offset:4px}[hidden]{display:none!important}.nav{height:102px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);margin:0 5%;gap:20px}.brand{display:flex;align-items:center;gap:12px;font-size:13px;letter-spacing:1.8px;font-weight:bold;line-height:1.4}.brand-icon{font-size:39px;letter-spacing:-4px;background:var(--ink);color:var(--paper);width:44px;height:44px;text-align:center;line-height:40px;border-radius:10px}.brand-sub{display:block;font-size:9px;color:var(--muted);font-weight:normal;letter-spacing:2px;margin-top:4px}.nav nav{display:flex;align-items:center;gap:40px;font-size:13px}.nav .active{border-bottom:1px solid var(--ink)}.nav-contact{border:1px solid var(--line);border-radius:30px;padding:10px 21px}.nav-contact span{margin-left:20px}main{margin:0 5%}.hero{padding:55px 0 0;position:relative}.eyebrow{font-size:10px;letter-spacing:2px;display:flex;align-items:center;gap:9px}.green-dot{width:7px;height:7px;background:var(--green);border-radius:50%}.hero-year{margin-left:auto;color:var(--muted)}h1{font-size:clamp(50px,6.3vw,99px);letter-spacing:-4px;font-weight:500;line-height:1.22;margin:30px 0 35px}.serif{font-family:'STSong','SimSun',serif;font-weight:400}.outline{font-weight:400;color:#8a8d80}h1 em{font-family:Georgia,serif;color:var(--green);font-weight:400}.orange-star{display:inline-block;color:var(--orange);font-size:85px;margin-left:55px;vertical-align:middle}.hero-bottom{display:flex;align-items:center;justify-content:space-between;margin-bottom:40px}.hero-bottom p{color:#73766b;margin:0;line-height:1.9}.round-link{display:flex;gap:25px;align-items:center}.round-link span{border:1px solid var(--line);border-radius:50%;width:42px;height:42px;display:grid;place-items:center;font-size:20px}.hero-rule{border-top:1px solid var(--line);padding:14px 0;color:var(--muted);font-size:9px;letter-spacing:1.5px;display:flex;justify-content:space-between}.works{padding-top:54px}.section-title{display:flex;align-items:center;justify-content:space-between}h2{margin:0;font-size:29px;letter-spacing:-1px;font-weight:500}.section-title h2 span{font-family:Georgia,serif;font-size:15px;font-style:italic;color:var(--muted);letter-spacing:0;margin-left:18px}#count{color:var(--muted);font-size:11px}.filter-row{display:flex;justify-content:space-between;align-items:center;gap:20px;margin:28px 0}.filters{display:flex;gap:8px;flex-wrap:wrap}.filters button{border:1px solid transparent;background:transparent;color:#71756a;border-radius:24px;padding:8px 17px;font-size:12px}.filters button.selected{background:var(--ink);color:white}.filters button:hover{border-color:var(--line)}.filters sup{font-size:9px;margin-left:7px;opacity:.6}.search{display:flex;align-items:center;gap:7px;border-bottom:1px solid var(--line);padding:5px 0}.search input{width:130px;background:none;border:0;outline:none;font-size:12px}.search span{font-size:24px;color:var(--muted)}.masonry{columns:3;column-gap:24px}.work-card{display:block;break-inside:avoid;margin:0 0 28px;width:100%;border:0;background:transparent;padding:0;text-align:left;color:inherit}.work-image{overflow:hidden;position:relative;background:#e6e8e0;border-radius:5px}.work-image img{width:100%;height:auto;display:block;transition:transform .5s;min-height:120px}.work-card:hover img{transform:scale(1.035)}.work-card:hover .arrow{transform:translate(2px,-2px)}.work-card.video .work-image{aspect-ratio:4/5;background:linear-gradient(145deg,#626e63,#242c26)}.work-card.video img{height:100%;object-fit:cover;opacity:.75}.video-fallback{height:100%;display:flex;align-items:center;justify-content:center;color:#e9ede1;font-family:Georgia,serif;font-size:40px;text-align:center;padding:30px;line-height:1.3}.play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:60px;height:60px;border:1px solid #ffffff80;border-radius:50%;display:grid;place-items:center;background:#ffffff30;color:#fff;backdrop-filter:blur(8px);font-size:21px}.badge{position:absolute;bottom:14px;left:14px;color:white;background:#1d211c88;border-radius:20px;font-size:10px;padding:3px 10px;letter-spacing:1px}.work-caption{display:flex;justify-content:space-between;align-items:center;padding-top:13px}.work-caption h3{font-size:14px;font-weight:500;margin:0}.work-caption p{font-size:10px;color:var(--muted);margin:3px 0 0;letter-spacing:1px}.arrow{font-size:20px;color:#8a8e80;transition:transform .2s}.empty{padding:80px 0;text-align:center;color:var(--muted)}.end-note{text-align:center;padding:50px 0 70px;color:#858a7d;font-size:12px}.end-note span{display:block;letter-spacing:2px;font-size:8px;margin-top:8px}.about{border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:75px 0}.about h2{font-size:clamp(30px,3.2vw,48px);line-height:1.5;margin-top:20px}.orange{color:var(--orange)}.about-copy h3{font-size:23px;font-weight:500;margin:0}.about-copy p{color:#777d70;font-size:13px}.skills{display:flex;flex-wrap:wrap;gap:10px;margin:23px 0}.skills span{border:1px solid var(--line);padding:4px 12px;border-radius:3px;font-size:11px;color:#73776b}.about pre{font:inherit;white-space:pre-wrap}.button{background:var(--ink);color:white;border:0;padding:11px 21px;display:inline-block;border-radius:4px}.button.secondary{background:transparent;color:var(--ink);border:1px solid var(--line)}.contact{border-top:1px solid var(--line);padding:60px 0}.contact h2{font-size:clamp(35px,5vw,70px);margin:20px 0}.contact h2>span:last-child{float:right;color:var(--green)}#contacts{display:flex;flex-wrap:wrap;gap:25px;color:#73776c}footer{margin:0 5%;padding:25px 0;border-top:1px solid var(--line);display:flex;justify-content:space-between;font-size:10px;color:var(--muted)}.viewer{position:fixed;inset:0;max-width:100vw;max-height:100dvh;width:100%;height:100dvh;margin:0;border:0;background:#11140f;color:white;padding:0}.viewer::backdrop{background:#111}.viewer-bar{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;gap:15px;background:#11140ff0;z-index:3;padding:16px 4%;backdrop-filter:blur(10px)}.viewer-bar button{background:#ffffff15;border:1px solid #ffffff30;color:white;border-radius:50%;width:38px;height:38px;margin-left:8px}#viewer-media{text-align:center;min-height:65vh;display:flex;align-items:center;justify-content:center}#viewer-media img{max-width:100%;height:auto;display:block;margin:auto}#viewer-media video{width:90%;max-height:78vh}#viewer-description{max-width:900px;margin:25px auto;padding:0 20px;color:#bcc0b5;white-space:pre-wrap}#toast{position:fixed;bottom:25px;left:50%;transform:translateX(-50%);background:var(--ink);color:white;border-radius:7px;padding:12px 22px;z-index:20;display:none}#toast.show{display:block}
.admin-wrap{max-width:1180px;margin:40px auto;padding:0 25px}.admin-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:30px}.panel{padding:28px;background:white;border:1px solid var(--line);border-radius:9px;margin-bottom:25px}.panel h2{font-size:22px;margin-bottom:18px}.login-panel{max-width:420px;margin:12vh auto}.field{display:block;margin-bottom:16px;font-size:12px;color:#6e7566}.field input,.field textarea,.field select{display:block;width:100%;border:1px solid var(--line);border-radius:4px;background:#fafbf7;padding:11px;margin-top:5px;color:var(--ink)}.field textarea{min-height:100px;resize:vertical}.admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.admin-actions{display:flex;gap:10px;flex-wrap:wrap}.admin-list{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}.admin-card{border:1px solid var(--line);border-radius:6px;padding:12px;min-width:0}.admin-card img{width:100%;height:160px;object-fit:cover;border-radius:3px}.admin-card h3{font-size:13px;overflow-wrap:anywhere}.admin-card p{color:var(--muted);font-size:11px}.admin-card button{border:1px solid var(--line);background:white;padding:5px 12px;border-radius:4px;margin:0 7px 5px 0}.admin-card .danger{color:#b24035}.hint{color:var(--muted);font-size:12px}.error{color:#b24035}.upload-zone{border:1px dashed #a8b19b;background:#f6f8f1;padding:25px;text-align:center;border-radius:5px;margin-bottom:15px}.upload-zone input{max-width:100%}progress{width:100%;accent-color:var(--green)}.admin-tabs{display:flex;gap:12px;margin:20px 0}.admin-tabs button{border:1px solid var(--line);padding:9px 20px;border-radius:30px;background:white}.admin-tabs button.selected{background:var(--ink);color:white}#edit-dialog{width:min(600px,94vw);border:1px solid var(--line);border-radius:8px;max-height:90vh;padding:25px}#edit-dialog::backdrop{background:#0008}
@media(min-width:1600px){main,.nav,footer{max-width:1440px;margin-left:auto;margin-right:auto}.masonry{columns:4}}@media(max-width:900px){.masonry{columns:2;column-gap:18px}.nav nav{gap:22px}.hero{padding-top:40px}h1{font-size:70px}.orange-star{font-size:60px;margin-left:20px}.about{gap:35px}.admin-list{grid-template-columns:repeat(3,1fr)}}@media(max-width:600px){.nav{height:80px;margin:0 6%}.brand{font-size:10px}.brand-sub{font-size:8px}.brand-icon{width:35px;height:35px;font-size:32px;line-height:32px}.nav nav{gap:17px;font-size:11px}.nav-contact{padding:0;border:0}.nav-contact span{display:none}main,footer{margin-left:6%;margin-right:6%}.hero{padding-top:32px}.hero .eyebrow{font-size:8px;letter-spacing:1px}h1{font-size:clamp(42px,10.8vw,65px);letter-spacing:-2px;margin:30px 0}.orange-star{font-size:35px;margin-left:10px}.hero-bottom{align-items:flex-end;margin-bottom:25px;gap:12px}.hero-bottom p{font-size:11px}.round-link{font-size:10px;gap:10px}.round-link span{width:32px;height:32px;font-size:16px}.hero-rule{font-size:7px;letter-spacing:.5px}.hero-rule span:last-child{display:none}.works{padding-top:35px}h2{font-size:25px}.section-title h2 span{font-size:11px;margin-left:8px}#count{font-size:9px}.filter-row{display:block;margin:20px 0}.filters{gap:4px}.filters button{padding:7px 10px;font-size:10px}.filters sup{margin-left:3px}.search{margin-top:15px;width:100%}.search input{width:100%}.masonry{columns:2;column-gap:12px}.work-card{margin-bottom:22px}.work-caption{padding-top:8px;gap:5px}.work-caption h3{font-size:11px}.work-caption p{font-size:8px;letter-spacing:0}.arrow{font-size:14px}.badge{font-size:8px;left:8px;bottom:8px}.play{width:42px;height:42px;font-size:16px}.about{grid-template-columns:1fr;padding:45px 0;gap:25px}.about h2{font-size:36px}.about-copy h3{font-size:21px}.contact{padding:40px 0}.contact h2{font-size:35px}footer{font-size:8px;gap:10px}footer>span:nth-child(2){display:none}.viewer-bar{font-size:12px}.viewer-bar button{width:32px;height:32px;margin-left:4px}.admin-grid{grid-template-columns:1fr;gap:0}.admin-list{grid-template-columns:repeat(2,1fr)}.admin-wrap{padding:0 15px}.panel{padding:18px}.admin-head h1{font-size:28px;letter-spacing:-1px}.admin-head{gap:20px}.admin-card img{height:120px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}
