:root{--u:calc(100vw / 1440);--ink:#141414;--text:#2b2b2b;--gray:#8a8a8a;--ph:#dcdcdc;--rule:#bdbdbd}*{box-sizing:border-box}html{scroll-behavior:smooth}body{color:var(--text);background:#fff;margin:0;font-family:Noto Sans TC,PingFang TC,Microsoft JhengHei,sans-serif}a{color:inherit}img{display:block}.u{position:absolute}header{z-index:30;height:calc(149*var(--u));padding:calc(11*var(--u)) calc(182*var(--u)) 0;backdrop-filter:blur(6px);background:#fffffff0;justify-content:space-between;align-items:center;display:flex;position:relative}.logo{font-family:Montserrat,sans-serif;font-weight:400;font-size:calc(34*var(--u));letter-spacing:.08em;color:var(--ink);white-space:nowrap;line-height:1;text-decoration:none}nav{gap:calc(30*var(--u));display:flex}nav a{font-family:Montserrat,sans-serif;font-size:calc(15*var(--u));letter-spacing:.02em;color:#555;line-height:1;text-decoration:none;transition:color .2s}nav a:hover,nav a.on{color:#000}.hero{margin:0 calc(68*var(--u));height:calc(768*var(--u));background:var(--ph);position:relative;overflow:hidden}.slide{opacity:0;text-decoration:none;transition:opacity 1.2s;position:absolute;inset:0}.slide.on{opacity:1;z-index:1}.slide img{z-index:1;object-fit:cover;width:100%;height:100%;transition:transform 7s ease-out;position:relative;transform:scale(1.05)}.slide.on img{transform:scale(1)}.ph{font-weight:700;font-size:calc(13*var(--u));letter-spacing:.3em;color:#222;text-align:center;justify-content:center;align-items:center;line-height:1.5;display:flex;position:absolute;inset:0}img.missing{display:none}.meta{margin:0 calc(68*var(--u));height:calc(40*var(--u));position:relative}.cap{left:0;top:calc(18*var(--u));font-size:calc(14*var(--u));color:var(--ink);white-space:nowrap;font-weight:500;line-height:1;transition:opacity .4s;position:absolute}.uline{font-family:Montserrat,sans-serif;font-size:calc(12*var(--u));letter-spacing:.02em;color:var(--text);border-bottom:1px solid var(--rule);line-height:1;text-decoration:none;display:block;position:absolute}.uline:after{content:"";background:var(--ink);width:0;height:1px;transition:width .45s;position:absolute;bottom:-1px;left:0}.uline:hover:after{width:100%}.meta .uline{left:calc(1152*var(--u));top:calc(16*var(--u));width:calc(117*var(--u));padding-bottom:calc(9*var(--u))}.wrap{margin-left:calc(221*var(--u));width:calc(1009*var(--u));position:relative}.para{font-size:calc(19*var(--u));line-height:calc(30*var(--u));letter-spacing:.05em;color:var(--gray);width:calc(480*var(--u));margin:0}.rv{opacity:0;transform:translateY(calc(28*var(--u)));transition:opacity .9s,transform .9s}.rv.in{opacity:1;transform:none}.about h2{margin:calc(256*var(--u)) 0 0;font-weight:700;font-size:calc(50*var(--u));letter-spacing:.14em;color:var(--ink);line-height:1}.about-row{margin-top:calc(66*var(--u));height:calc(375*var(--u));display:flex}.about-txt{width:calc(584*var(--u));margin-right:calc(74*var(--u));position:relative}.lead{margin:calc(20*var(--u)) 0 0;font-weight:700;font-size:calc(24*var(--u));line-height:calc(36*var(--u));letter-spacing:.04em;color:var(--ink)}.lead i{width:calc(44*var(--u));background:var(--ink);vertical-align:middle;height:1px;margin-left:calc(14*var(--u));display:inline-block}.about .para{margin-top:calc(51*var(--u))}.about-txt .uline{left:calc(467*var(--u));bottom:calc(2*var(--u));width:calc(117*var(--u));padding-bottom:calc(9*var(--u))}.about-img{width:calc(375*var(--u));height:calc(375*var(--u));background:var(--ph);position:relative;overflow:hidden}.about-img img{z-index:1;object-fit:cover;width:100%;height:100%;position:relative}.cat h2{margin:calc(213*var(--u)) 0 0;font-weight:700;font-size:calc(36*var(--u));letter-spacing:.07em;color:var(--ink);line-height:1;position:relative}.cat+.cat h2{margin-top:calc(228*var(--u))}.cat h2:before{content:"";left:calc(-221*var(--u));width:calc(138*var(--u));transform-origin:0;background:#9a9a9a;height:1.5px;transition:transform 1s .15s;position:absolute;top:50%;transform:scaleX(0)}.cat.in h2:before{transform:scaleX(1)}.cards{grid-template-columns:repeat(3,calc(314*var(--u)));column-gap:calc(33.5*var(--u));margin-top:calc(38*var(--u));display:grid}.card{height:calc(314*var(--u));background:var(--ph);text-decoration:none;display:block;position:relative;overflow:hidden}.card .ph{padding:0 calc(46*var(--u)) 0 calc(67*var(--u));text-align:left;font-size:calc(14*var(--u));line-height:calc(19*var(--u));letter-spacing:.24em;color:#222;justify-content:flex-start}.card img{z-index:1;object-fit:cover;width:100%;height:100%;transition:transform .7s;position:relative}.veil{z-index:2;justify-content:flex-end;gap:calc(4*var(--u));padding:calc(20*var(--u));color:#fff;opacity:0;background:linear-gradient(#0000 42%,#0009);flex-direction:column;transition:opacity .4s;display:flex;position:absolute;inset:0}.veil b{font-family:Montserrat,sans-serif;font-weight:500;font-size:calc(15*var(--u));letter-spacing:.06em}.veil span{font-size:calc(12*var(--u));color:#e6e6e6}.card:hover img,.card:focus-visible img{transform:scale(1.05)}.card:hover .veil,.card:focus-visible .veil{opacity:1}.card.noimg .veil{display:none}.foot{margin-top:calc(58.5*var(--u));position:relative}.foot .para{min-height:calc(90*var(--u))}.foot .uline{left:calc(895*var(--u));top:calc(6*var(--u));width:calc(78*var(--u));padding-bottom:calc(10.5*var(--u))}.contact{justify-content:center;gap:calc(11*var(--u));margin-top:calc(228*var(--u));display:flex}.box{height:calc(45*var(--u));font-family:Montserrat,Noto Sans TC,sans-serif;font-size:calc(13*var(--u));letter-spacing:.03em;color:var(--text);border:1px solid #9a9a9a;justify-content:center;align-items:center;text-decoration:none;transition:background .25s,color .25s,border-color .25s;display:flex}.box.mail{width:calc(228*var(--u))}.box.cv{width:calc(145*var(--u))}footer{margin-top:calc(81*var(--u));padding-bottom:calc(68*var(--u));text-align:center;font-family:Montserrat,sans-serif;font-size:calc(11*var(--u));letter-spacing:.04em;color:#8a8a8a;line-height:1}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.rv{opacity:1;transition:none;transform:none}.slide,.slide img,.card img{transition:none!important;transform:none!important}.cat h2:before{transition:none;transform:none}}@media (width<=899px){:root{--u:1px}.foot .para{min-height:0}header{flex-direction:column;gap:6px;height:auto;padding:16px 20px 10px}.logo{font-size:24px}nav{flex-wrap:wrap;justify-content:center;gap:0 4px}nav a{align-items:center;min-height:44px;padding:0 9px;font-size:13px;display:inline-flex}.hero{aspect-ratio:4/3;height:auto;margin:0 20px}.ph{font-size:12px}.meta{justify-content:space-between;align-items:center;gap:12px;height:auto;margin:0 20px;padding-top:6px;display:flex}.cap{white-space:normal;font-size:12px;line-height:1.5;position:static}.uline{flex:none;align-items:flex-end;min-width:84px;min-height:44px;display:inline-flex;width:auto!important;padding-bottom:6px!important;position:relative!important;top:auto!important;bottom:auto!important;left:auto!important}.wrap{width:auto;margin:0 20px}.para{letter-spacing:.05em;width:auto;font-size:15px;line-height:1.9}.about h2{margin-top:96px;font-size:32px}.about-row{flex-direction:column;gap:28px;height:auto;margin-top:28px}.about-txt{flex-direction:column;width:auto;margin:0;display:flex}.lead{margin:0;font-size:19px;line-height:1.7}.about .para{margin-top:20px}.about-txt .uline{align-self:flex-end;margin-top:16px}.about-img{aspect-ratio:1;width:100%;height:auto}.cat h2,.cat+.cat h2{margin-top:96px;font-size:24px}.cat h2:before{display:none}.cards{scroll-snap-type:x mandatory;scrollbar-width:none;gap:12px;margin:22px -20px 0;padding:0 20px 4px;display:flex;overflow-x:auto}.cards::-webkit-scrollbar{display:none}.card{aspect-ratio:1;scroll-snap-align:start;flex:0 0 72%;height:auto}.card .ph{padding-left:24px;font-size:11px}.veil{opacity:1;padding:14px}.veil b{font-size:13px}.veil span{font-size:11px}.foot{justify-content:space-between;align-items:flex-start;gap:16px;margin-top:22px;display:flex}.contact{flex-wrap:wrap;margin:96px 20px 0}.box{height:44px;font-size:12px}.box.mail,.box.cv{width:auto;padding:0 18px}footer{margin-top:40px;padding-bottom:36px}}.cap.tagline{font-family:Montserrat,sans-serif;font-weight:500;font-size:calc(13*var(--u));letter-spacing:.02em;color:var(--ink)}@media (width<=899px){.cap.tagline{font-size:12px;line-height:1.6}}.cat h2,.cat+.cat h2{margin-top:calc(140*var(--u))}.contact{margin-top:calc(150*var(--u))}@media (width<=899px){.cat h2,.cat+.cat h2,.contact{margin-top:72px}}:root{--matcha:#7a9a55}nav a:hover,.uline:hover{color:var(--matcha)}.uline:after{background:var(--matcha)}.box:hover{background:var(--matcha);border-color:var(--matcha);color:#fff}@media (width<=899px){.cards{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:22px 0 0;padding:0;display:grid;overflow:visible}.card{aspect-ratio:1;flex:none;width:auto;height:auto}}@media (width<=599px){.cards{grid-template-columns:1fr;gap:16px}}details.lang{position:relative}details.lang summary{cursor:pointer;font-family:Montserrat,sans-serif;font-size:calc(15*var(--u));letter-spacing:.02em;color:#555;padding-bottom:calc(4*var(--u));border-bottom:1px solid;line-height:1;list-style:none;transition:color .2s}details.lang summary::-webkit-details-marker{display:none}details.lang summary:hover,details.lang[open] summary{color:var(--matcha)}details.lang ul{right:0;top:calc(100% + 14*var(--u));padding:calc(10*var(--u)) 0;min-width:calc(130*var(--u));z-index:40;background:#fff;border:1px solid #e2e2e2;margin:0;list-style:none;position:absolute;box-shadow:0 8px 24px #0000000f}details.lang li a{padding:calc(8*var(--u)) calc(18*var(--u));font-family:Montserrat,Noto Sans TC,sans-serif;font-size:calc(14*var(--u));color:#555;white-space:nowrap;line-height:1.4;text-decoration:none;display:block}details.lang li a:hover{color:var(--matcha)}details.lang li a.on{color:var(--ink);font-weight:500}@media (width<=899px){details.lang summary{text-underline-offset:4px;border-bottom:0;align-items:center;min-height:44px;padding:0 9px;font-size:13px;text-decoration:underline;display:inline-flex}details.lang ul{min-width:120px;padding:6px 0;top:100%}details.lang li a{align-items:center;min-height:44px;padding:10px 16px;font-size:14px;display:flex}}:lang(ja) body,:lang(ja) .box,:lang(ja) .pcap b{font-family:Noto Sans JP,Noto Sans TC,PingFang TC,sans-serif}:lang(en) body{font-family:Noto Sans,Noto Sans TC,sans-serif}@media (width<=899px){.about-img{display:none}}
