:root{--accent:#ef4a28;--on-accent:#121211;--accent-text:color-mix(in srgb, var(--accent) 72%, #000);--annot:#2350d8;--paper:#f1efea;--paper-2:#e6e3dc;--ink:#121211;--muted:#5c5a55;--rule:#cbc7be;--marble-vein:#3d3a350f;--marble-soft:#2350d805;--sans:"Archivo", "Noto Sans TC", "Helvetica Neue", Helvetica, Arial, sans-serif;--mono:"IBM Plex Mono", "Noto Sans TC", ui-monospace, Menlo, monospace;--margin:48px;--gutter:24px;--maxw:1440px;--header-h:76px;--ease-out:cubic-bezier(.19, 1, .22, 1);--ease-io:cubic-bezier(.77, 0, .18, 1)}[data-theme=dark]{--accent-text:var(--accent);--annot:#7b96ff;--paper:#0f0f0e;--paper-2:#1b1b19;--ink:#eceae4;--muted:#a29f98;--rule:#34332f;--marble-vein:#eceae40e;--marble-soft:#7b96ff05}@media (width<=767px){:root{--margin:20px;--gutter:16px;--header-h:64px}}*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--header-h)}body{background-color:var(--paper);background-image:radial-gradient(ellipse 52% 15% at 8% 18%, transparent 45%, var(--marble-vein) 47%, transparent 50%), radial-gradient(ellipse 44% 13% at 84% 62%, transparent 43%, var(--marble-soft) 46%, transparent 50%), linear-gradient(121deg, transparent 0 22%, var(--marble-soft) 23%, transparent 25% 47%, var(--marble-vein) 48%, transparent 50% 76%, var(--marble-soft) 77%, transparent 79%), linear-gradient(63deg, transparent 0 34%, var(--marble-vein) 35%, transparent 36% 68%, var(--marble-soft) 69%, transparent 71%);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;background-position:-120px -60px,180px 90px,0 0,140px -180px;background-size:560px 380px,680px 440px,470px 340px,720px 520px;background-attachment:fixed;margin:0;transition:background-color .5s,color .5s;overflow-x:hidden}::selection{background:var(--accent);color:var(--on-accent)}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;margin:0;padding:0}:focus-visible{outline:2px solid var(--accent);outline-offset:3px}svg{display:block}.mono{font-family:var(--mono)}.display{letter-spacing:-.052em}html[lang=zh-Hant] .display{letter-spacing:-.01em}.wrap{width:100%;max-width:var(--maxw);padding:0 var(--margin);margin:0 auto}.g12{column-gap:var(--gutter);grid-template-columns:repeat(12,minmax(0,1fr));display:grid}.skip{z-index:100;background:var(--ink);color:var(--paper);padding:10px 14px;position:absolute;top:8px;left:-9999px}.skip:focus{left:8px}.link-u{transition:background-size .5s var(--ease-out), color .25s;background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:100% 1px;align-self:flex-start;padding-bottom:3px;font-weight:600}.link-u:hover{background-position:100% 100%;background-size:0% 1px}.site-header{z-index:50;background:color-mix(in srgb, var(--paper) 90%, transparent);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-bottom:1px solid var(--ink);position:sticky;top:0}.site-header .wrap{height:var(--header-h);align-items:center;gap:28px;display:flex}.brand{align-items:center;gap:12px;min-width:250px;display:flex}.brand-mark{background:var(--accent);width:14px;height:14px}.brand-name{letter-spacing:-.02em;font-size:18px;font-weight:800}.brand-sub{font:12px var(--mono);color:var(--muted)}.nav{flex:1;align-items:center;gap:28px;display:flex}.nav a{font-size:15px;font-weight:500;position:relative}.nav a:after{content:"";background:var(--accent);transform-origin:100%;height:2px;transition:transform .45s var(--ease-out);position:absolute;bottom:-6px;left:0;right:0;transform:scaleX(0)}.nav a:hover:after{transform-origin:0;transform:scaleX(1)}.tools{align-items:center;gap:18px;margin-left:auto;display:flex}.status{font:12px var(--mono);color:var(--muted);white-space:nowrap;align-items:center;gap:8px;display:flex}.dot{background:var(--accent);border-radius:50%;width:8px;height:8px;animation:1.8s ease-out infinite pulse}.clock{font:12px var(--mono);font-variant-numeric:tabular-nums;white-space:nowrap}.seg{border:1px solid var(--ink);display:flex}.seg button{width:44px;height:38px;font:12px var(--mono);transition:background-color .25s,color .25s}.seg button[aria-pressed=true]{background:var(--ink);color:var(--paper)}.icon-btn{border:1px solid var(--ink);border-radius:50%;justify-content:center;align-items:center;width:40px;height:40px;transition:background-color .25s,color .25s;display:flex}.icon-btn:hover{background:var(--ink);color:var(--paper)}.icon-btn svg{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.i-sun{display:none}[data-theme=dark] .i-sun{display:block}[data-theme=dark] .i-moon{display:none}.menu-btn{background:var(--ink);width:44px;height:44px;color:var(--paper);justify-content:center;align-items:center;display:none}.menu-btn svg{fill:none;stroke:currentColor;stroke-width:1.8px;width:20px;height:20px}.menu-btn .i-close,.menu-open .menu-btn .i-bars{display:none}.menu-open .menu-btn .i-close{display:block}.menu-panel{left:0;right:0;top:var(--header-h);z-index:49;padding:12px var(--margin) 28px;background:var(--paper);border-bottom:1px solid var(--ink);display:none;position:fixed}.menu-open .menu-panel{animation:fade-up .45s var(--ease-out) both;display:block}.menu-panel a{border-bottom:1px solid var(--rule);justify-content:space-between;align-items:baseline;padding:16px 0;display:flex}.menu-panel a strong{font-size:40px;font-weight:800;line-height:1}.menu-panel a span{font:12px var(--mono);color:var(--accent-text)}.menu-panel .status{margin-top:20px}@media (width<=1279px){.brand{min-width:0}.status{display:none}}@media (width<=1023px){.nav,.clock{display:none}.menu-btn{display:flex}.tools{gap:8px}}@media (width<=767px){.brand-sub{display:none}.brand-name{font-size:16px}.seg button{height:42px}.icon-btn{width:44px;height:44px}}.hero{padding:32px 0 64px;position:relative;overflow:hidden}.cols{pointer-events:none;display:none;position:absolute;inset:0}.cols .wrap,.cols .g12{height:100%}.cols span{border-left:1px solid var(--gridline);border-right:1px solid var(--gridline);text-align:center;font:10px var(--mono);letter-spacing:.1em;color:var(--annot);transform-origin:top;animation:drop 1.3s var(--ease-io) both;padding-top:8px}.scan{background:var(--annot);opacity:.28;height:1px;box-shadow:0 0 12px var(--annot);pointer-events:none;animation:10s linear infinite scan;position:absolute;left:0;right:0}.hero-inner{position:relative}.meta{font:12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);justify-content:space-between;gap:16px;display:flex}.meta-clock{display:none}.rule{background:var(--ink);transform-origin:0;height:1px;animation:grow 1.4s var(--ease-io) .12s both;margin-top:14px}.hero-head{margin-top:40px;position:relative}.hero h1{margin:0;padding-right:210px;font-size:clamp(44px,7.8vw,112px);font-weight:800;line-height:.9}.mask{margin-bottom:-.12em;padding-bottom:.12em;display:block;overflow:hidden}.rise{animation:rise 1.1s var(--ease-out) both;display:block}.tagline{align-items:center;gap:.25em;margin-top:26px;font-size:clamp(22px,3vw,44px);display:flex}.tagline .type{color:var(--accent);font-weight:700;line-height:1.1;animation:1.1s steps(28,end) .95s both type}.caret{background:var(--accent);flex-shrink:0;width:.4em;height:.92em;animation:1.06s step-end infinite blink}.hero-row{align-items:end;row-gap:32px;margin-top:44px}.pipe-col{grid-column:1/span 9}.hero-aside{flex-direction:column;grid-column:10/span 3;gap:24px;display:flex}.hero-aside p{text-wrap:pretty;margin:0;font-size:16px;line-height:1.55}.cta-row{align-items:center;gap:16px;display:flex}.cta-stack{flex-direction:column;flex:1;gap:14px;display:flex}.btn{background:var(--ink);height:56px;color:var(--paper);justify-content:space-between;align-items:center;gap:20px;padding:0 20px;font-size:16px;font-weight:600;transition:background-color .3s,color .3s;display:flex}.btn:hover{background:var(--accent);color:var(--on-accent)}.btn .arrow,.btn-hire .arrow{font-family:var(--mono);transition:transform .45s var(--ease-out)}.btn:hover .arrow,.btn-hire:hover .arrow{transform:translate(6px)}.proof{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:48px;display:grid}.proof div{border-top:1px solid var(--ink);flex-direction:column;gap:6px;padding-top:14px;display:flex}.proof span{font:11px var(--mono);letter-spacing:.1em;color:var(--annot)}.proof p{margin:0;font-size:16px;line-height:1.45}.badge{width:176px;height:176px;position:absolute;top:-6px;right:0}.badge .ring{width:100%;height:100%;animation:26s linear infinite spin}.badge .ring text{font-family:var(--mono);fill:var(--ink);font-size:11.5px}.badge .cross{fill:none;stroke:var(--annot);stroke-width:1px;position:absolute;inset:0;overflow:visible}.badge .disc{background:var(--accent);width:36%;height:36%;color:var(--on-accent);border-radius:50%;justify-content:center;align-items:center;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.badge .disc svg{fill:none;stroke:currentColor;stroke-width:1.8px;width:38%;height:38%}.badge--mob{display:none}@media (width<=1199px){.pipe-col,.hero-aside{grid-column:1/-1}.hero-aside{flex-flow:wrap;align-items:flex-end}.hero-aside p{flex:380px;max-width:620px}.hero-aside .cta-row{flex:320px}}@media (width<=1023px){.hero h1{padding-right:0}.badge--desk{display:none}.badge--mob{flex-shrink:0;width:96px;height:96px;display:block;position:relative;top:auto;right:auto}.badge--mob .ring text{font-size:9px}}@media (width<=767px){.hero{padding:24px 0 56px}.cols .g12{grid-template-columns:repeat(4,minmax(0,1fr))}.cols span:nth-child(n+5){display:none}.meta{letter-spacing:.06em;font-size:11px}.meta-place{display:none}.meta-clock{display:inline}.hero-head{margin-top:28px}.hero h1{font-size:clamp(36px,11.2vw,46px);line-height:.95}.tagline{margin-top:18px}.hero-row{margin-top:28px}.hero-aside{flex-direction:column;align-items:stretch}.hero-aside p,.hero-aside .cta-row{flex:none;max-width:none}.proof{grid-template-columns:1fr;gap:14px;margin-top:28px}.proof p{font-size:15px}}.pipe{--pgap:38px;column-gap:var(--pgap);grid-template-columns:repeat(5,minmax(0,1fr));margin-top:10px;display:grid}.pipe-card{background:var(--paper);border:1.5px solid var(--ink);flex-direction:column;gap:8px;min-height:140px;padding:14px 16px;transition:background-color .3s,color .3s;display:flex;position:relative}.pipe-card:hover{background:var(--ink);color:var(--paper)}.pipe-card:hover .pc-sub{color:inherit;opacity:.75}.pc-top{justify-content:space-between;align-items:center;display:flex}.pc-top svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:24px;height:24px}.num{border:1.5px solid var(--annot);width:26px;height:26px;color:var(--annot);font:11px var(--mono);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;display:flex}.pipe-card strong{letter-spacing:-.01em;font-size:17px;font-weight:700;line-height:1.2}.pc-sub{font:11px/1.45 var(--mono);color:var(--muted)}.pipe-card:not(:last-child):after{content:"";width:var(--pgap);background:repeating-linear-gradient(90deg, var(--accent) 0 6px, transparent 6px 12px);height:2px;margin-top:-1px;animation:.7s linear infinite march-x;position:absolute;top:50%;left:100%}.pipe-card:not(:first-child):before{content:"";border-left:8px solid var(--accent);border-top:5px solid #0000;border-bottom:5px solid #0000;margin-top:-5px;position:absolute;top:50%;left:-9px}@media (width<=1023px){.pipe{--pgap:22px}.pipe-card strong{font-size:15px}}@media (width<=767px){.pipe{--pgap:18px;row-gap:var(--pgap);grid-template-columns:1fr;margin-top:12px}.pipe-card{grid-template-columns:26px minmax(0,1fr) 22px;align-items:center;gap:3px 12px;min-height:0;padding:12px 14px;display:grid}.pc-top{display:contents}.num{grid-area:1/1/3}.pc-top svg{grid-area:1/3/3;width:22px;height:22px}.pipe-card strong{grid-area:1/2;font-size:16px}.pc-sub{grid-area:2/2}.pipe-card:not(:last-child):after{width:2px;height:var(--pgap);background:repeating-linear-gradient(180deg, var(--accent) 0 6px, transparent 6px 12px);margin-top:0;animation-name:march-y;top:100%;left:26px}.pipe-card:not(:first-child):before{border-left:5px solid #0000;border-right:5px solid #0000;border-top:8px solid var(--accent);border-bottom:0;margin-top:0;top:-9px;left:22px}}.dim{border-left:1px solid var(--annot);border-right:1px solid var(--annot);height:30px;position:relative}.dim:before{content:"";background:var(--annot);transform-origin:0;height:1px;animation:grow 1.6s var(--ease-io) .6s both;position:absolute;top:15px;left:0;right:0}.dim .ah{border-top:5px solid #0000;border-bottom:5px solid #0000;width:0;height:0;position:absolute;top:10.5px}.dim .ah.l{border-right:12px solid var(--annot);left:0}.dim .ah.r{border-left:12px solid var(--annot);right:0}.dim-label{background:var(--paper);font:11px/20px var(--mono);letter-spacing:.12em;color:var(--annot);white-space:nowrap;padding:0 12px;position:absolute;top:5px;left:50%;transform:translate(-50%)}.dim-label .l-short{display:none}@media (width<=767px){.dim-label .l-long{display:none}.dim-label .l-short{display:inline}}.marquee{background:var(--ink);height:64px;color:var(--paper);align-items:center;display:flex;overflow:hidden}.marquee-track{flex-shrink:0;align-items:center;width:max-content;animation:42s linear infinite marquee;display:flex}.marquee:hover .marquee-track{animation-play-state:paused}.marquee-item{font:15px var(--mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;align-items:center;gap:40px;padding-right:40px;display:flex}.marquee-item i{background:var(--accent);width:8px;height:8px;display:block}@media (width<=767px){.marquee{height:48px}.marquee-item{gap:28px;padding-right:28px;font-size:12px}.marquee-item i{width:6px;height:6px}}.section{border-top:1px solid var(--ink);padding:112px 0;position:relative}.reg{fill:none;width:20px;height:20px;stroke:var(--annot);stroke-width:1px;transition:transform .8s var(--ease-out);position:absolute;top:40px;left:14px}.section:hover>.reg,.footer:hover>.reg{transform:rotate(90deg)}.sheet{right:var(--margin);font:11px var(--mono);letter-spacing:.1em;color:var(--annot);position:absolute;top:44px}.sec-head{align-items:end;margin-bottom:56px}.sec-title{grid-column:1/span 7;align-items:flex-start;gap:20px;display:flex}.sec-num{font:13px var(--mono);color:var(--accent-text);padding-top:14px}.sec-title h2{margin:0;font-size:clamp(56px,7.8vw,112px);font-weight:800;line-height:.88}.sec-intro{flex-direction:column;grid-column:9/span 4;gap:18px;padding-bottom:6px;display:flex}.sec-intro p{text-wrap:pretty;margin:0;font-size:18px;line-height:1.5}.sec-intro .link-u{font-size:15px}.thick{background:var(--ink);height:2px}@media (width<=1023px){.sec-title,.sec-intro{grid-column:1/-1}.sec-intro{margin-top:20px}.sec-head{margin-bottom:32px}}@media (width<=767px){.section{padding:72px 0}.reg{width:16px;height:16px;top:26px;left:4px}.sheet{font-size:10px;top:28px}.sec-title{gap:12px}.sec-num{padding-top:8px;font-size:12px}.sec-title h2{overflow-wrap:anywhere;font-size:clamp(40px,13.5vw,64px);line-height:.9}.sec-intro p{font-size:16px}}.arch-grid{row-gap:40px;margin-top:32px}.arch{grid-column:1/span 7}.arch-side{flex-direction:column;grid-column:8/span 5;gap:16px;display:flex}.arch-cap{font:11px var(--mono);letter-spacing:.1em;color:var(--annot);margin-bottom:16px}.arch svg{width:100%;height:auto;overflow:visible}.arch .svg-m{display:none}.arch .node rect{transition:stroke .3s,stroke-width .3s}.arch .wire{transition:stroke .3s}.arch .cl circle,.arch .cl text{transition:fill .3s}.arch[data-tab=req] .n-req rect,.arch[data-tab=cloud] .n-cloud rect,.arch[data-tab=cost] .n-cost rect,.arch[data-tab=scale] .n-scale rect{stroke:var(--accent)!important;stroke-width:2.5px!important}.arch[data-tab=flow] .wire{stroke:var(--accent)!important}.arch[data-tab=req] .cl-req circle,.arch[data-tab=flow] .cl-flow circle,.arch[data-tab=cloud] .cl-cloud circle,.arch[data-tab=cost] .cl-cost circle,.arch[data-tab=scale] .cl-scale circle{fill:var(--annot)!important}.arch[data-tab=req] .cl-req text,.arch[data-tab=flow] .cl-flow text,.arch[data-tab=cloud] .cl-cloud text,.arch[data-tab=cost] .cl-cost text,.arch[data-tab=scale] .cl-scale text{fill:var(--paper)!important}.legend{font:11px var(--mono);letter-spacing:.06em;color:var(--muted);flex-wrap:wrap;gap:14px 20px;margin-top:12px;display:flex}.legend span{align-items:center;gap:8px;display:flex}.legend i{border-top:1.5px solid var(--muted);width:22px;display:block}.legend i.dash{border-top-style:dashed}.legend i.dot2{background:var(--accent);border:0;border-radius:50%;width:10px;height:10px}.tabs{border:1.5px solid var(--ink);grid-template-columns:repeat(5,minmax(0,1fr));display:grid}.tabs button{border-right:1px solid var(--ink);text-align:left;height:60px;font:11px var(--mono);letter-spacing:.06em;text-transform:uppercase;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;padding:0 12px;transition:background-color .25s,color .25s;display:flex}.tabs button:last-child{border-right:0}.tabs button span{opacity:.7;font-size:10px}.tabs button:hover{background:var(--paper-2)}.tabs button[aria-selected=true]{background:var(--ink);color:var(--paper)}.panel{border:1.5px solid var(--ink);background:var(--paper);flex-direction:column;gap:14px;min-height:404px;padding:24px;display:flex}.panel.swap>*{animation:fade-up .45s var(--ease-out) both}.panel h3{letter-spacing:-.01em;margin:0;font-size:24px;font-weight:700;line-height:1.2}.panel .lead{color:var(--muted);margin:0;font-size:15px;line-height:1.5}.ptable{flex-direction:column;margin-top:4px;display:flex}.prow{border-bottom:1px solid var(--rule);align-items:baseline;column-gap:12px;padding:11px 0;font-size:14px;line-height:1.45;display:grid}.prow.head{border-bottom:1.5px solid var(--ink);font:10px var(--mono);letter-spacing:.1em;color:var(--muted);padding:0 0 8px}.prow .k{font-weight:600}.prow .r{text-align:right}.prow .ph{font-family:var(--mono);color:var(--annot)}.prow .arrow-cell{color:var(--annot)}.prow.total>*{font-weight:600}.panel .note{font:11px/1.5 var(--mono);color:var(--muted);margin-top:auto}@media (width<=1199px){.arch,.arch-side{grid-column:1/-1}}@media (width<=767px){.arch-grid{row-gap:24px;margin-top:20px}.arch .svg-d{display:none}.arch .svg-m{max-width:350px;margin:0 auto;display:block}.arch-cap{margin-bottom:14px;font-size:10px}.legend{gap:10px 14px;font-size:10px}.tabs{margin:0 calc(-1 * var(--margin));padding:0 var(--margin);scrollbar-width:none;border:0;gap:8px;display:flex;overflow-x:auto}.tabs::-webkit-scrollbar{display:none}.tabs button{border:1px solid var(--ink);flex-direction:row;flex-shrink:0;align-items:center;gap:8px;height:44px;padding:0 14px}.tabs button:last-child{border-right:1px solid var(--ink)}.panel{min-height:460px;padding:20px}.panel h3{font-size:21px}.prow{font-size:13.5px}}.writing-grid{align-items:start}.pillars{flex-direction:column;grid-column:1/span 4;padding-top:20px;display:flex}.pillars-h{font:12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-bottom:12px}.pillar{border-top:1px solid var(--rule);text-align:left;width:100%;transition:padding-left .5s var(--ease-out);grid-template-columns:40px minmax(0,1fr);gap:6px 12px;padding:18px 0;display:grid}.pillar:hover{padding-left:12px}.pillar .pn{font:12px var(--mono);color:var(--muted);padding-top:9px}.pillar .pt{letter-spacing:-.02em;align-items:center;gap:12px;font-size:28px;font-weight:700;line-height:1.1;transition:color .25s;display:flex}.pillar:hover .pt{color:var(--accent-text)}.pillar .pd{color:var(--muted);grid-column:2;font-size:14px;line-height:1.45}.pillar[aria-pressed=true] .pn,.pillar[aria-pressed=true] .pt{color:var(--accent-text)}.pillar[aria-pressed=true] .pt:after{content:"";background:var(--accent);width:10px;height:10px}.posts-col{grid-column:5/span 8}.list-head{font:12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);justify-content:space-between;padding:20px 0 12px;display:flex}.posts{margin:0;padding:0;list-style:none}.post{border-top:1px solid var(--rule);grid-template-columns:148px minmax(0,1fr) 44px;align-items:center;column-gap:24px;padding:24px 0;display:grid;position:relative}.post:before{content:"";background:var(--accent);transform-origin:top;width:4px;transition:transform .45s var(--ease-out);position:absolute;top:0;bottom:0;left:-24px;transform:scaleY(0)}.post:hover:before{transform:scaleY(1)}.post-meta{font:12px var(--mono);flex-direction:column;gap:6px;display:flex}.post-meta .d{color:var(--muted)}.post-meta .p{letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text)}.post-body{transition:transform .55s var(--ease-out);flex-direction:column;gap:6px;display:flex}.post:hover .post-body{transform:translate(10px)}.post-body strong{letter-spacing:-.02em;font-size:24px;font-weight:650;line-height:1.2}.post-body span{color:var(--muted);font-size:15px;line-height:1.5}.post-body em{font:normal 12px var(--mono)}.post-arrow{border:1px solid var(--rule);width:44px;height:44px;font:16px var(--mono);transition:transform .45s var(--ease-out), background-color .25s, color .25s, border-color .25s;border-radius:50%;justify-content:center;align-items:center;display:flex}.post:hover .post-arrow{background:var(--accent);color:var(--on-accent);border-color:var(--accent);transform:rotate(-45deg)}.archive-row{display:none}@media (width<=1023px){.pillars{scrollbar-width:none;margin:0 calc(-1 * var(--margin));padding:20px var(--margin) 0;flex-direction:row;grid-column:1/-1;gap:8px;overflow-x:auto}.pillars::-webkit-scrollbar{display:none}.pillars-h,.pillar .pn,.pillar .pd{display:none}.pillar{border:1px solid var(--ink);flex-shrink:0;align-items:center;width:auto;height:44px;padding:0 16px;display:flex}.pillar:hover{padding-left:16px}.pillar .pt{font:12px var(--mono);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap}.pillar[aria-pressed=true]{background:var(--ink);color:var(--paper)}.pillar[aria-pressed=true] .pt{color:inherit}.pillar[aria-pressed=true] .pt:after{display:none}.posts-col{grid-column:1/-1}}@media (width<=767px){.post{grid-template-columns:1fr;row-gap:8px;padding:20px 0}.post:before,.post-arrow{display:none}.post-meta{flex-direction:row;gap:8px;font-size:11px}.post-body strong{font-size:20px;line-height:1.25}.post-body span{font-size:14px}.list-head{font-size:11px}.archive-row{border-top:2px solid var(--ink);border-bottom:1px solid var(--ink);justify-content:space-between;align-items:center;height:56px;font-size:15px;font-weight:600;display:flex}}.work-grid{row-gap:24px;margin-top:24px}.card{flex-direction:column;gap:16px;display:flex;position:relative}.card--big{grid-area:1/1/span 2/span 7;gap:20px}.card--sm{grid-column:8/span 5}.corner{opacity:0;width:14px;height:14px;transition:opacity .25s, transform .45s var(--ease-out);position:absolute}.corner.tl{border-left:2px solid var(--annot);border-top:2px solid var(--annot);top:-8px;left:-8px}.corner.br{border-right:2px solid var(--annot);border-bottom:2px solid var(--annot);bottom:-8px;right:-8px}.card:hover .corner{opacity:1}.card:hover .corner.tl{transform:translate(-4px,-4px)}.card:hover .corner.br{transform:translate(4px,4px)}.cover{background:var(--paper-2);position:relative;overflow:hidden}.card--big .cover{height:500px}.card--sm .cover{height:176px}.cover-inner{transition:transform .9s var(--ease-out);position:absolute;inset:0}.card:hover .cover-inner{transform:scale(1.035)}.cover-commerce{flex-direction:column;justify-content:space-between;padding:36px;display:flex}.cover-top{font:12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);justify-content:space-between;display:flex}.big-num{font-size:clamp(88px,11.7vw,168px);font-weight:800;line-height:.85}.big-lbl{font:14px var(--mono);letter-spacing:.08em;text-transform:uppercase;margin-top:10px}.tiers{flex-direction:column;gap:8px;display:flex}.tiers div{align-items:center;gap:12px;display:flex}.tiers b{background:var(--ink);transform-origin:0;height:14px;animation:grow 1.6s var(--ease-io) both;display:block}.tiers div:first-child b{width:88%;animation-delay:.3s}.tiers div:nth-child(2) b{width:58%;animation-delay:.45s}.tiers div:nth-child(3) b{background:var(--accent);width:30%;animation-delay:.6s}.tiers span{font:11px var(--mono);color:var(--annot)}.cover-book{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:18px;padding:24px 32px;display:grid}.book-side{flex-direction:column;justify-content:space-between;display:flex}.book-side.bid{align-items:flex-end}.book-side.ask{align-items:flex-start}.book-side b{background:var(--ink);transform-origin:100%;height:12px;animation:3.4s ease-in-out infinite book;display:block}.book-side.ask b{background:var(--accent);transform-origin:0}.book-mid{background:var(--muted);width:1px;position:absolute;top:16px;bottom:16px;left:50%}.book-lbl{font:10px var(--mono);letter-spacing:.1em;color:var(--annot);position:absolute;bottom:6px}.cover-flow svg{width:100%;height:100%}.cover-architecture{padding:0}.cover-architecture svg{width:100%;height:100%;display:block}.card-kind{font:12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--accent-text)}.card-head{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.card-title{background-image:linear-gradient(var(--accent), var(--accent));transition:background-size .6s var(--ease-out);background-position:0 100%;background-repeat:no-repeat;background-size:0% 3px;font-size:28px;font-weight:750;line-height:1.1}.card--big .card-title{font-size:40px;line-height:1.08}.card:hover .card-title{background-size:100% 3px}.card-arrow{font:22px var(--mono);transition:transform .45s var(--ease-out), color .25s}.card:hover .card-arrow{color:var(--accent-text);transform:translate(5px,-5px)}.card p{color:var(--muted);text-wrap:pretty;margin:0;font-size:15px;line-height:1.5}.card--big p{max-width:640px;font-size:16px;line-height:1.55}.card-stack{font:12px/1.5 var(--mono);color:var(--muted)}.card-arch{font:12px/1.5 var(--mono);color:var(--annot)}.card-meta{flex-direction:column;gap:8px;display:flex}@media (width<=1023px){.card--big{grid-area:auto/1/auto/-1}.card--sm{grid-column:span 6}.card--big .cover{height:420px}}@media (width<=767px){.work-grid{row-gap:40px}.card--sm{grid-column:1/-1}.card--big .cover{height:320px}.card--sm .cover{height:160px}.cover-commerce{padding:24px}.big-num{font-size:96px}.tiers b{height:10px}.cover-book{padding:20px 24px}.book-side b{height:10px}.card--big .card-title{font-size:28px}.card-title{font-size:24px}.card-stack,.card-arch{font-size:11px}}.hire{background:var(--accent);color:var(--on-accent);padding:112px 0 96px;position:relative}.hire .reg{stroke:currentColor}.hire .sheet{color:inherit}.hire-num{font:13px var(--mono);letter-spacing:.08em;text-transform:uppercase}.hire h2{white-space:pre-line;margin:28px 0 0;font-size:clamp(52px,9.4vw,136px);font-weight:800;line-height:.9}.services{grid-template-columns:repeat(4,minmax(0,1fr));column-gap:24px;margin-top:72px;display:grid}.service{border-top:2px solid;flex-direction:column;gap:10px;padding-top:20px;display:flex}.service span{font:12px var(--mono)}.service strong{letter-spacing:-.01em;font-size:22px;font-weight:700;line-height:1.2}.service p{text-wrap:pretty;margin:0;font-size:15px;line-height:1.5}.contact-form{border-top:2px solid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:72px;padding-top:28px;display:grid;position:relative}.contact-field{flex-direction:column;gap:10px;display:flex}.contact-field--message{grid-column:1/-1}.contact-field label{font:12px var(--mono);letter-spacing:.08em;text-transform:uppercase}.contact-field input,.contact-field textarea{width:100%;color:inherit;font:16px/1.5 var(--sans);resize:vertical;background:0 0;border:1px solid;border-radius:0;outline:none;padding:15px 16px}.contact-field input:focus,.contact-field textarea:focus{border-width:2px;padding:14px 15px}.contact-trap{width:1px;height:1px;position:absolute;left:-10000px;overflow:hidden}.contact-actions{grid-column:1/-1;align-items:center;gap:24px;display:flex}.contact-actions .btn-hire{cursor:pointer;border:0}.contact-actions .btn-hire:disabled{cursor:wait;opacity:.6}.contact-note,.contact-status{font:12px/1.5 var(--mono);margin:0}.contact-status{grid-column:1/-1;padding-top:4px}.contact-status[hidden]{display:none}.contact-status a{color:inherit;text-decoration:underline}.hire-cta{flex-wrap:wrap;align-items:center;gap:24px 32px;margin-top:72px;display:flex}.btn-hire{background:var(--on-accent);height:64px;color:var(--accent);justify-content:space-between;align-items:center;gap:28px;padding:0 28px;font-size:18px;font-weight:700;transition:background-color .3s,color .3s;display:flex}.btn-hire:hover{background:var(--paper);color:var(--ink)}.hire .link-u{font-size:18px}.hire-meta{font:13px var(--mono);letter-spacing:.04em;margin-left:auto}@media (width<=1023px){.services{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px}}@media (width<=767px){.hire{padding:72px 0 64px}.hire h2{margin-top:20px;font-size:52px}.services{grid-template-columns:1fr;row-gap:0;margin-top:40px}.service{gap:6px;padding:16px 0 20px}.service strong{font-size:18px}.service p{font-size:14px}.contact-form{grid-template-columns:1fr;gap:18px;margin-top:40px}.contact-field--message{grid-column:auto}.contact-actions{flex-direction:column;grid-column:auto;align-items:stretch}.contact-actions .btn-hire{width:100%}.contact-status{grid-column:auto}.hire-cta{flex-direction:column;align-items:stretch;gap:18px;margin-top:32px}.btn-hire{height:56px;padding:0 20px;font-size:17px}.hire-meta{margin-left:0;font-size:11px}}.footer{border-top:1px solid var(--ink);padding:72px 0 32px;position:relative}.footer .reg{top:24px}.footer .sheet{top:28px}.foot-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:32px 24px;display:grid}.foot-col{flex-direction:column;gap:10px;display:flex}.foot-col h4{font:400 12px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 4px}.foot-col a{font-size:16px;font-weight:500;transition:color .25s}.foot-col a:hover{color:var(--accent-text)}.titleblock{border:1.5px solid var(--ink);font:11px var(--mono);letter-spacing:.06em;align-self:start}.tb-row{border-bottom:1px solid var(--ink);grid-template-columns:96px minmax(0,1fr);display:grid}.tb-row:last-child{border-bottom:0}.tb-row span{padding:8px 12px}.tb-row span:first-child{color:var(--muted);border-right:1px solid var(--ink)}.tb-row.rev span:last-child{color:var(--annot)}.wordmark-wrap{flex-direction:column;gap:14px;margin-top:56px;display:flex}.wordmark{width:100%;height:auto;overflow:visible}.wordmark text{font-family:var(--sans);fill:var(--ink);font-size:232px;font-weight:900;font-stretch:125%;transition:fill .6s}.wordmark:hover text{fill:var(--accent)}.foot-bottom{border-top:1px solid var(--ink);font:12px var(--mono);letter-spacing:.06em;text-transform:uppercase;flex-wrap:wrap;justify-content:space-between;gap:12px;padding-top:16px;display:flex}.foot-bottom a:hover{color:var(--accent-text)}@media (width<=1023px){.foot-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.titleblock{grid-column:1/-1}}@media (width<=767px){.footer{padding:56px 0 24px}.footer .reg{top:18px}.footer .sheet{top:20px}.foot-grid{column-gap:16px}.foot-col a{font-size:15px}.wordmark-wrap{gap:10px;margin-top:48px}.foot-bottom{letter-spacing:.04em;font-size:11px}}.fade{animation:fade-up .9s var(--ease-out) both}.js .reveal{opacity:0;transition:opacity .9s var(--ease-out), transform .9s var(--ease-out);transform:translateY(24px)}.js .reveal.in{opacity:1;transform:none}.packet{stroke-dasharray:10 400;stroke-dashoffset:410px;animation:3s linear infinite flow}.dim-draw{stroke-dasharray:2400;stroke-dashoffset:2400px;animation:1.8s cubic-bezier(.65,0,.35,1) forwards draw-svg}.pop{transform-box:fill-box;transform-origin:50%;animation:.6s cubic-bezier(.34,1.56,.64,1) both pop}@keyframes rise{0%{transform:translateY(108%)}to{transform:none}}@keyframes fade-up{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes grow{0%{transform:scaleX(0)}to{transform:scaleX(1)}}@keyframes drop{0%{transform:scaleY(0)}to{transform:scaleY(1)}}@keyframes type{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}@keyframes blink{0%,49%{opacity:1}50%,to{opacity:0}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{0%{box-shadow:0 0 0 0 color-mix(in srgb, var(--accent) 60%, transparent)}to{box-shadow:0 0 0 10px #0000}}@keyframes marquee{to{transform:translate(-50%)}}@keyframes scan{0%{top:0}to{top:100%}}@keyframes march-x{to{background-position:12px 0}}@keyframes march-y{to{background-position:0 12px}}@keyframes book{0%,to{transform:scaleX(1)}50%{transform:scaleX(.58)}}@keyframes flow{to{stroke-dashoffset:0}}@keyframes draw-svg{to{stroke-dashoffset:0}}@keyframes pop{0%{transform:scale(0)}70%{transform:scale(1.18)}to{transform:scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}.js .reveal{opacity:1;transform:none}.dim-draw{stroke-dashoffset:0}.scan{display:none}html{scroll-behavior:auto}}.page-head{padding:calc(var(--header-h) + 72px) 0 40px;border-bottom:1px solid var(--ink);position:relative}.page-head .kicker{font:11px var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--annot);margin-bottom:18px;display:block}.page-head h1{letter-spacing:-.045em;text-wrap:balance;margin:0;font-size:clamp(44px,7.6vw,104px);font-weight:800;line-height:.94}.page-head .page-intro{max-width:62ch;color:var(--muted);margin:22px 0 0;font-size:17px;line-height:1.55}.page-head .crumb{font:12px var(--mono);color:var(--muted);align-items:center;gap:8px;margin-bottom:20px;display:inline-flex}.page-head .crumb:hover{color:var(--accent-text)}@media (width<=767px){.page-head{padding:calc(var(--header-h) + 40px) 0 28px}}.page-body{padding:56px 0 96px}.page-body .thick{margin-bottom:0}.chiprow{flex-wrap:wrap;gap:8px;padding:0 0 28px;display:flex}.chip{border:1px solid var(--rule);font:12px var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);padding:8px 14px;transition:border-color .25s,color .25s,background-color .25s}.chip:hover{border-color:var(--ink);color:var(--ink)}.chip[aria-pressed=true]{background:var(--ink);border-color:var(--ink);color:var(--paper)}.article{grid-template-columns:minmax(0,1fr) 260px;align-items:start;gap:48px;padding:56px 0 104px;display:grid}@media (width<=1023px){.article{grid-template-columns:minmax(0,1fr);gap:32px}}.prose{max-width:72ch;font-size:17.5px;line-height:1.72}.prose>*+*{margin-top:1.15em}.prose h2{letter-spacing:-.02em;margin-top:2.2em;font-size:30px;font-weight:700;line-height:1.2}.prose h3{letter-spacing:-.01em;margin-top:1.8em;font-size:22px;font-weight:700}.prose h2+p,.prose h3+p{margin-top:.6em}.prose a{color:var(--accent-text);background-image:linear-gradient(currentColor,currentColor);background-position:0 100%;background-repeat:no-repeat;background-size:100% 1px}.prose a:hover{background-size:0 1px}.prose ul,.prose ol{padding-left:1.3em}.prose li+li{margin-top:.4em}.prose blockquote{border-left:2px solid var(--accent);color:var(--muted);margin-left:0;padding:4px 0 4px 20px;font-style:normal}.prose code{font:.88em var(--mono);background:var(--paper-2);padding:2px 5px}.prose pre{border:1px solid var(--rule);padding:20px;font-size:13.5px;line-height:1.6;overflow-x:auto}.prose pre code{background:0 0;padding:0}.prose img{border:1px solid var(--rule);background:var(--paper);max-width:100%;height:auto;display:block}.prose hr{border:0;border-top:1px solid var(--rule);margin:2.4em 0}.prose table{border-collapse:collapse;width:100%;font-size:15px}.prose th,.prose td{border-bottom:1px solid var(--rule);text-align:left;vertical-align:top;padding:10px 12px}.prose th{font:11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);border-bottom-color:var(--ink)}.aside{top:calc(var(--header-h) + 24px);flex-direction:column;gap:22px;display:flex;position:sticky}@media (width<=1023px){.aside{position:static}}.aside-block{border-top:1px solid var(--ink);flex-direction:column;gap:8px;padding-top:12px;display:flex}.aside-block h4{font:11px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0;font-weight:400}.aside-block p,.aside-block a{margin:0;font-size:14.5px;line-height:1.5}.aside-block a:hover{color:var(--accent-text)}.tag-row{flex-wrap:wrap;gap:6px;display:flex}.tag{border:1px solid var(--rule);font:11px var(--mono);color:var(--muted);padding:4px 9px}.pager{background:var(--rule);border:1px solid var(--rule);grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;margin-top:64px;display:grid}@media (width<=767px){.pager{grid-template-columns:1fr}}.pager a{background:var(--paper);flex-direction:column;gap:8px;padding:24px;transition:background-color .3s;display:flex}.pager a:hover{background:var(--paper-2)}.pager span{font:11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--annot)}.pager strong{letter-spacing:-.01em;font-size:18px;line-height:1.3}.pager .next{text-align:right;align-items:flex-end}.proj-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;display:grid}@media (width<=767px){.proj-grid{grid-template-columns:1fr;gap:24px}}.spec{grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;padding:32px 0 8px;display:grid}@media (width<=767px){.spec{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}}.spec div{border-top:1px solid var(--ink);flex-direction:column;gap:6px;padding-top:12px;display:flex}.spec span{font:11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--annot)}.spec strong{letter-spacing:-.01em;font-size:19px;line-height:1.25}.cv{padding:0 0 96px}.cv-row{border-top:1px solid var(--ink);grid-template-columns:200px minmax(0,1fr);gap:32px;padding:34px 0;display:grid}@media (width<=767px){.cv-row{grid-template-columns:1fr;gap:14px;padding:24px 0}}.cv-row>h2{font:12px var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--annot);margin:0;font-weight:400}.cv-item+.cv-item{margin-top:30px}.cv-item .top{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;display:flex}.cv-item h3{letter-spacing:-.015em;margin:0;font-size:21px;font-weight:700}.cv-item .when{font:12px var(--mono);color:var(--muted);white-space:nowrap}.cv-item .where{color:var(--accent-text);margin:4px 0 0;font-size:14px}.cv-item ul{margin:12px 0 0;padding-left:1.1em;font-size:15.5px;line-height:1.62}.cv-item li+li{margin-top:6px}.cv-tech{border-top:1px dashed var(--rule);font:12px/1.6 var(--mono);color:var(--muted);flex-wrap:wrap;gap:7px 12px;margin:14px 0 0;padding-top:11px;display:flex}.cv-tech>span:first-child{color:var(--annot);letter-spacing:.1em;text-transform:uppercase}.cv-skills{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;display:grid}@media (width<=767px){.cv-skills{grid-template-columns:1fr}}.cv-skills div{flex-direction:column;gap:6px;display:flex}.cv-skills b{font:11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);font-weight:400}.cv-skills p{margin:0;font-size:15.5px;line-height:1.55}.cv-actions{flex-wrap:wrap;align-items:center;gap:20px;padding:28px 0 0;display:flex}@media print{@page{margin:14mm}:root{--paper:#fff;--paper-2:#fff;--ink:#000;--muted:#444;--rule:#bbb;--accent:#000;--annot:#333}body{background:#fff!important}.site-header,.menu-panel,.footer,.marquee,.cv-actions,.skip,.reg,.sheet{display:none!important}.page-head{padding:0 0 16px}.page-head h1{font-size:34px}.cv-row{break-inside:avoid;padding:14px 0}.cv-item{break-inside:avoid}a{text-decoration:none}.wrap{max-width:none;padding:0}}.panel[hidden],.posts>li[hidden],.blog-pagination[hidden],.chiprow[hidden]{display:none!important}.case-arch{padding:8px 0 16px}.case-arch .arch-grid{margin-top:28px}@media (width>=1024px){.work-grid--pair .card--big{grid-row:auto}.work-grid--pair .card--sm .cover{height:500px}}.lang-zh,html[data-lang=zh] .lang-en{display:none}html[data-lang=zh] .lang-zh{display:block}.cover--page{height:clamp(220px,30vw,380px);margin-bottom:8px}.cover--page .cover-commerce{padding:40px}@media (width<=767px){.cover--page{height:200px}.cover--page .cover-commerce{padding:22px}}.series-nav ol{flex-direction:column;gap:7px;margin:4px 0 0;padding:0;list-style:none;display:flex}.series-nav li{grid-template-columns:22px minmax(0,1fr);gap:8px;font-size:13.5px;line-height:1.4;display:grid}.series-nav .n{font:11px var(--mono);color:var(--muted);padding-top:2px}.series-nav a{color:var(--muted)}.series-nav a:hover{color:var(--accent-text)}.series-nav li[aria-current]{font-weight:600}.series-nav li[aria-current] .n{color:var(--accent-text)}.chiprow--sub{align-items:center;gap:6px;margin-top:-12px;padding-bottom:24px}.chiprow-label{font:11px var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-right:6px}.chip--sm{border-style:dashed;padding:5px 11px;font-size:11px}.chip--sm[aria-pressed=true]{border-style:solid}.posts{flex-direction:column;display:flex}.blog-pagination{border-top:1px solid var(--rule);grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;padding:28px 0 0;display:grid}.pagination-step,.pagination-page{border:1px solid var(--rule);min-width:42px;height:42px;color:var(--ink);font:12px var(--mono);letter-spacing:.06em;text-transform:uppercase;background:0 0}.pagination-step{justify-content:center;align-items:center;gap:8px;padding:0 14px;display:inline-flex}.pagination-pages{flex-wrap:wrap;justify-content:center;gap:6px;display:flex}.pagination-page[aria-current=page]{background:var(--ink);color:var(--paper);border-color:var(--ink)}.pagination-step:hover:not(:disabled),.pagination-page:hover:not([aria-current=page]){border-color:var(--accent);color:var(--accent-text)}.pagination-step:disabled{opacity:.35;cursor:not-allowed}.pagination-status{text-align:center;font:11px var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);grid-column:1/-1}@media (width<=767px){.blog-pagination{grid-template-columns:1fr 1fr;gap:8px}.pagination-pages{grid-area:1/1/auto/-1}.pagination-step{width:100%}.pagination-status{grid-row:3}}
