:root{--ink:#14201c;--charcoal:#101614;--paper:#f3f6f4;--white:#ffffff;--line:#e1e8e4;--muted:#24312c;--muted-on-dark:#c5d0cb;--accent:#1aa392;--accent-deep:#0b6e62;--accent-hover:#149684;--sans:var(--font-sans),"PingFang TC","Noto Sans TC",sans-serif;--header:80px;--shadow:0 12px 32px rgba(16,22,20,0.08);--radius:16px}*{box-sizing:border-box}html{scroll-padding-top:96px}@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth}}body{margin:0;min-height:100vh;display:flex;flex-direction:column;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:17px;line-height:1.7;font-weight:400}main{flex:1 0 auto}::selection{background:#c9f3ea;color:var(--ink)}img{max-width:100%}h1,h2,h3,p{margin:0}h1,h2,h3{font-weight:700;letter-spacing:-.02em;line-height:1.25}h1{font-size:clamp(40px,5vw,68px)}h2{font-size:clamp(30px,3.4vw,44px)}h3{font-size:22px;line-height:1.4}a{color:inherit;text-decoration:none}.skip{position:fixed;left:16px;top:8px;z-index:80;transform:translateY(-200%);background:var(--white);color:var(--ink);padding:10px 14px;border-radius:8px;white-space:nowrap}.skip:focus{transform:none}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.wrap{width:min(1180px,calc(100% - 48px));margin-inline:auto}.lede{margin-top:20px;max-width:40em;color:var(--muted);font-size:18px;line-height:1.75}.section{padding:96px 0}.section-white{background:var(--white)}.section-head{max-width:680px;margin:0 auto 48px;text-align:center}.section-head p{margin-top:14px;color:var(--muted);font-size:18px}.pill{width:-moz-fit-content;width:fit-content;max-width:100%;margin:0 0 22px;padding:8px 16px;border:1px solid rgba(26,163,146,.7);border-radius:999px;color:var(--accent);font-size:14px;line-height:1.4}.btn,.pill{display:inline-flex;align-items:center;font-weight:500}.btn{justify-content:center;gap:8px;min-height:48px;padding:0 22px;border-radius:8px;border:2px solid transparent;font-family:inherit;font-size:16px;line-height:1;cursor:pointer;transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease,box-shadow .18s ease}.btn-fill{background:var(--accent);border-color:var(--accent);color:var(--ink)}.btn-fill:hover{background:#0c7d6e;border-color:#0c7d6e;color:var(--white);transform:translateY(-3px);box-shadow:0 10px 20px rgba(12,40,36,.22)}.btn-fill:active{background:#085e52;border-color:#085e52;color:var(--white);transform:translateY(1px);box-shadow:none}.btn-ghost{background:transparent;border-color:rgba(255,255,255,.85);color:var(--white)}.btn-ghost:hover{background:var(--white);border-color:var(--white);color:var(--ink);transform:translateY(-3px);box-shadow:0 10px 20px rgba(0,0,0,.22)}.btn-ghost:active{background:#d7f3ee;border-color:#d7f3ee;color:var(--ink);transform:translateY(1px);box-shadow:none}.btn-line{background:transparent;color:var(--accent-deep);margin-top:40px}.btn-line,.btn-line:hover{border-color:var(--accent-deep)}.btn-line:hover{background:var(--accent-deep);color:var(--white);transform:translateY(-3px);box-shadow:0 10px 20px rgba(11,110,98,.24)}.btn-line:active{background:#085e52;border-color:#085e52;color:var(--white);transform:translateY(1px);box-shadow:none}.wa-mark{display:none;width:18px;height:18px;flex:0 0 18px;object-fit:contain}.btn-ghost .wa-for-dark,.nav-wa .wa-for-dark,.wa-for-light,footer a.foot-wa .wa-for-dark{display:block}.btn-ghost .wa-for-light,.nav-wa .wa-for-light,footer a.foot-wa .wa-for-light{display:none}.btn-ghost:active .wa-for-dark,.btn-ghost:hover .wa-for-dark,.btn-line:active .wa-for-dark,.btn-line:hover .wa-for-dark,.nav-wa:active .wa-for-dark,.nav-wa:hover .wa-for-dark,footer a.foot-wa:active .wa-for-dark,footer a.foot-wa:hover .wa-for-dark{display:block}.btn-ghost:active .wa-for-light,.btn-ghost:hover .wa-for-light,.btn-line:active .wa-for-light,.btn-line:hover .wa-for-light,.nav-wa:active .wa-for-light,.nav-wa:hover .wa-for-light,footer a.foot-wa:active .wa-for-light,footer a.foot-wa:hover .wa-for-light{display:none}.hero-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:52px}.about-grid .btn,.copy+.btn{margin-top:40px}.more{display:inline-flex;align-items:center;min-height:44px;margin-top:22px;color:var(--accent-deep);font-weight:500}.site-header{position:fixed;top:0;left:0;right:0;z-index:40;height:var(--header);background:var(--charcoal);border-bottom:1px solid rgba(255,255,255,.06);color:var(--white)}.nav,.site-header{display:flex;align-items:center}.nav{justify-content:space-between;width:min(1180px,calc(100% - 48px));gap:20px}.logo-link{display:block;line-height:0;flex:0 0 auto}.logo-mark{display:none}.logo-full{display:block;width:200px;height:auto}.nav-links{display:flex;align-items:center;gap:6px 26px}.drop-btn,.nav-link{position:relative;color:rgba(255,255,255,.78);background:none;border:0;font:inherit;font-size:15px;font-weight:500;padding:8px 0;min-height:44px;cursor:pointer}.drop-btn:after,.nav-link:after{content:"";position:absolute;left:0;bottom:6px;width:100%;height:2px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .25s ease}.drop-btn:hover,.drop-btn[aria-current=page],.nav-link:hover,.nav-link[aria-current=page]{color:var(--white)}.drop-btn:hover:after,.drop-btn[aria-current=page]:after,.nav-link:hover:after,.nav-link[aria-current=page]:after{transform:scaleX(1)}.nav-cta{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:8px;background:var(--accent);color:var(--ink);font-size:15px;font-weight:500;transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}.nav-cta:hover{background:#0c7d6e;color:var(--white);transform:translateY(-3px);box-shadow:0 10px 20px rgba(12,40,36,.28)}.nav-cta:active{background:#085e52;color:var(--white);transform:translateY(1px);box-shadow:none}.nav-actions{display:flex}.nav-actions,.nav-wa{align-items:center;gap:8px}.nav-wa{display:inline-flex;justify-content:center;min-height:44px;padding:0 16px;border:2px solid rgba(255,255,255,.85);border-radius:8px;color:var(--white);font-size:15px;font-weight:500;white-space:nowrap;transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}.nav-wa:hover{background:var(--white);color:var(--ink);transform:translateY(-3px);box-shadow:0 10px 20px rgba(0,0,0,.28)}.nav-wa:active{background:#d7f3ee;color:var(--ink);transform:translateY(1px);box-shadow:none}.drop{position:relative}@media (min-width:961px){.drop:after{content:"";position:absolute;left:0;right:0;top:100%;height:14px}}.drop-btn,.menu{display:none}.menu{position:absolute;top:calc(100% - 2px);left:0;min-width:220px;padding:8px;background:var(--white);border-radius:12px;box-shadow:var(--shadow)}.menu,.menu a{color:var(--ink)}.menu a{display:flex;align-items:center;min-height:44px;padding:8px 12px;border-radius:8px;font-size:15px}.menu a:focus-visible,.menu a:hover,.menu a[aria-current=page]{background:var(--paper);color:var(--accent-deep)}@media (min-width:961px){.menu{display:block;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease,visibility .2s ease}.drop.is-open .menu,.drop:focus-within .menu,.drop:hover .menu{opacity:1;visibility:visible;pointer-events:auto;transform:none}}.menu-toggle{display:none;position:relative;width:44px;height:44px;padding:0;overflow:hidden;border:0;border-radius:8px;background:transparent;color:var(--white);cursor:pointer}.menu-toggle span{position:absolute;left:11px;width:22px;height:2px;background:var(--white);border-radius:2px;transition:transform .25s ease,opacity .25s ease,top .25s ease}.menu-toggle span:first-child{top:15px}.menu-toggle span:nth-child(2){top:21px}.menu-toggle span:nth-child(3){top:27px}.hero{min-height:100vh;min-height:100svh;display:flex;align-items:center;padding:calc(var(--header) + 48px) 0 72px;color:var(--white);overflow:hidden}.about-photo,.card-photo,.film-frame,.hero,.hero-media,.hero-shade,.service-photo{position:relative}.hero-media{position:absolute;inset:0}.about-photo img,.card-photo img,.film-frame img,.hero-media img,.service-photo img{object-fit:cover}.hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(16,22,20,.92),rgba(16,22,20,.68) 46%,rgba(16,22,20,.28)),linear-gradient(180deg,rgba(16,22,20,.45),transparent 28%)}.hero-copy{position:relative;z-index:1;max-width:760px}.cta-band h2,.hero h1,.miss h1,.page-hero h1{color:var(--white)}.cta-band p,.hero .lede,.page-hero .lede{color:rgba(255,255,255,.86)}.hero h1{animation:hero-in .7s ease both}.page-hero{padding:calc(var(--header) + 64px) 0 72px;background:radial-gradient(ellipse at 85% 0,rgba(26,163,146,.2),transparent 52%),var(--charcoal);color:var(--white)}.page-hero h1{max-width:14em}.crumbs{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;color:var(--muted-on-dark);font-size:14px}.crumb{display:inline-flex;gap:8px;align-items:center}.crumbs a{color:var(--white)}.crumbs a:hover{color:var(--accent)}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:24px;gap:24px}.service-card{display:flex;flex-direction:column;min-height:100%;background:var(--white);color:var(--ink);border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow);transition:transform .3s ease,box-shadow .3s ease}.service-card:hover,html.js .service-card.reveal.is-in:hover{transform:translateY(-8px);box-shadow:0 18px 40px rgba(16,22,20,.12)}.card-photo{aspect-ratio:16/10;overflow:hidden;background:var(--line)}.card-photo img{transition:transform .45s ease}.service-card:hover .card-photo img{transform:scale(1.05)}.card-body{padding:24px 24px 20px}.card-body p{margin-top:8px;color:var(--muted);font-size:16px;line-height:1.65}.film{display:grid;grid-template-columns:.9fr 1.1fr;grid-gap:40px;gap:40px;align-items:center;margin-top:72px}.film p{margin-top:12px;color:var(--muted);max-width:36em}.film-frame{aspect-ratio:3/2;overflow:hidden;border-radius:var(--radius);background:var(--charcoal)}.about-grid{display:grid;grid-template-columns:.92fr 1.08fr;grid-gap:56px;gap:56px;align-items:center}.about-photo{aspect-ratio:4/5;max-height:560px;overflow:hidden;border-radius:var(--radius);background:var(--line)}.about-grid .lede+.lede{margin-top:14px}.copy{margin-top:16px;max-width:40em;font-size:18px;line-height:1.75}.about-grid .copy:first-child{margin-top:0}.point-list{margin:28px 0 0;padding:0;list-style:none}.point-list li{margin:0;padding:18px 0 0;border-top:1px solid var(--line)}.point-list li+li{margin-top:18px}.point-list strong{display:block;margin-bottom:6px;font-size:18px;line-height:1.4}.point-list span{display:block;color:var(--muted);font-size:16px;line-height:1.7}.steps{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:22px;gap:22px}.steps article{background:var(--white);border-radius:var(--radius);padding:28px 24px 24px;box-shadow:var(--shadow)}.section-white .steps article{background:var(--paper);box-shadow:none}.num{color:var(--accent-deep);font-size:32px;font-weight:700;line-height:1}.steps h2,.steps h3{margin-top:16px;font-size:22px}.steps p{margin-top:8px;color:var(--muted);font-size:16px;line-height:1.65}.service-photo{aspect-ratio:16/8;overflow:hidden;border-radius:var(--radius);background:var(--line)}.service-photo.is-portrait{aspect-ratio:4/5;max-width:460px}.service-photo+.service-summary,.service-summary,.service-summary+.steps{margin-top:28px}.steps{margin-top:8px}.section-head+.steps{margin-top:0}.service-summary+.steps{margin-top:36px}.scope{display:grid;grid-template-columns:1fr 1fr;grid-gap:22px;gap:22px}.scope>div{background:var(--paper);border-radius:var(--radius);padding:28px 24px}.scope h2{font-size:24px}.scope ul{margin:16px 0 0;padding-left:1.15em}.scope li{margin:10px 0;color:var(--muted)}.cta-band{padding:88px 0;background:radial-gradient(ellipse at 10% 0,rgba(26,163,146,.22),transparent 46%),var(--charcoal);text-align:center}.cta-band p{max-width:38em;margin:18px auto 0}.cta-actions,.cta-band .btn{margin-top:40px}.cta-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:16px}.cta-actions .btn{margin-top:0}.mail-methods{display:flex;flex-wrap:wrap;align-items:center;gap:16px 20px}.mail-methods .btn,.mail-methods .contact-mail{margin-top:0}.enquiry{display:grid;grid-template-columns:.8fr 1.2fr;grid-gap:48px;gap:48px;align-items:start}.about-grid>*,.enquiry>*,.film>*,.foot>*,.scope>*,.service-grid>*{min-width:0}.contact-mail{margin-top:28px;font-size:22px;font-weight:700}.contact-mail a{color:var(--accent-deep);overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:.18em}.mail-card{background:var(--white);border-radius:var(--radius);padding:28px 24px;box-shadow:var(--shadow)}.page-hero+.section .contact-mail{margin-top:0}.page-hero+.section .contact-mail a{font-size:clamp(20px,2.4vw,28px)}form{display:grid;grid-template-columns:1fr 1fr;grid-gap:20px;gap:20px;background:var(--white);border:1px solid var(--line);border-radius:var(--radius);padding:28px;box-shadow:var(--shadow);min-width:0}.section-white form{background:var(--paper)}label{display:flex;flex-direction:column;gap:10px;min-width:0;font-size:14px;color:var(--muted)}.wide,label.wide{grid-column:1/-1}form .wide:last-child{margin-top:12px}input,select,textarea{width:100%;font:inherit;font-size:16px;color:var(--ink);background:var(--white);border:1px solid var(--line);border-radius:8px;padding:12px 14px;min-height:48px}textarea{min-height:140px;resize:vertical}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);background-position:calc(100% - 18px) 54%,calc(100% - 12px) 54%;background-size:6px 6px,6px 6px;background-repeat:no-repeat;padding-right:36px}footer{background:var(--charcoal);color:var(--muted-on-dark);padding:64px 0 108px}.foot{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-gap:32px;gap:32px}.foot-brand p{margin-top:16px;max-width:18em}.foot-label{margin-bottom:8px;color:var(--white);font-size:16px;font-weight:700}footer a{display:block;margin:8px 0;color:var(--muted-on-dark);font-size:15px;min-height:32px}footer a:hover{color:var(--accent)}footer a.foot-wa{display:inline-flex;align-items:center;gap:8px;width:-moz-fit-content;width:fit-content;margin-top:14px;min-height:44px;padding:0 14px;border:2px solid rgba(255,255,255,.85);border-radius:8px;color:var(--white);transition:background .18s ease,color .18s ease,transform .18s ease,box-shadow .18s ease}footer a.foot-wa:hover{background:var(--white);color:var(--ink);transform:translateY(-3px);box-shadow:0 10px 20px rgba(0,0,0,.28)}footer a.foot-wa:active{background:#d7f3ee;color:var(--ink);transform:translateY(1px);box-shadow:none}.fine{display:flex;flex-wrap:wrap;gap:8px 24px;margin-top:36px;padding-top:18px;border-top:1px solid rgba(255,255,255,.1);font-size:14px}.fine a{display:inline;margin:0;color:var(--white)}.miss{min-height:100vh;min-height:100svh;padding:calc(var(--header) + 48px) 0 72px;background:var(--charcoal)}.back-top,.miss{display:flex;align-items:center;color:var(--white)}.back-top{position:fixed;right:24px;bottom:24px;z-index:30;justify-content:center;width:48px;height:48px;padding:0;overflow:hidden;border:0;border-radius:999px;background:var(--accent);cursor:pointer;visibility:hidden;opacity:0;transform:translateY(10px);transition:opacity .25s ease,transform .25s ease,visibility .25s ease,background .25s ease}.back-top.is-on{visibility:visible;opacity:1;transform:none}.back-top svg{display:block;width:20px;height:20px;flex:0 0 20px;color:#ffffff}.back-top path{stroke:#ffffff}.back-top:hover{background:var(--accent-hover)}html.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease}html.js .reveal.is-in{opacity:1;transform:none}@keyframes hero-in{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.back-top,.btn,.card-photo img,.menu-toggle span,.nav-cta,.nav-wa,.service-card,footer a.foot-wa,html.js .reveal{transition:none;animation:none}html.js .reveal{transform:none;opacity:1}.hero h1{animation:none}.btn-fill:active,.btn-fill:hover,.btn-ghost:active,.btn-ghost:hover,.btn-line:active,.btn-line:hover,.nav-cta:active,.nav-cta:hover,.nav-wa:active,.nav-wa:hover,.service-card:hover,footer a.foot-wa:active,footer a.foot-wa:hover{transform:none}}@media (max-width:960px){:root{--header:72px}.nav,.wrap{width:min(1180px,calc(100% - 32px))}.menu-toggle{display:inline-flex;flex-direction:column;align-items:center;justify-content:center}.menu-toggle.is-open span:first-child{top:21px;transform:rotate(45deg)}.menu-toggle.is-open span:nth-child(2){opacity:0}.menu-toggle.is-open span:nth-child(3){top:21px;transform:rotate(-45deg)}.nav .logo-full{display:none}.nav .logo-mark{display:block;width:44px;height:auto}.nav-links{display:none;position:absolute;top:100%;left:0;right:0;flex-direction:column;align-items:stretch;gap:0;padding:8px 16px 20px;background:var(--charcoal);border-top:1px solid rgba(255,255,255,.08);max-height:calc(100vh - var(--header));overflow:auto}.nav-links.is-open{display:flex}.drop-btn,.nav-link{width:-moz-fit-content;width:fit-content;align-self:flex-start;justify-content:flex-start}.nav-actions{width:100%;margin-top:16px}.nav-actions .nav-cta,.nav-actions .nav-wa{flex:1 1;width:auto;margin-top:0}.drop-link{display:none}.drop-btn{display:flex;width:100%;text-align:left}.menu{position:static;display:none;width:100%;min-width:0;margin:4px 0 12px;box-shadow:none}.drop.is-open .menu{display:block}.about-grid,.enquiry,.film,.foot,.scope,.service-grid,.steps,form{grid-template-columns:1fr}.section{padding:64px 0}.section-head{margin-bottom:32px;text-align:left}.hero{align-items:flex-start;min-height:0;padding-bottom:56px}.hero-actions{margin-top:40px}.about-grid .btn,.btn-line,.copy+.btn,.cta-actions,.cta-band .btn{margin-top:32px}.cta-actions{justify-content:flex-start}.cta-actions .btn,.mail-methods .btn{margin-top:0}.about-photo{max-height:none}.about-photo,.service-photo{aspect-ratio:16/10}.cta-band{padding:64px 0;text-align:left}.cta-band p{margin-left:0}form .btn{width:100%}}@media (max-width:720px){h1{font-size:clamp(32px,8.2vw,40px)}h2{font-size:clamp(26px,7vw,34px)}.hero-actions,.hero-actions .btn{width:100%}.scope,.service-grid,.steps{gap:20px}.back-top{right:16px;bottom:16px}}