
@font-face{font-family:GW;src:url("assets/e0bef28e9e-NotoSansCJKtc-Regular-0cba123d9cae862ea731.woff2");font-weight:400;font-display:swap}
@font-face{font-family:GW;src:url("assets/3b6e062db7-NotoSansCJKtc-Bold-5f076101e2ea292dd75b.woff2");font-weight:700;font-display:swap}
:root{--paper:#f7f6f2;--ink:#272924;--muted:#62645d;--line:#d9dad1;--gold:#a78514;--space:8px;--gutter:24px;--margin:80px}
*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:GW,sans-serif;-webkit-font-smoothing:antialiased;font-size:calc(18px * var(--text-scale,1));line-height:1.75}h1,h2,h3,p,figure{margin:0}button{font:inherit;color:inherit;border:0;background:none;padding:0}img{display:block;max-width:100%}.wrap{max-width:1440px;padding:0 var(--margin);margin:0 auto}.rule{border-bottom:1px solid var(--line)}.eyebrow{font-size:calc(14px * var(--text-scale,1));letter-spacing:.15em;color:var(--muted)}.arrow{display:inline-block;font-family:Arial,sans-serif;font-size:calc(26px * var(--text-scale,1));line-height:1;font-weight:400}.textlink{display:inline-flex;align-items:center;gap:32px;font-size:calc(16px * var(--text-scale,1));line-height:1.5;border-bottom:1px solid var(--ink);padding-bottom:12px}.textlink .arrow{font-size:calc(24px * var(--text-scale,1))}
header{height:104px;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.logo{width:246px;height:auto}.nav{display:flex;align-items:center;gap:32px;font-size:calc(15px * var(--text-scale,1))}.nav .contact{border:1px solid var(--ink);padding:11px 20px}.mobile-menu{display:none}
.hero{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);padding-top:40px;padding-bottom:64px;align-items:center}.hero-copy{grid-column:1/7;padding-bottom:32px}.hero-copy h1{font-size:calc(72px * var(--text-scale,1));line-height:1.28;font-weight:400;letter-spacing:.035em;margin-top:32px;margin-bottom:32px}.hero-copy .desc{max-width:450px;font-size:calc(18px * var(--text-scale,1));line-height:1.9;color:var(--muted)}.hero-copy .textlink{margin-top:48px}.hero-photo{grid-column:8/13;position:relative}.hero-photo img{width:100%;height:auto}.hero-photo figcaption{display:flex;justify-content:space-between;margin-top:12px;color:var(--muted);font-size:calc(12px * var(--text-scale,1));letter-spacing:.07em}.hero-foot{display:flex;justify-content:space-between;align-items:center;padding:0 0 32px;color:var(--muted);font-size:calc(13px * var(--text-scale,1));letter-spacing:.08em}.hero-foot .scroll{display:flex;align-items:center;gap:16px}
.selected{padding-top:104px;padding-bottom:112px}.sectionhead{display:flex;justify-content:space-between;align-items:end;margin-bottom:48px}.sectionhead h2{font-size:calc(36px * var(--text-scale,1));line-height:1.4;font-weight:400;letter-spacing:.06em}.sectionhead .eyebrow{margin-bottom:12px}.gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);align-items:start}.work-a{grid-column:1/8}.work-b{grid-column:9/13;margin-top:168px}.gallery img{width:100%;height:auto}.caption{display:flex;justify-content:space-between;gap:16px;align-items:center;margin-top:20px}.caption h3{font-size:calc(18px * var(--text-scale,1));line-height:1.5;font-weight:400;letter-spacing:.03em}.caption p{font-size:calc(13px * var(--text-scale,1));color:var(--muted);margin-top:6px}.caption .arrow{font-size:calc(24px * var(--text-scale,1))}.open-work{display:flex;align-items:center;gap:8px;font-size:calc(12px * var(--text-scale,1));white-space:nowrap;color:var(--muted)}.mobile-all{display:none}
.services{border-top:1px solid var(--line);padding:88px 0 104px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter)}.service-intro{grid-column:1/5}.service-intro h2{font-size:calc(32px * var(--text-scale,1));line-height:1.55;letter-spacing:.04em;font-weight:400;margin-top:20px}.service-intro p{font-size:calc(16px * var(--text-scale,1));line-height:1.9;color:var(--muted);margin-top:24px;max-width:315px}.service-list{grid-column:6/13}.service-row{display:grid;grid-template-columns:1fr 40px;gap:24px;padding:0 0 36px;border-bottom:1px solid var(--line)}.service-row+.service-row{padding-top:36px}.service-row h3{font-size:calc(28px * var(--text-scale,1));font-weight:400;line-height:1.5;letter-spacing:.04em}.service-row p{font-size:calc(16px * var(--text-scale,1));line-height:1.8;margin-top:12px;color:var(--muted);max-width:560px}.service-row .arrow{padding-top:12px}.service-tags{font-size:calc(13px * var(--text-scale,1))!important;letter-spacing:.04em;margin-top:20px!important}
.closing{background:#292c25;color:var(--paper)}.closing-inner{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--gutter);padding-top:80px;padding-bottom:80px;align-items:end}.closing-copy{grid-column:1/9}.closing .eyebrow{color:#c3c7b8}.closing h2{font-size:calc(44px * var(--text-scale,1));line-height:1.5;font-weight:400;letter-spacing:.035em;margin-top:24px}.closing p{color:#c3c7b8;font-size:calc(16px * var(--text-scale,1));margin-top:24px;max-width:630px}.closing-action{grid-column:10/13;justify-self:end}.closing-action .textlink{border-color:var(--paper);font-size:calc(18px * var(--text-scale,1));gap:48px}
footer.wrap{padding-top:48px;padding-bottom:40px!important}.footer-top{display:flex;justify-content:space-between;align-items:center}.footer-top .logo{width:218px}.footer-links{display:flex;gap:32px;font-size:calc(14px * var(--text-scale,1))}.footer-bottom{display:flex;justify-content:space-between;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:calc(12px * var(--text-scale,1));color:var(--muted)}
@media(min-width:1600px){:root{--margin:80px}}
@media(max-width:1100px) and (min-width:761px){:root{--margin:40px}.nav{gap:20px;font-size:calc(14px * var(--text-scale,1))}.logo{width:205px}.hero-copy h1{font-size:calc(56px * var(--text-scale,1))}.hero-photo{grid-column:7/13}.hero-copy{grid-column:1/7}.work-b{margin-top:120px}.closing h2{font-size:calc(36px * var(--text-scale,1))}}
@media(max-width:760px){:root{--margin:24px;--gutter:16px}body{font-size:calc(16px * var(--text-scale,1))}.wrap{max-width:560px}header{height:80px}.logo{width:200px}.nav{display:none}.mobile-menu{display:flex;gap:10px;align-items:center;font-size:calc(13px * var(--text-scale,1));min-height:44px}.hamburger{width:20px;height:12px;border-top:1px solid;border-bottom:1px solid}.hero{padding-top:32px;padding-bottom:32px;display:flex;flex-direction:column;gap:32px;align-items:stretch}.hero-copy{display:contents}.hero-copy .eyebrow{order:0;font-size:calc(12px * var(--text-scale,1))}.hero-copy h1{order:1;font-size:calc(42px * var(--text-scale,1));line-height:1.3;letter-spacing:.02em;margin:-16px 0 0}.hero-photo{order:2;margin:0}.hero-photo img{width:100%}.hero-photo figcaption{margin-top:10px;font-size:calc(11px * var(--text-scale,1));letter-spacing:0}.hero-copy .desc{order:3;font-size:calc(16px * var(--text-scale,1));line-height:1.8;margin:0}.hero-copy .textlink{order:4;align-self:start;margin:0;font-size:calc(16px * var(--text-scale,1));min-height:44px}.hero-foot{font-size:calc(11px * var(--text-scale,1));letter-spacing:.02em;padding-bottom:24px}.hero-foot .scroll{gap:10px}.eyebrow{font-size:calc(12px * var(--text-scale,1))}.selected{padding-top:56px;padding-bottom:64px}.sectionhead{margin-bottom:28px}.sectionhead h2{font-size:calc(28px * var(--text-scale,1))}.sectionhead .eyebrow{margin-bottom:10px}.sectionhead>.textlink{display:none}.gallery{display:flex;flex-direction:column;gap:36px}.work-a,.work-b{width:100%;margin:0}.caption{margin-top:16px;gap:12px}.caption h3{font-size:calc(17px * var(--text-scale,1))}.caption p{font-size:calc(12px * var(--text-scale,1));margin-top:5px}.mobile-all{display:inline-flex;margin-top:36px;min-height:44px}.services{display:block;padding:56px 0 64px}.service-intro h2{font-size:calc(28px * var(--text-scale,1));line-height:1.5;margin-top:16px}.service-intro p{font-size:calc(16px * var(--text-scale,1));max-width:none;margin-top:20px}.service-list{margin-top:40px}.service-row{gap:16px;padding-bottom:28px;grid-template-columns:1fr 24px}.service-row+.service-row{padding-top:28px}.service-row h3{font-size:calc(24px * var(--text-scale,1))}.service-row p{font-size:calc(15px * var(--text-scale,1));line-height:1.85}.service-tags{font-size:calc(12px * var(--text-scale,1))!important;line-height:1.9!important}.closing-inner{display:block;padding-top:56px;padding-bottom:56px}.closing h2{font-size:calc(30px * var(--text-scale,1));line-height:1.55;margin-top:20px}.closing p{font-size:calc(15px * var(--text-scale,1));line-height:1.9;margin-top:20px}.closing-action{margin-top:32px}.closing-action .textlink{font-size:calc(17px * var(--text-scale,1));min-height:44px}footer.wrap{padding-top:32px;padding-bottom:32px!important}.footer-top{display:block}.footer-top .logo{width:200px}.footer-links{font-size:calc(13px * var(--text-scale,1));gap:24px;flex-wrap:wrap;margin-top:28px}.footer-bottom{display:block;margin-top:28px;padding-top:20px;font-size:calc(11px * var(--text-scale,1));line-height:1.8}.footer-bottom span{display:block}.footer-bottom span+span{margin-top:6px}}

/* 使用者標註：僅加手繪括號與放大桌面照片，保留其他排版 */
.hero-copy h1{position:relative;width:max-content;max-width:100%}
.title-bracket{position:absolute;top:10px;height:calc(100% - 20px);width:22px;overflow:visible;pointer-events:none}
.title-bracket path{fill:var(--paper);stroke:var(--ink);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.title-bracket.left{left:-36px}.title-bracket.right{right:-36px}
@media(min-width:1101px){.hero-photo{margin-left:-48px}.hero-copy{transform:translateY(-37.7px)}}
@media(max-width:760px){.hero-copy h1{align-self:flex-start}.title-bracket{top:7px;height:calc(100% - 14px);width:14px}.title-bracket.left{left:-20px}.title-bracket.right{right:-20px}.title-bracket path{stroke-width:1.2}}

/* Homepage carousel: five fine lines, using the existing brand palette. */
.hero{padding-bottom:128px}
.hero-image-viewport{position:relative;overflow:hidden;isolation:isolate}
.hero-photo .hero-image-viewport img{width:100%;height:auto;transition:none;transform-origin:center;will-change:transform,opacity}
.hero-image-viewport .hero-outgoing{position:absolute;inset:0;z-index:0;height:100%;object-fit:contain;pointer-events:none}
.hero-image-viewport [data-hero-image]{position:relative;z-index:1}
.hero-carousel-controls{position:absolute;top:calc(100% + 12px);left:0;width:100%;display:flex;justify-content:center;align-items:center;gap:8px;height:44px}
.hero-carousel-controls[hidden]{display:none}
.carousel-line{width:36px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer}
.carousel-line::before{content:"";display:block;width:100%;height:2px;background:var(--line);transition:background-color .4s}
.carousel-line[aria-current="true"]::before{background:var(--gold)}
.carousel-line:hover::before{background:var(--muted)}
.carousel-line[aria-current="true"]:hover::before{background:var(--gold)}
.carousel-line:focus-visible,.hero-photo:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
@media(max-width:760px){.hero{padding-bottom:32px}.hero-carousel-controls{position:static;margin-top:12px}.hero-photo{position:relative}}
@media(prefers-reduced-motion:reduce){.carousel-line::before{transition:none}}

/* 首屏下方向量圖示提案：三種使用情境，不新增網站頁面 */
.icon-services{padding:88px 0 96px}.icon-sectionhead{display:flex;justify-content:space-between;gap:40px;align-items:end}.icon-sectionhead h2{font-size:calc(36px * var(--text-scale,1));line-height:1.5;font-weight:400;letter-spacing:.035em;margin-top:12px}.icon-sectionhead>p{font-size:calc(16px * var(--text-scale,1));line-height:1.9;color:var(--muted)}.icon-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;margin-top:64px}.icon-service{padding-right:24px}.service-icon{width:112px;height:112px;margin-bottom:24px}.icon-service h3{font-size:calc(28px * var(--text-scale,1));line-height:1.5;font-weight:400;letter-spacing:.08em}.service-subtitle{font-size:calc(18px * var(--text-scale,1));margin-top:12px;line-height:1.6}.service-description{font-size:calc(16px * var(--text-scale,1));line-height:1.9;color:var(--muted);margin-top:16px}.icon-tags{font-size:calc(12px * var(--text-scale,1));color:var(--muted);margin-top:24px;padding-top:20px;border-top:1px solid var(--line);letter-spacing:.02em}.icon-service-links{display:flex;justify-content:flex-end;gap:48px;margin-top:56px}.icon-service-links .textlink{min-height:44px}
@media(max-width:1100px) and (min-width:761px){.icon-sectionhead{align-items:start}.icon-sectionhead h2{font-size:calc(30px * var(--text-scale,1))}.icon-grid{gap:24px}.icon-service{padding-right:0}.icon-sectionhead>p{font-size:calc(14px * var(--text-scale,1))}.icon-tags{font-size:calc(11px * var(--text-scale,1));letter-spacing:0}}
@media(max-width:760px){.icon-services{padding:56px 0 64px}.icon-sectionhead{display:block}.icon-sectionhead h2{font-size:calc(26px * var(--text-scale,1));letter-spacing:0;margin-top:12px}.icon-sectionhead>p{font-size:calc(15px * var(--text-scale,1));line-height:1.9;margin-top:20px}.icon-grid{display:block;margin-top:40px}.icon-service{display:grid;grid-template-columns:80px 1fr;column-gap:20px;padding:32px 0;border-top:1px solid var(--line)}.service-icon{width:80px;height:80px;grid-column:1;grid-row:1/3;margin:0}.icon-service h3{grid-column:2;font-size:calc(24px * var(--text-scale,1));align-self:end}.service-subtitle{grid-column:2;font-size:calc(15px * var(--text-scale,1));margin-top:8px;align-self:start}.service-description{grid-column:1/-1;font-size:calc(15px * var(--text-scale,1));margin-top:20px;line-height:1.9}.icon-tags{grid-column:1/-1;margin-top:16px;border:0;padding:0;font-size:calc(11px * var(--text-scale,1))}.icon-service-links{justify-content:flex-start;gap:32px;margin-top:16px}.icon-service-links .textlink{gap:24px;font-size:calc(15px * var(--text-scale,1))}}
@media(min-width:761px){.service-description{min-height:91.2px}}

/* 共用頁尾：地址與郵件／社群；靜態設計入口，尚未接通 */
.icon-sectionhead h2{margin-top:0}
footer.site-footer{padding-top:64px;padding-bottom:32px!important}.footer-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}.footer-brand{grid-column:1/5}.footer-brand .logo{width:246px}.footer-brand p{font-size:calc(15px * var(--text-scale,1));line-height:1.9;color:var(--muted);margin-top:24px;max-width:390px}.footer-about{display:inline-flex;align-items:center;gap:12px;min-height:44px;margin-top:12px;font-size:calc(14px * var(--text-scale,1))}.footer-location{grid-column:6/10}.footer-social{grid-column:10/13}.footer-grid h3{font-size:calc(13px * var(--text-scale,1));font-weight:400;color:var(--muted);letter-spacing:.08em;line-height:1.5;margin-bottom:20px}.footer-address{font-size:calc(16px * var(--text-scale,1));line-height:1.8}.footer-map{display:flex;gap:12px;align-items:center;min-height:44px;font-size:calc(13px * var(--text-scale,1));color:var(--muted)}.footer-email{display:inline-flex;gap:12px;align-items:center;min-height:44px;margin-top:8px;font-size:calc(16px * var(--text-scale,1))}.footer-social-row{display:flex;align-items:center;justify-content:space-between;min-height:44px;border-bottom:1px solid var(--line);font-size:calc(16px * var(--text-scale,1));max-width:260px}.footer-social-row+.footer-social-row{margin-top:8px}.social-note{font-size:calc(12px * var(--text-scale,1));color:var(--muted);margin-left:10px}.footer-base{display:flex;justify-content:space-between;align-items:center;gap:24px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);font-size:calc(12px * var(--text-scale,1));color:var(--muted)}.footer-base nav{display:flex;gap:24px;flex-wrap:wrap}.footer-base nav span,.footer-back{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:1100px) and (min-width:761px){.footer-brand{grid-column:1/5}.footer-location{grid-column:5/9}.footer-social{grid-column:9/13}.footer-brand .logo{width:200px}.footer-address{font-size:calc(14px * var(--text-scale,1))}.footer-base nav{gap:16px}}
@media(max-width:760px){footer.site-footer{padding-top:40px;padding-bottom:24px!important}.footer-grid{display:flex;flex-direction:column;gap:32px}.footer-brand .logo{width:218px}.footer-brand p{margin-top:20px;font-size:calc(15px * var(--text-scale,1))}.footer-about{margin-top:8px}.footer-grid h3{margin-bottom:12px}.footer-address{font-size:calc(16px * var(--text-scale,1))}.footer-email{margin-top:4px}.footer-social-row{max-width:none;min-height:48px}.footer-base{display:grid;grid-template-columns:1fr auto;margin-top:32px;padding-top:16px;gap:12px}.footer-base nav{grid-column:1/-1;grid-row:1;gap:8px 24px;font-size:calc(12px * var(--text-scale,1))}.footer-base>span:first-child{grid-column:1;grid-row:2}.footer-back{grid-column:2;grid-row:2}}
/* 使用者指定：社群只顯示品牌圖示，桌面與手機皆橫排 */
.footer-social-icons{display:flex;align-items:center;gap:12px}.social-icon{display:flex;align-items:center;justify-content:center;width:44px;height:44px;flex:0 0 44px}.social-icon img{width:24px;height:24px;object-fit:contain}.social-icon:first-child{margin-left:-10px}

