:root{--paper:#f7f5f1;--ink:#242320;--muted:#77736c;--accent:#95755d;--line:#d8cec2;--serif:'Noto Serif TC',serif;--sans:'DM Sans','Noto Sans TC',sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:35px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-weight:300}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}img{display:block;width:100%}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,.gallery:focus-visible{outline:2px solid var(--accent);outline-offset:6px}.topbar{height:88px;margin:0 5.35%;display:flex;align-items:center;justify-content:space-between}.brand{width:116px}.brand img{height:auto}.topbar nav{display:flex;gap:36px;font-size:12px;letter-spacing:.035em;font-weight:400}.topbar nav a{padding:10px 0}.topbar nav a:hover{color:var(--accent)}.menu-toggle{display:none}.showcase{position:relative;padding-top:5.45vw;height:calc(70.5vw - 88px);min-height:720px;max-height:1120px;overflow:hidden}.gallery{position:relative;width:62.5%;margin-left:27.5%;touch-action:pan-y;cursor:grab}.gallery:active{cursor:grabbing}.hero-link{display:block;overflow:hidden;aspect-ratio:16/9}.hero-image{height:100%;object-fit:cover;transition:opacity .2s,transform .6s}.hero-link:hover .hero-image{transform:scale(1.015)}.gallery.is-changing .hero-image{opacity:.35}.next-preview{display:block;margin:0 auto;width:86.4%;border:0;padding:0;background:none;aspect-ratio:16/9;overflow:hidden}.next-preview img{height:100%;object-fit:cover;filter:brightness(.85)}.intro{position:absolute;z-index:2;top:17.5vw;left:5.25%;pointer-events:none}.intro h1{margin:0 0 20px;font:400 clamp(30px,2.85vw,52px)/1.5 var(--serif);letter-spacing:.025em}.intro p{font-size:clamp(12px,1.08vw,18px);letter-spacing:.09em;color:#6c6861;margin:0;line-height:1.9}.explore{pointer-events:auto;display:inline-flex;align-items:center;gap:22px;margin-top:52px;padding-bottom:8px;border-bottom:1px solid #b39b85;font-size:16px;letter-spacing:.13em;color:var(--accent)}.explore span{font-size:25px;line-height:1}.drag-next{position:absolute;right:5.3%;top:25.5vw;display:flex;align-items:center;gap:22px;padding:0;border:0;background:none;color:var(--accent);font-size:12px;letter-spacing:.34em}.drag-circle{display:grid;place-items:center;width:62px;height:62px;border:1px solid var(--accent);border-radius:50%;background:#f7f5f1b3;font-size:22px;letter-spacing:0}.drag-next:hover .drag-circle{background:var(--paper)}.pagination{position:absolute;right:4.4%;top:37vw;display:flex;flex-direction:column;align-items:center;gap:12px;color:var(--accent)}.pagination button{background:none;border:0;padding:7px;font-size:14px;letter-spacing:.12em}.rule{height:54px;width:1px;background:#77716a}.pagination .next{color:#92877c}.scroll-cue{position:absolute;left:5.35%;bottom:40px;font-size:23px;color:var(--accent);padding-top:48px;border-left:1px solid var(--line);line-height:1}.shell{max-width:1600px;margin:auto;width:89.3%}.section{padding:95px 0}.section-heading{display:flex;justify-content:space-between;align-items:center;margin-bottom:52px}.section-heading span,.cta>p:first-child{font-size:11px;letter-spacing:.19em;color:var(--accent)}.section-heading h2{font:400 30px var(--serif);margin:0}.work-grid{display:grid;grid-template-columns:1fr 1fr;gap:65px 45px}.work-card:nth-child(even){margin-top:85px}.work-card figure{margin:0;aspect-ratio:16/9;overflow:hidden}.work-card img{height:100%;object-fit:cover;transition:transform .6s}.work-card:hover img{transform:scale(1.035)}.work-card h2{font:400 23px var(--serif);margin:22px 0 10px}.work-card p{font-size:12px;color:var(--muted);letter-spacing:.08em}.cta{text-align:center;border-top:1px solid var(--line);padding-top:90px}.cta h2{font:400 clamp(30px,3vw,48px)/1.6 var(--serif);margin:30px 0}.approach-copy{font-size:14px;line-height:2.2;color:var(--muted);margin-top:30px}.button{display:inline-block;padding:15px 0;border-bottom:1px solid var(--accent);color:var(--accent)}.footer{padding:45px 0;border-top:1px solid var(--line)}.footer-inner{display:flex;justify-content:space-between;align-items:center}.footer-brand{font:20px Georgia,serif;letter-spacing:.15em}.footer p{font-size:12px;color:var(--muted)}.footer-nav{display:flex;gap:25px;font-size:11px}.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}
@media(min-width:1700px){.showcase{max-height:none}.intro h1{font-size:3vw}}
@media(max-width:1000px) and (min-width:701px){.topbar nav{gap:22px}.showcase{min-height:650px}.intro{top:20vw}.intro p{max-width:340px}.drag-next{right:3%;gap:10px}.drag-circle{width:48px;height:48px}.pagination{top:43vw}.explore{margin-top:30px}}
@media(max-width:700px){.topbar{height:76px;margin:0 6%}.brand{width:110px}.menu-toggle{display:block;border:0;background:none;font-size:11px;letter-spacing:.1em;padding:12px 0}.topbar nav{display:none;position:absolute;top:75px;left:0;right:0;padding:26px 6%;background:var(--paper);z-index:10;border-bottom:1px solid var(--line);gap:12px;flex-direction:column}.topbar nav.is-open{display:flex}.showcase{padding:0 0 45px;min-height:0;height:auto;max-height:none}.intro{position:relative;top:auto;left:auto;margin:50px 6% 35px}.intro h1{font-size:clamp(25px,6.4vw,42px);margin-bottom:15px;white-space:nowrap}.intro p{font-size:12px;line-height:2;letter-spacing:.04em;max-width:290px}.explore{font-size:13px;margin-top:26px;gap:22px}.gallery{width:88%;margin-left:6%}.hero-link{aspect-ratio:1.12}.next-preview{height:100px;aspect-ratio:auto}.drag-next{right:8%;top:auto;bottom:123px;gap:0}.drag-next>span:last-child{display:none}.drag-circle{width:46px;height:46px}.pagination{position:relative;top:auto;right:auto;flex-direction:row;justify-content:center;margin-top:20px;gap:8px}.rule{height:1px;width:35px}.scroll-cue{display:none}.shell{width:88%}.section{padding:45px 0}.section-heading{display:block;margin-bottom:30px}.section-heading h2{font-size:25px;margin-top:18px}.work-grid{grid-template-columns:1fr;gap:34px}.work-card:nth-child(even){margin-top:0}.work-card h2{font-size:21px;margin-top:18px}.cta{padding-top:45px}.approach-copy{font-size:12px}.footer-inner{display:block}.footer-nav{margin-top:28px;gap:18px;flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{transition:none!important}}

.explore img{width:30px;height:20px}.drag-circle img{width:25px;height:25px}.scroll-cue img{width:15px;height:22px}.explore img,.drag-circle img,.scroll-cue img{opacity:.6}

/* One viewport, vertical portfolio stage. */
html,body{height:100%;overflow:hidden;overscroll-behavior:none}
.showcase{height:calc(100svh - 88px);min-height:0;max-height:none;padding-top:7.6svh;touch-action:pan-x pinch-zoom}
.gallery{touch-action:pan-x pinch-zoom;will-change:transform}
.hero-link{aspect-ratio:auto;height:61svh}
.intro{top:25svh}.drag-next{top:36svh}.pagination{top:52svh}
.scroll-cue{bottom:4svh}.drag-circle img{transform:rotate(90deg)}
main[hidden]{display:none!important}
@media(max-width:700px){
.showcase{height:calc(100svh - 76px);padding:0;min-height:0}
.intro{position:relative;top:auto;margin:3svh 6% 3svh}
.intro h1{font-size:clamp(23px,6.4vw,32px);margin-bottom:10px}
.intro p{font-size:11px;line-height:1.8}
.explore{margin-top:16px}
.hero-link{height:43svh}
.next-preview{height:18svh}
.pagination{position:absolute;top:auto;bottom:12px;right:6%;margin:0;background:var(--paper);padding:4px 8px}
.drag-next{top:auto;bottom:16svh}.gallery{width:88%;margin-left:6%}
}

/* Keep the photograph inside one fixed aperture throughout the transition. */
.hero-link{position:relative;isolation:isolate}
.hero-image,.slide-incoming{width:100%;height:100%;object-fit:cover;transition:none;will-change:transform}
.slide-incoming{position:absolute;inset:0;pointer-events:none}
.hero-link:hover .hero-image{transform:none}

.next-preview{position:relative;isolation:isolate}

.gallery-transition-image{position:absolute;top:0;left:0;width:100%;object-fit:cover;transform-origin:top center;pointer-events:none;will-change:transform,opacity;z-index:1}

.gallery{will-change:auto}.gallery-transition-image{backface-visibility:hidden}.next-preview img{filter:none}

.mobile-selected{display:none}
@media(max-width:700px){
html,body{height:auto;overflow-x:hidden;overflow-y:auto;overscroll-behavior:auto}
.showcase{display:none}
.mobile-selected{display:block;padding-bottom:26px}
.topbar{height:68px;margin:0 6%}.brand{width:124px}
.menu-toggle{font-size:0;width:31px;height:28px;padding:0;border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);position:relative;transform:scaleY(.7)}
.menu-toggle:after{content:'';position:absolute;left:0;right:0;top:50%;border-top:1px solid var(--ink)}
.mobile-selected-heading h1{font-family:'Bodoni Moda','Cormorant Garamond',serif;font-weight:400;font-size:30vw;line-height:1.08;letter-spacing:-.07em;margin:0 0 8px -.8vw}
.mobile-selected-heading>p{font:400 4.6vw/1.7 var(--serif);margin:0 5.5% 20px}
.mobile-collage{position:relative;height:112vw;margin:0 3.5%}
.mobile-main-photo{position:absolute;top:0;right:0;width:65%;height:108vw}
.mobile-main-photo img{width:100%;height:100%;object-fit:cover}
.mobile-editorial-note{position:absolute;left:2%;top:4vw}
.mobile-folio{font:400 21vw/1 'Bodoni Moda',serif;letter-spacing:-.07em}
.mobile-editorial-note i{display:block;width:38px;border-top:1px solid var(--ink);transform:rotate(-45deg);margin:20px 0 23px}
.mobile-editorial-note p{font-size:8px;letter-spacing:.25em;line-height:2.1}
.mobile-companion{position:absolute;left:0;top:52vw;width:42%;margin:0;z-index:2}
.mobile-companion img{height:48vw;object-fit:cover}
.mobile-companion figcaption{font:400 11px/1.7 var(--serif);padding:8px 3px;background:var(--paper)}
.mobile-companion small{display:block;font:6px/2 var(--sans);letter-spacing:.22em;margin-top:3px;white-space:nowrap}
.mobile-case-info{margin:2vw 5.5% 0;display:flex;align-items:center;justify-content:space-between;gap:10px}
.mobile-case-info h2{font:400 6.4vw/1.4 var(--serif);margin:0 0 7px}
.mobile-case-info p{font-size:8px;letter-spacing:.25em;line-height:2;margin:0}
.mobile-enter{display:flex;align-items:center;gap:12px;font:400 13px var(--serif)}
.mobile-enter>span{display:grid;place-items:center;width:49px;height:49px;border:1px solid var(--ink);border-radius:50%;font:25px var(--sans)}
.mobile-enter small{display:block;font:8px var(--sans);letter-spacing:.2em;margin-top:10px}
.mobile-case-pages{display:flex;align-items:center;gap:14px;margin:22px 5.5% 34px}
.mobile-case-pages button{border:0;background:none;padding:8px 0;font:14px var(--serif)}
.mobile-case-pages>span{width:62px;height:1px;background:var(--line)}
.mobile-colophon{margin:0 5.5%;display:flex;justify-content:space-between;gap:12px;font-size:9px;letter-spacing:.15em;line-height:1.8}
.mobile-colophon small{display:block;font-size:5px;letter-spacing:.18em;margin-top:5px}
}

.case-name-en{display:block;font:400 12px/1.7 var(--sans);letter-spacing:.06em;color:var(--muted);margin-top:8px}
@media(max-width:700px){
.mobile-collage{height:auto;display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:0 5.5%}
.mobile-main-photo{position:relative;grid-column:1/-1;inset:auto;width:100%;height:auto;aspect-ratio:16/9}
.mobile-editorial-note{position:relative;inset:auto;grid-column:1;grid-row:2}
.mobile-editorial-note .mobile-folio{font-size:16vw}
.mobile-editorial-note i{margin:10px 0 16px}
.mobile-companion{position:relative;inset:auto;width:100%;grid-column:2;grid-row:2;align-self:start}
.mobile-companion img{height:auto;aspect-ratio:16/9;object-fit:cover}
.mobile-case-info{margin-top:24px;align-items:flex-start}
.mobile-case-info h2{font-size:5.1vw}
.mobile-case-info .case-name-en{font-size:10px;line-height:1.6;letter-spacing:.035em}
}

/* Keep the selected case aperture at the same film ratio on every screen. */
.hero-link{aspect-ratio:16/9;height:auto}
@media(min-width:701px){.gallery{width:min(62.5%,calc(61svh * 16 / 9))}}
