.ws-blog{--ws-font-en:var(--font-inter), "Inter", system-ui, sans-serif;--ws-rose:#b8826a}.ws-blog .blog-head{text-align:center;padding:64px 0 8px}.ws-blog .blog-head .small-caps{font-family:var(--ws-font-en);letter-spacing:.18em;text-transform:uppercase;color:var(--ws-gold-deep);margin-bottom:14px;font-size:12px;font-weight:700;display:block}.ws-blog .blog-head h1{letter-spacing:.02em;color:var(--ws-ink);margin:0 0 16px;font-size:52px;font-weight:900}.ws-blog .blog-head .lede{color:var(--ws-muted);max-width:560px;margin:0 auto;font-size:16px;line-height:1.8}.ws-blog .blog-featured-wrap{padding:40px 0 8px}.ws-blog .blog-featured{background:var(--ws-card);border:1px solid var(--ws-line);border-radius:var(--ws-r-xl);box-shadow:var(--ws-shadow-2);grid-template-columns:1.15fr 1fr;transition:transform .3s,box-shadow .3s;display:grid;overflow:hidden}.ws-blog .blog-featured:hover{box-shadow:var(--ws-shadow-3);transform:translateY(-4px)}.ws-blog .blog-featured .cover{min-height:420px;position:relative;overflow:hidden}.ws-blog .blog-featured .cover img,.ws-blog .blog-featured .cover .ph{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.ws-blog .blog-featured .pin{z-index:2;color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);letter-spacing:.06em;background:#14110dc7;border-radius:999px;align-items:center;gap:6px;padding:7px 13px;font-size:12px;font-weight:600;display:inline-flex;position:absolute;top:20px;left:20px}.ws-blog .blog-featured .body{flex-direction:column;justify-content:center;padding:48px 52px;display:flex}.ws-blog .blog-featured .body .meta-row{align-items:center;gap:12px;margin-bottom:18px;display:flex}.ws-blog .blog-featured h2{letter-spacing:.01em;color:var(--ws-ink);text-wrap:balance;margin:0 0 18px;font-size:32px;font-weight:800;line-height:1.35}.ws-blog .blog-featured .excerpt{color:var(--ws-muted);-webkit-line-clamp:3;-webkit-box-orient:vertical;max-width:460px;margin:0 0 28px;font-size:15px;line-height:1.85;display:-webkit-box;overflow:hidden}.ws-blog .blog-featured .read-more{color:var(--ws-gold-deep);align-self:flex-start;align-items:center;gap:8px;font-size:15px;font-weight:600;transition:gap .2s;display:inline-flex}.ws-blog .blog-featured:hover .read-more{gap:13px}.ws-blog .cat-chip{letter-spacing:.04em;background:var(--ws-gold-soft);color:var(--ws-gold-deep);white-space:nowrap;border-radius:999px;align-items:center;padding:5px 12px;font-size:12px;font-weight:700;display:inline-flex}.ws-blog .cat-chip[data-cat=接案]{background:color-mix(in oklab, var(--ws-rose) 28%, var(--ws-card));color:color-mix(in oklab, var(--ws-rose) 75%, var(--ws-ink))}.ws-blog .cat-chip[data-cat=軟體]{background:color-mix(in oklab, #6a7a95 22%, var(--ws-card));color:color-mix(in oklab, #4a5a78 80%, var(--ws-ink))}.ws-blog .cat-chip[data-cat=公告]{background:color-mix(in oklab, #5f8a6a 22%, var(--ws-card));color:color-mix(in oklab, #3f6a4a 80%, var(--ws-ink))}.ws-blog .cat-chip[data-cat=新聞]{background:color-mix(in oklab, #8a6f9c 22%, var(--ws-card));color:color-mix(in oklab, #5f4a72 80%, var(--ws-ink))}.ws-blog .cat-chip[data-cat=得獎]{background:color-mix(in oklab, var(--ws-gold) 30%, var(--ws-card));color:var(--ws-gold-deep)}.ws-blog .post-date{font-family:var(--ws-font-en);color:var(--ws-muted-2);letter-spacing:.02em;font-size:13px}.ws-blog .blog-tabs-wrap{z-index:30;background:color-mix(in oklab, var(--ws-bg) 88%, transparent);-webkit-backdrop-filter:saturate(140%)blur(12px);border-bottom:1px solid var(--ws-line);margin-top:48px;position:sticky;top:76px}.dark .ws-blog .blog-tabs-wrap{background:color-mix(in oklab, var(--ws-bg) 82%, transparent)}.ws-blog .blog-tabs{flex-wrap:wrap;align-items:center;gap:8px;padding:16px 0;display:flex}.ws-blog .blog-tab{color:var(--ws-muted);border:1px solid var(--ws-line);cursor:pointer;background:0 0;border-radius:999px;padding:9px 20px;font-size:14.5px;font-weight:600;transition:all .18s}.ws-blog .blog-tab:hover{color:var(--ws-ink);border-color:var(--ws-line-2)}.ws-blog .blog-tab.active{background:var(--ws-ink);color:var(--ws-bg);border-color:var(--ws-ink)}.ws-blog .blog-tab .count{font-family:var(--ws-font-en);opacity:.6;margin-left:6px;font-size:11px}.ws-blog .blog-grid-wrap{padding:44px 0 24px}.ws-blog .blog-grid{grid-template-columns:repeat(3,1fr);gap:28px 26px;display:grid}.ws-blog .post-card{background:var(--ws-card);border:1px solid var(--ws-line);border-radius:var(--ws-r-lg);flex-direction:column;transition:transform .25s,box-shadow .25s,border-color .25s;display:flex;overflow:hidden}.ws-blog .post-card:hover{box-shadow:var(--ws-shadow-3);border-color:var(--ws-line-2);transform:translateY(-5px)}.ws-blog .post-card .cover{aspect-ratio:16/10;position:relative;overflow:hidden}.ws-blog .post-card .cover img,.ws-blog .post-card .cover .ph{object-fit:cover;width:100%;height:100%;transition:transform .5s;position:absolute;inset:0}.ws-blog .post-card:hover .cover img,.ws-blog .post-card:hover .cover .ph{transform:scale(1.05)}.ws-blog .post-card .cover .cat-chip{position:absolute;top:14px;left:14px;box-shadow:0 2px 8px #14110d1f}.ws-blog .post-card .body{flex-direction:column;flex:1;padding:22px 22px 24px;display:flex}.ws-blog .post-card h3{color:var(--ws-ink);letter-spacing:.01em;text-wrap:pretty;-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 12px;font-size:18px;font-weight:700;line-height:1.5;display:-webkit-box;overflow:hidden}.ws-blog .post-card .excerpt{color:var(--ws-muted);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin:0 0 20px;font-size:13.5px;line-height:1.8;display:-webkit-box;overflow:hidden}.ws-blog .post-card .foot{border-top:1px solid var(--ws-line);justify-content:space-between;align-items:center;margin-top:auto;padding-top:16px;display:flex}.ws-blog .post-card .foot .read{color:var(--ws-gold-deep);align-items:center;gap:6px;font-size:13px;font-weight:600;transition:gap .2s;display:inline-flex}.ws-blog .post-card:hover .foot .read{gap:10px}.ws-blog .blog-pager{justify-content:center;align-items:center;gap:8px;padding:32px 0 8px;display:flex}.ws-blog .blog-pager a,.ws-blog .blog-pager span,.ws-blog .blog-pager button{border:1px solid var(--ws-line);min-width:42px;height:42px;font-family:var(--ws-font-en);color:var(--ws-muted);background:var(--ws-card);border-radius:10px;place-items:center;padding:0 6px;font-size:14px;font-weight:600;transition:all .18s;display:grid}.ws-blog .blog-pager a:hover,.ws-blog .blog-pager button:hover{color:var(--ws-ink);border-color:var(--ws-line-2)}.ws-blog .blog-pager .current{background:var(--ws-ink);color:var(--ws-bg);border-color:var(--ws-ink)}.ws-blog .ph{place-items:center;display:grid;position:relative}.ws-blog .ph .ph-label{z-index:1;font-family:var(--ws-font-en);letter-spacing:.18em;text-transform:uppercase;color:#ffffffd1;font-size:11px;font-weight:600;position:relative}.ws-blog .blog-empty{text-align:center;color:var(--ws-muted);padding:64px 0;font-size:15px}.ws-blog .read-progress{z-index:100;background:0 0;height:3px;position:fixed;top:0;left:0;right:0}.ws-blog .read-progress .bar{background:linear-gradient(90deg, var(--ws-gold), var(--ws-gold-deep));width:0;height:100%;transition:width 80ms linear}.ws-blog .article-wrap{padding:0 0 24px}.ws-blog .article-hero{border-radius:var(--ws-r-xl);max-width:1160px;min-height:460px;box-shadow:var(--ws-shadow-2);flex-direction:column;justify-content:flex-end;margin:28px auto 0;display:flex;position:relative;overflow:hidden}.ws-blog .article-hero .bg,.ws-blog .article-hero .bg img,.ws-blog .article-hero .bg .ph{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.ws-blog .article-hero .scrim{background:linear-gradient(#14110d6b 0%,#14110d0a 32%,#14110d8c 72%,#14110de0 100%);position:absolute;inset:0}.ws-blog .article-hero .hero-inner{width:100%;padding:40px 56px 48px;position:relative}.ws-blog .crumb{flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.ws-blog .crumb--over{color:#ffffffd1;position:absolute;top:28px;left:56px}.ws-blog .crumb--over a:hover{color:#fff}.ws-blog .crumb--over .sep{color:#ffffff80}.ws-blog .crumb--over .current{color:#fffffff2}.ws-blog .article-hero h1{letter-spacing:.01em;color:#fff;text-wrap:balance;text-shadow:0 2px 24px #0006;max-width:860px;margin:16px 0 22px;font-size:44px;font-weight:900;line-height:1.3}.ws-blog .article-hero .cat-chip{color:#fff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);background:#ffffff2e}.ws-blog .article-meta{color:#ffffffd9;flex-wrap:wrap;align-items:center;gap:10px 18px;font-size:13.5px;display:flex}.ws-blog .article-meta .who{align-items:center;gap:9px;display:flex}.ws-blog .article-meta .who .av{background:linear-gradient(150deg, var(--ws-gold-soft), var(--ws-gold-deep));object-fit:cover;border:2px solid #ffffff80;border-radius:999px;width:38px;height:38px}.ws-blog .article-meta .who .name{color:#fff;font-weight:600}.ws-blog .article-meta .mdot{color:#ffffff73}.ws-blog .article-meta .mitem{align-items:center;gap:6px;display:inline-flex}.ws-blog .article-layout{grid-template-columns:230px minmax(0,1fr);align-items:start;gap:56px;max-width:1040px;margin:0 auto;padding:56px 0 0;display:grid}.ws-blog .toc{position:sticky;top:110px}.ws-blog .toc .toc-title{font-family:var(--ws-font-en);letter-spacing:.16em;text-transform:uppercase;color:var(--ws-muted-2);border-bottom:1px solid var(--ws-line);margin:0 0 16px;padding-bottom:12px;font-size:11px;font-weight:700}.ws-blog .toc ul{flex-direction:column;gap:2px;margin:0;padding:0;list-style:none;display:flex}.ws-blog .toc a{color:var(--ws-muted);border-left:2px solid var(--ws-line);padding:7px 0 7px 14px;font-size:13.5px;line-height:1.55;transition:color .18s,border-color .18s;display:block}.ws-blog .toc a:hover{color:var(--ws-ink)}.ws-blog .toc a.active{color:var(--ws-gold-deep);border-left-color:var(--ws-gold);font-weight:600}.ws-blog .article-body{max-width:720px}.ws-blog .article-body>*{scroll-margin-top:104px}.ws-blog .article-body p{color:var(--ws-ink-2);margin:0 0 24px;font-size:16.5px;line-height:1.95}.ws-blog .article-body h2{letter-spacing:.01em;color:var(--ws-ink);margin:48px 0 20px;padding-top:8px;font-size:26px;font-weight:800;line-height:1.45}.ws-blog .article-body h3{color:var(--ws-ink);margin:36px 0 14px;font-size:20px;font-weight:700;line-height:1.5}.ws-blog .article-body h3 .num{font-family:var(--ws-font-en);color:var(--ws-gold-deep);margin-right:8px}.ws-blog .article-body strong{color:var(--ws-ink);font-weight:700}.ws-blog .article-body a{color:var(--ws-gold-deep);text-underline-offset:3px;text-decoration:underline}.ws-blog .article-body a:hover{color:var(--ws-ink)}.ws-blog .article-body img{border-radius:var(--ws-r);max-width:100%;height:auto;margin:8px 0 28px;display:block}.ws-blog .article-body figure{margin:0 0 28px}.ws-blog .article-body figcaption{color:var(--ws-muted-2);text-align:center;margin-top:8px;font-size:13px}.ws-blog .article-body blockquote{border-left:3px solid var(--ws-gold);color:var(--ws-muted);margin:0 0 24px;padding:4px 0 4px 20px;font-size:16px;line-height:1.9}.ws-blog .article-body ul,.ws-blog .article-body ol{flex-direction:column;gap:12px;margin:0 0 24px;padding-left:0;list-style:none;display:flex}.ws-blog .article-body ul li,.ws-blog .article-body ol li{color:var(--ws-ink-2);padding-left:26px;font-size:16px;line-height:1.85;position:relative}.ws-blog .article-body ul li:before{content:"";background:var(--ws-gold);border-radius:999px;width:7px;height:7px;position:absolute;top:13px;left:4px}.ws-blog .article-body ol{counter-reset:li}.ws-blog .article-body ol li:before{counter-increment:li;content:counter(li);font-family:var(--ws-font-en);color:var(--ws-gold-deep);font-size:13px;font-weight:700;position:absolute;top:0;left:0}.ws-blog .article-body .tip{background:var(--ws-bg-soft);border:1px solid var(--ws-line);border-left:3px solid var(--ws-gold);border-radius:var(--ws-r);color:var(--ws-ink-2);align-items:flex-start;gap:14px;margin:0 0 24px;padding:18px 22px;font-size:15.5px;line-height:1.85;display:flex}.ws-blog .article-body .tip .tip-ic{color:var(--ws-gold-deep);flex-shrink:0;margin-top:4px}.ws-blog .article-body .tip .tip-label{color:var(--ws-gold-deep);letter-spacing:.1em;background:var(--ws-gold-soft);vertical-align:2px;border-radius:999px;margin-right:10px;padding:2px 9px;font-size:12px;font-weight:700;display:inline-block}.dark .ws-blog .article-body .tip .tip-label{color:#1a1714}.ws-blog .share-row{align-items:center;gap:10px;margin:8px 0 0;display:flex}.ws-blog .share-row .lbl{color:var(--ws-muted);letter-spacing:.04em;font-size:12.5px}.ws-blog .share-btn{border:1px solid var(--ws-line);background:var(--ws-card);width:38px;height:38px;color:var(--ws-muted);cursor:pointer;border-radius:999px;place-items:center;transition:all .18s;display:grid}.ws-blog .share-btn:hover{color:#fff;background:var(--ws-ink);border-color:var(--ws-ink)}.ws-blog .author-card{background:var(--ws-bg-soft);border:1px solid var(--ws-line);border-radius:var(--ws-r-lg);align-items:flex-start;gap:26px;max-width:720px;margin:56px auto 0;padding:32px 34px;display:flex}.ws-blog .author-card .a-kick{font-family:var(--ws-font-en);letter-spacing:.16em;text-transform:uppercase;color:var(--ws-muted-2);margin:0 0 8px;font-size:10.5px;font-weight:700}.ws-blog .author-card .awards{flex-direction:column;gap:8px;margin:16px 0 0;padding:0;list-style:none;display:flex}.ws-blog .author-card .awards li{color:var(--ws-ink-2);align-items:flex-start;gap:9px;font-size:13px;line-height:1.65;display:flex}.ws-blog .author-card .awards li .ic{color:var(--ws-gold-deep);flex-shrink:0;margin-top:2px}.ws-blog .author-card .awards li strong{color:var(--ws-ink);font-weight:700}.ws-blog .author-card .ava{object-fit:cover;background:linear-gradient(150deg, var(--ws-gold-soft), var(--ws-gold-deep));border:3px solid var(--ws-card);width:88px;height:88px;box-shadow:var(--ws-shadow-2);border-radius:999px;flex-shrink:0}.ws-blog .author-card .a-name{color:var(--ws-ink);align-items:center;gap:10px;margin:0 0 4px;font-size:19px;font-weight:800;display:flex}.ws-blog .author-card .a-role{color:var(--ws-gold-deep);letter-spacing:.04em;font-size:12.5px;font-weight:600}.ws-blog .author-card .a-bio{color:var(--ws-muted);margin:12px 0 0;font-size:14px;line-height:1.8}.ws-blog .author-card .a-social{gap:10px;margin-top:14px;display:flex}.ws-blog .author-card .a-social a{border:1px solid var(--ws-line);width:30px;height:30px;color:var(--ws-muted);border-radius:999px;place-items:center;transition:all .18s;display:grid}.ws-blog .author-card .a-social a:hover{color:#fff;background:var(--ws-ink);border-color:var(--ws-ink)}.ws-blog .article-cta-wrap{padding:64px 0 0}.ws-blog .article-cta{color:#fff;border-radius:var(--ws-r-xl);background:linear-gradient(135deg,#14110d 0%,#2a2018 100%);max-width:940px;margin:0 auto;padding:52px 56px;position:relative;overflow:hidden}.dark .ws-blog .article-cta{background:linear-gradient(135deg,#0f0d0a 0%,#221b14 100%)}.ws-blog .article-cta:before{content:"";background:radial-gradient(circle,#c9a87638,#0000 70%);width:340px;height:340px;position:absolute;top:-80px;right:-80px}.ws-blog .article-cta .eyebrow{font-family:var(--ws-font-en);letter-spacing:.16em;text-transform:uppercase;color:var(--ws-gold);margin-bottom:14px;font-size:11px;font-weight:700}.ws-blog .article-cta h2{max-width:560px;margin:0 0 14px;font-size:28px;font-weight:800;line-height:1.45}.ws-blog .article-cta p{color:#ffffffb8;max-width:520px;margin:0 0 28px;font-size:15px;line-height:1.8}.ws-blog .article-cta .cta-btn{background:linear-gradient(180deg, var(--ws-gold) 0%, var(--ws-gold-deep) 100%);color:#20180f;border:none;border-radius:11px;align-items:center;gap:8px;padding:13px 26px;font-size:15px;font-weight:700;transition:filter .18s,gap .2s;display:inline-flex}.ws-blog .article-cta .cta-btn:hover{filter:brightness(1.06);gap:12px}.ws-blog .related-wrap{padding:72px 0 8px}.ws-blog .related-wrap .section-title{color:var(--ws-ink);font-size:28px;font-weight:800}.ws-blog .related-grid{grid-template-columns:repeat(3,1fr);gap:26px;margin-top:36px;display:grid}@media (max-width:960px){.ws-blog .article-layout{grid-template-columns:1fr}.ws-blog .toc{display:none}.ws-blog .blog-featured{grid-template-columns:1fr}.ws-blog .blog-featured .cover{min-height:260px}.ws-blog .blog-featured .body{padding:32px 28px}.ws-blog .blog-grid,.ws-blog .related-grid{grid-template-columns:repeat(2,1fr)}.ws-blog .article-hero .hero-inner{padding:28px 24px 32px}.ws-blog .crumb--over{top:20px;left:24px}.ws-blog .article-hero h1{font-size:30px}.ws-blog .blog-head h1{font-size:38px}}@media (max-width:560px){.ws-blog .blog-grid,.ws-blog .related-grid{grid-template-columns:1fr}.ws-blog .author-card{flex-direction:column;gap:18px}}