/* 箭頭層級：合作主入口保留斜箭頭，一般文字連結使用底線回饋。 */
.quiet-link{border-bottom:0!important;background-image:linear-gradient(currentColor,currentColor);background-repeat:no-repeat;background-position:left bottom;background-size:55% 1px;transition:background-size .18s ease,color .18s ease}
a.quiet-link:hover,a.quiet-link:focus-visible{background-size:100% 1px;color:var(--gold)}
a.quiet-link:focus-visible{outline:2px solid var(--gold);outline-offset:6px}
@media(prefers-reduced-motion:reduce){.quiet-link{transition:none}}

/* 新版首頁服務：三欄共用列高，底部分隔線保持對齊。 */
.service-icon img{max-height:100%;object-fit:contain}
@media(min-width:761px){
 .icon-service{display:grid;grid-template-rows:subgrid;grid-row:span 6;row-gap:0}
 .icon-sectionhead>p{max-width:32em}
 .icon-service .service-description{min-height:0}
}

/* Service-specific text entries share a row across all three columns. */
.service-entry-links{display:flex;flex-wrap:wrap;align-items:center;gap:24px;margin-top:20px;grid-column:1/-1}.service-entry-links a{font-size:calc(16px * var(--text-scale,1));padding:10px 0;min-height:44px;width:fit-content}

