:root{--ink:#23211e;--ink-2:#4a463f;--muted:#7d776c;--line:#e2dbcd;--line-strong:#cfc5b1;--paper:#f7f4ee;--paper-2:#efe9dd;--white:#fffdf9;--gold:#c4a35a;--gold-ink:#8a6d2f;--gold-soft:#e9dcbc;--danger:#a3402f;--ok:#4d6b45;--serif:"Noto Serif TC", "Songti TC", "PMingLiU", serif;--sans:"Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--latin:"Jost", "Noto Sans TC", sans-serif;--wrap:1240px;--gutter:clamp(16px, 4vw, 48px);--header-h:76px;--radius:2px;--ease:cubic-bezier(.2, .7, .2, 1)}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}body{background:var(--paper);color:var(--ink);font-family:var(--sans);letter-spacing:.02em;-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.85}img{max-width:100%;height:auto;display:block}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit}:focus-visible{outline:2px solid var(--gold);outline-offset:3px}h1,h2,h3,h4{font-family:var(--serif);letter-spacing:.06em;margin:0;font-weight:600;line-height:1.4}p{margin:0 0 1em}.wrap{width:100%;max-width:var(--wrap);padding-inline:var(--gutter);margin-inline:auto}.narrow{max-width:820px}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.skip-link{z-index:100;background:var(--ink);color:var(--white);padding:8px 16px;position:absolute;top:-60px;left:8px}.skip-link:focus{top:8px}.eyebrow{font-family:var(--latin);letter-spacing:.32em;text-transform:uppercase;color:var(--gold-ink);align-items:center;gap:12px;font-size:12px;font-weight:500;display:inline-flex}.eyebrow:before{content:"";background:currentColor;width:32px;height:1px}.on-dark .eyebrow{color:var(--gold)}.display{letter-spacing:.1em;font-size:clamp(30px,4.6vw,54px);line-height:1.35}.h2{letter-spacing:.08em;font-size:clamp(24px,3vw,36px)}.h3{letter-spacing:.06em;font-size:20px}.lead{color:var(--ink-2);font-size:clamp(16px,1.4vw,18px);line-height:2}.muted{color:var(--muted)}.section{padding-block:clamp(72px,10vw,136px)}.section-head{gap:16px;margin-bottom:clamp(36px,5vw,64px);display:grid}.section-head.center{text-align:center;justify-items:center}.section-head.center .eyebrow:after{content:"";background:currentColor;width:32px;height:1px}.on-dark{background:var(--ink);color:#f3eee4}.on-dark .lead,.on-dark .muted{color:#bdb5a6}.tint{background:var(--paper-2)}.btn{letter-spacing:.16em;border:1px solid var(--ink);background:var(--ink);min-height:50px;color:var(--white);border-radius:var(--radius);cursor:pointer;transition:background .3s var(--ease), color .3s var(--ease), border-color .3s var(--ease);justify-content:center;align-items:center;gap:10px;padding:0 28px;font-size:15px;font-weight:500;display:inline-flex}.btn:hover{color:var(--ink);background:0 0}.btn .arrow{transition:transform .3s var(--ease)}.btn:hover .arrow{transform:translate(4px)}.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--ink)}.btn-gold:hover{color:var(--gold);background:0 0}.btn-ghost{color:var(--ink);background:0 0}.btn-ghost:hover{background:var(--ink);color:var(--white)}.on-dark .btn-ghost,.btn-ghost.light{color:#f3eee4;border-color:#f3eee480}.on-dark .btn-ghost:hover,.btn-ghost.light:hover{color:var(--ink);background:#f3eee4}.btn[disabled]{opacity:.5;cursor:not-allowed}.text-link{letter-spacing:.2em;border-bottom:1px solid var(--gold);transition:gap .3s var(--ease);align-items:center;gap:10px;padding-bottom:6px;font-size:14px;display:inline-flex}.text-link:hover{gap:16px}.site-header{z-index:50;height:var(--header-h);backdrop-filter:blur(10px);border-bottom:1px solid var(--line);transition:background .4s var(--ease), border-color .4s var(--ease), color .4s var(--ease);background:#f7f4eef0;align-items:center;display:flex;position:fixed;inset:0 0 auto}.site-header .wrap{justify-content:space-between;align-items:center;gap:24px;display:flex}.site-header.is-transparent:not(.is-scrolled){backdrop-filter:none;color:#f6f1e7;background:0 0;border-color:#0000}.brand{align-items:center;gap:14px;display:flex}.brand img{width:30px;height:auto}.brand-text{line-height:1.2;display:grid}.brand-text strong{font-family:var(--serif);letter-spacing:.28em;font-size:18px;font-weight:600}.brand-text span{font-family:var(--latin);letter-spacing:.3em;opacity:.7;margin-top:3px;font-size:9.5px}.nav{align-items:center;gap:clamp(20px,2.6vw,40px);display:flex}.nav a.nav-link{letter-spacing:.16em;padding:6px 0;font-size:15px;position:relative}.nav a.nav-link:after{content:"";background:var(--gold);transform-origin:100%;height:1px;transition:transform .4s var(--ease);position:absolute;bottom:0;left:0;right:0;transform:scaleX(0)}.nav a.nav-link:hover:after,.nav a.nav-link[aria-current=page]:after{transform-origin:0;transform:scaleX(1)}.nav .btn{min-height:42px;padding:0 20px;font-size:14px}.site-header.is-transparent:not(.is-scrolled) .nav .btn{color:#f6f1e7;background:0 0;border-color:#f6f1e799}.site-header.is-transparent:not(.is-scrolled) .nav .btn:hover{color:var(--ink);background:#f6f1e7}.menu-toggle{cursor:pointer;background:0 0;border:0;width:44px;height:44px;display:none;position:relative}.menu-toggle span{height:1.5px;transition:transform .35s var(--ease), opacity .2s;background:currentColor;position:absolute;left:11px;right:11px}.menu-toggle span:first-child{top:16px}.menu-toggle span:nth-child(2){top:22px}.menu-toggle span:nth-child(3){top:28px}.menu-open .menu-toggle span:first-child{transform:translateY(6px)rotate(45deg)}.menu-open .menu-toggle span:nth-child(2){opacity:0}.menu-open .menu-toggle span:nth-child(3){transform:translateY(-6px)rotate(-45deg)}@media (width<=900px){:root{--header-h:64px}.menu-toggle{z-index:2;display:block}.nav{z-index:1;background:var(--ink);color:#f3eee4;opacity:0;visibility:hidden;transition:opacity .35s var(--ease), visibility .35s;flex-direction:column;justify-content:center;gap:28px;position:fixed;inset:0}.nav a.nav-link{font-family:var(--serif);letter-spacing:.3em;font-size:22px}.menu-open .nav{opacity:1;visibility:visible}.menu-open .site-header{color:#f3eee4;background:0 0;border-color:#0000}.nav .btn{background:var(--gold);border-color:var(--gold);color:var(--ink);margin-top:12px}.brand-text span{display:none}}main{min-height:60vh}.page-top{padding-top:var(--header-h)}.page-hero{padding-block:calc(var(--header-h) + clamp(48px, 8vw, 104px)) clamp(40px, 6vw, 72px);border-bottom:1px solid var(--line)}.page-hero .wrap{gap:18px;display:grid}.page-hero p{max-width:640px}.site-footer{background:var(--ink);color:#cfc7b8;padding-block:72px 32px;font-size:14px}.footer-grid{grid-template-columns:1.4fr 1fr 1fr;gap:48px;display:grid}.footer-brand{align-content:start;gap:20px;display:grid}.footer-brand img{width:56px}.footer-brand .brand-text strong{color:#f3eee4}.site-footer h3{font-family:var(--latin);letter-spacing:.3em;color:var(--gold);margin-bottom:18px;font-size:12px;font-weight:500}.site-footer ul{gap:10px;margin:0;padding:0;list-style:none;display:grid}.site-footer a:hover{color:var(--gold)}.footer-contact dt{color:#8f887b;letter-spacing:.2em;font-size:12px}.footer-contact dd{color:#f3eee4;margin:0 0 12px}.footer-bottom{color:#8f887b;letter-spacing:.1em;border-top:1px solid #ffffff1a;flex-wrap:wrap;justify-content:space-between;gap:16px;margin-top:56px;padding-top:24px;font-size:12px;display:flex}@media (width<=800px){.footer-grid{grid-template-columns:1fr;gap:36px}.site-footer{padding-bottom:96px}}.mobile-bar{display:none}@media (width<=800px){.mobile-bar{z-index:40;background:var(--ink);padding-bottom:env(safe-area-inset-bottom);border-top:1px solid #ffffff14;grid-template-columns:1fr 1.4fr;display:grid;position:fixed;inset:auto 0 0}.mobile-bar a{color:#f3eee4;letter-spacing:.12em;justify-content:center;align-items:center;gap:8px;height:56px;font-size:15px;display:flex}.mobile-bar a.primary{background:var(--gold);color:var(--ink);font-weight:500}}.works-grid{grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px) clamp(16px,2.4vw,32px);display:grid}@media (width<=1000px){.works-grid{grid-template-columns:repeat(2,1fr)}}@media (width<=600px){.works-grid{grid-template-columns:1fr}}.work-card{gap:16px;display:grid}.work-card .frame{aspect-ratio:4/3;background:var(--paper-2);position:relative;overflow:hidden}.work-card .frame img{object-fit:cover;width:100%;height:100%;transition:transform 1.2s var(--ease)}.work-card:hover .frame img{transform:scale(1.045)}.work-card .frame:after{content:"";transition:border-color .6s var(--ease);pointer-events:none;border:1px solid #fffdf900;position:absolute;inset:12px}.work-card:hover .frame:after{border-color:#fffdf9b3}.work-card .meta{letter-spacing:.2em;color:var(--gold-ink);font-size:12px}.work-card h3{letter-spacing:.08em;margin-top:4px;font-size:19px}.work-card .sub{color:var(--muted);letter-spacing:.1em;font-size:13px}.empty-state{text-align:center;border:1px dashed var(--line-strong);color:var(--muted);padding:64px 24px}.field{gap:8px;display:grid}.field>label,.field>.label{letter-spacing:.1em;color:var(--ink-2);font-size:14px}.field .req{color:var(--gold-ink);margin-left:4px}.input,.select,.textarea{width:100%;min-height:50px;font:inherit;color:var(--ink);background:var(--white);border:1px solid var(--line-strong);border-radius:var(--radius);padding:12px 16px;font-size:16px;transition:border-color .2s,box-shadow .2s}.textarea{resize:vertical;min-height:120px;line-height:1.7}.input:focus,.select:focus,.textarea:focus{border-color:var(--gold);outline:none;box-shadow:0 0 0 3px #c4a35a33}.field.has-error .input,.field.has-error .select,.field.has-error .textarea{border-color:var(--danger)}.field-error{color:var(--danger);min-height:0;font-size:13px}.field-error:empty{display:none}.hint{color:var(--muted);font-size:13px}.chips{flex-wrap:wrap;gap:10px;display:flex}.chip{position:relative}.chip input{opacity:0;cursor:pointer;position:absolute;inset:0}.chip span{border:1px solid var(--line-strong);background:var(--white);letter-spacing:.08em;min-height:44px;transition:all .2s var(--ease);border-radius:var(--radius);align-items:center;padding:0 18px;font-size:15px;display:inline-flex}.chip input:checked+span{background:var(--ink);color:var(--white);border-color:var(--ink)}.chip input:focus-visible+span{outline:2px solid var(--gold);outline-offset:2px}.notice{border-left:2px solid var(--gold);background:var(--white);color:var(--ink-2);padding:16px 20px;font-size:15px}.alert{color:var(--danger);border-radius:var(--radius);background:#f6e6e2;padding:14px 18px;font-size:15px}.reveal{opacity:0;transition:opacity 1s var(--ease), transform 1s var(--ease);transform:translateY(24px)}.reveal.is-in,.no-js .reveal{opacity:1;transform:none}
