*{margin:0;padding:0;box-sizing:border-box}
:root{--orange:#e85d3a;--orange-light:#f4a261;--navy:#37465f;--teal:#008080;--warm-white:#fafaf8;--warm-gray:#e8e4dd;--warm-bg:#f0eeea;--line-pos:280px;--zh-serif:'Noto Serif TC',serif;--zh-body:'LXGW WenKai TC','Noto Serif TC',serif}
html{scroll-behavior:smooth}body{font-family:'Quicksand',sans-serif;background:var(--warm-white);color:var(--navy);-webkit-font-smoothing:antialiased}
a{text-decoration:none;color:inherit}

.ta-header{background:#fff;border-bottom:1px solid #eee;position:sticky;top:0;z-index:100}
.ta-nav{max-width:1100px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 40px;min-height:78px}
.ta-logo{max-width:220px;width:100%}
.ta-nav-links{display:flex;align-items:center}
.ta-nav-item{display:flex;flex-direction:column;align-items:center;padding:10px 20px;text-decoration:none;font-size:13px;letter-spacing:3px;font-weight:600;color:var(--navy);opacity:.6;transition:all .3s}
.ta-nav-item:hover{opacity:1;color:#70c1b7}
.ta-nav-item.active{opacity:1;color:#70c1b7}
.ta-nav-item i{font-size:16px;margin-bottom:4px;opacity:.5;color:#70c1b7}
.ta-nav-extra{display:flex;align-items:center;gap:12px;margin-left:16px}
.pcard{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;padding:5px 12px;background:var(--teal);color:#fff;border-radius:20px;letter-spacing:.3px;white-space:nowrap}

.work-hero{max-width:1000px;margin:0 auto;padding:56px 40px 20px;text-align:center}
.work-hero h1{font-family:'DM Serif Display',serif;font-size:38px;color:var(--navy);font-weight:400;letter-spacing:-1px;margin-bottom:6px}
.work-hero h1 em{color:var(--orange);font-style:italic}
.work-hero .sub-zh{font-family:var(--zh-serif);font-size:16px;color:var(--orange-light);letter-spacing:3px;margin-bottom:4px}
.work-hero .sub-sc{font-family:var(--zh-body);font-size:13px;color:#bbb;margin-bottom:16px}
.work-hero .trust{font-size:12px;color:#aaa;display:flex;justify-content:center;gap:16px;flex-wrap:wrap}
.trust-dot{width:5px;height:5px;border-radius:50%;background:var(--orange);display:inline-block;margin-right:4px;vertical-align:middle}

.breadcrumb{max-width:1000px;margin:0 auto;padding:0 40px 12px;font-size:12px;color:#bbb}
.breadcrumb a{color:var(--orange)}

.tabs-bar{max-width:1000px;margin:0 auto;padding:0 40px 40px;display:flex;gap:6px;flex-wrap:wrap;justify-content:center}
.tab-btn{font-size:12px;font-weight:600;padding:7px 16px;border:1px solid var(--warm-gray);border-radius:20px;background:transparent;color:#999;cursor:pointer;transition:all .2s;font-family:'Quicksand',sans-serif}
.tab-btn:hover{border-color:var(--orange-light);color:var(--orange)}
.tab-btn.active{background:var(--orange);color:#fff;border-color:var(--orange)}

.client-map{max-width:1000px;margin:0 auto;padding:0 40px 48px;position:relative;min-height:220px;display:flex;align-items:center;justify-content:center}
.client-map-inner{position:relative;width:100%;height:240px}
.client-map a{position:absolute;font-family:'DM Serif Display',serif;color:var(--navy);transition:color .3s,transform .2s;white-space:nowrap;cursor:pointer}
.client-map a:hover{color:var(--orange);transform:scale(1.08)}
.client-map a .zh{font-family:var(--zh-serif);display:block;font-size:55%;color:var(--orange-light);letter-spacing:1px;margin-top:1px;opacity:.7}
.client-map a.tier1{font-size:32px;font-weight:400;opacity:.9}
.client-map a.tier2{font-size:22px;font-weight:400;opacity:.75}
.client-map a.tier3{font-size:16px;font-weight:400;opacity:.55}
.client-map a.tier4{font-size:13px;font-weight:400;opacity:.4;font-family:'Quicksand',sans-serif;letter-spacing:1px}
.client-map .map-dot{position:absolute;width:6px;height:6px;border-radius:50%;background:var(--orange);opacity:.15}
.client-map .map-line{position:absolute;height:1px;background:var(--warm-gray);opacity:.3}

.gallery{max-width:1000px;margin:0 auto;padding:0 40px;position:relative}

.project{display:grid;grid-template-columns:240px 1fr;gap:0;position:relative;padding:20px 0;opacity:0;transform:translateY(16px);transition:opacity .6s,transform .6s}
.project.visible{opacity:1;transform:translateY(0)}
.project[hidden]{display:none}
.project::before{content:'';position:absolute;left:calc(var(--line-pos) - 40px - 1px);top:0;bottom:0;width:2px;background:var(--orange);opacity:.3}
.project::after{content:'';position:absolute;left:calc(var(--line-pos) - 40px - 7px);top:50%;transform:translateY(-50%);width:14px;height:14px;border-radius:50%;background:var(--orange);box-shadow:0 0 0 4px rgba(232,93,58,.12),0 0 0 8px rgba(232,93,58,.05)}

.p-text{padding:0 40px 0 0;display:flex;flex-direction:column;justify-content:center}
.p-client{font-family:'DM Serif Display',serif;font-size:28px;color:var(--navy);font-weight:400;line-height:1.2;margin-bottom:2px}
.p-client-zh{font-family:var(--zh-serif);font-size:14px;color:var(--orange-light);margin-bottom:12px;letter-spacing:1px}
.p-meta{display:flex;gap:8px;align-items:center;margin-bottom:14px}
.p-badge{font-size:10px;font-weight:700;padding:3px 10px;border-radius:10px;background:rgba(232,93,58,.08);color:var(--orange);letter-spacing:.3px}
.p-year{font-size:11px;color:#ccc;font-weight:600}
.p-caption{font-size:12px;color:#888;line-height:1.7;margin-bottom:4px}
.p-caption-zh{font-family:var(--zh-body);font-size:11px;color:#aaa;line-height:1.6}
.p-link{font-size:10px;color:var(--orange);font-weight:600;margin-top:10px;opacity:0;transition:opacity .3s}
.project:hover .p-link{opacity:.7}

.p-image{margin-left:40px;border-radius:8px;overflow:hidden;cursor:pointer;background:var(--warm-bg)}
.p-image img{width:100%;display:block;transition:transform .4s}
.p-image:hover img{transform:scale(1.015)}

.spacer{height:60px;position:relative}
.spacer::before{content:'';position:absolute;left:calc(var(--line-pos) - 40px - 1px);top:0;bottom:0;width:2px;background:repeating-linear-gradient(to bottom,var(--orange) 0,var(--orange) 4px,transparent 4px,transparent 10px);opacity:.18}
.spacer[hidden]{display:none}

.quote-spacer{max-width:600px;margin:0 auto;padding:60px 40px;text-align:center;position:relative}
.quote-spacer[hidden]{display:none}
.quote-line{width:40px;height:1px;background:var(--warm-gray);margin:0 auto 18px}
.quote-text{font-family:'DM Serif Display',serif;font-size:18px;color:var(--navy);font-weight:400;font-style:italic;line-height:1.6;margin-bottom:6px}
.quote-text-zh{font-family:var(--zh-serif);font-size:13px;color:var(--orange-light);letter-spacing:2px;margin-bottom:10px;line-height:1.7}
.quote-attr{font-size:11px;color:#bbb;line-height:1.6}
.quote-attr strong{color:#999;font-weight:600}

.client-strip{max-width:1000px;margin:0 auto;padding:20px 40px;text-align:center}
.client-strip-label{font-size:11px;color:#ccc;letter-spacing:1px;margin-bottom:10px}
.client-pills{display:flex;flex-wrap:wrap;justify-content:center;gap:6px}
.client-pill{font-size:10px;font-weight:600;padding:4px 12px;border-radius:12px;border:1px solid var(--warm-gray);color:#aaa}
.client-pill.govt{border-color:rgba(232,93,58,.2);color:var(--orange)}

.cta-sec{max-width:1000px;margin:0 auto;padding:28px 40px 0;text-align:center}
.cta-line{font-family:var(--zh-serif);font-size:15px;color:var(--navy);margin-bottom:4px}
.cta-line-en{font-size:13px;color:#aaa;margin-bottom:14px}
.cta-btns{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}
.cta-btns a{font-size:12px;font-weight:600;padding:9px 20px;border-radius:6px;font-family:'Quicksand',sans-serif;transition:all .2s}
.cta-primary{background:var(--orange);color:#fff}
.cta-primary:hover{background:#d04e2e}
.cta-ghost{background:transparent;color:var(--navy);border:1px solid var(--warm-gray)}
.cta-ghost:hover{border-color:var(--orange)}

footer{border-top:1px solid var(--warm-gray);max-width:1100px;margin:28px auto 0;padding:36px 40px 20px}
.ft-grid{display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px}
.ft-brand img{height:36px;margin-bottom:10px;display:block}
.ft-philosophy{font-family:var(--zh-serif);font-size:12px;color:var(--orange-light);letter-spacing:3px;line-height:1.8}
.ft-heading{font-family:'DM Serif Display',serif;font-size:15px;color:var(--navy);margin-bottom:8px}
.ft-text{font-size:11px;color:#888;line-height:2}
.ft-text a{color:var(--orange);font-weight:600}
.ft-addr{font-size:11px;color:#888;line-height:1.7;margin-bottom:10px}
.ft-bottom{margin-top:24px;padding-top:14px;border-top:1px solid var(--warm-gray);display:flex;justify-content:space-between;font-size:10px;color:#ccc}
.ft-tagline{font-family:'DM Serif Display',serif;font-size:12px;font-style:italic;color:var(--orange-light)}
.ft-kw{font-size:10px;color:#e0ddd8;text-align:center;margin-top:8px}

.lb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.88);z-index:8000;align-items:center;justify-content:center;cursor:pointer}
.lb-overlay.show{display:flex}
.lb-overlay img{max-width:94vw;max-height:92vh;border-radius:6px;object-fit:contain}
.lb-close{position:fixed;top:16px;right:20px;font-size:28px;color:#fff;cursor:pointer;z-index:8001}

@media(max-width:768px){
  :root{--line-pos:20px}
  .ta-nav{padding:0 20px;min-height:auto;flex-wrap:wrap}
  .ta-logo{max-width:150px;padding:16px 0}
  .ta-nav-links{width:100%;border-top:1px solid #eee}
  .ta-nav-item{flex:1;padding:8px 0;font-size:9px}
  .ta-nav-extra{display:none}
  .work-hero{padding:28px 20px 16px}
  .work-hero h1{font-size:28px}
  .breadcrumb,.tabs-bar{padding-left:20px;padding-right:20px}
  .gallery{padding:0 20px}
  .project{grid-template-columns:1fr;padding:16px 0}
  .project::before,.project::after{display:none}
  .spacer::before{display:none}
  .p-text{padding:0;order:2;margin-top:12px}
  .p-image{margin-left:0;order:1}
  .p-client{font-size:22px}
  .spacer{height:32px}
  .quote-spacer{padding:32px 20px}
  footer{padding:24px 20px 16px}
  .ft-grid{grid-template-columns:1fr;gap:16px}
}

/* === Readability fixes May 6 (v3): min 13px, darker greys === */
.work-hero .sub-sc{font-size:13px!important;color:#666!important}
.work-hero .trust{font-size:13px!important;color:#555!important}
.work-hero .trust a{color:#666!important}
.tab-btn{font-size:13px!important}
.p-caption{font-size:13px!important;color:#555!important;line-height:1.7!important}
.p-caption-zh{font-size:13px!important;color:#555!important;line-height:1.7!important}
.p-link{font-size:13px!important;color:#d04e2e!important}
.p-client-zh{font-size:14px!important;color:#c44a28!important}
.p-meta .p-year{font-size:13px!important;color:#777!important}
.p-badge{font-size:13px!important;color:#c44a28!important}
.client-pill{font-size:13px!important;color:#555!important}
.client-pill.govt{color:#c44a28!important;border-color:#e85d3a!important}
.client-strip-label{font-size:13px!important;color:#666!important;letter-spacing:1px!important}
.cta-line{font-size:15px!important;color:#37465f!important}
.cta-line-en{font-size:13px!important;color:#666!important}
.cta-btns a{font-size:13px!important}
.ft-text{font-size:13px!important;color:#555!important;line-height:1.85!important}
.ft-addr{font-size:13px!important;color:#555!important;line-height:1.7!important}
.ft-addr span{color:#666!important;font-size:13px!important}
.ft-bottom{font-size:13px!important;color:#666!important}
.ft-tagline{font-size:13px!important;color:#c97a3e!important}
.ft-philosophy{font-size:14px!important;color:#c97a3e!important}
.ft-kw{font-size:13px!important;color:#999!important}
.ft-heading{font-size:16px!important}
.quote-attr{font-size:13px!important;color:#666!important}
.quote-text-zh{font-size:14px!important;color:#c97a3e!important}
.breadcrumb{font-size:13px!important;color:#666!important}
.breadcrumb a{color:#c44a28!important}
.client-map a.tier4{font-size:13px!important}
