:root{--ink:#191613;--ink-2:#241f1a;--ink-3:#2f2822;--fabric:#f5f0e6;--fabric-2:#ebe4d5;--card:#fbf7ef;--gold:#c9a227;--gold-lt:#e7ce7a;--gold-dk:#8e6f16;--red:#b5372c;--brown:#6f4e37;--green:#4e6b4a;--muted:#7a6b5a;--line:#6f4e376b;--serif:"Noto Serif TC", "Source Han Serif TC", "Songti TC", "Songti SC", "STSong", "Times New Roman", serif;--sans:"Noto Sans TC", -apple-system, BlinkMacSystemFont, "PingFang TC", "Microsoft JhengHei", "WenQuanYi Zen Hei", sans-serif;--wrap:1080px;--radius:16px}*{box-sizing:border-box}figure{margin:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{background-color:var(--fabric);color:var(--ink);font-family:var(--sans);letter-spacing:.01em;margin:0;font-size:16px;line-height:1.82;overflow-x:hidden}body:before{content:"";z-index:0;pointer-events:none;background-image:repeating-linear-gradient(0deg,#7864460d 0 1px,#0000 1px 3px),repeating-linear-gradient(90deg,#7864460d 0 1px,#0000 1px 3px);position:fixed;inset:0}img{max-width:100%;height:auto;display:block}a{color:inherit}.wrap{width:100%;max-width:var(--wrap);z-index:1;margin:0 auto;padding:0 22px;position:relative}.stitched{position:relative}.stitched:after{content:"";border:2px dashed var(--line);border-radius:calc(var(--radius) - 8px);pointer-events:none;position:absolute;inset:9px}.xstitch{height:15px;max-width:var(--wrap);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='15' height='15'%3E%3Cpath d='M3.5 3.5 11.5 11.5M11.5 3.5 3.5 11.5' stroke='%236f4e37' stroke-width='1.7' stroke-linecap='round' opacity='.42'/%3E%3C/svg%3E");background-position:50%;background-repeat:repeat-x;margin:0 auto}.seam{background-image:repeating-linear-gradient(90deg, var(--line) 0 9px, transparent 9px 18px);height:2px}.sec{z-index:1;padding:74px 0 66px;position:relative}.sec-head{text-align:center;margin-bottom:42px}.sec-title{font-family:var(--serif);letter-spacing:.14em;color:var(--ink);align-items:center;gap:12px;margin:0 0 10px;font-size:clamp(25px,5.4vw,34px);font-weight:900;display:inline-flex}.sec-title .needle{width:30px;height:30px;color:var(--gold-dk);flex:none}.sec-sub{color:var(--muted);letter-spacing:.06em;margin:0;font-size:14.5px}.sec-head:after{content:"";background-image:repeating-linear-gradient(90deg, var(--line) 0 7px, transparent 7px 14px);width:86px;height:2px;margin:16px auto 0;display:block}.hero{background-color:var(--ink);color:var(--fabric);background-image:repeating-linear-gradient(0deg,#ffffff07 0 1px,#0000 1px 3px),repeating-linear-gradient(90deg,#ffffff07 0 1px,#0000 1px 3px);padding:84px 0 70px;position:relative;overflow:hidden}.hero:after{content:"";pointer-events:none;border:2px dashed #c9a22757;border-radius:12px;position:absolute;inset:18px}.hero-thread{width:100%;height:110px;color:var(--gold);opacity:.1;pointer-events:none;position:absolute;top:68%;left:0;right:0}.hero-inner{z-index:2;text-align:center;position:relative}.patch{background:var(--ink-2);border-radius:28px;width:138px;height:138px;margin:0 auto 26px;padding:8px;position:relative;box-shadow:0 16px 34px #00000080,inset 0 0 0 1px #c9a22733}.patch:after{content:"";pointer-events:none;border:2px dashed #c9a22780;border-radius:25px;position:absolute;inset:4px}.patch img{object-fit:cover;border-radius:21px;width:100%;height:100%}.eyebrow{letter-spacing:.26em;color:#f5f0e69e;text-transform:none;margin:0 0 14px;font-size:12.5px}.brand{font-family:var(--serif);letter-spacing:.01em;color:var(--gold-lt);text-shadow:0 2px #0000008c,0 1px #0006,0 -1px #fff6d638;margin:0;font-size:clamp(46px,13vw,82px);font-weight:900;line-height:1.02}.tagline{font-family:var(--serif);letter-spacing:.2em;color:#f0e7d5;margin:12px 0 0;font-size:clamp(19px,5vw,27px)}.quote{color:#f5f0e6bd;letter-spacing:.08em;max-width:30em;margin:18px auto 0;font-size:15px}.chips{flex-wrap:wrap;justify-content:center;gap:9px;margin:30px 0 0;padding:0;list-style:none;display:flex}.chips li{letter-spacing:.1em;color:var(--gold-lt);background:#c9a2270f;border:1.5px dashed #c9a22780;border-radius:999px;padding:6px 14px;font-size:12.5px}.cta-row{flex-wrap:wrap;justify-content:center;gap:14px;margin-top:34px;display:flex}.btn{letter-spacing:.09em;border-radius:12px;align-items:center;gap:10px;padding:13px 26px;font-size:15px;font-weight:700;text-decoration:none;transition:transform .18s,box-shadow .18s,background-color .18s;display:inline-flex;position:relative}.btn:after{content:"";opacity:.5;pointer-events:none;border:1.5px dashed;border-radius:8px;position:absolute;inset:4px}.btn-gold{background:var(--gold);color:#231c07;box-shadow:0 8px 20px #c9a22742}.btn-gold:hover{background:var(--gold-lt);transform:translateY(-2px);box-shadow:0 12px 26px #c9a22757}.btn-ghost{color:var(--gold-lt);background:0 0;box-shadow:inset 0 0 0 2px #e7ce7a73}.btn-ghost:hover{background:#e7ce7a1f;transform:translateY(-2px)}.btn-ink{background:var(--ink);color:var(--gold-lt);box-shadow:0 8px 20px #19161338}.btn-ink:hover{background:var(--ink-2);transform:translateY(-2px)}.btn svg{flex:none;width:18px;height:18px}.cards{grid-template-columns:1fr;gap:18px;display:grid}.card{background:var(--card);border-radius:var(--radius);text-align:center;padding:32px 26px 28px;box-shadow:0 2px #6f4e3712,0 14px 30px #6f4e3717}.card .icon{margin-bottom:14px;font-size:30px;line-height:1;display:block}.card h3{font-family:var(--serif);letter-spacing:.1em;text-wrap:balance;margin:0 0 10px;font-size:19px;font-weight:900}.card p{color:var(--muted);margin:0;font-size:14.5px;line-height:1.85}.gallery{grid-template-columns:repeat(2,1fr);gap:12px;display:grid}.work{background:#fff;border-radius:10px;padding:7px;transition:transform .22s,box-shadow .22s;position:relative;box-shadow:0 10px 24px #6f4e3724}.work:after{content:"";pointer-events:none;border:1.5px dashed #6f4e374d;border-radius:7px;position:absolute;inset:2px}.work img{aspect-ratio:4/5;object-fit:cover;background:var(--fabric-2);border-radius:5px;width:100%}.work:hover{transform:translateY(-4px)rotate(-.6deg);box-shadow:0 18px 34px #6f4e3733}.featured{grid-template-columns:1fr;gap:20px;display:grid}.feat{background:var(--card);border-radius:var(--radius);align-items:center;gap:20px;padding:20px;display:flex;box-shadow:0 12px 28px #6f4e371a}.feat img{object-fit:cover;width:96px;height:96px;box-shadow:0 0 0 6px var(--fabric-2);border-radius:50%;flex:none}.feat h3{font-family:var(--serif);letter-spacing:.1em;margin:0 0 6px;font-size:19px;font-weight:900}.feat p{color:var(--muted);margin:0;font-size:14px}.contact{background:var(--ink);color:var(--fabric);z-index:1;background-image:repeating-linear-gradient(0deg,#ffffff07 0 1px,#0000 1px 3px),repeating-linear-gradient(90deg,#ffffff07 0 1px,#0000 1px 3px);padding:70px 0;position:relative}.contact:after{content:"";pointer-events:none;border:2px dashed #c9a22752;border-radius:12px;position:absolute;inset:18px}.contact-inner{text-align:center;z-index:2;position:relative}.contact h2{font-family:var(--serif);color:var(--gold-lt);letter-spacing:.14em;text-shadow:0 2px #00000080,0 -1px #fff6d62e;margin:0 0 12px;font-size:clamp(24px,5.6vw,32px);font-weight:900}.contact p{color:#f5f0e6c2;text-wrap:pretty;max-width:40em;margin:0 auto 28px;font-size:15px}.foot{text-align:center;color:var(--muted);letter-spacing:.08em;z-index:1;padding:34px 0 40px;font-size:12.5px;position:relative}.foot .mono{font-family:var(--serif);color:var(--ink);letter-spacing:.16em;margin-bottom:6px;font-size:15px;font-weight:900;display:block}.reveal{opacity:0;transform:translateY(16px)}.reveal.on{opacity:1;transition:opacity .6s,transform .6s;transform:none}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}.reveal,.reveal.on{opacity:1;transition:none;transform:none}.work:hover,.btn:hover{transform:none}}@media (width>=620px){.cards,.featured{grid-template-columns:repeat(2,1fr)}.gallery{grid-template-columns:repeat(3,1fr);gap:16px}.hero{padding:104px 0 88px}.patch{width:156px;height:156px}}@media (width>=900px){.cards{grid-template-columns:repeat(4,1fr)}.featured{grid-template-columns:repeat(3,1fr)}.gallery{grid-template-columns:repeat(4,1fr);gap:18px}.feat{text-align:center;flex-direction:column;align-items:center;gap:16px;padding:28px 22px}.feat img{width:112px;height:112px}.sec{padding:96px 0 88px}}
