:root{--bg:#111110;--ink:#e3e1db;--muted:#96958e;--line:#353530;--paper:#e9e6df;--dark:#23231f;color-scheme:dark;font-family:Arial,'PingFang SC','Microsoft YaHei',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--ink);font-size:16px;line-height:1.6}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button{cursor:pointer}a:focus-visible,button:focus-visible{outline:2px solid #c1a985;outline-offset:6px}header{height:100px;padding:29px 3.5vw;display:flex;justify-content:space-between;align-items:start;gap:25px}.identity{font-size:17px;letter-spacing:.03em}.identity span{display:block;font-size:14px;color:var(--muted);letter-spacing:0}nav{display:flex;gap:38px;font-size:14px;color:var(--muted)}nav a:hover,nav a[aria-current=page]{color:var(--ink)}.index{padding:20px 3.5vw 100px}.index-intro{display:flex;justify-content:space-between;font-size:14px;line-height:1.55}.index-intro p{margin:0}.index-intro span{color:var(--muted)}.gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:5vw;row-gap:90px;margin-top:36px}.work{min-width:0;display:flex;flex-direction:column}.object{min-height:285px;display:flex;align-items:center;justify-content:center;padding:25px 0 35px}.object>img,.ticket-crop,.map-cover{width:100%;height:auto;max-height:400px;object-fit:contain;transition:transform .5s cubic-bezier(.2,.7,.2,1),filter .5s;filter:saturate(.85);box-shadow:0 20px 28px #0005}.work:hover .object>img,.work:hover .ticket-crop{transform:translateY(-8px) rotate(0);filter:saturate(1)}.work-label{display:flex;gap:12px;align-items:baseline;font-size:12px;color:var(--muted);border-top:1px solid #33332f;padding-top:12px}.work-label h2{margin:0;font-weight:400;font-size:15px;color:var(--ink);line-height:1.6}.work-label h2 span{display:block;color:var(--muted);font-size:13px}.work-label small{font-size:12px;margin-left:auto;max-width:105px;text-align:right;line-height:1.5}.ticket-work{grid-column:1/5}.siff-work{grid-column:5/9}.docs-work{grid-column:9/13}.neon-work{grid-column:1/6}.vintage-work{grid-column:7/13}.traces-work{grid-column:1/6}.trip-work{grid-column:6/13}.fox-work{grid-column:1/4}.cannes-work{grid-column:5/9}.cee-work{grid-column:9/13}.ticket-crop{position:relative;aspect-ratio:2.06;overflow:hidden;transform:rotate(-7deg);box-shadow:none}.ticket-crop img{position:absolute;width:1280%;max-width:none;left:-564%;top:-148%}.siff-work .object>img{transform:rotate(-4deg);width:90%}.docs-work .object>img{transform:rotate(5deg);width:92%}.neon-work .object>img{transform:rotate(-2deg)}.vintage-work .object>img{transform:rotate(3deg);width:85%}.traces-work .object>img{transform:rotate(-4deg)}.fox-work .object>img{max-height:380px;transform:rotate(-3deg)}.cannes-work .object>img{max-height:380px;transform:rotate(4deg)}.map-cover{background:var(--paper);color:var(--dark);padding:30px;min-height:250px;font-family:Georgia,serif}.map-cover small{font-size:13px}footer{padding:30px 3.5vw;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;justify-content:space-between;gap:15px;color:var(--muted);font-size:13px}.project-heading{padding:60px 6vw 45px;display:grid;grid-template-columns:1fr 2fr;gap:5vw}.eyebrow{font-size:12px;letter-spacing:.08em;color:var(--muted)}.project h1{font-family:Georgia,'Songti SC',serif;font-weight:400;font-size:clamp(32px,4.5vw,70px);line-height:1.12;margin:0 0 20px}.project h1 span{display:block;font-family:Arial,'PingFang SC',sans-serif;font-size:clamp(20px,2vw,30px);margin-top:18px;line-height:1.5}.project-meta{display:flex;flex-wrap:wrap;gap:28px;color:var(--muted);font-size:13px}.project-cover{margin:0 auto 60px;max-width:1350px;padding:0 6vw}.project-cover img{width:100%;max-height:720px;object-fit:contain}.caption{font-size:12px;color:var(--muted);margin-top:12px;line-height:1.7}.book{margin:0 4vw 70px;background:var(--paper);color:var(--dark);box-shadow:0 15px 50px #0005}.spread{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid #c6c3bc;position:relative}.spread:before{content:'';position:absolute;left:50%;top:0;bottom:0;width:1px;background:#c7c3bb;box-shadow:2px 0 12px #0002;pointer-events:none}.leaf{padding:5vw;min-width:0}.leaf h2{font-family:Georgia,'Songti SC',serif;font-weight:400;font-size:clamp(26px,3vw,44px);line-height:1.35;margin:15px 0 30px}.leaf h2 span{display:block;font-family:Arial,sans-serif;font-size:16px;margin-top:10px}.leaf p{line-height:1.95;margin:0 0 22px}.en{color:#66665f;font-size:15px;line-height:1.8!important}.leaf .eyebrow{color:#696961}.leaf img{width:100%;display:block;margin:20px 0}.leaf .caption{color:#68675e}.folio{font-size:12px;color:#76746b;display:block;margin-top:32px}.detail-pair{margin:30px 0;padding-top:22px;border-top:1px solid #c6c3bc}.detail-pair h3{font-weight:400;font-size:19px;margin:0 0 10px}.detail-pair p{margin:0 0 9px}.photo-grid{padding:0 6vw 60px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px}.photo-grid figure{margin:0}.photo-grid img{width:100%;height:420px;object-fit:contain;background:#0b0b0b}.photo-grid .wide{grid-column:1/-1}.photo-grid .wide img{height:auto;max-height:700px}.note-spread .leaf{padding-top:60px;padding-bottom:60px}.next-project{display:flex;justify-content:space-between;padding:30px 6vw 65px;font-size:15px}.next-project a:hover{text-decoration:underline}.about{max-width:1350px;margin:65px auto 100px;padding:0 6vw;display:grid;grid-template-columns:1fr 1.2fr;gap:8vw}.about img{width:100%;max-height:720px;object-fit:cover}.about h1{font-family:Georgia,'Songti SC',serif;font-weight:400;font-size:44px;line-height:1.3;margin:0 0 26px}.about h1 span{display:block;font-size:30px;margin-top:12px}.about p{line-height:1.9}.about .en{color:var(--muted)}.contacts{border-top:1px solid var(--line);padding-top:20px;margin-top:35px}.contacts a{border-bottom:1px solid #555}.notes-index{margin:65px 6vw 120px}.notes-index h1{font-family:Georgia,'Songti SC',serif;font-weight:400;font-size:48px}.note-link{display:grid;grid-template-columns:70px 1fr 180px;padding:36px 0;border-top:1px solid var(--line);gap:20px}.note-link h2{font-weight:400;font-size:24px;margin:0 0 10px}.note-link p{color:var(--muted);margin:0}.note-link:hover h2{text-decoration:underline}.note-link small{color:var(--muted);font-size:13px}.lightbox{border:0;background:#0b0b0bf5;color:white;width:95vw;max-width:1600px;max-height:95vh;padding:45px 25px 20px}.lightbox::backdrop{background:#000b}.lightbox img{max-height:78vh;width:100%;object-fit:contain}.dialog-close{position:absolute;right:20px;top:12px;border:0;background:transparent;color:inherit}.zoom{cursor:zoom-in}.review-toggle{position:fixed;right:20px;bottom:20px;border:1px solid #5a5a51;background:#24241f;color:#eeede5;border-radius:3px;padding:10px 18px;z-index:50;font-size:14px}.review-panel{position:fixed;inset:0 0 0 auto;width:min(410px,100%);background:#e9e6df;color:#282820;z-index:100;padding:28px;overflow:auto;box-shadow:-15px 0 70px #0006}.review-panel[hidden]{display:none}.review-panel h2{font-size:22px;font-weight:400;margin:20px 0}.review-panel p{font-size:14px;line-height:1.7}.review-panel button{border:1px solid #8f8b7f;background:transparent;padding:9px 12px;color:#282820;font-size:13px}.review-panel textarea{width:100%;min-height:115px;background:#f8f7f3;color:#25251f;border:1px solid #9e9a8c;padding:12px;font-size:15px;resize:vertical}.review-panel label{display:block;font-size:13px;margin:18px 0 8px}.review-panel .primary{background:#282820;color:#fff}.review-actions{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0 24px}.comment{border-top:1px solid #beb9aa;padding:16px 0}.comment p{white-space:pre-wrap;overflow-wrap:anywhere}.comment small{display:block;color:#646057;font-size:12px}.comment.done{opacity:.55}.comment.done p{text-decoration:line-through}.review-on [data-review]{cursor:crosshair;outline:1px dashed #b9a680;outline-offset:4px}.review-on [data-review]:hover,.review-selected{outline:2px solid #d5ba7c!important;outline-offset:4px}.review-on main,.review-on header,.review-on footer{margin-right:min(410px,32vw)}.review-status{font-size:13px;min-height:24px}@media(min-width:1500px){.object{min-height:365px}.gallery{row-gap:110px}}@media(max-width:900px){nav{gap:20px}.gallery{column-gap:30px;row-gap:60px}.work{grid-column:span 6}.trip-work{grid-column:1/-1}.object{min-height:220px}.work-label small{display:none}.leaf{padding:35px}.photo-grid img{height:300px}.review-on main,.review-on header,.review-on footer{margin-right:0}.review-panel{top:auto;height:46vh;border-top:1px solid #aaa;width:100%}.review-on{padding-bottom:46vh}}@media(max-width:600px){header{height:115px;padding:22px;gap:14px}.identity{font-size:15px}.identity span{font-size:12px}nav{gap:13px;font-size:12px;flex-wrap:wrap;justify-content:flex-end;max-width:200px}.index{padding:12px 22px 60px}.index-intro{font-size:12px}.gallery{display:block;margin-top:35px}.work{margin-bottom:45px}.object{min-height:235px;padding:30px 12px 35px}.work-label small{display:block}.object>img{max-height:340px}.ticket-work .object{min-height:200px}.fox-work .object>img,.cannes-work .object>img{max-height:350px;width:auto;max-width:85%}.project-heading{display:block;padding:35px 22px}.project-heading>.eyebrow{margin-bottom:25px}.project h1{font-size:36px}.project-meta{gap:15px}.project-cover{padding:0 20px;margin-bottom:30px}.book{margin:0 12px 35px}.spread{display:block}.spread:before{display:none}.leaf{padding:30px 25px}.leaf+.leaf{border-top:1px solid #ccc7bc}.leaf h2{font-size:29px}.photo-grid{padding:0 22px 40px;gap:25px;display:block}.photo-grid figure{margin-bottom:28px}.photo-grid img{height:auto;max-height:500px}.about{display:block;margin:30px auto 65px;padding:0 22px}.about img{max-height:460px;object-position:center 45%;margin-bottom:35px}.about h1{font-size:34px}.notes-index{margin:40px 22px 80px}.note-link{grid-template-columns:30px 1fr}.note-link>small:last-child{grid-column:2}.note-link h2{font-size:21px}footer{padding:25px 22px 80px}.next-project{padding:20px 22px 40px;gap:20px;font-size:13px}.review-toggle{bottom:12px;right:12px}.review-on .review-toggle{display:none}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
:root{--focus:#c8b28b}
.ticket-crop{aspect-ratio:2}.ticket-crop img{width:1248.78%;left:-54.88%;top:-76.83%}
.siff-work .object>img{width:auto;max-width:80%;max-height:315px}
.docs-work .object>img{width:100%;transform:rotate(3deg)}
.cee-work .object>img{max-height:365px;width:auto;max-width:100%;transform:rotate(-3deg)}
.project-cover figure{margin:0}.project-cover .caption{text-align:center}
.note-link:focus-visible{outline-offset:0}
@view-transition{navigation:auto}
::view-transition-old(root){animation:fade-out .16s ease both}
::view-transition-new(root){animation:fade-in .24s ease both}
@keyframes fade-in{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
@keyframes fade-out{to{opacity:0}}
