/* User-approved original typography, layout and palette take precedence over generic taste rules. */
:root{--muted:#626d65}
[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.body-copy,.project-intro-grid>div>p:not(.eyebrow){font-size:16px}.work-location,.work-highlights,.real-project-facts dd{font-size:14px}.real-project-visual figcaption,.gallery-grid figcaption{font-size:13px}.work-caption{font-family:"Noto Serif TC","PMingLiU","Songti TC",serif}.work-copy h2{line-height:1.5}.work-card{scroll-margin-top:130px}
.tone-guanyin{filter:saturate(.73) brightness(1.13) contrast(.94)}
.tone-gelinyuan{filter:saturate(.82) brightness(1.15) contrast(.94) sepia(.025)}
.tone-zheyue{filter:saturate(.78) brightness(1.1) contrast(.96)}
.tone-park{filter:saturate(.8) brightness(1.05) contrast(.97)}
.tone-hefeng{filter:saturate(.78) brightness(1.03) contrast(.97)}
.tone-interior{filter:saturate(.82) brightness(1.12) contrast(.94)}
.work-image:hover img{filter:inherit}.work-image:hover .tone-guanyin{filter:saturate(.73) brightness(1.13) contrast(.94)}.work-image:hover .tone-gelinyuan{filter:saturate(.82) brightness(1.15) contrast(.94) sepia(.025)}.work-image:hover .tone-zheyue{filter:saturate(.78) brightness(1.1) contrast(.96)}.work-image:hover .tone-park{filter:saturate(.8) brightness(1.05) contrast(.97)}.work-image:hover .tone-hefeng{filter:saturate(.78) brightness(1.03) contrast(.97)}
.project-filters{display:flex;gap:24px;flex-wrap:wrap}.project-filters button{border:0;border-bottom:1px solid transparent;background:transparent;padding:10px 0;font-size:14px;letter-spacing:.08em}.project-filters button[aria-pressed=true]{color:var(--green);border-color:var(--gold)}.project-filters button:hover{color:var(--gold)}.works-toolbar>span{font-size:12px}.gallery-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:50px 36px;margin-top:42px}.gallery-grid figure{margin:0}.gallery-grid img{width:100%;height:auto;max-height:660px;object-fit:contain;background:#eeefe7}.gallery-grid figcaption{color:var(--muted);margin-top:12px}.project-gallery h2{font-size:38px}.project-plan img{max-height:900px}.about-visual img{object-fit:cover;object-position:50% 35%}.value-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.value-grid article,.value-grid article:first-child{padding-left:32px;padding-right:32px}.value-grid article>p:last-child{max-width:100%;font-size:14px}
.welcome{position:relative;min-height:620px;height:calc(100svh - 172px);max-height:880px;display:grid;grid-template-columns:34% 66%;overflow:hidden;background:var(--paper)}.welcome-visual{grid-column:2;grid-row:1;position:relative;min-width:0;overflow:hidden}.welcome-slide{position:absolute;inset:0;margin:0;opacity:0;visibility:hidden;transition:opacity 1.1s ease,visibility 1.1s}.welcome-slide.is-active{opacity:1;visibility:visible}.welcome-slide img{width:100%;height:100%;object-fit:cover;object-position:50% 47%}.welcome-slide.interior-slide img{object-position:50% 54%}.welcome-slide figcaption{position:absolute;bottom:24px;right:28px;max-width:calc(100% - 56px);font-size:12px;letter-spacing:.12em;color:#fff;background:rgba(18,63,50,.76);padding:5px 12px}.welcome-copy{grid-column:1;grid-row:1;align-self:center;padding:30px 30px 35px var(--gutter);position:relative;z-index:2}.welcome-copy .eyebrow{font-size:11px;letter-spacing:.18em;white-space:nowrap}.welcome h1{font-family:"Noto Serif TC","PMingLiU","Songti TC",serif;font-size:clamp(34px,3.2vw,50px);font-weight:400;letter-spacing:.12em;line-height:1.65;margin:24px 0}.welcome-description{font-size:15px;color:var(--muted);letter-spacing:.12em;line-height:2.1}.welcome-copy .line-link{margin-top:30px;font-size:14px;gap:42px}.welcome-controls{display:flex;align-items:center;gap:12px;margin-top:55px}.slide-dot{display:flex;align-items:center;justify-content:center;width:32px;height:36px;border:0;background:none;padding:0}.slide-dot:after{content:"";width:6px;height:6px;border:1px solid var(--gold);border-radius:100%;transition:transform .3s,background .3s}.slide-dot.is-active:after{background:var(--gold);transform:scale(1.3)}.slide-pause{background:none;border:0;font-size:12px;letter-spacing:.08em;color:var(--muted);padding:6px 12px;min-height:36px}.home-footer{display:flex;justify-content:space-between;align-items:center;gap:20px;min-height:64px;padding:15px var(--gutter);font-size:11px;letter-spacing:.09em;border-top:0}.home-footer p{font:11px Arial,sans-serif}.home-footer a{font-size:12px;color:var(--green)}
@media(min-width:1600px){.welcome{grid-template-columns:35% 65%}.welcome h1{font-size:52px}}
@media(max-width:1050px){.welcome{height:calc(100svh - 152px);min-height:580px;grid-template-columns:36% 64%}.welcome-copy{padding-left:36px;padding-right:20px}.welcome h1{font-size:34px;letter-spacing:.08em}.welcome-copy .eyebrow{font-size:10px;letter-spacing:.1em}.welcome-description{font-size:14px}.welcome-copy .line-link{gap:30px}.welcome-controls{margin-top:36px}.header{padding-inline:36px}.brand{width:170px}.nav{gap:19px}.nav-contact{padding-left:15px!important}.gallery-grid{gap:30px 24px}}
@media(max-width:760px){.header{padding:0 24px}.welcome{height:auto;min-height:0;max-height:none;display:flex;flex-direction:column}.welcome-visual{order:0;height:clamp(350px,55svh,540px);width:100%;flex-shrink:0}.welcome-slide img{object-fit:cover;object-position:center 40%}.welcome-slide.interior-slide img{object-position:center 52%}.welcome-slide figcaption{bottom:15px;right:16px;font-size:11px}.welcome-copy{order:1;align-self:stretch;padding:28px 24px 25px;display:grid;grid-template-columns:1fr auto;column-gap:18px;align-items:start}.welcome-copy>.eyebrow{grid-column:1/-1;font-size:10px}.welcome h1{font-size:32px;letter-spacing:.08em;line-height:1.55;margin:13px 0 0;grid-column:1}.welcome-description{grid-column:2;grid-row:2;margin-top:19px;font-size:12px;letter-spacing:.08em;line-height:2}.welcome-copy .line-link{grid-column:1;grid-row:3;justify-self:start;margin-top:15px;font-size:13px;gap:28px;padding:9px 0}.welcome-controls{grid-column:2;grid-row:3;margin:17px 0 0;justify-self:end;gap:3px}.slide-pause{padding:6px;font-size:11px}.home-footer{padding:18px 24px;gap:14px;min-height:60px;flex-wrap:wrap}.home-footer>span{font-size:11px}.home-footer p{font-size:10px}.home-footer a{margin-left:auto}.gallery-grid{grid-template-columns:1fr;gap:30px}.project-gallery h2{font-size:30px}.project-filters{gap:20px}.project-filters button{font-size:13px}.works-toolbar>span{font-size:12px}.body-copy,.project-intro-grid>div>p:not(.eyebrow){font-size:15px}.value-grid{grid-template-columns:1fr}.value-grid article,.value-grid article:first-child{padding-left:85px;padding-right:0}.value-grid article>p:last-child{font-size:14px}.real-project-facts dd{font-size:14px}.real-project-facts dt{font-size:12px}.work-card{scroll-margin-top:96px}.real-project-visual figcaption{font-size:12px}.welcome-slide{transition-duration:.7s}}
@media(max-width:760px){.welcome-copy{grid-template-columns:minmax(0,1fr) 112px}.welcome h1{font-size:30px}.welcome-description{font-size:12px;letter-spacing:0}.welcome-controls{gap:0}.slide-dot{width:29px}.slide-pause{padding:6px 4px}}
@media(max-width:360px){.welcome h1{font-size:26px}.welcome-copy{column-gap:10px;grid-template-columns:minmax(0,1fr) 102px}.welcome-description{font-size:11px}}
.skip{left:24px}.welcome-copy .gold{color:#826b36}.welcome-copy .eyebrow,.welcome-description,.slide-pause,.welcome-slide figcaption,.home-footer,.home-footer p,.home-footer>span,.home-footer a{font-size:13px}.welcome-copy .eyebrow{letter-spacing:.12em}
@media(max-width:760px){.welcome-copy .eyebrow{font-size:11px;letter-spacing:.1em}.welcome-description{font-size:13px;letter-spacing:0}.home-footer{gap:8px}.home-footer p,.home-footer>span{font-size:11px}.slide-pause{font-size:12px}.welcome-slide figcaption{font-size:12px}}
@media(prefers-reduced-motion:reduce){.welcome-slide,.slide-dot:after{transition:none!important}}

/* Extend the photograph under the copy with a neutral, feathered veil. */
@media(min-width:761px){
  .welcome-visual{position:absolute;inset:0;grid-column:auto;overflow:hidden}
  .welcome-slide img{position:absolute;right:0;width:81%;object-position:50% 0%}
  .welcome-slide.interior-slide img{object-position:50% 54%}
  .welcome-visual:before{content:"";position:absolute;inset:0 49% 0 0;z-index:1;backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);mask-image:linear-gradient(90deg,#000 48%,transparent);-webkit-mask-image:linear-gradient(90deg,#000 48%,transparent);pointer-events:none}
  .welcome-visual:after{content:"";position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,var(--paper) 4%,rgba(248,247,242,.98) 17%,rgba(248,247,242,.88) 26%,rgba(248,247,242,.52) 35%,rgba(248,247,242,.12) 46%,transparent 56%);pointer-events:none}
  .welcome-slide figcaption{z-index:2}
  .welcome-copy{align-self:center}
}
.welcome-description{color:var(--ink)}
.about-visual .tone-interior{object-position:50% 46%}
.slide-dot{min-width:40px;min-height:44px;cursor:pointer}
.slide-dot:hover:after{transform:scale(1.5)}
.slide-dot:focus-visible{outline:2px solid var(--green);outline-offset:2px}
@media(max-width:760px){
  .welcome-copy{grid-template-columns:minmax(0,1fr) 132px}
  .welcome-visual:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:65px;pointer-events:none;background:linear-gradient(0deg,var(--paper),rgba(248,247,242,0))}
  .welcome-slide figcaption{bottom:48px}
}
@media(max-width:360px){.welcome-copy{grid-template-columns:minmax(0,1fr) 114px}.welcome-description{font-size:12px}}

/* Restrained, non-generative clarity keeps the real facade and signs intact. */
.work-image .tone-gelinyuan,.real-project-visual .tone-gelinyuan,.gallery-grid .tone-gelinyuan,.work-image:hover .tone-gelinyuan{filter:url("#fu-gang-photo-clarity") saturate(.76) brightness(1.10) contrast(1.025) sepia(.07)}
.about-visual .about-documentary{filter:saturate(.52) brightness(1.08) contrast(.96);object-fit:cover;object-position:50% 64%;image-orientation:from-image}
@media(max-width:760px){.about-visual .about-documentary{object-position:50% 62%}}
.work-image .tone-gelinyuan-enhanced,.work-image:hover .tone-gelinyuan-enhanced,.real-project-visual .tone-gelinyuan-enhanced{filter:none}
.work-image{border-radius:18px;overflow:hidden}
.work-image img{width:100%;aspect-ratio:6/5;object-fit:cover;object-position:50% 45%}
@media(max-width:760px){.work-image{border-radius:14px}}
.contact-page{align-items:start}
.contact-details dd{font-size:16px;color:var(--ink);line-height:1.9;text-align:right}
.contact-details dt{white-space:nowrap}
.contact-details a:hover{color:var(--gold)}
.contact-form-section{grid-column:1/-1;max-width:940px;width:100%;margin:20px auto 0}
.contact-form-section h2{font-size:34px;margin:0 0 14px}
.contact-form-section>p{font-size:15px;line-height:1.9;color:var(--muted)}
.contact-form{display:grid;grid-template-columns:1fr 1fr;gap:26px 32px;margin-top:32px}
.contact-field{display:flex;flex-direction:column;gap:10px;min-width:0}
.contact-field label{font-size:15px;letter-spacing:.06em}.contact-field label span{font-size:12px;color:var(--muted);margin-left:8px}
.contact-field input,.contact-field textarea{font:16px/1.6 "Microsoft JhengHei",sans-serif;background:rgba(255,255,255,.5);border:1px solid #bec5ba;color:var(--ink);width:100%;padding:13px 14px;border-radius:0;min-height:50px;box-sizing:border-box}
.contact-field textarea{min-height:150px;resize:vertical}
.contact-field input:focus,.contact-field textarea:focus{outline:2px solid var(--green);outline-offset:2px;border-color:var(--green)}
.contact-field--wide,.contact-form-actions,.contact-form-status{grid-column:1/-1}
.contact-form-actions{display:flex;align-items:center;justify-content:space-between;gap:26px}
.contact-form-actions p{font-size:12px;color:var(--muted);line-height:1.8;margin:0;max-width:540px}
.contact-submit{border:0;background:var(--green);color:var(--paper);padding:15px 32px;font:15px/1.5 "Microsoft JhengHei",sans-serif;letter-spacing:.1em;cursor:pointer;white-space:nowrap}
.contact-submit:hover{background:#245444}.contact-submit:focus-visible{outline:2px solid var(--gold);outline-offset:4px}.contact-submit:disabled{opacity:.6;cursor:wait}
.contact-form-status{font-size:15px;line-height:1.8;margin:0;color:var(--green)}.contact-form-status[data-state=error]{color:#93432e}
.contact-trap{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:760px){.contact-details>div{gap:18px;align-items:start}.contact-details dt{font-size:13px}.contact-details dd{font-size:15px;max-width:66%}.contact-form-section{margin-top:10px}.contact-form-section h2{font-size:29px}.contact-form{grid-template-columns:1fr;gap:24px}.contact-form-actions{align-items:start;flex-direction:column;gap:20px}.contact-submit{width:100%}}

/* Grouped architecture gallery: coherent crops, original files in the viewer. */
#gallery-title{scroll-margin-top:135px}
.project-gallery-heading{display:flex;justify-content:space-between;align-items:end;gap:28px}
.project-gallery-heading h2{margin:14px 0 0}.project-gallery-heading>p{font-size:14px;line-height:1.8;color:var(--muted);margin:0}
.gallery-jumps{display:flex;flex-wrap:wrap;gap:28px;margin:30px 0 0}.gallery-jumps a{font-size:14px;letter-spacing:.08em;color:var(--green);padding:8px 0;text-underline-offset:7px}.gallery-jumps a:hover,.gallery-jumps a:focus-visible{text-decoration:underline}
.gallery-group{margin-top:65px;scroll-margin-top:130px}.gallery-group-heading{display:flex;align-items:baseline;justify-content:space-between;gap:20px;margin-bottom:22px}.gallery-group-heading h3{font:400 27px/1.5 "Noto Serif TC","PMingLiU",serif;letter-spacing:.09em;margin:0}.gallery-group-heading span{font-size:13px;color:var(--muted)}
.gallery-group .gallery-grid{margin-top:0;gap:28px;align-items:start}.gallery-group .gallery-grid--three{grid-template-columns:repeat(3,minmax(0,1fr))}.gallery-group .gallery-grid--single{grid-template-columns:minmax(0,1fr);max-width:980px}
.gallery-group figure{min-width:0}.gallery-group figure>a{display:block;overflow:hidden;border-radius:16px;aspect-ratio:4/3;background:#e9ebe4;cursor:zoom-in}
.gallery-group .gallery-photo img{width:100%;height:100%;max-height:none;object-fit:cover;object-position:50% 46%;display:block;transition:transform .45s ease}
.gallery-group .gallery-photo--portrait img{object-position:50% 63%}
#interior .gallery-photo>a{aspect-ratio:4/5}#interior .gallery-photo img{object-position:50% 53%}
.gallery-group .gallery-photo a:hover img{transform:scale(1.025)}.gallery-group a:focus-visible{outline:2px solid var(--green);outline-offset:5px}
.gallery-group .gallery-plan>a{background:#fff}.gallery-group .gallery-plan img{width:100%;height:100%;max-height:none;object-fit:contain;display:block;background:#fff;filter:none}
.real-project-visual img{border-radius:18px}
.photo-viewer{width:calc(100% - 48px);max-width:1440px;height:calc(100svh - 48px);max-height:1100px;border:0;padding:20px 24px;background:var(--paper);color:var(--ink);border-radius:16px;overflow:hidden}
.photo-viewer::backdrop{background:rgba(8,20,16,.86)}.photo-viewer[open]{display:flex;flex-direction:column;gap:12px}
.photo-viewer header{display:flex;align-items:center;justify-content:space-between;gap:20px;flex:none}.photo-viewer h2{font:400 19px/1.6 "Microsoft JhengHei",sans-serif;letter-spacing:.04em;margin:0}.photo-viewer button{min-width:46px;min-height:46px;border:1px solid #bdc4b8;background:transparent;color:var(--ink);font-size:20px;cursor:pointer}.photo-viewer button:hover{background:#e9ebe4}.photo-viewer button:focus-visible{outline:2px solid var(--green);outline-offset:2px}
.photo-viewer-media{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;position:relative}.photo-viewer-media img{width:100%;height:100%;object-fit:contain;background:transparent}.photo-viewer-media p{position:absolute;inset:0;display:grid;place-items:center;font-size:15px;background:var(--paper)}.photo-viewer-media p[hidden]{display:none}
.photo-viewer footer{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:0;flex:none;font-size:13px}.photo-viewer footer>div{display:flex;gap:12px}.photo-viewer footer>a{font-size:13px;text-decoration:underline;text-underline-offset:5px}
body.has-photo-viewer{overflow:hidden}
@media(max-width:760px){.project-gallery-heading{display:block}.project-gallery-heading h2{font-size:30px}.project-gallery-heading>p{font-size:13px;margin-top:15px}.gallery-jumps{gap:22px;margin-top:20px}.gallery-jumps a{font-size:13px}.gallery-group{margin-top:38px;scroll-margin-top:100px}.gallery-group-heading{margin-bottom:18px}.gallery-group-heading h3{font-size:24px}.gallery-group-heading span{font-size:12px}.gallery-group .gallery-grid,.gallery-group .gallery-grid--three{grid-template-columns:minmax(0,1fr);gap:22px}.gallery-group figure>a{border-radius:12px}.photo-viewer{width:calc(100% - 20px);height:calc(100svh - 20px);padding:12px;border-radius:12px}.photo-viewer h2{font-size:15px}.photo-viewer footer{flex-wrap:wrap;gap:8px}.photo-viewer footer>a{margin-left:auto}}
@media(prefers-reduced-motion:reduce){.gallery-group .gallery-photo img{transition:none}}
@media(max-width:760px){#gallery-title{scroll-margin-top:100px}}
/* Tablet has its own readable measures and an uncropped documentary portrait. */
@media(min-width:761px) and (max-width:1100px){
 .about.section{grid-template-columns:minmax(240px,.9fr) minmax(0,1.1fr);gap:36px;align-items:start}
 .about-visual .about-documentary{height:auto;aspect-ratio:3/4;object-fit:cover}
 .about-copy #about-title{font-size:30px;line-height:1.65;letter-spacing:.05em}
 .about-copy .body-copy{font-size:15px;line-height:2.05}
 .philosophy-note{grid-template-columns:minmax(0,1fr);gap:24px}
 .philosophy-note>.eyebrow{margin-bottom:0}
 .philosophy-note h2{font-size:32px;line-height:1.65}
 .philosophy-note>div{max-width:740px}
}
.contact-verification{min-width:0;width:100%;padding-top:8px}
.contact-verification[hidden]{display:none!important}
.contact-verification-label{margin:0 0 12px;color:var(--ink,#243b32);font-size:14px;letter-spacing:.12em}
.contact-verification-widget{width:100%;max-width:320px;min-height:65px;font-size:14px;line-height:1.8}
