@import url('/assets/fonts/caslon.css');
@import url('/assets/fonts/bodoni.css');

:root{--bg:#1b1814;--fg:#eeede8;--muted:#a4a7ae;--line:#cbd2e32b;--gutter:22px;--header:72px;--safe:env(safe-area-inset-bottom,0px);--ease:cubic-bezier(.19,1,.22,1);--ease-in-out:cubic-bezier(.76,0,.24,1);--serif:'Bodoni Moda','YF Caslon','YF Song',Didot,serif;--song:'YF Song','YF Caslon','Songti SC',STSong,SimSun,serif;--text:'YF Caslon','YF Song',serif}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header) + 24px);background:var(--bg);color-scheme:dark}
body{margin:0;background:var(--bg);color:var(--fg);font-family:var(--song),var(--text);font-size:14px;font-weight:400;line-height:1.9;-webkit-font-smoothing:antialiased;font-synthesis:none}
body.dialog-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
button,a,select{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible,summary:focus-visible,[tabindex="0"]:focus-visible{outline:1px solid #dce3fa;outline-offset:6px}
button:disabled{opacity:.24;cursor:default}
::selection{background:#c7c6d6;color:#1b1814}
h1,h2,h3,p,figure,dl,dd{margin:0}
h1,h2,h3{font-family:var(--serif),var(--song);font-weight:400;line-height:1.2;letter-spacing:-.025em;text-wrap:balance;hyphens:none;overflow-wrap:normal;word-break:normal}
h1 [lang|=zh],h2 [lang|=zh],h3 [lang|=zh]{font-family:var(--song);letter-spacing:.025em;line-height:1.45}
ul{list-style:none;margin:0;padding:0}
img,svg{display:block}
img{max-width:100%;height:auto}
svg{width:22px;height:22px}
em{font:inherit}
p{overflow-wrap:break-word;text-wrap:pretty}
[lang|=zh]{font-family:var(--song);line-break:strict;word-break:normal}
[lang=en]{font-family:var(--text)}
h1[lang=en],h2[lang=en],h3[lang=en],h1 [lang=en],h2 [lang=en],h3 [lang=en]{font-family:var(--serif)}
[hidden]{display:none!important}
.section-pad{padding:78px var(--gutter)}
.eyebrow,.hero-meta,.project-topline,.back-link,.gallery-toolbar,.press-meta,.image-credit{font-family:var(--text),var(--song);font-size:9px;font-weight:400;line-height:1.65;letter-spacing:.11em}
.eyebrow{color:var(--muted)}
.eyebrow [lang|=zh],.hero-meta [lang|=zh],.back-link [lang|=zh],.gallery-toolbar [lang|=zh]{letter-spacing:.07em;font-size:11px}
.text-link,.quiet-link{display:inline-flex;align-items:center;justify-content:space-between;gap:24px;min-height:44px;font-family:var(--text),var(--song);font-size:10px;font-weight:400;letter-spacing:.07em;position:relative}
.text-link:after{content:'';position:absolute;left:0;right:0;bottom:4px;height:1px;background:linear-gradient(90deg,#a5a6b3,#e7e6e1);transform-origin:left;transition:transform .55s var(--ease)}
.text-link:hover:after{transform:scaleX(.6)}
.text-link [lang|=zh],.quiet-link [lang|=zh]{font-size:12px;letter-spacing:.075em}
.text-link svg,.quiet-link svg{width:16px;height:16px;transition:transform .6s var(--ease)}
.text-link:hover svg,.quiet-link:hover svg{transform:translate(3px,-3px)}
.button{display:inline-flex;justify-content:space-between;align-items:center;gap:30px;min-height:52px;padding:14px 21px;border:1px solid #d2d3dd80;background:linear-gradient(115deg,#e4e7ee,#c4c8d4 50%,#e9e4dc);color:#11151d;font-family:var(--text),var(--song);font-size:10px;font-weight:500;letter-spacing:.06em;position:relative;overflow:hidden;isolation:isolate;transition:box-shadow .5s,filter .5s,transform .5s var(--ease)}
.button:after{content:'';position:absolute;inset:-1px;z-index:-1;background:radial-gradient(ellipse at var(--light-x,20%) var(--light-y,0%),#fff9,transparent 60%);opacity:0;transition:opacity .5s}
.button:hover:after{opacity:1}
.button:hover{box-shadow:0 0 32px #bac2e31a}
.button:active{transform:scale(.985)}
.button [lang|=zh]{font-size:12px;font-weight:500;letter-spacing:.07em}
.button svg{width:18px;height:18px}
.button-glass{background:linear-gradient(120deg,#dce5ff13,#d4bcf609 55%,#ecdbcc1a);color:var(--fg);border-color:#cdd3ed57;box-shadow:inset 0 1px 0 #edf2ff24;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.icon-button{width:44px;height:44px;display:flex;align-items:center;justify-content:center;flex:none;transition:background .4s,border-color .4s}
.icon-button:active{background:#ffffff12}
.plain-button{font-size:11px;min-height:44px;padding:8px 0;text-align:left}
.section-kicker{display:flex;gap:13px;align-items:center;margin-bottom:25px;color:var(--muted);font-family:var(--text),var(--song);font-size:9px;letter-spacing:.08em}
.section-title{font-size:41px;line-height:1.25}
.section-title:has([lang|=zh]){font-size:33px}
.section-intro{margin-bottom:35px}
.section-intro .eyebrow{margin-bottom:22px}
.display-title{font-size:46px;line-height:1.18;text-wrap:balance}
.display-title:has([lang|=zh]){font-size:38px;letter-spacing:.025em}
.intro-description{max-width:530px;margin-top:25px;color:var(--muted);font-size:14px;line-height:2}
.hero-meta{display:flex;justify-content:space-between;gap:22px;color:var(--muted);font-size:8px}
.hero-meta>span:last-child{text-align:right}
.page-intro{padding-top:34px;padding-bottom:42px;position:relative}
.page-intro:before,.contact-intro:before{content:'';position:absolute;top:-72px;right:0;width:75%;height:340px;background:radial-gradient(ellipse at 90% 10%,#9294cb12,transparent 67%);pointer-events:none}
.page-intro .hero-meta{margin-bottom:35px}
.skip-link{position:fixed;z-index:200;left:20px;top:-100px;background:var(--fg);color:#111;padding:10px 20px}
.skip-link:focus{top:8px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;padding:0;border:0;margin:-1px}
.spark,.booking-bar{display:none!important}

/* A separate opening, composed for a phone before its desktop counterpart. */
.site-header{height:var(--header);display:flex;align-items:center;justify-content:space-between;padding:0 var(--gutter);position:sticky;top:0;z-index:30;background:#1b1814e8;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.wordmark{display:flex;flex-direction:column;gap:4px;align-items:flex-start;line-height:1;min-height:44px;justify-content:center}
.wordmark>span{font-family:var(--serif);font-size:25px;letter-spacing:.015em;font-weight:400}
.wordmark>small{font-family:var(--text);font-size:6px;letter-spacing:.45em;margin-left:1px}
.header-right{display:flex;align-items:center;gap:14px}
.header-inquire{display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;font-size:9px;letter-spacing:.09em}
.header-inquire [lang|=zh]{font-size:12px}
.language-switch{display:flex;align-items:center;width:96px;flex:none;position:relative;height:44px}
.language-switch:before{content:'';position:absolute;left:0;top:13px;width:1px;height:18px;background:var(--line);pointer-events:none}
.language-option{font-family:var(--text),var(--song);position:relative;flex:0 0 44px;min-width:44px;min-height:44px;font-size:10px;line-height:1;letter-spacing:.035em;color:#9299aa;padding:0;transition:color .35s}
.language-option[lang|=zh]{font-family:var(--song);font-size:11px}
.language-option[aria-pressed=true]{color:var(--fg)}
.language-option:after{content:'';position:absolute;bottom:7px;left:13px;right:13px;height:1px;background:#d8d8e9;transform:scaleX(0);transform-origin:center;transition:transform .4s var(--ease)}
.language-option[aria-pressed=true]:after{transform:scaleX(1)}
.language-divider{font-family:var(--text);flex:0 0 8px;text-align:center;font-size:9px;color:#747d91}
.menu-trigger{width:32px;height:44px;display:flex;flex-direction:column;gap:7px;align-items:flex-end;justify-content:center;padding:0}
.menu-trigger span{display:block;width:25px;height:1px;background:var(--fg);transition:width .4s var(--ease)}
.menu-trigger span:last-child{width:17px}
.menu-trigger:hover span:last-child{width:25px}
.reading-progress{position:absolute;bottom:0;left:0;right:0;height:1px;transform:scaleX(var(--reading,0));transform-origin:left;background:linear-gradient(90deg,#677b9b66,#e2dcf3,#d3c1af);pointer-events:none}
.home-opening{position:relative;isolation:isolate;min-height:calc(100svh - var(--header));padding:22px var(--gutter) 26px;display:flex;flex-direction:column;overflow:hidden}
.opening-atmosphere{position:absolute;inset:0;pointer-events:none;z-index:-1;overflow:hidden}
.ambient-orb{position:absolute;border-radius:50%;filter:blur(45px);will-change:transform;animation:ambient-drift 17s ease-in-out infinite alternate}
.ambient-orb-one{width:370px;height:380px;left:-210px;top:-40px;background:radial-gradient(ellipse,#9b9ed955,#5c719c1a 52%,transparent 70%)}
.ambient-orb-two{width:420px;height:470px;right:-250px;top:190px;background:radial-gradient(ellipse,#c4aaa654,#7d82bd2b 45%,transparent 72%);animation-duration:23s;animation-direction:alternate-reverse}
.ambient-contour{position:absolute;top:118px;right:-300px;width:480px;height:560px;border-radius:50%;border:1px solid #d5def81a;box-shadow:0 0 45px #a5a8eb0b,inset 0 0 45px #a5a8eb08;transform:rotate(-28deg)}
.opening-meta{display:flex;justify-content:space-between;gap:18px;font-family:var(--text);font-size:7px;line-height:1.7;letter-spacing:.1em;color:#a7abb7}
.opening-meta>span:last-child{text-align:right}
.opening-title{margin-top:28px;font-family:var(--serif);font-size:13vw;line-height:1.1;letter-spacing:-.045em;font-weight:400;position:relative;max-width:100%;white-space:nowrap}
.type-line{display:block;overflow:hidden;padding-bottom:.15em;margin-bottom:-.15em}
.type-line>span{display:block;transform-origin:0 100%}
.precision-line{font-size:.77em;line-height:1.35;letter-spacing:-.035em}
.precision-line>span{color:#ccd0df;background:linear-gradient(103deg,#f0eae1 1%,#d1cbdc 42%,#96aacd 80%,#eee6de);background-clip:text;-webkit-background-clip:text;-webkit-text-fill-color:transparent}
.js .opening-title .type-line>span{animation:type-arrive 1.35s var(--ease) both}
.js .opening-title .precision-line>span{animation-delay:.13s}
.opening-description{max-width:450px;margin-top:20px;font-size:13px;line-height:2;color:#b7bac2}
.opening-description [lang|=zh]{font-size:14px}
.opening-actions{display:flex;align-items:center;gap:25px;margin-top:23px}
.opening-actions .button{min-height:48px;gap:25px;padding:12px 17px}
.opening-actions .button [lang|=zh]{font-size:11px}
.opening-actions .quiet-link{font-size:8px;gap:10px;letter-spacing:.06em}
.opening-actions .quiet-link [lang|=zh]{font-size:11px}
.opening-actions .quiet-link svg{width:13px;height:13px}
.optics-cover{position:relative;perspective:1400px;margin-top:31px;transform:translateZ(0);isolation:isolate}
.optics-cover:before{content:'';position:absolute;inset:-35px -30px;background:radial-gradient(ellipse at 70% 60%,#8f99d21c,transparent 65%);z-index:-1;pointer-events:none}
.cover-frame{position:relative;width:100%;aspect-ratio:3/2;overflow:hidden;background:#10151e;transform-origin:50% 40%;box-shadow:0 18px 65px #0005,inset 0 0 0 1px #c9cbe825;will-change:transform}
.cover-frame:after{content:'';position:absolute;inset:0;border:1px solid #e9ebff3b;border-image:linear-gradient(130deg,#edf0ff88,#a9b7dd00 37%,#fff3 72%,#9caec166) 1;pointer-events:none;z-index:5}
.cover-source{width:100%;height:100%;object-fit:cover;display:block;position:absolute;inset:0}
.cover-canvas{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;opacity:0;transition:opacity .65s var(--ease)}
.optics-ready .cover-canvas{opacity:1}
.optics-ready.optics-settled .cover-canvas{opacity:0}
.cover-surface{position:absolute;inset:0;pointer-events:none;z-index:3;background:linear-gradient(133deg,#ffffff0c,transparent 27%,transparent 74%,#b6a6ed07);box-shadow:inset 0 0 28px #1014210a}
.cover-specular{position:absolute;inset:-40%;z-index:4;pointer-events:none;background:linear-gradient(110deg,transparent 35%,#e8f0ff00 43%,#e8f0ff15 49.5%,#f3e4ed1f 50%,#dce6ff06 51%,transparent 59%);transform:translateX(-62%) rotate(-5deg);opacity:0}
.optics-cover.is-lit .cover-specular{animation:optical-sweep 2.4s var(--ease) .1s both}
.optics-cover figcaption{display:flex;align-items:center;justify-content:space-between;gap:15px;padding-top:12px;color:#a4a9b7;font-family:var(--text);font-size:6px;line-height:1.7;letter-spacing:.11em}
.opening-scroll{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:auto;padding-top:24px;font-size:8px;letter-spacing:.12em;color:#bfc2cd}
.opening-scroll [lang|=zh]{font-size:10px;letter-spacing:.12em}
.opening-scroll svg{width:14px;height:24px;animation:scroll-breathe 3s ease-in-out infinite}
.selected-section{padding-top:70px;position:relative;isolation:isolate;border-top:1px solid var(--line);background:var(--bg)}
.selected-atmosphere{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none;background:var(--bg)}
.selected-atmosphere-photos{position:absolute;inset:-48px;overflow:hidden;filter:blur(28px) saturate(1.15);transform:translateZ(0)}
.selected-atmosphere-photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;transform:scale(1.7);transform-origin:50% 100%;opacity:0;transition:opacity 950ms cubic-bezier(.22,.61,.36,1)}
.selected-atmosphere-photo.is-current{opacity:1}
.selected-atmosphere:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#1b1814c9 0%,#1b1814b8 23%,#1b181445 50%,#1b181470 72%,#1b1814d1 100%)}
.selected-section .selected-description>p,.selected-section .project-caption p{color:#bfc0c5}
@media(prefers-reduced-motion:reduce){.selected-atmosphere-photo{transition:none!important}}
.selected-section .section-intro{margin-bottom:33px}
.selected-description{margin-top:23px;max-width:430px}
.selected-description>p{font-size:13px;line-height:2;color:var(--muted)}
.selected-description .text-link{margin-top:15px}
.selected-rail,.work-grid{display:flex;gap:18px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-left:var(--gutter);scrollbar-width:none;overscroll-behavior-x:contain;margin:0 calc(-1 * var(--gutter));padding:0 var(--gutter) 2px}
.selected-rail::-webkit-scrollbar,.work-grid::-webkit-scrollbar{display:none}
.project-card{min-width:0;flex:0 0 calc(100% - 23px);scroll-snap-align:start}
.project-image{display:block;overflow:hidden;background:#11151d;position:relative}
.project-image img{width:100%;height:60svh;min-height:340px;max-height:650px;object-fit:cover;transition:filter .7s,transform 1.25s var(--ease)}
.project-card[data-category=documentary] .project-image img{object-fit:contain}
.project-image:hover img{transform:scale(1.035)}
.image-arrow{position:absolute;right:15px;bottom:15px;width:40px;height:40px;display:flex;align-items:center;justify-content:center;border:1px solid #dbe3f366;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);background:#11151d20;opacity:0;transform:translateY(7px);transition:opacity .5s,transform .5s var(--ease)}
.image-arrow svg{width:17px;height:17px}
.project-image:hover .image-arrow{opacity:1;transform:none}
.project-caption{display:flex;align-items:flex-start;gap:12px;padding-top:20px}
.project-number{font-family:var(--text);font-size:8px;line-height:2;color:var(--muted);margin-top:4px}
.project-caption>div{flex:1;min-width:0}
.project-caption h3{font-family:var(--serif);font-size:24px;font-weight:400;letter-spacing:-.025em;line-height:1.2}
.project-caption p{font-family:var(--text),var(--song);font-size:10px;color:var(--muted);margin-top:10px;line-height:1.8}
.project-caption p [lang|=zh]{font-size:12px}
.caption-arrow{width:25px;height:30px;margin-top:-1px}
.caption-arrow svg{width:17px;height:17px}
.rail-controls{display:flex;align-items:center;gap:18px;min-height:44px;margin-top:24px;color:var(--muted);font-family:var(--text),var(--song);font-size:9px;letter-spacing:.04em}
.rail-hint{margin-right:auto}
.rail-hint [lang|=zh]{font-size:11px;letter-spacing:.07em}
.rail-count{font-family:var(--text);font-size:9px;letter-spacing:.09em;color:#d0d3df;white-space:nowrap}
.rail-controls>div{display:flex;gap:9px}
.rail-controls .icon-button{border:1px solid #b2bbd03b;border-radius:50%}
.rail-controls .icon-button:not(:disabled):hover{border-color:#cdd3edab;background:#cdd3ed0d}
.rail-controls .icon-button svg{width:16px;height:16px}
.rail-controls [data-rail-prev] svg{transform:rotate(180deg)}
.quiet-services{padding-top:40px;padding-bottom:75px}
.quiet-section-heading{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:30px}
.quiet-section-heading .eyebrow{margin-bottom:23px;font-size:8px}
.quiet-section-heading .text-link{font-size:8px;gap:12px;flex:none}
.quiet-section-heading .text-link [lang|=zh]{font-size:11px}
.quiet-section-heading .text-link svg{width:13px;height:13px}
.service-links{border-top:1px solid var(--line)}
.service-row{display:flex;align-items:center;gap:16px;min-height:124px;padding:27px 0;border-bottom:1px solid var(--line);position:relative}
.service-row:before{content:'';position:absolute;inset:0 calc(-1 * var(--gutter));pointer-events:none;background:linear-gradient(100deg,transparent,#909bbe0c,transparent);opacity:0;transition:opacity .6s}
.service-row:hover:before{opacity:1}
.service-index{font-family:var(--text);font-size:8px;color:var(--muted);align-self:flex-start;margin-top:5px}
.service-row>div{flex:1;min-width:0}
.service-row h3{font-size:24px;line-height:1.3;letter-spacing:-.02em;max-width:185px}
.service-row h3:has([lang|=zh]){font-size:20px;letter-spacing:.03em}
.service-row p{font-size:10px;color:var(--muted);margin-top:8px}
.service-row p [lang|=zh]{font-size:11px}
.service-price{font-size:8px;color:var(--muted);line-height:1.7;text-align:right}
.service-price [lang|=zh]{font-size:9px}
.service-price strong{font-family:var(--text);font-size:14px;display:block;color:#e3e3ec;font-weight:400;white-space:nowrap}
.service-row>svg{height:16px;width:16px;flex:none;margin-left:2px;transition:transform .6s var(--ease)}
.service-row:hover>svg{transform:translate(3px,-3px)}
.quiet-photographer{padding-top:10px;display:grid;grid-template-columns:.8fr 1fr;gap:27px;align-items:center}
.quiet-portrait img{width:100%;aspect-ratio:2/3;object-fit:cover}
.quiet-photographer-copy .eyebrow{font-size:6px;letter-spacing:.06em}
.quiet-photographer-copy h2{font-size:30px;line-height:1.22;margin-top:21px}
.quiet-photographer-copy h2:has([lang|=zh]){font-size:25px}
.quiet-photographer-copy>p:not(.eyebrow){color:var(--muted);font-size:11px;line-height:1.95;margin:20px 0 16px}
.quiet-photographer-copy>p.photographer-credential{font-family:var(--text);font-size:6px;letter-spacing:.05em;margin:13px 0 0}
.quiet-photographer-copy .text-link{font-size:8px;gap:9px}
.quiet-photographer-copy .text-link [lang|=zh]{font-size:10px}
.quiet-photographer-copy .text-link svg{height:13px;width:13px}

/* The same typographic hierarchy continues through the Studio. */
.contact-cta{position:relative;isolation:isolate;margin:0 var(--gutter);padding:65px 0 60px;border-top:1px solid var(--line);overflow:hidden}
.cta-halo{position:absolute;inset:0 -60px;z-index:-1;background:radial-gradient(ellipse at 80% 70%,#8a85b51c,transparent 57%),radial-gradient(ellipse at 10% 90%,#c6a18d10,transparent 58%);pointer-events:none}
.contact-cta h2{font-size:42px;line-height:1.4;max-width:750px;margin:25px 0 20px}
.contact-cta h2:has([lang|=zh]){font-size:35px}
.cta-description{color:var(--muted);font-size:13px;line-height:2;max-width:440px}
.cta-links{display:flex;flex-direction:column;align-items:flex-start;gap:23px;margin-top:28px}
.cta-links>a:last-child{font-family:var(--text);font-size:12px;color:#b0b4c0}
.site-footer{margin:0 var(--gutter);padding:35px 0 calc(28px + var(--safe));border-top:1px solid var(--line)}
.footer-top{display:flex;justify-content:space-between;align-items:center;gap:25px}
.footer-top>p{font-family:var(--text);font-size:6px;letter-spacing:.07em;line-height:2;color:var(--muted);text-align:right}
.footer-top .wordmark>span{font-size:26px}
.footer-bottom{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line);color:var(--muted);font-family:var(--text),var(--song)}
.footer-bottom>small{font-size:7px}
.footer-bottom>div{display:flex;gap:17px;align-items:center}
.footer-bottom a{font-size:8px;min-height:30px;display:flex;align-items:center}
.footer-bottom a [lang|=zh]{font-size:9px}
.back-top{font-size:8px;min-height:36px}
.back-top [lang|=zh]{font-size:10px}
.toast{position:fixed;z-index:200;bottom:calc(24px + var(--safe));left:50%;transform:translateX(-50%);width:max-content;max-width:calc(100% - 40px);background:#dfe1ebf5;color:#141923;padding:14px 22px;font-size:12px;box-shadow:0 8px 35px #0005;animation:toast-arrive .5s var(--ease)}
.copy-helper{position:fixed;left:-9999px;top:0;font-size:16px}

/* Glass and light, with native modal focus handling. */
.menu-dialog{position:fixed;inset:0;margin:0;border:0;padding:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;background:#0b0d14f5;color:var(--fg);overflow:auto;overscroll-behavior:contain;isolation:isolate;backdrop-filter:blur(35px);-webkit-backdrop-filter:blur(35px)}
.menu-dialog::backdrop{background:#1b1814a6;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.menu-atmosphere{position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(ellipse at 105% 20%,#8386c233,transparent 50%),radial-gradient(ellipse at -10% 88%,#c4b1b91f,transparent 53%),linear-gradient(118deg,#fff0 45%,#e3e6ff08 50%,#fff0 56%)}
.menu-dialog[open]{animation:menu-enter .75s var(--ease) both}
.menu-dialog.is-closing{animation:menu-leave .38s var(--ease-in-out) both}
.menu-top{height:var(--header);display:flex;align-items:center;justify-content:space-between;margin:0 var(--gutter);border-bottom:1px solid var(--line)}
.menu-top>.eyebrow{font-size:8px;margin-left:auto;margin-right:30px}
.menu-close{margin-right:-10px}
.menu-nav{padding:43px var(--gutter) 28px}
.menu-nav a{display:flex;align-items:baseline;gap:19px;padding:17px 0;font-family:var(--serif),var(--song);font-size:35px;line-height:1.35;letter-spacing:-.025em;position:relative}
.menu-nav a [lang|=zh]{font-size:31px;letter-spacing:.07em}
.menu-nav a small{font-family:var(--text);font-size:8px;color:var(--muted);width:14px;flex:none;letter-spacing:0}
.menu-nav a svg{margin-left:auto;align-self:center;width:19px;height:19px;opacity:.7;flex:none;transition:transform .6s var(--ease)}
.menu-nav a:hover svg{transform:translate(4px,-4px)}
.menu-nav a[aria-current]{color:#9da4bd}
.menu-nav a:after{content:'';height:1px;position:absolute;bottom:5px;left:33px;right:0;background:linear-gradient(90deg,#c8d2ee50,transparent);transform:scaleX(0);transform-origin:left;transition:transform .7s var(--ease)}
.menu-nav a:hover:after{transform:scaleX(1)}
.menu-bottom{margin:15px var(--gutter) 0;padding:26px 0 calc(30px + var(--safe));border-top:1px solid var(--line)}
.menu-bottom>p{font-family:var(--text);font-size:8px;line-height:2;letter-spacing:.07em;color:var(--muted)}
.menu-bottom>a{display:flex;align-items:center;gap:25px;font-family:var(--serif);font-size:18px;letter-spacing:-.02em;margin-top:22px;min-height:44px}
.menu-bottom>a svg{height:17px;width:17px}
.menu-contact-row{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-top:22px;font-size:8px;letter-spacing:.02em;color:#b3b8c7}
.menu-contact-row [lang|=zh]{font-size:10px}
.menu-contact-row .plain-button{font-size:8px;flex:none}
.menu-dialog[open] .menu-nav a{animation:menu-line .95s var(--ease) both}
.menu-nav a:nth-child(1){animation-delay:.12s!important}.menu-nav a:nth-child(2){animation-delay:.17s!important}.menu-nav a:nth-child(3){animation-delay:.22s!important}.menu-nav a:nth-child(4){animation-delay:.27s!important}.menu-nav a:nth-child(5){animation-delay:.32s!important}

.work-section{padding-top:0}
.filter-bar{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:6px 0;display:flex;align-items:center;justify-content:space-between;margin-bottom:25px;gap:20px}
.filter-buttons{display:flex;gap:23px;overflow-x:auto;scrollbar-width:none}
.filter-buttons::-webkit-scrollbar{display:none}
.filter-button{padding:10px 0;min-height:44px;font-size:10px;color:var(--muted);white-space:nowrap;position:relative}
.filter-button [lang|=zh]{font-size:12px}
.filter-button.is-active{color:var(--fg)}
.filter-button:after,.gallery-layout:after{content:'';height:1px;background:linear-gradient(90deg,#969bb5,#e4e4ee);position:absolute;left:0;right:0;bottom:3px;transform:scaleX(0);transform-origin:left;transition:transform .6s var(--ease)}
.filter-button.is-active:after,.gallery-layout.is-active:after{transform:scaleX(1)}
.filter-count{display:none;font-size:9px;color:var(--muted);white-space:nowrap}
.back-link{display:flex;align-items:center;gap:7px;min-height:44px;font-size:8px;color:var(--muted)}
.project-intro{padding-top:14px;padding-bottom:35px}
.project-topline{margin-top:27px;display:flex;justify-content:space-between;gap:20px;font-size:8px;color:var(--muted)}
.project-topline [lang|=zh]{font-size:11px;letter-spacing:.05em}
.project-intro h1{font-family:var(--serif);font-size:43px;line-height:1.12;margin-top:19px;max-width:950px;text-wrap:balance}
.project-intro-bottom{margin-top:24px;display:flex;flex-direction:column;gap:27px}
.project-intro-bottom>p{font-size:13px;line-height:2;color:var(--muted);max-width:550px}
.project-intro dl{display:flex;gap:45px}
.project-intro dt{font-size:9px;color:var(--muted);letter-spacing:.06em}
.project-intro dt [lang|=zh]{font-size:11px}
.project-intro dd{font-family:var(--text);font-size:11px;margin-top:7px}
.project-gallery{padding-top:0;text-align:center}
.gallery-toolbar{display:flex;justify-content:space-between;align-items:center;gap:15px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:26px;padding:4px 0;font-size:8px;color:var(--muted)}
.gallery-toolbar>div{display:flex;gap:17px}
.gallery-layout{min-height:44px;padding:9px 0;font-size:8px;position:relative;color:var(--muted)}
.gallery-layout [lang|=zh]{font-size:11px;letter-spacing:.04em}
.gallery-layout.is-active{color:var(--fg)}
.gallery-flow{display:flex;align-items:center;overflow-x:auto;gap:25px;scroll-snap-type:x mandatory;scrollbar-width:none;overscroll-behavior-x:contain}
.gallery-flow::-webkit-scrollbar{display:none}
.gallery-figure{flex:0 0 100%;min-width:0;scroll-snap-align:start}
.gallery-image{height:64svh;max-height:800px;display:flex;align-items:center;justify-content:center;position:relative}
.gallery-image img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.expand-icon{display:none}
.gallery-figure figcaption{display:flex;justify-content:space-between;margin-top:15px;color:var(--muted);font-family:var(--text);font-size:7px;letter-spacing:.07em}
.gallery-flow.is-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px 15px;overflow:visible;align-items:start}
.gallery-flow.is-grid .gallery-image{height:auto;aspect-ratio:2/3;background:#0d1119}
.gallery-flow.is-grid img{width:100%;height:100%;object-fit:contain}
.gallery-flow.is-grid figcaption>span:last-child{display:none}
.gallery-flow.is-grid+.rail-controls{display:none}
.gallery-end{font-size:12px;color:var(--muted);margin:37px 0 22px}
.project-gallery>.button{background:linear-gradient(115deg,#c3cee615,#c3bdd209);color:var(--fg);border-color:#c7cce859}
.next-story{display:flex;align-items:center;gap:30px;border-top:1px solid var(--line);padding-top:38px;padding-bottom:38px}
.next-story>div{flex:1;min-width:0}
.next-story h2{font-family:var(--serif);font-size:30px;line-height:1.2;margin:19px 0}
.next-story>div>a>svg{width:18px;height:18px}
.next-story-photo{width:30%;max-width:220px;flex:none}
.next-story-photo img{width:100%;aspect-ratio:2/3;object-fit:cover}
.lightbox{position:fixed;inset:0;border:0;padding:0;margin:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;overflow:hidden;background:#1b1814f7;color:var(--fg);backdrop-filter:blur(25px);-webkit-backdrop-filter:blur(25px)}
.lightbox::backdrop{background:#1b1814e0}
.lightbox[open]{display:grid;grid-template-rows:66px minmax(0,1fr) calc(66px + var(--safe))}
.lightbox-top{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 15px 0 22px;font-family:var(--serif);font-size:18px;letter-spacing:-.02em}
.lightbox-top>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.lightbox-stage{display:flex;align-items:center;justify-content:center;min-height:0;min-width:0;padding:0 5px;touch-action:pan-y pinch-zoom;position:relative;overflow:hidden}
.lightbox-image{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;transform-origin:50% 50%}
.lightbox-bottom{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:0 15px var(--safe);font-family:var(--text),var(--song);font-size:9px}
.lightbox-prev svg{transform:rotate(180deg)}
.lightbox-count{white-space:nowrap;color:#b0b6c9}
.lightbox-original{margin-left:auto;min-height:44px;display:flex;align-items:center;font-size:8px;color:var(--muted)}
.lightbox-original [lang|=zh]{font-size:11px}
.lightbox-ghost{position:absolute;pointer-events:none;max-width:none;object-fit:contain;z-index:2}

.pricing-section{padding-top:0}
.service-tabs{position:sticky;top:var(--header);z-index:20;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);display:flex;align-items:center;gap:22px;border:0;padding:7px 0;overflow-x:auto;scrollbar-width:none}
.service-tabs button{min-height:44px;font-size:10px;white-space:nowrap;position:relative;padding:10px 0;flex:1;color:var(--muted)}
.service-tabs button [lang|=zh]{font-size:12px}
.service-tabs button[aria-selected=true]{color:var(--fg)}
.service-panel{display:flex;flex-direction:column;gap:40px;padding-top:32px;scroll-margin-top:calc(var(--header) + 90px)}
.service-detail{order:0;width:100%;min-width:0}
.service-visual{order:1;position:relative}
.service-visual img{width:100%;height:auto;max-height:75svh;object-fit:contain}
.service-visual>span{display:none}
.service-detail-heading .eyebrow{font-size:8px;margin-bottom:20px}
.service-detail-heading h2{font-size:35px;line-height:1.3}
.service-detail-heading h2:has([lang|=zh]){font-size:28px}
.service-detail-heading>p{font-size:13px;line-height:2;color:var(--muted);margin-top:22px;max-width:550px}
.package-tabs{display:flex;gap:12px;margin:28px 0}
.package-tabs button{padding:13px 14px;border:1px solid var(--line);font-family:var(--text),var(--song);font-size:10px;line-height:1.8;flex:1;transition:background .4s,border-color .4s}
.package-tabs button [lang|=zh]{font-size:11px}
.package-tabs button>span:last-child{display:block;font-size:9px;color:var(--muted);margin-top:3px}
.package-tabs button.is-active{background:linear-gradient(130deg,#bdcbe81c,#9c94b810);border-color:#c6cce878}
.price-heading{display:flex;align-items:flex-end;gap:22px;margin:26px 0}
.price-heading>strong{font-family:var(--serif);font-size:64px;font-weight:400;line-height:1;letter-spacing:-.045em}
.price-heading>span{font-family:var(--text),var(--song);font-size:8px;line-height:1.8;color:var(--muted);padding-bottom:4px}
.price-heading>span [lang|=zh]{font-size:10px}
.price-card ul{border-top:1px solid var(--line)}
.price-card li{display:flex;justify-content:space-between;gap:20px;padding:16px 0;border-bottom:1px solid var(--line);font-size:12px}
.price-card li>span{color:var(--muted)}
.price-card li strong{font-weight:400}
.price-card .button{margin-top:26px;width:100%}
.price-note{font-size:10px;color:var(--muted);line-height:2;margin-top:17px}
.service-terms{margin-top:38px;padding-top:27px;border-top:1px solid var(--line)}
.service-terms h3{font-size:26px;margin-bottom:23px}
.service-terms h3:has([lang|=zh]){font-size:22px}
.service-terms dl{display:grid;gap:24px}
.service-terms dt{font-size:11px;color:#d1d5e0;margin-bottom:9px;letter-spacing:.04em}
.service-terms dd{font-size:12px;line-height:2;color:var(--muted)}
.pricing-notes{display:grid;gap:35px;margin-top:40px}
.pricing-notes>p{font-size:12px;line-height:2;color:var(--muted)}
.pricing-notes>div{border-top:1px solid var(--line);padding-top:30px}
.pricing-notes h3{font-size:28px}
.pricing-notes h3:has([lang|=zh]){font-size:24px}
.pricing-notes>div>p{font-size:13px;color:var(--muted);line-height:2;margin-top:18px}
.pricing-notes .text-link{margin-top:15px}
.process{padding-top:0}
.process-grid{display:grid;gap:35px}
.process-grid article{border-top:1px solid var(--line);padding-top:22px}
.process-grid article>span{font-family:var(--text);font-size:9px;color:var(--muted)}
.process-grid h3{font-size:27px;margin:20px 0}
.process-grid h3:has([lang|=zh]){font-size:23px}
.process-grid p{font-size:13px;line-height:2;color:var(--muted)}
.faq-section{padding-top:0}
.faq-list{margin-top:35px;border-top:1px solid var(--line)}
.faq-list details{border-bottom:1px solid var(--line);overflow:hidden}
.faq-list summary{display:flex;align-items:center;justify-content:space-between;gap:25px;min-height:79px;padding:20px 0;font-size:14px;line-height:1.8;cursor:pointer;list-style:none}
.faq-list summary::-webkit-details-marker{display:none}
.faq-plus{width:13px;height:13px;position:relative;flex:none;transition:transform .55s var(--ease)}
.faq-plus:before,.faq-plus:after{content:'';position:absolute;top:6px;left:0;width:13px;height:1px;background:#c6cada;transition:transform .55s var(--ease)}
.faq-plus:after{transform:rotate(90deg)}
.faq-list [open] .faq-plus{transform:rotate(180deg)}
.faq-list [open] .faq-plus:after{transform:rotate(0)}
.faq-answer{padding-bottom:25px;padding-right:26px}
.faq-answer p{font-size:13px;line-height:2;color:var(--muted)}
.faq-section>.text-link{margin-top:30px}
.about-story{padding-top:0;display:grid;gap:40px}
.about-main-image img{width:100%;height:auto}
.image-credit{display:block;margin-top:14px;color:var(--muted);font-size:7px}
.about-bio h2{font-size:37px;line-height:1.4;margin-top:23px}
.about-bio h2:has([lang|=zh]){font-size:28px}
.about-bio>p:not(.eyebrow){font-size:14px;color:var(--muted);line-height:2.1;margin-top:25px}
.about-bio>.text-link{margin-top:27px}
.about-principles{border-top:1px solid var(--line)}
.recognition{display:grid;gap:40px}
.recognition h2{font-size:36px;margin-top:25px}
.recognition h2:has([lang|=zh]){font-size:29px}
.recognition p:not(.eyebrow){color:var(--muted);font-size:13px;line-height:2;margin:25px 0}
.recognition ul{border-top:1px solid var(--line)}
.recognition li{display:flex;justify-content:space-between;align-items:baseline;gap:20px;padding:24px 0;border-bottom:1px solid var(--line);font-size:11px}
.recognition li>span{max-width:64%;color:var(--muted)}
.recognition li strong{font-size:10px;font-weight:400;text-align:right;white-space:nowrap}
.contact-intro{padding-top:34px;padding-bottom:45px;position:relative}
.contact-intro .hero-meta{margin-bottom:35px}
.contact-body{padding-top:0;display:grid;gap:55px}
.big-email{display:inline-flex;align-items:center;max-width:100%;min-height:44px;padding:0;font-family:var(--serif);font-size:18px;font-weight:400;line-height:1.5;letter-spacing:0;white-space:nowrap;overflow-wrap:normal;text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:5px;text-decoration-thickness:1px}
.contact-info>p{font-size:12px;color:var(--muted);margin:10px 0 24px}
.contact-methods{border-top:1px solid var(--line)}
.contact-methods>*{display:flex;align-items:center;gap:20px;justify-content:space-between;min-height:74px;border-bottom:1px solid var(--line);width:100%;padding:15px 0;text-align:left}
.contact-methods>*>span:first-child{min-width:82px;font-family:var(--text),var(--song);font-size:9px;color:var(--muted);letter-spacing:.05em}
.contact-methods strong{font-family:var(--text);font-size:12px;font-weight:400;flex:1}
.copy-label{font-size:10px;color:var(--muted)}
.contact-methods svg{width:16px;height:16px}
.office-info{margin-top:30px}
.office-info>.eyebrow{font-size:8px}
.office-info p{font-size:12px;line-height:2;color:var(--muted);margin-top:14px;max-width:400px}
.contact-photo{display:none}
.inquiry{padding-top:30px;border-top:1px solid var(--line);min-width:0}
.inquiry-heading .eyebrow{font-size:8px}
.inquiry-heading h2{font-size:35px;margin:23px 0 35px}
.inquiry-heading h2:has([lang|=zh]){font-size:28px}
.inquiry form{display:grid;gap:28px}
.inquiry label{font-size:12px;font-weight:400;display:block;letter-spacing:.03em}
.inquiry input,.inquiry select,.inquiry textarea{display:block;width:100%;border:0;border-bottom:1px solid #b8c2dd60;border-radius:0;background:transparent;color:var(--fg);font-family:var(--song),var(--text);font-size:16px;line-height:1.8;padding:15px 0;min-height:54px;box-shadow:none;transition:border-color .5s}
.inquiry input:focus,.inquiry select:focus,.inquiry textarea:focus{outline:none;border-color:#d4daf5}
.inquiry select{padding-right:20px}
.inquiry option{font-family:var(--song),var(--text);background:#10131d;color:var(--fg)}
.inquiry input::placeholder,.inquiry textarea::placeholder{font-family:var(--song),var(--text);font-size:13px;color:#8f95a6;opacity:1}
.inquiry input[type=date]{min-width:0;max-width:100%;appearance:none;-webkit-appearance:none;min-height:58px;text-align:left}
.inquiry textarea{resize:vertical;min-height:135px}
.form-two{display:grid;gap:28px;min-width:0}
.form-two label{min-width:0}
.form-note{color:var(--muted);font-size:11px;line-height:2}
.form-note a{text-decoration:underline;text-underline-offset:4px}
.selected-package{margin-bottom:30px;padding:18px 0 18px 18px;border-left:1px solid #b9c5ec90;background:linear-gradient(90deg,#b9c5ec0b,transparent)}
.selected-package>span{display:block;font-size:10px;color:var(--muted);margin-bottom:10px}
.selected-package strong{font-size:13px;font-weight:400}
.inquiry form>.button{width:100%}
.email-fallback{border-top:1px solid var(--line);padding-top:26px;font-size:12px;line-height:2;color:var(--muted)}
.email-fallback .plain-button{display:block;margin-top:15px;font-size:11px}
.email-fallback a.plain-button{border-bottom:1px solid #bfc8e6a6;color:var(--fg);width:fit-content}
.press-grid{display:grid;gap:55px;padding-top:0}
.press-photo{display:block;overflow:hidden;aspect-ratio:3/2;background:#11151d}
.press-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.press-photo:hover img{transform:scale(1.035)}
.press-meta{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:23px 0 20px;color:var(--muted);font-size:8px;letter-spacing:.06em}
.press-card h2{font-size:25px;line-height:1.45}
.press-card>p{font-size:11px;color:var(--muted);margin-top:16px}
.press-card .text-link{margin-top:21px}
.press-article{max-width:1000px;margin:auto;padding-top:20px}
.press-article>.press-meta{margin-top:35px}
.press-article h1{font-size:36px;line-height:1.3;margin:30px 0 36px}
.press-article figure img{width:100%;height:auto}
.article-summary{font-size:16px;line-height:2;color:#c8cbd6;margin:37px 0 32px}
.article-credit{font-size:10px;color:var(--muted);margin-top:27px}
.legal-page{max-width:850px;margin:auto;padding-top:25px}
.legal-page h1{font-size:43px;margin:35px 0 23px}
.legal-page h1:has([lang|=zh]){font-size:35px}
.legal-page>.eyebrow{margin-bottom:45px}
.legal-page>section{margin:35px 0}
.legal-page h2{font-size:24px;line-height:1.5;margin-bottom:19px}
.legal-page h2:has([lang|=zh]){font-size:20px}
.legal-page p:not(.eyebrow){font-size:13px;line-height:2.1;color:var(--muted)}
.not-found{min-height:70svh;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:30px}

/* Motion follows a single deceleration curve; scrolling remains native. */
.js .reveal{opacity:0;transform:translateY(25px);transition:opacity 1s var(--ease),transform 1.2s var(--ease)}
.js .reveal.is-visible,.js .reveal.force-visible,.js .work-grid .reveal,.js .gallery-flow .reveal{opacity:1;transform:none}
.js .selected-rail .reveal{opacity:1;transform:none}
.js .reveal-heading{overflow:hidden;transform:translateY(18px);transition:transform 1.15s var(--ease)}
.js .reveal-heading [data-en]{display:inline-block;max-width:100%;transform:translateY(115%);transition:transform 1.15s var(--ease)}
.js .reveal-heading.is-visible,.js .reveal-heading.is-visible [data-en]{transform:none}
.route-curtain{position:fixed;inset:0;z-index:100;pointer-events:none;visibility:hidden;overflow:hidden}
.route-curtain>span{position:absolute;inset:-1px;background:linear-gradient(125deg,#080b12 20%,#18202d 70%,#a4adc5);transform:translateY(102%)}
.route-curtain>span:last-child{background:radial-gradient(ellipse at 70% 35%,#8596c02b,transparent 60%),linear-gradient(120deg,#10121c,#0d1018 75%,#c3bbd54d);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.route-curtain.is-active{visibility:visible;pointer-events:auto}
@keyframes type-arrive{from{transform:translateY(110%) rotate(2deg);opacity:.15}to{transform:translateY(0) rotate(0);opacity:1}}
@keyframes ambient-drift{from{transform:translate3d(-10px,-8px,0) scale(.92)}to{transform:translate3d(40px,40px,0) scale(1.16)}}
@keyframes optical-sweep{0%{transform:translateX(-70%) rotate(-5deg);opacity:0}20%{opacity:1}80%{opacity:.5}100%{transform:translateX(75%) rotate(-5deg);opacity:0}}
@keyframes scroll-breathe{0%,100%{transform:translateY(0);opacity:.6}50%{transform:translateY(5px);opacity:1}}
@keyframes menu-enter{from{clip-path:inset(0 0 100% 0 round 0 0 10vw 10vw);transform:translateY(-35px)}to{clip-path:inset(0);transform:none}}
@keyframes menu-leave{to{clip-path:inset(0 0 100% 0 round 0 0 5vw 5vw);transform:translateY(-20px)}}
@keyframes menu-line{from{opacity:0;transform:translateY(22px);filter:blur(4px)}to{opacity:1;transform:none;filter:blur(0)}}
@keyframes toast-arrive{from{opacity:0;translate:0 10px}to{opacity:1;translate:0 0}}
@supports(view-transition-name:none){
 @view-transition{navigation:auto}
 ::view-transition{pointer-events:none}
 ::view-transition-group(*){animation-duration:.85s;animation-timing-function:var(--ease)}
 ::view-transition-old(root){animation:page-recede .7s var(--ease) both;mix-blend-mode:normal}
 ::view-transition-new(root){animation:page-unveil .85s var(--ease) both;mix-blend-mode:normal}
 @keyframes page-recede{to{transform:translateY(-24px) scale(.985);filter:blur(4px);opacity:0}}
 @keyframes page-unveil{from{clip-path:inset(8% 0 0 0);transform:translateY(24px);filter:blur(4px);opacity:0}to{clip-path:inset(0);transform:none;filter:blur(0);opacity:1}}
}
@media(min-width:600px){
 :root{--gutter:36px;--header:80px}
 .section-pad{padding-top:95px;padding-bottom:95px}
 .home-opening{padding-top:25px;padding-bottom:30px}
 .opening-meta{font-size:8px}
 .opening-title{font-size:11.8vw;max-width:670px;margin-top:35px}
 .opening-description{max-width:540px;font-size:14px;margin-top:25px}
 .opening-actions{margin-top:26px;gap:36px}
 .optics-cover{margin-top:35px}
 .cover-frame{aspect-ratio:16/9}
 .optics-cover figcaption{font-size:8px}
 .opening-scroll{padding-top:25px}
 .wordmark>span{font-size:28px}
 .header-right{gap:30px}
 .section-title{font-size:49px}
 .section-title:has([lang|=zh]){font-size:39px}
 .selected-section{padding-top:80px}
 .selected-rail .project-card,.work-grid .project-card{flex-basis:64%}
 .project-caption h3{font-size:29px}
 .project-image img{height:66svh}
 .quiet-services{padding-top:50px}
 .quiet-section-heading{margin-bottom:35px}
 .service-row{gap:28px;padding:33px 0}
 .service-row h3{font-size:32px;max-width:none}
 .service-row h3:has([lang|=zh]){font-size:25px}
 .service-row p{font-size:12px}
 .service-price strong{font-size:19px}
 .service-row>svg{margin-left:20px;width:20px;height:20px}
 .quiet-photographer{padding-top:0;grid-template-columns:.7fr 1fr;gap:55px}
 .quiet-photographer-copy h2{font-size:43px}
 .quiet-photographer-copy h2:has([lang|=zh]){font-size:34px}
 .quiet-photographer-copy .eyebrow{font-size:8px}
 .quiet-photographer-copy>p:not(.eyebrow){font-size:13px;max-width:380px}
 .quiet-photographer-copy>p.photographer-credential{font-size:8px}
 .quiet-photographer-copy .text-link{font-size:10px;gap:23px}
 .quiet-photographer-copy .text-link [lang|=zh]{font-size:12px}
 .contact-cta{padding:70px 0}
 .contact-cta h2{font-size:50px}
 .contact-cta h2:has([lang|=zh]){font-size:41px}
 .cta-links{flex-direction:row;align-items:center;gap:50px}
 .footer-top>p{font-size:8px}
 .footer-bottom small,.footer-bottom a{font-size:9px}
 .menu-nav{padding-top:60px;max-width:900px}
 .menu-nav a{font-size:46px;padding:18px 0}
 .menu-nav a [lang|=zh]{font-size:39px}
 .menu-nav a svg{width:24px;height:24px}
 .menu-bottom{display:grid;grid-template-columns:1fr 1fr;gap:20px}
 .menu-bottom>a{margin-top:0;justify-self:end}
 .menu-contact-row{grid-column:1/-1}
 .page-intro,.contact-intro{padding-top:42px;padding-bottom:50px}
 .display-title{font-size:62px}
 .display-title:has([lang|=zh]){font-size:46px}
 .work-section{padding-top:0}
 .filter-count{display:block}
 .filter-button{font-size:11px}
 .filter-buttons{gap:30px}
 .project-intro{padding-top:18px;padding-bottom:42px}
 .project-intro h1{font-size:58px}
 .project-intro-bottom{flex-direction:row;justify-content:space-between;align-items:flex-start}
 .project-intro-bottom>p{max-width:53%}
 .project-gallery{padding-top:0}
 .gallery-flow.is-grid{grid-template-columns:repeat(3,1fr);gap:32px 22px}
 .next-story{padding-top:45px;padding-bottom:45px;gap:65px}
 .next-story h2{font-size:42px}
 .next-story>div>a{display:flex;align-items:center;justify-content:space-between;gap:30px}
 .next-story-photo{width:25%}
 .pricing-section{padding-top:0}
 .service-panel{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;padding-top:40px}
 .service-visual{order:0;position:sticky;top:170px}
 .service-detail{order:1}
 .package-tabs{gap:9px}
 .package-tabs button{padding:12px 9px}
 .price-heading>strong{font-size:60px}
 .pricing-notes{grid-template-columns:1fr 1fr;gap:40px}
 .pricing-notes>div{padding:0;border:0}
 .process{padding-top:0}
 .process-grid{grid-template-columns:repeat(3,1fr);gap:26px}
 .process-grid h3{font-size:25px}
 .process-grid h3:has([lang|=zh]){font-size:21px}
 .process-grid p{font-size:12px}
 .faq-section{padding-top:0}
 .about-story{padding-top:0}
 .recognition{grid-template-columns:1fr 1fr;gap:55px}
 .contact-body{padding-top:0}
 
 .form-two{grid-template-columns:1fr 1fr;gap:25px}
 .press-grid{grid-template-columns:1fr 1fr;gap:60px 36px;padding-top:0}
 .press-card h2{font-size:28px}
 .press-article{padding-top:22px}
 .press-article h1{font-size:46px}
 .legal-page{padding-top:28px}
}
@media(min-width:1000px){
 :root{--gutter:5vw;--header:88px}
 .section-pad{padding-top:115px;padding-bottom:115px}
 .home-opening{min-height:calc(100svh - var(--header));padding:45px var(--gutter) 35px;display:grid;grid-template-columns:.86fr 1.14fr;grid-template-rows:1fr auto;column-gap:6vw;row-gap:35px;align-items:center;overflow:hidden}
 .opening-content{padding-bottom:12px;position:relative;z-index:2}
 .opening-meta{font-size:7px;flex-direction:column;gap:6px;letter-spacing:.11em}
 .opening-meta>span:last-child{text-align:left;color:#8992a5}
 .opening-title{font-size:6.1vw;margin-top:39px;line-height:1.08;max-width:none;white-space:nowrap}
 .precision-line{font-size:.71em;line-height:1.55}
 .opening-description{font-size:14px;margin-top:26px;max-width:340px}
 .opening-description [lang|=zh]{font-size:15px}
 .opening-actions{gap:25px;margin-top:32px}
 .opening-actions .button{padding:14px 19px;gap:22px;min-height:52px}
 .optics-cover{margin-top:0;align-self:center;min-width:0}
 .cover-frame{aspect-ratio:1.22;max-height:calc(100svh - 230px);min-height:400px}
 .cover-source{object-fit:cover;object-position:50% 50%}
 .optics-cover figcaption{font-size:7px;padding-top:17px}
 .opening-scroll{grid-column:1/-1;margin-top:0;padding-top:0;max-width:none;font-size:8px;align-self:end}
 .opening-scroll svg{width:15px;height:27px}
 .ambient-orb-one{width:750px;height:750px;top:-150px;left:-500px;filter:blur(75px)}
 .ambient-orb-two{width:850px;height:850px;top:80px;right:-520px;filter:blur(80px)}
 .ambient-contour{width:950px;height:1100px;right:-560px;top:-300px}
 .wordmark>span{font-size:30px}
 .wordmark>small{font-size:7px}
 .header-inquire{font-size:9px}
 .header-right{gap:39px}
 .selected-section{padding-top:95px}
 .selected-section .section-intro{display:flex;justify-content:space-between;align-items:flex-end;gap:70px;margin-bottom:50px}
 .selected-description{margin:0;max-width:370px}
 .selected-description>p{font-size:14px}
 .selected-description .text-link{margin-top:19px}
 .section-title{font-size:63px}
 .section-title:has([lang|=zh]){font-size:47px}
 .section-intro .eyebrow{margin-bottom:25px}
 .selected-rail{gap:3vw}
 .selected-rail .project-card{flex-basis:42vw;max-width:720px}
 .project-image img{height:70svh;max-height:850px}
 .project-caption{padding-top:24px;gap:20px}
 .project-caption h3{font-size:33px}
 .project-caption p{font-size:11px;margin-top:12px}
 .project-caption p [lang|=zh]{font-size:13px}
 .project-number{font-size:9px}
 .rail-controls{margin-top:28px}
 .quiet-services{padding-top:45px;padding-bottom:115px}
 .quiet-section-heading{margin-bottom:43px}
 .quiet-section-heading .text-link{font-size:10px;gap:24px}
 .quiet-section-heading .text-link [lang|=zh]{font-size:13px}
 .service-row{min-height:156px;padding:36px 0;gap:42px}
 .service-row h3{font-size:40px}
 .service-row h3:has([lang|=zh]){font-size:29px}
 .service-row p{font-size:13px;margin-top:12px}
 .service-row p [lang|=zh]{font-size:13px}
 .service-price strong{font-size:23px}
 .service-row>svg{width:24px;height:24px;margin-left:60px}
 .quiet-photographer{padding-top:0;grid-template-columns:.7fr 1.3fr;gap:10vw}
 .quiet-portrait{max-width:390px;margin-left:5%}
 .quiet-photographer-copy .eyebrow{font-size:9px}
 .quiet-photographer-copy h2{font-size:65px;margin-top:28px}
 .quiet-photographer-copy h2:has([lang|=zh]){font-size:47px}
 .quiet-photographer-copy>p:not(.eyebrow){font-size:14px;max-width:460px;margin-top:28px;line-height:2}
 .quiet-photographer-copy>p.photographer-credential{font-size:9px;margin-top:17px}
 .quiet-photographer-copy .text-link{margin-top:17px}
 .contact-cta{padding-top:85px;padding-bottom:80px}
 .contact-cta h2{font-size:65px}
 .contact-cta h2:has([lang|=zh]){font-size:47px}
 .cta-description{font-size:14px}
 .cta-links{gap:65px}
 .cta-links>a:last-child{font-size:13px}
 .site-footer{padding-top:40px;padding-bottom:35px}
 .footer-bottom>div{margin-left:auto;margin-right:50px}
 .footer-bottom small,.footer-bottom a{font-size:9px}
 .menu-nav{max-width:1050px;padding-top:40px;padding-bottom:35px}
 .menu-nav a{font-size:57px;padding:15px 0;gap:40px}
 .menu-nav a [lang|=zh]{font-size:46px}
 .menu-nav a small{font-size:9px;width:20px}
 .menu-bottom{margin-top:0;padding-top:30px}
 .menu-bottom>a{font-size:18px}
 .menu-bottom>p{font-size:9px}
 .menu-contact-row{font-size:9px}
 .page-intro,.contact-intro{padding-top:45px;padding-bottom:60px}
 .page-intro .hero-meta,.contact-intro .hero-meta{margin-bottom:45px}
 .display-title{font-size:77px;max-width:1000px}
 .display-title:has([lang|=zh]){font-size:55px}
 .intro-description{font-size:15px;max-width:590px;margin-top:27px}
 .work-section{padding-top:0}
 .filter-bar{margin-bottom:45px;padding:10px 0}
 .filter-buttons{gap:38px}
 .filter-button{font-size:12px}
 .filter-count{font-size:9px}
 .work-grid{display:grid;grid-template-columns:1fr 1fr;gap:75px 5vw;overflow:visible;scroll-snap-type:none;margin:0;padding:0}
 .work-grid .project-card:nth-child(even){margin-top:115px}
 .work-grid .project-image img{height:auto;min-height:0;aspect-ratio:2/3;object-fit:cover}
 .work-grid .project-card[data-category=documentary] .project-image img{object-fit:contain}
 .work-grid+.rail-controls{display:none}
 .project-intro{padding-top:18px;padding-bottom:45px}
 .project-intro h1{font-size:79px;margin-top:23px}
 .project-topline{font-size:9px;margin-top:33px}
 .project-intro-bottom{margin-top:32px}
 .project-intro-bottom>p{font-size:14px;max-width:560px}
 .project-intro dl{gap:70px}
 .project-intro dd{font-size:12px}
 .project-gallery{padding-top:0;max-width:1400px;margin:auto}
 .gallery-toolbar{font-size:9px;margin-bottom:35px}
 .gallery-layout{font-size:9px}
 .gallery-flow .gallery-image{height:73svh;max-height:1000px}
 .gallery-flow.is-grid{gap:35px 30px}
 .gallery-flow.is-grid .gallery-image{height:auto}
 .gallery-figure figcaption{font-size:8px;margin-top:17px}
 .gallery-end{font-size:13px;margin-top:39px}
 .next-story{padding-top:45px;padding-bottom:45px;gap:100px}
 .next-story h2{font-size:55px;max-width:700px}
 .next-story-photo{max-width:240px;width:25%;margin-right:5%}
 .lightbox[open]{grid-template-rows:75px minmax(0,1fr) 75px}
 .lightbox-top{padding:0 25px 0 35px;font-size:22px}
 .lightbox-stage{padding:0 50px}
 .lightbox-bottom{max-width:650px;width:100%;margin:auto;padding:0 25px;font-size:10px}
 .pricing-section{padding-top:0}
 .service-tabs{gap:40px;padding:10px 0}
 .service-tabs button{font-size:12px;flex:none;min-width:140px}
 .service-panel{grid-template-columns:1fr 1fr;gap:8vw;padding-top:48px}
 .service-visual{top:190px;max-width:560px}
 .service-visual img{max-height:850px}
 .service-detail-heading h2{font-size:43px}
 .service-detail-heading h2:has([lang|=zh]){font-size:31px}
 .service-detail-heading>p{font-size:14px}
 .package-tabs{gap:15px;margin-top:30px}
 .package-tabs button{padding:15px;font-size:11px}
 .package-tabs button>span:last-child{font-size:10px}
 .price-heading{margin-bottom:32px}
 .price-heading>strong{font-size:82px}
 .price-card li{font-size:14px;padding:18px 0}
 .price-card .button{margin-top:30px}
 .price-note{font-size:11px}
 .pricing-notes{margin-top:60px;gap:10vw}
 .pricing-notes>p{font-size:13px}
 .pricing-notes h3{font-size:35px}
 .pricing-notes h3:has([lang|=zh]){font-size:27px}
 .pricing-notes>div>p{font-size:14px}
 .process{padding-top:0}
 .section-intro{margin-bottom:50px}
 .process-grid{gap:55px}
 .process-grid h3{font-size:31px}
 .process-grid h3:has([lang|=zh]){font-size:25px}
 .process-grid p{font-size:14px}
 .faq-section{display:grid;grid-template-columns:.9fr 1.1fr;gap:0 8vw;padding-top:0}
 .faq-section>.section-kicker{grid-column:1;grid-row:1;align-self:start}
 .faq-section>.section-title{grid-column:1;grid-row:1;padding-top:45px;font-size:58px}
 .faq-section>.section-title:has([lang|=zh]){font-size:43px}
 .faq-section>.faq-list{grid-column:2;grid-row:1/3;margin:0}
 .faq-section>.text-link{grid-column:1;grid-row:2;align-self:start;justify-self:start;margin-top:35px}
 .faq-list summary{font-size:15px;min-height:85px}
 .faq-answer p{font-size:14px}
 .about-story{grid-template-columns:1.1fr 1fr;gap:8vw;align-items:start;padding-top:0}
 .about-main-image{position:sticky;top:120px}
 .about-bio h2{font-size:51px}
 .about-bio h2:has([lang|=zh]){font-size:35px}
 .about-bio>p:not(.eyebrow){font-size:15px}
 .recognition{gap:10vw}
 .recognition h2{font-size:45px}
 .recognition h2:has([lang|=zh]){font-size:34px}
 .recognition p:not(.eyebrow){font-size:14px;max-width:470px}
 .recognition li{font-size:13px;padding:26px 0}
 .recognition li strong{font-size:11px}
 .contact-body{grid-template-columns:1fr 1fr;gap:9vw;padding-top:0}
 
 .contact-info>p{font-size:13px}
 .contact-methods strong{font-size:14px}
 .contact-methods>*>span:first-child{font-size:9px;min-width:100px}
 .contact-photo{display:block;width:75%;margin:45px 0 0 5%}
 .contact-photo img{width:100%;height:auto}
 .contact-photo>span{display:block;margin-top:15px;font-family:var(--text);font-size:7px;letter-spacing:.05em;color:var(--muted)}
 .inquiry-heading h2{font-size:41px}
 .inquiry-heading h2:has([lang|=zh]){font-size:31px}
 .inquiry label{font-size:13px}
 .inquiry form{gap:32px}
 .form-note{font-size:11px}
 .office-info p{font-size:12px}
 .press-grid{gap:75px 6vw;padding-top:0}
 .press-card h2{font-size:32px}
 .press-article{padding-top:22px}
 .press-article h1{font-size:53px}
 .article-summary{font-size:20px;margin-top:45px}
 .legal-page{padding-top:28px}
 .legal-page h1{font-size:58px}
 .legal-page h1:has([lang|=zh]){font-size:43px}
 .legal-page p:not(.eyebrow){font-size:14px}
}
@media(min-width:1600px){.home-opening{column-gap:7vw}.opening-title{font-size:5.9vw}.opening-description{max-width:410px;font-size:15px}.opening-actions{gap:36px}.optics-cover{max-width:1000px}.cover-frame{aspect-ratio:1.3;min-height:540px}.opening-meta{font-size:8px}}
@media(max-width:359px){
 :root{--gutter:18px}
 .header-right{gap:8px}.wordmark>span{font-size:24px}
 .opening-meta{font-size:6px;gap:15px}.opening-title{margin-top:25px}.opening-description{font-size:12px}.opening-description [lang|=zh]{font-size:13px}.opening-actions{gap:17px}.opening-actions .button{padding:12px 14px;gap:16px}.opening-actions .button [lang|=zh]{font-size:10px}.opening-actions .quiet-link{gap:7px}.opening-actions .quiet-link [lang|=zh]{font-size:10px}
 .optics-cover{margin-top:29px}.optics-cover figcaption{font-size:5px}.opening-scroll [lang|=zh]{font-size:9px}
 .rail-controls{gap:12px}.rail-controls>div{gap:5px}.rail-controls .icon-button{width:40px;height:40px}.rail-hint [lang|=zh]{font-size:10px}.rail-hint>span:last-child{margin-left:4px}
 .service-row{gap:10px}.service-row h3{font-size:22px}.service-row h3:has([lang|=zh]){font-size:18px}.service-price strong{font-size:12px}.service-row>svg{width:14px;height:14px;margin-left:0}
 .quiet-photographer{gap:20px}.quiet-photographer-copy h2{font-size:27px}.quiet-photographer-copy h2:has([lang|=zh]){font-size:23px}.quiet-photographer-copy>p:not(.eyebrow){font-size:10px}.quiet-photographer-copy>p.photographer-credential{font-size:5px}.quiet-photographer-copy .text-link{gap:5px;font-size:7px}.quiet-photographer-copy .text-link [lang|=zh]{font-size:9px}
 .display-title{font-size:40px}.display-title:has([lang|=zh]){font-size:34px}.project-intro h1{font-size:39px}.project-caption h3{font-size:22px}
 .menu-nav a{font-size:29px}.menu-nav a [lang|=zh]{font-size:27px}.menu-contact-row{gap:12px}.menu-contact-row [lang|=zh]{font-size:9px}
 .service-tabs{gap:17px}.service-tabs button{font-size:9px}.service-tabs button [lang|=zh]{font-size:11px}.gallery-toolbar{gap:10px;font-size:7px}.gallery-toolbar>div{gap:13px}.gallery-layout [lang|=zh]{font-size:10px}
 .lightbox-bottom{gap:12px}.lightbox-original{font-size:7px}.contact-methods{gap:12px}.contact-methods>*>span:first-child{min-width:72px;font-size:8px}.contact-methods strong{font-size:11px}.copy-label{font-size:9px}.footer-bottom>small{font-size:6px}.footer-bottom>div{gap:12px}.footer-bottom a{font-size:7px}.footer-bottom a [lang|=zh]{font-size:8px}
}
@media(prefers-reduced-motion:reduce){
 html{scroll-behavior:auto}
 *,*:before,*:after{animation-duration:.001ms!important;animation-delay:0ms!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
 .js .reveal,.js .reveal-heading,.js .reveal-heading [data-en]{opacity:1;transform:none;clip-path:none}
 .cover-frame,.ambient-orb{will-change:auto;transform:none!important}
 .cover-canvas,.cover-specular{display:none}
 ::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}
}

/* Full-height cover studies: original photography carries the opening. */
.home-page .site-header{position:fixed;inset:0 0 auto;background:linear-gradient(180deg,#050709a6,#05070910);backdrop-filter:none;-webkit-backdrop-filter:none;transition:background .5s,backdrop-filter .5s}
.home-page .site-header.is-past-opening{background:#1b1814ed;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}
.has-photo-background.home-opening{min-height:max(100svh,700px);padding:calc(var(--header) + 30px) var(--gutter) 26px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;background:#080a0d}
.has-photo-background .optics-cover{position:absolute;inset:0;width:100%;height:100%;margin:0;z-index:-4;perspective:none;isolation:auto;max-width:none;transform:none}
.has-photo-background .optics-cover:before,.has-photo-background .cover-frame:after{display:none}
.has-photo-background .cover-frame{position:absolute;inset:0;width:100%;height:100%;min-height:0;max-height:none;aspect-ratio:auto;box-shadow:none;transform-origin:center}
.has-photo-background .cover-source{object-fit:cover;object-position:50% 50%}
.has-photo-background .cover-source{animation:cover-resolve 1.7s var(--ease) both}
.has-photo-background .cover-canvas{display:none}
@keyframes cover-resolve{from{opacity:.35;filter:blur(2px);transform:scale(1.025)}to{opacity:1;filter:blur(0);transform:scale(1)}}
.has-photo-background .optics-cover figcaption{display:none}
.has-photo-background .cover-surface{background:linear-gradient(130deg,#d4dff107,transparent 45%,#c2af9606);box-shadow:none}
.has-photo-background .opening-atmosphere{z-index:-3;opacity:.17}
.has-photo-background .ambient-contour{display:none}
.hero-scrim{position:absolute;inset:0;z-index:-2;pointer-events:none;background:linear-gradient(180deg,#05070b70 0%,#05070b55 32%,#05070b13 54%,#05070b00 66%,#1b18146b 88%,#1b1814 100%)}
.has-photo-background .opening-content{position:relative;z-index:1;width:100%;padding:0;margin:0}
.opening-identity{display:flex;align-items:center;gap:14px}
.opening-symbol{display:block;width:36px;height:36px;flex:none;color:#ece7dc}
.opening-symbol svg{width:36px;height:36px}
.has-photo-background .opening-meta{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:5px;color:#e2ded6;font-size:7px;letter-spacing:.11em;line-height:1.6}
.has-photo-background .opening-meta>span:last-child{text-align:left;color:#bab9bb}
.has-photo-background .opening-title{margin-top:28px;font-size:13vw;line-height:1.1;letter-spacing:-.045em;max-width:100%;text-shadow:0 2px 30px #0002}
.has-photo-background .precision-line{font-size:.77em;line-height:1.35}
.has-photo-background .precision-line>span{background-image:linear-gradient(100deg,#fff9ef,#e0d4c6 58%,#b5bed0)}
.has-photo-background .opening-description{max-width:330px;font-size:13px;line-height:2;margin-top:21px;color:#dedbd6;text-shadow:0 2px 22px #0009}
.has-photo-background .opening-description [lang|=zh]{font-size:14px}
.has-photo-background .opening-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:360px;width:100%;margin-top:25px}
.has-photo-background .opening-actions .cover-action{width:100%;min-width:0;min-height:50px;padding:13px 15px;gap:10px;border:0;border-radius:3px;background:linear-gradient(120deg,#e2e3eb19,#d8dbe40d);color:var(--fg);box-shadow:0 7px 24px #00000012;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);font-size:9px;letter-spacing:.045em}
.has-photo-background .cover-action [lang=en]{font-size:9px;white-space:nowrap}
.has-photo-background .cover-action [lang|=zh]{font-size:11.5px;white-space:nowrap}
.has-photo-background .cover-action svg{width:16px;height:16px;flex:none}
.has-photo-background .button-glass{background:linear-gradient(120deg,#13151ac2,#15151875);border-color:#e5e1d170;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);box-shadow:inset 0 1px 0 #fff2}
.has-photo-background .opening-scroll{position:relative;z-index:1;margin-top:auto;padding-top:35px;max-width:none;width:100%;color:#dfdcd7}
.cover-window .has-photo-background .cover-frame{filter:blur(.7px)}
.cover-window .hero-scrim{background:linear-gradient(180deg,#04060985,#0406099c 25%,#04060959 46%,#04060900 61%,#1b18146b 88%,#1b1814)}
.cover-scarlet .hero-scrim{background:linear-gradient(180deg,#05070b22,#05070b00 48%,#05070b00 70%,#1b181499 91%,#1b1814)}
.cover-studies{display:grid;gap:45px;padding-top:0}
.cover-study-photo{position:relative;display:block;overflow:hidden;aspect-ratio:3/4;background:#11141b}
.cover-study-photo img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease)}
.cover-study-photo:hover img{transform:scale(1.025)}
.cover-study-photo:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#0003,transparent 30%,transparent 70%,#0009)}
.cover-study-number{position:absolute;top:18px;left:19px;z-index:1;font:30px var(--serif);color:#ece9e2}
.cover-study-label{position:absolute;left:19px;right:19px;bottom:17px;display:flex;gap:20px;justify-content:space-between;align-items:center;font-size:10px;z-index:1}
.cover-study-label svg{width:17px;height:17px}
.cover-study-caption{padding-top:22px}
.cover-study-caption h2{font-size:29px}
.cover-study-caption h2:has([lang|=zh]){font-size:25px}
.cover-study-caption p{font-size:13px;color:var(--muted);line-height:2;max-width:470px;margin-top:17px}
@media(max-width:999px){
 .cover-steps .has-photo-background .cover-frame{top:65px;height:calc(100% + 90px)}
 .cover-scarlet .has-photo-background .cover-frame{top:55px;height:calc(100% + 60px)}
}
@media(min-width:600px) and (max-width:999px){
 .has-photo-background.home-opening{padding-top:calc(var(--header) + 45px)}
 .has-photo-background .opening-title{font-size:10.6vw;max-width:700px}
 .has-photo-background .opening-description{max-width:440px}
 .has-photo-background .opening-symbol,.has-photo-background .opening-symbol svg{width:42px;height:42px}
 .has-photo-background .opening-meta{font-size:8px}
 .cover-studies{grid-template-columns:1fr 1fr;gap:55px 30px;padding-top:0}
}
@media(min-width:1000px){
 .has-photo-background.home-opening{padding:calc(var(--header) + 65px) var(--gutter) 35px;min-height:100svh;justify-content:center}
 .has-photo-background .optics-cover{left:42%;width:58%}
 .has-photo-background .hero-scrim{background:linear-gradient(90deg,#1b1814 26%,#1b1814f0 35%,#1b181468 47%,#1b181400 65%),linear-gradient(180deg,#1b18141a,transparent 25%,transparent 76%,#1b1814 100%)}
 .has-photo-background .opening-content{max-width:54%;padding:15px 0 65px}
 .has-photo-background .opening-title{font-size:6.1vw;max-width:none;margin-top:40px}
 .has-photo-background .precision-line{font-size:.71em;line-height:1.55}
 .has-photo-background .opening-meta{font-size:8px}
 .has-photo-background .opening-symbol,.has-photo-background .opening-symbol svg{width:44px;height:44px}
 .has-photo-background .opening-description{max-width:370px;font-size:14px;margin-top:28px}
 .has-photo-background .opening-description [lang|=zh]{font-size:15px}
 .has-photo-background .opening-actions{margin-top:32px;gap:14px;max-width:380px}
 .has-photo-background .opening-scroll{position:absolute;left:var(--gutter);right:var(--gutter);bottom:30px;margin:0;padding-top:0;width:auto}
 .cover-studies{grid-template-columns:1fr 1fr;gap:75px 5vw;padding-top:0}
 .cover-study-photo{aspect-ratio:4/5}
 .cover-study-caption h2{font-size:37px}
 .cover-study-caption h2:has([lang|=zh]){font-size:29px}
}
@media(max-width:359px){
 .has-photo-background.home-opening{padding-top:calc(var(--header) + 20px)}
 .has-photo-background .opening-title{margin-top:25px}
 .has-photo-background .opening-meta{font-size:6px}
 .has-photo-background .opening-symbol,.has-photo-background .opening-symbol svg{width:32px;height:32px}
 .has-photo-background .opening-description [lang|=zh]{font-size:13px}
 .has-photo-background .opening-actions{gap:10px;margin-top:21px}
}

/* Phone composition: budget the complete selected-work view, not the photo alone. */
.entry-intro{display:none;position:fixed;inset:0;z-index:120;place-items:center;background:#1b181435;backdrop-filter:blur(20px) brightness(.55);-webkit-backdrop-filter:blur(20px) brightness(.55);touch-action:pan-y}
.is-entering .entry-intro{display:grid}
.entry-identity{display:flex;flex-direction:column;align-items:center;gap:19px;color:#f0e9db;text-align:center;padding:24px}
.entry-wordmark{font-family:var(--serif);font-size:clamp(40px,8vw,75px);font-weight:400;line-height:1.2;letter-spacing:-.025em;opacity:0}
.entry-motto{font-size:13px;line-height:1.8;letter-spacing:.28em;opacity:0}
.entry-played .site-header{transition:opacity .7s var(--ease),background .5s,backdrop-filter .5s}
.entry-played .opening-content,.entry-played .opening-scroll{transition:opacity .7s var(--ease)}
.is-entering:not(.entry-revealing) .site-header,.is-entering:not(.entry-revealing) .opening-content,.is-entering:not(.entry-revealing) .opening-scroll{opacity:0;pointer-events:none}
.entry-played .has-photo-background .cover-source{animation:none;opacity:1;filter:none}
.is-entering:not(.entry-revealing) .type-line>span,.is-entering:not(.entry-revealing) .cover-specular{animation-play-state:paused}
@media(prefers-reduced-motion:reduce){.entry-intro{display:none!important}}
.project-card[data-project="a-life-in-transit"] .project-image img,
.work-grid .project-card[data-project="a-life-in-transit"] .project-image img{object-fit:cover;object-position:68% 50%}
.price-card li strong{white-space:nowrap}
.service-row h3,.service-detail-heading h2{hyphens:none}
@media(max-width:767px){
 .quiet-section-heading{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px 14px;align-items:center}
 .quiet-section-heading>div{display:contents}
 .quiet-section-heading .eyebrow{grid-column:1;grid-row:1;margin:0}
 .quiet-section-heading>.text-link{grid-column:2;grid-row:1;justify-self:end}
 .quiet-section-heading .section-title{grid-column:1/-1;grid-row:2}
}
@media(max-width:767px) and (min-height:540px){
 html:has(.home-page){scroll-padding-top:var(--header)}
 .selected-section{height:calc(100svh - var(--header));padding:20px var(--gutter) 14px;display:grid;grid-template-rows:auto minmax(0,1fr) 44px;row-gap:12px}
 .selected-section .section-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:6px 14px;margin:0}
 .selected-section .section-intro>div:first-child{grid-column:1;grid-row:1}
 .selected-section .section-intro .eyebrow{margin-bottom:8px;font-size:8px}
 .selected-section .section-title{font-size:32px;line-height:1.18}
 .selected-section .section-title:has([lang|=zh]){font-size:27px;line-height:1.35}
 .selected-description{display:contents}
 .selected-description>p{grid-column:1;grid-row:2;font-size:11px;line-height:1.65}
 .selected-description .text-link{grid-column:2;grid-row:1/3;align-self:end;margin:0;gap:10px;font-size:8px;white-space:nowrap}
 .selected-description .text-link [lang|=zh]{font-size:11px}
 .selected-description .text-link svg{width:14px;height:14px}
 .selected-rail{height:100%;min-height:0;align-items:stretch;padding-bottom:0}
 .selected-rail .project-card{display:grid;grid-template-rows:minmax(0,1fr) 65px;min-height:0;flex-basis:calc(100% - 23px)}
 .selected-rail .project-image{min-height:0;height:100%}
 .selected-rail .project-image img{height:100%;min-height:0;max-height:none}
 .selected-rail .project-caption{padding-top:10px;gap:9px;min-height:0}
 .selected-rail .project-caption h3{font-size:clamp(20px,5.5vw,24px);line-height:1.18}
 .selected-rail .project-caption p{font-size:9px;line-height:1.5;margin-top:5px}
 .selected-rail .project-caption p [lang|=zh]{font-size:10px}
 .selected-rail .caption-arrow{display:none}
 .selected-section .rail-controls{min-height:44px;margin-top:0;gap:12px;align-self:end}
 .selected-section .rail-hint{font-size:8px}
 .selected-section .rail-hint [lang|=zh]{font-size:10px}
 .has-photo-background.home-opening{min-height:100svh}
}
@media(max-width:767px) and (max-height:720px){
 .has-photo-background.home-opening{padding-top:calc(var(--header) + 18px);padding-bottom:18px}
 .has-photo-background .opening-title{margin-top:20px}
 .has-photo-background .opening-description{margin-top:16px;line-height:1.85}
 .has-photo-background .opening-actions{margin-top:18px}
 .has-photo-background .opening-scroll{padding-top:18px}
}

/* Current viewport, including the space returned by a retracting address bar. */
:root{--screen-height:100vh}
@supports(height:100dvh){:root{--screen-height:100dvh}}

/* Navigation uses the same editorial serif as the Studio headings. */
.menu-dialog{height:var(--screen-height);max-height:var(--screen-height);background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.menu-dialog[open]{display:flex;flex-direction:column;animation:menu-depth-enter .55s var(--ease) both}
.menu-dialog.is-closing{animation:menu-depth-leave .32s ease both}
.menu-dialog::backdrop{background:#1b181438;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}
.menu-atmosphere{position:fixed;inset:0;overflow:hidden;background:transparent}
.menu-photo{position:absolute;inset:-18px;width:calc(100% + 36px);height:calc(100% + 36px);max-width:none;object-fit:cover;filter:blur(4px) brightness(.72);opacity:0;transform:scale(1.025);transition:opacity .45s ease,transform .9s var(--ease)}
.menu-photo.is-ready{opacity:1;transform:scale(1)}
.menu-atmosphere:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#1b181480,#1b181473 48%,#1b1814a6)}
.menu-top{flex-shrink:0}
.menu-nav{flex:1;display:flex;flex-direction:column;justify-content:center;gap:8px;padding:24px var(--gutter);width:100%;margin:0 auto}
.menu-nav a{font-family:var(--serif),var(--song);font-size:clamp(24px,3.4vw,44px);line-height:1.2;gap:16px;min-height:56px;padding:12px 0;letter-spacing:-.02em;color:#f1eee5;text-shadow:0 2px 18px #0003}
.menu-nav a>[lang=en]{font-family:var(--serif);font-size:inherit;font-weight:400}
.menu-nav a>[lang|=zh]{font-family:var(--song);font-size:.85em;letter-spacing:.07em;line-height:1.4}
.menu-nav a svg{width:17px;height:17px}
.menu-nav a[aria-current]{color:#ded4c3}
.menu-dialog[open] .menu-nav a{animation:menu-line .65s var(--ease) both}
.menu-nav a:nth-child(1){animation-delay:.05s!important}.menu-nav a:nth-child(2){animation-delay:.09s!important}.menu-nav a:nth-child(3){animation-delay:.13s!important}.menu-nav a:nth-child(4){animation-delay:.17s!important}.menu-nav a:nth-child(5){animation-delay:.21s!important}
.menu-dialog[data-input=pointer] .menu-close:focus{outline:none}
@keyframes menu-depth-enter{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes menu-depth-leave{to{opacity:0;transform:translateY(-8px)}}
@media(prefers-reduced-motion:reduce){.menu-dialog[open] .menu-nav a{animation:none!important;opacity:1;transform:none;filter:none}}
@media(max-width:767px){
 .menu-nav{gap:7px;padding:20px var(--gutter)}
 .menu-nav a{font-size:clamp(23px,6.4vw,29px);gap:14px;min-height:54px;padding:11px 0}
 .menu-nav a small{width:14px;font-size:8px}
 .menu-bottom{display:block;margin:0 var(--gutter);padding:16px 0 calc(14px + var(--safe))}
 .menu-bottom>p{font-size:7px;line-height:1.8}
 .menu-bottom>a{font-size:18px;margin-top:7px;min-height:36px}
 .menu-contact-row{margin-top:7px;gap:14px;min-height:36px}
 .menu-contact-row .plain-button{min-height:36px}
 .display-title{font-size:clamp(34px,9vw,42px)}
 .display-title:has([lang|=zh]){font-size:clamp(29px,7.6vw,35px)}
 .project-intro h1{font-size:clamp(32px,8.8vw,40px)}
 .section-title{font-size:clamp(30px,8.2vw,36px)}
 .section-title:has([lang|=zh]){font-size:clamp(26px,7vw,31px)}
 .service-detail-heading h2{font-size:32px}
 .service-detail-heading h2:has([lang|=zh]){font-size:26px}
}
@media(max-width:767px) and (min-height:540px){
 .has-photo-background.home-opening{min-height:var(--screen-height)}
 .selected-section{height:calc(var(--screen-height) - var(--header))}
 .selected-rail .project-card{grid-template-rows:minmax(0,1fr) 59px}
 .home-page .quiet-services{height:calc(var(--screen-height) - var(--header));padding:24px var(--gutter);display:grid;grid-template-rows:auto minmax(0,1fr);gap:20px}
 .home-page .quiet-section-heading{margin:0;gap:13px 14px}
 .home-page .service-links{display:grid;grid-template-rows:repeat(4,minmax(0,1fr));min-height:0}
 .home-page .service-row{min-height:0;padding:10px 0;gap:12px}
 .home-page .service-row h3{font-size:clamp(20px,calc(var(--screen-height) * .032),26px);line-height:1.22;max-width:none}
 .home-page .service-row h3:has([lang|=zh]){font-size:clamp(19px,calc(var(--screen-height) * .028),23px)}
 .home-page .service-row p{margin-top:6px;line-height:1.5}
 .home-page .service-index{align-self:center;margin:0}
 .home-page .service-price strong{font-family:var(--serif);font-size:19px}
 .home-page .quiet-photographer{height:calc(var(--screen-height) - var(--header));padding:24px var(--gutter);display:grid;grid-template-columns:1fr;grid-template-rows:minmax(0,1fr) auto;gap:20px;align-items:stretch}
 .home-page .quiet-portrait{min-height:0;overflow:hidden}
 .home-page .quiet-portrait img{height:100%;width:100%;aspect-ratio:auto;object-fit:cover;object-position:50% 35%}
 .home-page .quiet-photographer-copy .eyebrow{font-size:8px}
 .home-page .quiet-photographer-copy h2{font-size:31px;margin-top:10px}
 .home-page .quiet-photographer-copy h2:has([lang|=zh]){font-size:27px}
 .home-page .quiet-photographer-copy>p:not(.eyebrow){font-size:12px;line-height:1.85;margin:12px 0 6px}
 .home-page .quiet-photographer-copy>p.photographer-credential{font-size:7px;line-height:1.6;margin:8px 0 0}
 .home-page .quiet-photographer-copy .text-link{font-size:9px;min-height:40px}
 .home-closing{height:calc(var(--screen-height) - var(--header));display:flex;flex-direction:column}
 .home-closing .contact-cta{flex:1;min-height:0;padding:20px 0;display:flex;flex-direction:column;justify-content:center}
 .home-closing .contact-cta h2{font-size:35px;margin:16px 0 12px;line-height:1.3}
 .home-closing .contact-cta h2:has([lang|=zh]){font-size:29px}
 .home-closing .cta-description{font-size:12px;line-height:1.85}
 .home-closing .cta-links{margin-top:16px;gap:9px}
 .home-closing .site-footer{flex:none;padding:18px 0 calc(12px + var(--safe))}
 .home-closing .footer-bottom{margin-top:14px;padding-top:10px;gap:8px 12px}
}
@media(max-width:767px) and (max-height:620px){
 .menu-bottom>p{display:none}
 .menu-nav{padding-top:10px;padding-bottom:10px;gap:2px}
 .home-page .quiet-services,.home-page .quiet-photographer{padding-top:18px;padding-bottom:18px;gap:14px}
 .home-closing .contact-cta h2{font-size:30px;margin:12px 0 8px}
 .home-closing .contact-cta h2:has([lang|=zh]){font-size:26px}
 .home-closing .footer-top>p{font-size:5px}
}

/* One restrained type scale across pages, navigation and pricing. */
.display-title{font-size:clamp(38px,4.2vw,58px)}
.display-title:has([lang|=zh]){font-size:clamp(32px,3.5vw,45px)}
.section-title{font-size:clamp(30px,3.5vw,48px)}
.section-title:has([lang|=zh]){font-size:clamp(26px,3vw,38px)}
.project-intro h1{font-size:clamp(36px,4.5vw,64px)}
.service-detail-heading h2{font-size:34px}
.service-detail-heading h2:has([lang|=zh]){font-size:28px}
.price-heading>strong{font-size:58px}
.pricing-notes h3,.service-terms h3,.process-grid h3{font-size:28px}
.pricing-notes h3:has([lang|=zh]),.service-terms h3:has([lang|=zh]),.process-grid h3:has([lang|=zh]){font-size:24px}
.about-bio h2,.recognition h2{font-size:36px}
.about-bio h2:has([lang|=zh]),.recognition h2:has([lang|=zh]){font-size:29px}
.quiet-photographer-copy h2{font-size:42px}
.quiet-photographer-copy h2:has([lang|=zh]){font-size:33px}
.contact-cta h2{font-size:44px}
.contact-cta h2:has([lang|=zh]){font-size:34px}
.next-story h2{font-size:38px}
.press-article h1{font-size:44px}
.legal-page h1{font-size:44px}
.legal-page h1:has([lang|=zh]){font-size:34px}
.inquiry-heading h2{font-size:31px}
.inquiry-heading h2:has([lang|=zh]){font-size:26px}
.entry-wordmark{font-size:clamp(34px,5.2vw,58px)}
.menu-nav a{font-size:clamp(24px,2.3vw,34px)}
@media(max-width:767px){
 .display-title{font-size:clamp(28px,7.8vw,34px)}
 .display-title:has([lang|=zh]){font-size:clamp(26px,7vw,30px)}
 .section-title{font-size:clamp(26px,7.4vw,32px)}
 .section-title:has([lang|=zh]){font-size:clamp(24px,6.5vw,28px)}
 .project-intro h1{font-size:clamp(29px,8vw,36px)}
 .menu-nav a{font-size:clamp(23px,6.4vw,29px)}
 .service-detail-heading h2{font-size:26px}
 .service-detail-heading h2:has([lang|=zh]){font-size:24px}
 .price-heading>strong{font-size:46px}
 .pricing-notes h3,.service-terms h3,.process-grid h3,.inquiry-heading h2{font-size:24px}
 .pricing-notes h3:has([lang|=zh]),.service-terms h3:has([lang|=zh]),.process-grid h3:has([lang|=zh]),.inquiry-heading h2:has([lang|=zh]){font-size:22px}
 .about-bio h2,.recognition h2{font-size:28px}
 .about-bio h2:has([lang|=zh]),.recognition h2:has([lang|=zh]){font-size:25px}
 .contact-cta h2{font-size:30px}
 .contact-cta h2:has([lang|=zh]){font-size:26px}
 .next-story h2{font-size:26px}
 .press-article h1{font-size:30px}
 .legal-page h1{font-size:32px}
 .legal-page h1:has([lang|=zh]){font-size:28px}
 .has-photo-background .opening-title{font-size:10.8vw}
 .services-page .display-title>[lang=en]{white-space:nowrap}
 .home-closing .cta-links{flex-direction:row;flex-wrap:wrap;align-items:center;gap:8px 22px}
 .home-closing .cta-links>a:last-child{font-size:11px}
}

/* Direction icons belong to navigation controls; ordinary links stay typographic. */
.button,.has-photo-background .opening-actions .cover-action{justify-content:center}
.menu-bottom>a{white-space:nowrap;line-height:1.5}
.gallery-image{cursor:zoom-in}

/* A single warm photographic palette throughout the Studio. */
:root{--bg:#1b1814;--fg:#f0e7d9;--muted:#c0b5a4;--line:#d7c3a42b;--song:'YF Song','YF Caslon','Songti SC',STSong,SimSun,serif}
body{font-family:var(--text),var(--song)}
[lang|=zh]{font-family:var(--text),var(--song)}
h1,h2,h3,h1[lang|=zh],h2[lang|=zh],h3[lang|=zh],h1 [lang|=zh],h2 [lang|=zh],h3 [lang|=zh]{font-family:var(--serif),var(--song)}
.menu-nav a>[lang|=zh],.honor-mark>[lang|=zh]{font-family:var(--serif),var(--song)}
.site-header{background:#1b1814c9;transition:background .65s ease,backdrop-filter .65s ease}
.home-page .site-header.is-past-opening{background:#1b1814ce}
.language-option{color:#b4a895}
.language-option[aria-pressed=true]{color:var(--fg)}
.language-option[aria-pressed=true]:after{background:currentColor}
.scene-panel{position:relative;isolation:isolate}
.scene-warm,.scene-smoke{--fg:#f0e7d9;--muted:#c0b5a4;--line:#d7c3a42b;background:var(--bg);color:var(--fg);color-scheme:dark}
.section-scene{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}
.section-scene img{position:absolute;inset:-28px;width:calc(100% + 56px);height:calc(100% + 56px);max-width:none;object-fit:cover;filter:blur(14px) saturate(.7);opacity:.85;transform:translate3d(0,var(--scene-drift,0px),0) scale(1.08);transition:transform 1.2s var(--ease)}
.section-scene:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#1b1814,transparent 24%,transparent 73%,#1b1814),linear-gradient(115deg,#1b1814d9,#30251aa8 60%,#211b15c4)}
.editorial-surface{background:var(--bg)}
.editorial-surface>.section-scene{max-height:1100px}
.editorial-surface .page-intro:before,.editorial-surface .contact-intro:before{display:none}
.quiet-services{overflow:hidden}
.quiet-services .service-links{background:linear-gradient(120deg,#eee0c90a,#e2c69f04);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.quiet-services .service-row{padding-left:12px;padding-right:12px}
.quiet-services .service-row:before{inset:0;background:linear-gradient(100deg,transparent,#ecd8b70c);transition:opacity .6s ease}
.quiet-services .service-price strong{color:var(--fg);font-family:var(--serif)}
.scene-portrait .section-scene img{filter:blur(22px) grayscale(1);opacity:.62;object-position:70% 35%}
.quiet-portrait{box-shadow:0 20px 60px #09080528}
.footer-shell{overflow:hidden}
.footer-shell>.section-scene img{filter:blur(14px) saturate(.7);object-position:50% 62%}
.footer-shell .cta-halo{display:none}
.footer-shell .site-footer{background:transparent}
.footer-shell .footer-top>p,.footer-shell .footer-bottom,.footer-shell .cta-links>a:last-child{color:var(--muted)}
.text-link:after{background:linear-gradient(90deg,#c6b496,#e4d5bb)}
.filter-button:after,.gallery-layout:after{background:linear-gradient(90deg,#aa9470,#e5d4b4)}
.button,.editorial-surface .button,.project-gallery>.button{background:linear-gradient(120deg,#d8c09a1c,#dcc7a40b);border-color:#d7c3a43b;color:var(--fg);box-shadow:inset 0 1px 0 #f2e0c51c;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.button:hover{box-shadow:0 0 32px #ddbf8c12}
.editorial-surface .package-tabs button.is-active{background:#e6cc9f10;border-color:#d6bd9580}
.editorial-surface .price-card{padding:22px 16px;background:linear-gradient(120deg,#e4d2b40b,#d7b78804);box-shadow:inset 0 1px 0 #eee0c526;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.editorial-surface .process,.editorial-surface .faq-section{border-top:1px solid var(--line)}
.editorial-surface .inquiry{padding:24px;background:linear-gradient(135deg,#ecdcbe0b,#d1ae7b05);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.editorial-surface .inquiry input,.editorial-surface .inquiry select,.editorial-surface .inquiry textarea{border-color:#d9c7a74d}
.editorial-surface .inquiry input:focus,.editorial-surface .inquiry select:focus,.editorial-surface .inquiry textarea:focus{border-color:#e4cba3}
.editorial-surface .inquiry input::placeholder,.editorial-surface .inquiry textarea::placeholder{color:#b5a78f}
.editorial-surface .inquiry option{background:#29221a;color:var(--fg)}
.editorial-surface .selected-package{border-color:#c4a678;background:linear-gradient(90deg,#d8b77e0e,transparent)}
.selected-section .selected-description>p,.selected-section .project-caption p,.article-summary{color:var(--muted)}
.selected-atmosphere:after{background:linear-gradient(180deg,#1b1814 0%,#1b1814b8 20%,#1b181445 50%,#1b181470 72%,#1b1814 100%)}
.gallery-flow.is-grid .gallery-image{background:#211d17}
.rail-atmosphere{position:absolute;inset:0;z-index:-1;overflow:clip;pointer-events:none;background:var(--bg)}
.rail-atmosphere-viewport{position:sticky;top:0;height:var(--screen-height);overflow:hidden}
.rail-atmosphere-photos{position:absolute;inset:-40px;filter:blur(26px) saturate(.95);transform:translateZ(0)}
.rail-atmosphere-photo{position:absolute;inset:0;width:100%;height:100%;max-width:none;object-fit:cover;transform:scale(1.38);opacity:0;transition:opacity 950ms cubic-bezier(.22,.61,.36,1)}
.rail-atmosphere-photo.is-current{opacity:1}
.rail-atmosphere-viewport:after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#1b1814e6,#1b1814a3 28%,#1b181468 55%,#1b1814ad 82%,#1b1814e6)}
.route-curtain>span{background:linear-gradient(125deg,#17130f 20%,#392e22 75%,#c3ac85)}
.route-curtain>span:last-child{background:radial-gradient(ellipse at 70% 35%,#c4a7741a,transparent 60%),linear-gradient(120deg,#221c15,#191510 75%,#d0b17c38)}
.menu-atmosphere:after{background:linear-gradient(180deg,#1b181480,#1b181473 48%,#1b1814a6)}
.menu-nav a{color:var(--fg)}
.menu-nav a[aria-current]{color:#decbab}
.rail-count,.lightbox-count{color:#d4c7b0}
.press-index{display:block;padding-top:0}
.press-index .press-card{border-top:1px solid var(--line)}
.press-index .press-card:last-child{border-bottom:1px solid var(--line)}
.press-row-link{display:grid;grid-template-columns:82px minmax(0,1fr);gap:17px;align-items:center;min-height:126px;padding:20px 0}
.press-index .press-photo{width:100%;aspect-ratio:4/5;background:#211c16;margin:0}
.press-index .press-photo.press-logo{background:#f4f1e8}
.press-index .press-photo.press-logo img{object-fit:contain;padding:5px;transform:none}
.press-article figure.press-logo{background:#f4f1e8}
.press-article figure.press-logo img{max-height:320px;object-fit:contain;padding:24px}
.press-row-copy{min-width:0}
.press-row-meta{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 13px;font-family:var(--text);font-size:8px;line-height:1.7;color:var(--muted);letter-spacing:.025em}
.press-row-meta>span{color:var(--fg);font-size:9px}
.press-index .press-card h2{font-size:17px;line-height:1.35;letter-spacing:-.01em;margin-top:9px;text-wrap:pretty}
.press-row-copy>p{font-size:9px;line-height:1.6;color:var(--muted);margin-top:8px}
.press-row-copy>p>[lang|=zh]{font-size:10px}
.journal-page .page-intro{padding-bottom:30px}
.journal-page .page-intro .hero-meta{margin-bottom:24px}
.journal-page .intro-description{font-size:12px;line-height:1.9;margin-top:20px;max-width:520px}
@media(min-width:768px){
 .press-row-link{grid-template-columns:150px minmax(0,1fr);gap:32px;padding:25px 0}
 .press-index .press-photo{aspect-ratio:3/2}
 .press-row-copy{display:grid;grid-template-columns:minmax(0,1fr) 115px;gap:6px 30px;align-items:start}
 .press-row-meta{grid-column:1/-1;font-size:9px;gap:20px}
 .press-row-meta>span{font-size:10px}
 .press-index .press-card h2{font-size:25px;max-width:780px;margin-top:8px}
 .press-row-copy>p{margin-top:13px;text-align:right;font-size:10px}
 .editorial-surface .inquiry{padding:34px}
}
@media(min-width:1000px){.quiet-services .service-row{padding-left:24px;padding-right:24px}.press-row-link{grid-template-columns:180px minmax(0,1fr);gap:45px}.press-index .press-card h2{font-size:28px}}
@media(max-width:359px){.press-row-link{grid-template-columns:68px minmax(0,1fr);gap:13px;padding:17px 0}.press-index .press-card h2{font-size:16px}.press-row-meta{gap:3px 9px;font-size:7px}}
@media(prefers-reduced-motion:reduce){.section-scene img{transform:scale(1.08);transition:none}.site-header{transition:none}.rail-atmosphere-photo{transition:none!important}}

.awards-section{overflow:hidden;padding-top:65px;padding-bottom:65px}
.awards-heading{display:grid;gap:24px;margin-bottom:30px}
.awards-heading .section-title{margin-top:16px}
.awards-heading>p{font-size:12px;line-height:2;max-width:480px;color:var(--muted)}
.honor-features{display:grid;border-top:1px solid var(--line);border-bottom:1px solid var(--line);background:linear-gradient(120deg,#eee0c90a,#e2c69f04);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.honor-card{padding:26px 18px 24px;min-width:0}
.honor-card+.honor-card{border-top:1px solid var(--line)}
.honor-meta{font-family:var(--text);font-size:8px;letter-spacing:.08em;display:flex;justify-content:space-between;gap:15px;color:var(--muted)}
.honor-mark,.honor-mark[lang=en]{font-family:var(--serif),var(--song);font-size:38px;line-height:1.15;margin:26px 0 16px;letter-spacing:-.02em;color:#dcc6a3}
.honor-mark>[lang=en]{font-family:var(--serif);font-size:inherit}
.honor-mark>[lang|=zh]{font-family:var(--song);font-size:30px;letter-spacing:.03em}
.honor-card h3{font-size:21px;line-height:1.35;max-width:360px}
.honor-card h3:has([lang|=zh]){font-size:20px}
.honor-card>p:not(.honor-mark){font-size:12px;line-height:1.9;color:var(--muted);margin-top:15px;max-width:390px}
.honor-source{display:inline-block;font-family:var(--text),var(--song);font-size:8px;line-height:1.8;letter-spacing:.05em;margin-top:22px;color:var(--muted)}
a.honor-source{text-decoration:underline;text-underline-offset:4px;text-decoration-color:#d5bc9480}
.honors-index{margin-top:36px}
.honors-index>.eyebrow{margin-bottom:16px}
.honor-list{border-top:1px solid var(--line)}
.honor-list li{display:grid;grid-template-columns:30px minmax(0,1fr);gap:8px 14px;padding:23px 0;border-bottom:1px solid var(--line);align-items:baseline}
.honor-year{font-family:var(--text);font-size:9px;color:var(--muted)}
.honor-list h3{font-size:20px;line-height:1.4;letter-spacing:-.01em}
.honor-list p{font-family:var(--text);font-size:9px;color:var(--muted);margin-top:6px}
.honor-list strong{grid-column:2;font-family:var(--text),var(--song);font-size:11px;line-height:1.7;font-weight:400;color:#d4ba91}
.honors-context{margin-top:30px;display:grid;gap:16px}
.honors-context>p{font-size:11px;line-height:2;color:var(--muted);max-width:640px}
.honors-context .text-link{justify-self:start}
@media(min-width:768px){
 .awards-section{padding-top:85px;padding-bottom:85px}
 .awards-heading{grid-template-columns:1fr 1fr;gap:8vw;align-items:end;margin-bottom:40px}
 .honor-features{grid-template-columns:1fr 1fr}
 .honor-card{padding:32px 30px}
 .honor-card+.honor-card{border-top:0;border-left:1px solid var(--line)}
 .honor-list li{grid-template-columns:44px minmax(0,1fr) auto;gap:24px}
 .honor-list strong{grid-column:auto;text-align:right}
 .honors-context{grid-template-columns:1fr auto;gap:5vw;align-items:start}
 .editorial-surface .inquiry{padding:34px}
}
@media(min-width:1000px){.quiet-services .service-row{padding-left:24px;padding-right:24px}.awards-heading>p{font-size:13px}.honor-card{padding:38px}.honor-list h3{font-size:23px}}

/* Control insets and reading proportions share one spacing scale. */
:root{--radius-control:8px;--radius-surface:12px;--control-inset:8px}
.service-tabs,.editorial-surface .service-tabs{top:calc(var(--header) + 8px);gap:0;padding:var(--control-inset);border:0;border-radius:10px;background:linear-gradient(115deg,#b49b7410,#d9c5a51a 48%,#ac95730d);box-shadow:none;scroll-padding-inline:var(--control-inset);overscroll-behavior-x:contain;overflow-y:hidden;isolation:isolate}
.service-tabs::-webkit-scrollbar{display:none}
.service-tabs button{flex:1 0 0;min-width:max-content;min-height:44px;padding:10px 8px;border-radius:7px;line-height:1.6;background:transparent;box-shadow:inset 0 0 0 1px transparent;transition:background-color .4s ease,box-shadow .4s ease,color .35s ease}
.service-tabs button[aria-selected=true]{background-color:#dfc9a31c;box-shadow:inset 0 0 0 1px #dcc8a426,0 2px 8px #0906030a;color:var(--fg)}
.service-tabs button:hover{color:var(--fg)}
.service-tabs button:focus-visible{outline-color:#d6bd9570;outline-offset:-2px}
@media(prefers-reduced-motion:reduce){.service-tabs button{transition:none!important}}
.package-tabs button{min-height:64px;border-radius:var(--radius-control);border-color:#d7c3a42b}
.editorial-surface .package-tabs button.is-active{border-color:#d6bd954d}
.button,.has-photo-background .opening-actions .cover-action{border-radius:var(--radius-control)}
.editorial-surface .price-card,.editorial-surface .inquiry,.honor-features{border-radius:var(--radius-surface)}
.quiet-services .service-links{border-radius:var(--radius-surface)}
.service-row:first-child,.service-row:first-child:before{border-radius:var(--radius-surface) var(--radius-surface) 0 0}
.service-row:last-child,.service-row:last-child:before{border-radius:0 0 var(--radius-surface) var(--radius-surface)}
.home-page .service-row{display:grid;grid-template-columns:10px minmax(0,1fr) 60px;column-gap:12px}
.home-page .service-index{align-self:center;margin:0}
.home-page .service-price{justify-self:end}
.home-page .service-row>div{min-width:0}
html[lang=en] .display-title{font-size:clamp(32px,3.8vw,50px)}
html[lang=en] .section-title{font-size:clamp(28px,3.2vw,42px)}
html[lang=en] .project-intro h1{font-size:clamp(32px,4vw,54px)}
html[lang=en] .service-detail-heading h2{font-size:32px}
html[lang=en] .home-page .service-row h3{font-size:clamp(22px,2.25vw,30px);line-height:1.35;letter-spacing:-.015em;max-width:100%}
html[lang=en] .home-page .service-price strong{font-size:21px}
@media(max-width:767px){
 html[lang=en] .display-title{font-size:clamp(27px,7.2vw,30px);line-height:1.25}
 html[lang=en] .section-title{font-size:clamp(24px,6.4vw,28px);line-height:1.28}
 html[lang=en] .project-intro h1{font-size:clamp(27px,7.2vw,32px);line-height:1.22}
 html[lang=en] .home-page .service-row h3{font-size:clamp(18px,4.9vw,21px);line-height:1.35}
 html[lang=en] .home-page .service-price strong{font-size:17px}
 html[lang=en] .service-detail-heading h2{font-size:24px;line-height:1.3}
 html[lang=en] .selected-rail .project-caption h3{font-size:clamp(19px,5.1vw,22px);line-height:1.25}
 html[lang=en] .menu-nav a{font-size:clamp(22px,5.8vw,25px);line-height:1.3}
 html[lang=en] .price-heading>strong{font-size:40px}
 html[lang=en] .about-bio h2,html[lang=en] .quiet-photographer-copy h2,html[lang=en] .contact-cta h2{font-size:27px;line-height:1.3}
 html[lang=en] .process-grid h3,html[lang=en] .pricing-notes h3,html[lang=en] .service-terms h3,html[lang=en] .inquiry-heading h2{font-size:22px;line-height:1.35}
 html[lang=en] .next-story h2{font-size:24px;line-height:1.3}
 html[lang=en] .press-article h1,html[lang=en] .legal-page h1{font-size:28px;line-height:1.3}
 html[lang=en] .honor-mark{font-size:32px}
}
@media(max-width:359px){.home-page .service-row{grid-template-columns:10px minmax(0,1fr) 56px;column-gap:8px}}

/* The bilingual cover is a two-line heading with room for the photograph. */
.has-photo-background .opening-title{font-size:clamp(32px,3.5vw,46px);line-height:1.3;letter-spacing:-.025em}
.has-photo-background .opening-title .precision-line{font-size:1em;line-height:inherit;letter-spacing:inherit}
.has-photo-background .opening-title .type-line>span{line-height:inherit}
.has-photo-background .opening-title [lang|=zh]{font-size:calc(1em + 1px);letter-spacing:.06em}
@media(max-width:767px){.has-photo-background .opening-title{font-size:clamp(26px,7vw,30px);margin-top:24px}}