/* The headline defines a shared right edge for the description and Works link. */
.hero-copy{--hero-bracket-outset:36px;--hero-title-description-gap:16px;--hero-ink-inset:6px;display:grid;grid-template-columns:max-content}
.hero-copy .title-bracket.left{left:calc(-1 * var(--hero-bracket-outset))}
.hero-copy h1{margin-bottom:var(--hero-title-description-gap)}
.hero-copy .desc{width:0;min-width:calc(100% - var(--hero-ink-inset));max-width:none;margin-left:0;text-align:right;white-space:nowrap}
.hero-copy>.textlink{justify-self:end;margin-right:var(--hero-ink-inset);text-align:right}
@media(min-width:761px) and (max-width:1100px){.hero-copy{--hero-ink-inset:4.65px}}
@media(max-width:760px){.hero-copy{--hero-bracket-outset:20px;--hero-ink-inset:2.86px;align-self:flex-start;padding-left:20px;padding-bottom:0;max-width:100%}.hero-copy h1{margin-left:0;max-width:100%;order:initial}.hero-copy .desc{order:initial;margin-top:0}.hero-copy>.textlink{order:initial;margin-top:32px;margin-right:var(--hero-ink-inset);align-self:auto}}

/* Keep the two authored sentences on two lines without changing their right anchor. */
@media(min-width:761px) and (max-width:1100px){.hero-copy{justify-self:end}}
@media(max-width:760px){.hero-copy{align-self:flex-end;padding-left:0;padding-right:20px}.hero-copy .desc{font-size:clamp(13px,4.1vw,16px)}}

.hero-description{width:0;min-width:100%;display:flow-root}
.hero-copy .hero-description .desc{float:right;width:max-content;min-width:0;margin-right:var(--hero-ink-inset)}

/* Keep the service jump on the carousel indicator row, inside the first viewport. */
.hero-media-tools{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-top:12px;min-height:44px}
.hero-media-tools .hero-carousel-controls{position:static;flex:1;min-width:0;width:auto;margin:0}
.hero-media-tools .carousel-line{flex:1;min-width:0;max-width:36px}
.hero-services-link{display:inline-flex;flex:none;align-items:center;gap:12px;min-height:44px;font-size:calc(14px * var(--text-scale,1));color:var(--muted);white-space:nowrap}
.hero-services-link:hover{color:var(--ink)}
.hero-services-link:focus-visible{outline:1px solid var(--gold);outline-offset:4px}
@media(min-width:761px){.hero-photo{width:min(100%,calc((100svh - 224px) * 7 / 11));margin-left:0;justify-self:end}}
@media(max-width:760px){
 .hero-media-tools{gap:16px}
 .hero-photo .hero-image-viewport{height:auto;aspect-ratio:7 / 11}
 .hero-photo .hero-image-viewport img{height:100%;object-fit:contain}
}
