.hdr{--bg:#f8f3ec;--surface:#fffaf4;--ink:#2b211b;--muted:#6d5d52;--line:#e7dacb;--line-strong:#cdb9a4;--pri:#b5502a;--pri-text:#9a3f1f;--font-display:"Instrument Serif", "Noto Serif TC", Georgia, serif;--font-body:"DM Sans", "Noto Sans TC", system-ui, sans-serif;z-index:20;background:color-mix(in srgb, var(--bg) 92%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--line);color:var(--ink);font:16px/1.6 var(--font-body);position:sticky;top:0}.hdr .wrap{max-width:1140px;margin:0 auto;padding:0 36px}.hdr-in{min-height:var(--aideate-bar-height,72px);align-items:center;gap:24px;display:flex}.hdr a{color:inherit;text-decoration:none}.hdr .nav{gap:4px;margin-left:auto;display:flex}.hdr .nav a{color:var(--muted);border-radius:999px;padding:8px 12px;font-size:15px;font-weight:500}.hdr .nav a:hover,.hdr .nav a[aria-current]{color:var(--ink);background:color-mix(in srgb, var(--pri) 8%, transparent)}.hdr-act{align-items:center;gap:12px;display:flex}.hdr .lang{border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:700;display:inline-flex;overflow:hidden}.hdr .lang a{color:var(--muted);padding:5px 10px}.hdr .lang a[aria-current]{background:var(--ink);color:var(--bg)}.hdr .btn{background:var(--pri);color:#fff;font:700 14px/1.2 var(--font-body);white-space:nowrap;border-radius:999px;align-items:center;padding:8px 14px;transition:background .12s;display:inline-flex}.hdr .btn:hover{background:var(--pri-text)}.hdr :focus-visible{outline:3px solid var(--pri);outline-offset:3px;border-radius:4px}.wm{white-space:nowrap;align-items:center;gap:10px;line-height:1;display:inline-flex}.wm-name{font-family:var(--font-display);color:var(--ink);letter-spacing:-.01em;font-size:28px}.wm-dot{color:var(--pri)}.wm-sub{font:500 11px/1.15 "Noto Sans TC", var(--font-body);color:var(--muted);letter-spacing:.12em;border-left:1px solid var(--line-strong);flex-direction:column;gap:2px;padding-left:10px;display:flex}@media (width<=860px){.hdr .wrap{padding:0 16px}.hdr .nav,.hdr-act .btn,.wm-sub{display:none}}:root{--bg:#f8f3ec;--surface:#fffaf4;--surface-2:#f1e7da;--ink:#2b211b;--muted:#6d5d52;--line:#e7dacb;--line-strong:#cdb9a4;--pri:#b5502a;--pri-text:#9a3f1f;--pri-ink:#fff;--green:#2f6b4f;--ochre:#b07d2b;--ochre-text:#8a6220;--sun:#e6b45a;--tint:#f3e2d4;--spot-bg:#f0dccb;--ink-bg:#2b211b;--ink-fg:#fffaf4;--ink-fg-muted:#fffaf4bd;--font-display:"Instrument Serif", "Noto Serif TC", Georgia, serif;--font-body:"DM Sans", "Noto Sans TC", system-ui, sans-serif;--font-penpal:"Fredoka", ui-rounded, sans-serif;--radius:14px;--radius-pill:999px;--radius-arch:999px 999px var(--radius) var(--radius);--shadow:0 1px 2px #0000000a;--shadow-lg:0 24px 60px #2b211b24;--section-space:clamp(56px, 8vw, 104px);--penpal-violet:#7c3aed;--penpal-coral:#ff5470}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;scroll-padding-top:84px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--bg);color:var(--ink);font:16px/1.6 var(--font-body);-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--tint)}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}:focus-visible{outline:3px solid var(--pri);outline-offset:3px;border-radius:4px}h1,h2,h3{font-family:var(--font-display);letter-spacing:-.01em;text-wrap:balance;margin:0;font-weight:400;line-height:1.08}h1{font-size:clamp(40px,7vw,88px)}h2{font-size:clamp(30px,4vw,48px)}h3{font-size:clamp(21px,2vw,25px);line-height:1.2}h1 em,h2 em{color:var(--pri-text);font-style:italic}h1 strong{color:var(--green);font-weight:inherit}:lang(zh-HK) h1,:lang(zh-HK) h2,:lang(zh-HK) h3{letter-spacing:.02em;font-weight:700;line-height:1.25}p{margin:0}.skip-link{z-index:100;background:var(--ink);color:var(--bg);border-radius:8px;padding:8px 14px;position:absolute;top:-48px;left:12px}.skip-link:focus{top:12px}.wrap{max-width:1140px;margin:0 auto;padding:0 36px}.sec{padding:var(--section-space) 0;position:relative}.sec--alt{background:var(--surface-2)}.sec--ink{background:var(--ink-bg);color:var(--ink-fg)}.sec--ink .muted{color:var(--ink-fg-muted)}.sec--ink .card{background:#ffffff0d;border-color:#ffffff1f}.sec-head{max-width:720px;margin-bottom:36px}.muted{color:var(--muted)}.lead{color:var(--muted);max-width:60ch;font-size:clamp(17px,1.6vw,20px)}.sec--ink .lead{color:var(--ink-fg-muted)}.eyebrow{font:500 13px/1.2 var(--font-body);letter-spacing:.04em;color:var(--tone,var(--pri-text));align-items:center;gap:8px;margin-bottom:14px;display:inline-flex}.eyebrow:before{content:"●";font-size:9px}.sec--ink .eyebrow{color:var(--sun)}.btn{border-radius:var(--radius-pill);background:var(--pri);color:var(--pri-ink);font:700 15px/1.2 var(--font-body);white-space:nowrap;cursor:pointer;border:0;justify-content:center;align-items:center;gap:8px;padding:13px 22px;transition:transform .12s,background .12s;display:inline-flex}.btn:hover{background:var(--pri-text);transform:translateY(-1px)}.btn--ghost{color:var(--ink);border:1px solid var(--line-strong);background:0 0}.btn--ghost:hover{background:var(--surface)}.btn--sm{padding:8px 14px;font-size:14px}.btn[disabled]{opacity:.6;cursor:progress;transform:none}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.actions{flex-wrap:wrap;gap:12px;margin-top:28px;display:flex}.grid2{grid-template-columns:1.05fr .95fr;align-items:center;gap:clamp(28px,5vw,64px);display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:20px;display:grid}.tag{border-radius:var(--radius-pill);background:var(--tint);color:var(--pri-text);align-items:center;gap:6px;padding:4px 10px;font-size:12.5px;font-weight:700;display:inline-flex}.tag--plain{border:1px solid var(--line-strong);color:var(--muted);background:0 0}.pp-brand{font-family:var(--font-penpal);color:var(--penpal-violet);letter-spacing:-.02em;font-size:30px;font-weight:600;line-height:1}.pp-brand span{color:var(--penpal-coral)}.photo{border-radius:var(--radius);background:var(--spot-bg);width:100%;margin:0;position:relative;overflow:hidden}.photo img{object-fit:cover;width:100%;height:100%}.photo--empty{background:repeating-linear-gradient(135deg, transparent 0 14px, #2b211b0a 14px 15px), linear-gradient(135deg, color-mix(in srgb, var(--pri) 30%, var(--surface)), color-mix(in srgb, var(--green) 22%, var(--surface)) 60%, color-mix(in srgb, var(--sun) 25%, var(--surface)));align-items:flex-end;display:flex}.photo-ico{fill:none;stroke:#2b211b59;stroke-width:2px;stroke-linejoin:round;width:56px;height:56px;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.photo-ico circle{fill:#2b211b26;stroke:none}.photo-brief{background:#fffaf4e6;border-radius:8px;gap:2px;max-width:420px;margin:10px;padding:8px 10px;font-size:11.5px;line-height:1.4;display:grid;position:relative}.photo-brief span{color:var(--muted)}.photo--flush{border-radius:0}.photo--bleed{border-radius:0;height:100%;position:absolute;inset:0}.hero{place-items:center;min-height:min(80vh,820px);display:grid;position:relative;overflow:hidden}.hero-shade{background:linear-gradient(#f8f3ecb8,#f8f3ece6);position:absolute;inset:0}.hero-inner{z-index:1;text-align:center;max-width:900px;padding-top:96px;padding-bottom:96px;position:relative}.hero-inner .lead{margin:24px auto 0}.hero-inner .actions{justify-content:center}.stats{grid-template-columns:repeat(3,1fr);gap:20px;margin-top:40px;display:grid}.stat b{font:400 clamp(38px, 4.6vw, 58px)/1 var(--font-display);color:var(--pri-text);display:block}.stat span{color:var(--muted);font-size:14px}.work-card{flex-direction:column;display:flex;overflow:hidden}.work-card .photo{aspect-ratio:4/3}.work-body{gap:8px;padding:22px;display:grid}.spot{grid-template-columns:1fr 1fr;display:grid;overflow:hidden}.spot-copy{flex-direction:column;align-items:flex-start;gap:16px;padding:clamp(28px,4vw,52px);display:flex}.spot-copy h2{font-size:clamp(26px,3vw,38px)}.spot-art{background:var(--spot-bg);place-items:end center;min-height:340px;display:grid;position:relative;overflow:hidden}.spot-art img{z-index:1;width:auto;max-width:72%;max-height:420px;position:relative}.spot-art .float{z-index:2;width:min(260px,60%);padding:10px;font-size:13px;position:absolute;top:10%;left:6%}.checks{gap:10px;margin:0;padding:0;list-style:none;display:grid}.checks li{gap:10px;display:flex}.checks li:before{content:"✓";color:var(--pri-ink);background:var(--pri);border-radius:var(--radius-pill);flex:none;place-items:center;width:20px;height:20px;margin-top:3px;font-size:12px;font-weight:700;display:inline-grid}.hint{background:var(--tint);color:var(--pri-text);border-radius:9px;align-items:flex-start;gap:10px;padding:12px 14px;font-size:14px;font-weight:500;display:flex}.hint b{color:var(--green)}.val{flex-direction:column;gap:10px;padding:28px;display:flex}.val-ico{width:44px;height:44px;color:var(--sun);background:#ffffff1a;border-radius:50%;place-items:center;margin-bottom:6px;font-size:20px;display:grid}.strip{align-items:flex-end;min-height:clamp(240px,32vw,420px);display:flex;position:relative;overflow:hidden}.strip-text{color:#fff;background:linear-gradient(#0000,#0000008c);width:100%;padding:28px 0;position:relative}.strip-text span{letter-spacing:.14em;text-transform:uppercase;opacity:.85;font-size:12px;display:block}.strip-text b{font:400 clamp(24px, 3vw, 38px)/1.2 var(--font-display)}.contact{background:var(--pri);color:#fff;border:0;grid-template-columns:1fr 1fr;align-items:center;gap:32px;padding:clamp(28px,4vw,52px);display:grid}.contact .lead{color:#ffffffdb;margin-top:12px}.contact .btn{background:var(--surface);color:var(--pri-text)}.contact-side{grid-template-columns:160px 1fr;align-items:center;gap:24px;display:grid}.contact-side .photo{aspect-ratio:1}.contact dl{gap:14px;margin:0;display:grid}.contact dt{text-transform:uppercase;letter-spacing:.1em;opacity:.8;font-size:12px}.contact dd{margin:0;font-size:18px;font-weight:700}.ftr{border-top:1px solid var(--line);color:var(--muted);padding:40px 0;font-size:14px}.ftr-in{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:24px;display:flex}.ftr nav{flex-wrap:wrap;gap:20px;display:flex}.ftr nav a:hover{color:var(--ink)}.ftr-legal{margin-top:24px;font-size:12.5px}@media (width<=860px){.wrap{padding:0 16px}.grid2,.grid3,.spot,.contact,.contact-side,.stats{grid-template-columns:1fr}.contact-side .photo{max-width:160px}}
