:root{--bg:#0b0c0e;--bg-1:#0f1114;--bg-2:#14161a;--line:#1b1e23;--line-2:#262a31;--line-3:#343941;--ink:#e9e8e3;--ink-2:#e9e8e3b8;--ink-3:#e9e8e380;--ink-4:#e9e8e34d;--tg:#2aabee;--a:#c9c7bf;--gut:clamp(20px, 2.9vw, 48px);--max:1720px;--head:64px;--sans:"Geologica", "Noto Sans SC", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, "Cascadia Mono", "Noto Sans SC", monospace;--ease:cubic-bezier(.2, .7, .1, 1);--t-feedback:.18s;--t-move:.28s;--t-structure:.42s;--tight:-.03em;--tighter:-.04em;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{scrollbar-gutter:stable}@supports ((-moz-appearance:none)){html{scrollbar-width:thin;scrollbar-color:#343941 var(--bg-1)}}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--bg-1)}::-webkit-scrollbar-thumb{border:3px solid var(--bg-1);background:#2f343b;border-radius:6px}::-webkit-scrollbar-thumb:hover{background:#444a53}::-webkit-scrollbar-corner{background:var(--bg-1)}html:lang(zh-CN){--tight:0em;--tighter:-.01em}*{box-sizing:border-box}html{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;-webkit-text-size-adjust:100%;font-size:16px;line-height:1.5;overflow-x:clip}html:lang(zh-CN){line-height:1.7}body{background:var(--bg);min-height:100vh;margin:0;overflow-x:clip}h1,h2,h3,p,dl,dd,ol,ul{margin:0}ol,ul{padding:0;list-style:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;background:0 0;border:0;padding:0}:focus-visible{outline:1.5px solid var(--ink);outline-offset:3px}::selection{background:#e9e8e338}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.skip{z-index:50;background:var(--ink);color:var(--bg);padding:10px 14px;position:fixed;top:-60px;left:12px}.skip:focus{top:12px}.mark{clip-path:polygon(0 0,60% 0,100% 40%,100% 100%,0 100%);background:currentColor;flex:none;width:.7em;height:.7em;display:inline-block}.num{font-family:var(--mono);font-variant-numeric:tabular-nums;color:var(--ink-4);letter-spacing:0;font-size:12px}.label{color:var(--ink-3);font-size:15px;font-weight:400}.arrow{fill:none;stroke:currentColor;stroke-width:1.3px;width:14px;height:10px;transition:transform var(--t-move) var(--ease);flex:none}.arrow-out{width:11px;height:11px}.lnk{color:var(--ink-2);transition:color var(--t-feedback) var(--ease);align-items:center;gap:10px;font-size:14px;display:inline-flex}.lnk:is(:hover,:focus-visible){color:var(--ink)}.lnk:is(:hover,:focus-visible) .arrow{transform:translate(3px)}.lnk-back:is(:hover,:focus-visible) .arrow{transform:scaleX(-1)translate(3px)}.btn{min-height:44px;color:var(--ink);background:var(--bg-1);box-shadow:inset 0 0 0 1px var(--line-3);transition:background var(--t-feedback) var(--ease), box-shadow var(--t-feedback) var(--ease);align-items:center;gap:12px;padding:0 18px;font-size:14px;font-weight:500;display:inline-flex;position:relative}.btn:is(:hover,:focus-visible){background:var(--bg-2);box-shadow:inset 0 0 0 1px #e9e8e352}.btn:is(:hover,:focus-visible) .arrow{transform:translate(3px)}.btn:is(:hover,:focus-visible) .arrow-out{transform:translate(2px,-2px)}.links{flex-wrap:wrap;gap:10px;display:flex}.hdr-probe{pointer-events:none;width:1px;height:12px;position:absolute;top:0;left:0}.hdr{z-index:20;position:sticky;top:0}.hdr:before{content:"";z-index:-1;box-shadow:inset 0 -1px 0 var(--line-2);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);opacity:0;pointer-events:none;transition:opacity var(--t-structure) var(--ease);background:#0b0c0ee0;position:absolute;inset:0}.hdr[data-surface]:before{opacity:1}.hdr[data-menu]:before{background:var(--bg);opacity:1;-webkit-backdrop-filter:none;backdrop-filter:none}.hdr-in{max-width:var(--max);height:var(--head);padding:0 var(--gut);grid-template-columns:auto 1fr auto;align-items:center;gap:40px;margin:0 auto;display:grid}.brand{letter-spacing:-.01em;align-items:center;min-height:44px;margin:0 -6px;padding:0 6px;font-size:17px;font-weight:600;display:inline-flex;position:relative}.brand-word{position:relative}.brand-word:after{content:"";transform-origin:0;height:1px;transition:transform var(--t-structure) var(--ease);background:currentColor;position:absolute;bottom:-3px;left:0;right:0;transform:scaleX(0)}.brand:is(:hover,:focus-visible) .brand-word:after{transform:none}.hdr-nav{color:var(--ink-2);align-self:stretch;gap:28px;font-size:14px;display:flex;position:relative}.hdr-nav a{transition:color var(--t-feedback) var(--ease);align-items:center;display:inline-flex;position:relative}.hdr-nav a:is(:hover,:focus-visible),.hdr-nav a[data-active]{color:var(--ink)}.hdr-line,.hdr-hint{background:var(--ink);transform-origin:0;opacity:0;pointer-events:none;width:1px;height:1px;position:absolute;bottom:0;left:0}.hdr-line{translate:calc(var(--ax,0) * 1px) 0;scale:calc(var(--aw,0)) 1;transition:translate var(--t-structure) var(--ease), scale var(--t-structure) var(--ease), opacity var(--t-feedback) var(--ease)}.hdr-nav[data-here] .hdr-line{opacity:1}.hdr-hint{translate:calc(var(--hx,0) * 1px) 0;scale:calc(var(--hw,0)) 1;transition:translate var(--t-move) var(--ease), scale var(--t-move) var(--ease), opacity var(--t-feedback) var(--ease)}.hdr-nav[data-hint] .hdr-hint{opacity:.4}.hdr-line[data-snap],.hdr-hint[data-snap]{transition-property:opacity}.hdr-nav a:focus-visible,.brand:focus-visible,.langs a:focus-visible,.hdr-tg:focus-visible{outline-offset:2px;border-radius:2px}.hdr-nav a:focus-visible{outline-offset:-6px}.hdr-end{align-items:center;gap:18px;display:flex}.langs{gap:2px;font-size:13px;display:flex;position:relative}.langs a{height:32px;color:var(--ink-4);transition:color var(--t-feedback) var(--ease);align-items:center;padding:0 8px;display:inline-flex;position:relative}.langs a:after{content:"";opacity:.5;width:12px;height:1px;transition:transform var(--t-move) var(--ease);background:currentColor;margin-left:-6px;position:absolute;bottom:5px;left:50%;transform:scaleX(0)}.langs a:is(:hover,:focus-visible){color:var(--ink-2)}.langs a:is(:hover,:focus-visible):after{transform:none}.langs a[aria-current]{color:var(--ink)}.langs a[aria-current]:after{display:none}.lang-mark{background:var(--ink);opacity:0;width:12px;height:1px;translate:calc(var(--lx,0) * 1px - 6px) 0;transition:translate var(--t-move) var(--ease), opacity var(--t-feedback) var(--ease);pointer-events:none;position:absolute;bottom:5px;left:0}.langs[data-placed] .lang-mark{opacity:1}.lang-mark[data-snap]{transition-property:opacity}.hdr-tg{height:32px;color:var(--ink-2);transition:color var(--t-feedback) var(--ease);align-items:center;gap:9px;padding:0 6px;font-size:13px;display:inline-flex;position:relative}.tgm{stroke-linejoin:round;stroke-linecap:round;stroke-width:.9px;flex:none;width:20px;height:20px;overflow:visible}.tgm path{transition:opacity var(--t-move) var(--ease), fill-opacity var(--t-move) var(--ease)}.tgm-plane{transition:transform var(--t-move) var(--ease)}.tgm-back{fill:none;stroke:var(--ink);opacity:.14}.tgm-lo{fill:#1b1e24;stroke:var(--ink-3)}.tgm-hi{fill:var(--tg);fill-opacity:.5;stroke:#2aabeebf}.tgm-fold{fill:none;stroke:var(--ink-3);stroke-width:.7px}.tgm-trail{fill:none;stroke:var(--tg);stroke-width:.8px;opacity:0}.hdr-tg .arrow-out{opacity:.55;width:9px;transition:transform var(--t-move) var(--ease), opacity var(--t-feedback) var(--ease)}.hdr-tg:is(:hover,:focus-visible){color:var(--ink)}.hdr-tg:is(:hover,:focus-visible) .tgm-plane{transform:translate(2.4px,-2.4px)}.hdr-tg:is(:hover,:focus-visible) .tgm-back{opacity:.4}.hdr-tg:is(:hover,:focus-visible) .tgm-hi{fill-opacity:.9}.hdr-tg:is(:hover,:focus-visible) .tgm-trail{opacity:.55}.hdr-tg:is(:hover,:focus-visible) .arrow-out{opacity:.9;transform:translate(1.5px,-1.5px)}.plane{fill:none;stroke:currentColor;stroke-width:1.2px;stroke-linejoin:round;stroke-linecap:round;width:14px;height:14px;color:var(--ink-3);transition:color var(--t-feedback) var(--ease), transform var(--t-move) var(--ease);flex:none}.hdr-menu{min-height:40px;color:var(--ink-2);padding:0 4px;font-size:14px;display:none}.menu{display:none}.menu-nav{display:grid}.menu-nav a{letter-spacing:var(--tight);border-bottom:1px solid var(--line);padding:14px 0;font-size:30px;font-weight:500;position:relative}.menu-nav a[data-active]:after{content:"";background:var(--ink);width:48px;height:1px;position:absolute;bottom:-1px;left:0}.menu-tg{color:var(--ink-2);align-items:center;gap:10px;margin-top:28px;font-size:16px;display:inline-flex}@keyframes page-in{0%{opacity:0}}#main{animation:page-in .32s var(--ease) both}.foot{max-width:var(--max);padding:28px var(--gut) 40px;color:var(--ink-4);justify-content:space-between;margin:0 auto;font-size:13px;display:flex}.missing{max-width:var(--max);min-height:50vh;padding:96px var(--gut);align-content:start;gap:20px;margin:0 auto;font-size:22px;display:grid}.sticky-tg{display:none}@media (width<=767px){:root{--head:58px}.hdr-in{gap:12px}.hdr-nav,.hdr-tg{display:none}.hdr-end{gap:6px}.langs a{height:40px;padding:0 7px}.langs a:after,.lang-mark{bottom:8px}.hdr-menu{align-items:center;display:inline-flex}.menu{inset:var(--head) 0 0 0;z-index:19;padding:28px var(--gut);background:var(--bg);visibility:hidden;opacity:0;transition:opacity var(--t-move) var(--ease), transform var(--t-move) var(--ease), visibility 0s linear var(--t-move);align-content:start;gap:4px;display:grid;position:fixed;transform:translateY(-6px)}.menu[data-open]{visibility:visible;opacity:1;transition:opacity var(--t-move) var(--ease), transform var(--t-move) var(--ease);transform:none}.menu-nav a,.menu-tg{opacity:0;transition:opacity var(--t-feedback) var(--ease), transform var(--t-feedback) var(--ease), color var(--t-feedback) var(--ease);transform:translateY(8px)}.menu[data-open] :is(.menu-nav a,.menu-tg){opacity:1;transition-duration:var(--t-structure);transition-delay:60ms;transform:none}.menu[data-open] .menu-nav a:nth-child(2){transition-delay:.1s}.menu[data-open] .menu-nav a:nth-child(3){transition-delay:.14s}.menu[data-open] .menu-nav a:nth-child(4){transition-delay:.18s}.menu[data-open] .menu-tg{transition-delay:.22s}:root{--cta-h:calc(46px + env(safe-area-inset-bottom))}html{scroll-padding-bottom:calc(var(--cta-h) + 12px)}.foot[data-cta]{padding-bottom:calc(var(--cta-h) + 20px)}.sticky-tg{z-index:15;min-height:var(--cta-h);padding:0 max(18px, env(safe-area-inset-right)) env(safe-area-inset-bottom) max(18px, env(safe-area-inset-left));box-shadow:inset 0 1px 0 var(--line-2), inset 3px 0 0 var(--tg);transition:transform var(--t-move) var(--ease), opacity var(--t-move) var(--ease), visibility 0s linear var(--t-move);background:#0f1114fa;justify-content:space-between;align-items:center;font-size:14px;font-weight:500;display:flex;position:fixed;bottom:0;left:0;right:0}.sticky-tg.is-hidden,html[data-viewer] .sticky-tg{opacity:0;visibility:hidden;transform:translateY(150%)}}@media (prefers-reduced-motion:reduce){.hdr-tg:is(:hover,:focus-visible) .tgm-plane{transform:none}.hdr-tg:is(:hover,:focus-visible) .tgm-trail{opacity:0}*,:before,:after{scroll-behavior:auto!important;transition:none!important;animation:none!important}}.ledger-featured{display:grid}.frow{padding:8px 0 12px;position:relative}.frow+.frow{border-top:1px solid var(--line-2);margin-top:40px;padding-top:40px}.frow+.frow:before{content:"";background:var(--a);width:0;height:2px;transition:width var(--t-structure) var(--ease);position:absolute;top:-1px;left:0}.frow.is-focus+.frow:before,.frow+.frow.is-focus:before{width:96px}.frow-meta{color:var(--ink-3);font-size:15px}.frow-title{letter-spacing:var(--tighter);overflow-wrap:anywhere;margin:10px 0 18px;font-size:clamp(42px,4.6vw,76px);font-weight:600;line-height:.98}.frow-title a{background-image:linear-gradient(var(--a), var(--a));transition:background-size var(--t-structure) var(--ease);background-position:0 100%;background-repeat:no-repeat;background-size:0 2px}.frow-title a:is(:hover,:focus-visible){background-size:100% 2px}.frow-sum{text-wrap:pretty;color:var(--ink-2);max-width:32ch;font-size:clamp(17px,1.3vw,20px);line-height:1.5}.frow-done{max-width:44ch;margin-top:24px}.frow-done-h{color:var(--ink-3);font-size:14px}.frow-caps{color:var(--ink);gap:8px;margin-top:10px;font-size:16px;line-height:1.45;display:grid}.frow-caps li{align-items:baseline;gap:12px;display:flex}.frow-caps li:before{content:"";background:var(--ink-4);flex:none;width:12px;height:1px;transform:translateY(-.3em)}.frow-stack{font-family:var(--mono);color:var(--ink-3);margin-top:22px;font-size:12px;line-height:1.7}.frow-act{flex-wrap:wrap;gap:10px;margin-top:28px;display:flex}.ledger-compact{border-top:1px solid var(--line-2)}.crow{border-bottom:1px solid var(--line);position:relative}.crow:before{content:"";background:var(--a);width:0;height:2px;transition:width var(--t-structure) var(--ease);position:absolute;top:-1px;left:0}.crow.is-focus:before{width:56px}.crow-head{text-align:left;width:100%;transition:background var(--t-feedback) var(--ease);grid-template-columns:40px minmax(0,1fr) minmax(112px,.32fr) minmax(150px,.46fr) auto 18px;align-items:baseline;gap:18px;padding:20px 4px 20px 0;display:grid}a.crow-head,button.crow-head{cursor:pointer}.crow.is-focus .crow-head{background:linear-gradient(90deg,#ffffff06,#0000 70%)}.crow-title{letter-spacing:-.012em;overflow-wrap:anywhere;gap:5px;font-size:20px;font-weight:500;line-height:1.25;display:grid}html:lang(zh-CN) .crow-title{letter-spacing:0}.crow-sum{color:var(--ink-3);letter-spacing:0;font-size:14px;font-weight:400;line-height:1.45}.crow-type,.crow-plat,.crow-year{font-family:var(--mono);color:var(--ink-3);font-size:12px}.crow-type{font-family:var(--sans);color:var(--ink-2);font-size:14px}.crow-go{color:var(--ink-3);justify-self:end}.crow.is-focus .crow-go{color:var(--ink)}a.crow-head:is(:hover,:focus-visible) .arrow{transform:translate(3px)}.plus{width:11px;height:11px;display:inline-block;position:relative}.plus:before,.plus:after{content:"";width:11px;height:1.3px;transition:transform var(--t-move) var(--ease);background:currentColor;position:absolute;top:5px;left:0}.plus:after{transform:rotate(90deg)}.plus[data-open=true]:after{transform:rotate(0)}.crow-more{animation:lens-in var(--t-move) var(--ease);gap:14px;padding:0 0 24px 58px;display:grid}.crow-more-sum{color:var(--ink-2);max-width:52ch;font-size:15.5px}.ledger-plain .crow-head{grid-template-columns:minmax(0,1fr) 18px;grid-template-areas:"t g""m g";align-items:center;gap:4px 24px;padding:16px 0 17px}.ledger-plain .crow-title{letter-spacing:-.015em;grid-area:t;font-size:22px}.ledger-plain .crow-meta{color:var(--ink-3);grid-area:m;font-size:15px}.ledger-plain .crow-go{grid-area:g}.ledger-plain .crow.is-focus .crow-head{background:0 0}.ledger-plain .crow-more{padding-left:0}.filter{flex-wrap:wrap;gap:8px;display:flex}.filter button{min-height:38px;color:var(--ink-2);box-shadow:inset 0 0 0 1px var(--line-2);transition:box-shadow var(--t-feedback) var(--ease), color var(--t-feedback) var(--ease);align-items:center;gap:10px;padding:0 14px;font-size:14px;display:inline-flex}.filter button span{font-family:var(--mono);color:var(--ink-4);font-size:12px}.filter button:hover{color:var(--ink)}.filter button[aria-pressed=true]{color:var(--ink);background:var(--bg-2);box-shadow:inset 0 0 0 1px var(--line-3), inset 0 -2px 0 var(--ink-2)}@media (width<=767px){.frow{padding:24px 0 30px}.frow-title{margin:12px 0 14px}.crow-head{grid-template-columns:30px auto minmax(0,1fr) 16px;grid-template-areas:"n t t g""n m p.";gap:6px 12px;padding:18px 0}.crow-head>.num{grid-area:n}.crow-title{grid-area:t;font-size:18px}.crow-go{grid-area:g}.crow-type{grid-area:m}.crow-plat{grid-area:p}.crow-year{display:none}.crow-more{padding-left:42px}.ledger-plain .crow-head{grid-template-columns:minmax(0,1fr) 16px;grid-template-areas:"t g""m g";padding:15px 0}.ledger-plain .crow-title{font-size:20px}}.lens{--cut:22px;position:relative}.lens-frame{height:100%;box-shadow:inset 0 0 0 1px var(--line-2), inset 0 1px 0 #ffffff0d;clip-path:polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%);background:#121418;flex-direction:column;display:flex;position:relative}.lens-frame:before{content:"";top:0;left:calc(100% - var(--cut));width:calc(var(--cut) * 1.4142);background:var(--line-3);transform-origin:0 0;height:1px;position:absolute;transform:rotate(45deg)}.lens-bar{padding:18px calc(var(--cut) + 10px) 0 28px;color:var(--ink-3);justify-content:space-between;align-items:baseline;gap:6px 16px;font-size:14px;display:flex}.lens-cap{color:var(--ink-2)}.lens-aside{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.lens-body{flex-direction:column;flex:1;padding:28px;display:flex;container-type:inline-size}.lens-swap{animation:lens-in .32s var(--ease);flex-direction:column;flex:1;display:flex}@keyframes lens-in{0%{opacity:0;transform:translateY(6px)}}.lens-quiet{--cut:14px}.lens-quiet .lens-frame{background:#101215}.lens-quiet .lens-bar{padding-left:22px}.lens-quiet .lens-body{padding:16px 22px 22px}.lens.is-plate .lens-bar{padding-top:16px;padding-bottom:16px}.lens-hero{--cut:30px}.lens-hero .lens-bar{padding:clamp(20px, 2.4vw, 32px) calc(var(--cut) + 12px) 0 clamp(24px, 3.4vw, 52px);font-size:15px}.lens-hero .lens-body{padding:clamp(24px,3.4vw,52px)}.flow{flex-direction:column;flex:1;justify-content:center;gap:26px;display:flex}.flow-chain{display:grid}.flow-step{padding:0 0 28px 32px;position:relative}.flow-step:last-child{padding-bottom:0}.flow-step:before{content:"";width:9px;height:9px;box-shadow:inset 0 0 0 1.5px var(--ink-3);border-radius:50%;position:absolute;top:8px;left:0}.flow-step:not(:last-child):after{content:"";background:var(--line-3);width:1px;position:absolute;top:23px;bottom:2px;left:4px}.flow-t{letter-spacing:-.01em;font-size:18px;font-weight:500}.flow-body{color:var(--ink-2);text-wrap:pretty;margin-top:2px;font-size:15px;line-height:1.45}.flow-step.is-core{padding-bottom:32px}.flow-step.is-core:before{background:var(--a);width:11px;height:11px;box-shadow:none;top:12px;left:-1px}.flow-step.is-core:after{top:30px}.is-core .flow-t{letter-spacing:var(--tight);font-size:28px;font-weight:600;line-height:1.15}.is-core .flow-body{color:var(--ink);max-width:36ch;margin-top:6px;font-size:17px}.flow-jobs{gap:4px;margin-top:18px;display:grid}.flow-jobs-h{color:var(--ink-3);font-size:14px}.flow-jobs ul{gap:2px;display:grid}.flow-jobs li{color:var(--ink-2);font-size:15px;line-height:1.5}.flow-link{color:var(--ink-3);gap:1px;margin-top:14px;font-size:13.5px;display:grid}.flow-fwd:before{content:"↓ ";color:var(--a)}.flow-back:before{content:"↑ ";color:var(--ink-4)}.flow-note{color:var(--ink-2);text-wrap:pretty;max-width:54ch;font-size:14.5px;line-height:1.5}.flow-tech{font-family:var(--mono);color:var(--ink-3);flex-wrap:wrap;gap:4px 20px;font-size:12px;display:flex}@container (width>=820px){.flow{gap:40px}.flow-chain{gap:56px;display:flex}.flow-step{flex:1 1 0;min-width:0;padding:32px 0 0}.flow-step.is-core{flex:1.7 1 0;padding:32px 0 0}.flow-step:before{top:0}.flow-step.is-core:before{top:-1px}.flow-step:not(:last-child):after,.flow-step.is-core:not(:last-child):after{width:auto;height:1px;inset:4px -44px auto 20px}.flow-fwd:before{content:none}.flow-fwd:after{content:" →";color:var(--a)}.flow-back:before{content:"← "}}.spec{gap:14px;display:grid}.spec-sum{text-wrap:pretty;color:var(--ink-2);max-width:40ch;font-size:15.5px}.lens-large .spec-sum,.lens-hero .spec-sum{font-size:18px}.spec-facts{gap:8px;display:grid}.spec-facts>div{grid-template-columns:minmax(84px,.32fr) 1fr;gap:16px;display:grid}.spec-facts dt{color:var(--ink-3);font-size:14px}.spec-facts dd{color:var(--ink);font-size:15px}@media (width<=767px){.lens-bar{flex-wrap:wrap;padding-left:20px}.lens-aside{white-space:normal}}.has-media .lens-body{padding:16px}.lens-hero.has-media .lens-body{padding:clamp(16px,2vw,28px)}.lens-media{min-width:0;margin:0;position:relative}.lens-media:not([data-ready]):after{content:"";background:linear-gradient(90deg, transparent, var(--a,#c9c7bf), transparent) 0 0 / 35% 100% no-repeat;opacity:.7;height:1px;animation:media-load 1.5s var(--ease) infinite;position:absolute;bottom:0;left:0;right:0}@keyframes media-load{0%{background-position:-50% 0}to{background-position:150% 0}}.lens-media img,.lens-media video{width:100%;max-width:min(100%, var(--w,100%));background:#0a0b10;height:auto;margin:0 auto;display:block}@media (width>=768px){.lens-media :is(img,video){object-fit:contain;max-height:600px}}.media-play{cursor:pointer;width:100%;padding:0;display:block;position:relative}.media-play-label{color:var(--ink);box-shadow:inset 0 0 0 1px var(--line-3);transition:box-shadow var(--t-feedback) var(--ease);background:#0b0c0ec7;align-items:center;gap:9px;padding:8px 14px 8px 12px;font-size:14px;display:inline-flex;position:absolute;bottom:14px;left:14px}.media-play-label svg{fill:currentColor;width:9px;height:11px}.media-play:is(:hover,:focus-visible) .media-play-label{box-shadow:inset 0 0 0 1px var(--a,var(--ink-3))}.media-play:focus-visible{outline-offset:3px}@media (width<=767px){.media-play-label{gap:7px;padding:5px 10px 5px 9px;font-size:12px;bottom:8px;left:8px}}.lens-large .lens-media img,.lens-large .lens-media video{width:auto;max-height:calc(100svh - var(--head) - 168px);object-fit:contain}.lens-media[data-device=mobile] img,.lens-media[data-device=mobile] video{max-width:min(100%,380px)!important}.media-tabs{flex-wrap:wrap;gap:4px 18px;display:inline-flex}.media-tabs button{color:var(--ink-3);cursor:pointer;background-image:linear-gradient(var(--a), var(--a));transition:color var(--t-feedback) var(--ease), background-size var(--t-move) var(--ease);background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;padding:2px 0 4px}.media-tabs button:hover{color:var(--ink-2)}.media-tabs button[aria-pressed=true]{color:var(--ink);background-size:100% 1px}.band{max-width:var(--max);padding:clamp(56px, 8vh, 96px) var(--gut);margin:0 auto}.split{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;gap:clamp(40px,5vw,88px);display:grid}.split-lens{top:calc(var(--head) + 28px);position:sticky}.top{isolation:isolate;max-width:var(--max);padding:0 var(--gut);grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start;column-gap:clamp(40px,5vw,88px);margin:0 auto;display:grid;position:relative}.top.no-lens{grid-template-columns:minmax(0,1fr)}.intro,.selected{grid-column:1}.top-lens{opacity:0;visibility:hidden;grid-area:2/2;justify-self:end;width:min(100%,460px);margin-top:clamp(36px,5vh,52px);transition:opacity .22s,transform .22s,visibility 0s linear .22s;transform:translateY(8px)}.top-lens[data-show],.top-lens[data-xp-ege]{opacity:1;visibility:visible;transition:opacity .22s,transform .22s;transform:none}.top-lens .lens-media img,.top-lens .lens-media video{max-height:min(46svh,430px)}.intro{min-height:clamp(540px, calc(84svh - var(--head)), 880px);flex-direction:column;grid-area:1/1/auto/-1;justify-content:center;padding:clamp(32px,6vh,72px) 0 clamp(48px,8vh,96px);display:flex;position:relative}.intro-main{margin:0}.intro-name{letter-spacing:-.06em;color:var(--ink);margin:0 0 clamp(24px,4vh,48px) -.075em;font-size:clamp(96px,12.5vw,236px);font-weight:600;line-height:.8}.intro-statement{max-width:18em;letter-spacing:var(--tight);text-wrap:balance;font-size:clamp(30px,2.85vw,54px);font-weight:500;line-height:1.1}.intro-lead{color:var(--ink-3);display:block}.intro-side{margin-top:clamp(28px,4.5vh,48px);position:relative}@keyframes intro-rise{0%{opacity:0;transform:translateY(14px)}}.intro-name{animation:intro-rise .7s var(--ease) both}.intro-statement{animation:intro-rise .7s var(--ease) 80ms both}.intro-side{animation:intro-rise .7s var(--ease) .18s both}.intro-motif{z-index:-1;--mw:min(48%, 700px, calc((100svh - 260px) * 1.65));margin-top:calc(clamp(32px, 6vh, 72px) / 2 - clamp(48px, 8vh, 96px) / 2 - var(--mw) * .303);top:50%;right:calc(var(--mw) * -.059);width:var(--mw);aspect-ratio:660/400;pointer-events:none;position:absolute}.motif svg{width:100%;height:100%;display:block;overflow:visible}.motif path,.motif circle,.motif rect{fill:none;stroke:none;stroke-width:1px}@keyframes m-drift{25%{transform:translateY(var(--y,-1px))}75%{transform:translateY(calc(var(--y,-1px) * -1))}}.m-mod{animation:m-drift var(--p,12s) ease-in-out var(--s,3s) infinite}.m-mod-ui{--p:12s;--s:3s;--y:-1px}.m-mod-bot{--p:9s;--s:3.6s;--y:1.2px}.m-mod-db{--p:14s;--s:4.1s;--y:-1.2px}.m-mod-game{--p:10.5s;--s:3.3s;--y:1px}.m-c path{stroke:#e9e8e34d}.m-m path,.m-m circle{stroke:#e9e8e380}.m-m .m-in{stroke:#e9e8e338}.m-m circle{stroke:#e9e8e39e}.motif .m-axis{stroke:#e9e8e329;stroke-dasharray:2 7}.motif .m-fill{fill:url(#m-face)}.motif .m-side{fill:url(#m-sidefill);stroke:#e9e8e333;stroke-linejoin:round}.motif .m-can{fill:url(#m-can);stroke:none}.motif .m-m .m-lid{fill:#1c1f25}.motif .m-m .m-hi{stroke:#e9e8e3db}.motif .m-n{fill:var(--bg);stroke:#e9e8e3b8;transform-box:fill-box;transform-origin:50%}.motif .m-a-v{fill:#8657ff;stroke:none}.motif .m-a-a{fill:#f1b159;stroke:none}.motif .d{stroke-dasharray:1;animation:m-draw var(--t,.9s) var(--ease) calc(var(--d) * 1s) backwards}.motif .m-n{animation:m-pop .5s var(--ease) calc(var(--d) * 1s) backwards}.motif .m-fill,.motif .m-side,.motif .m-can,.motif .m-axis{animation:m-fade .9s var(--ease) calc(var(--d) * 1s) backwards}@keyframes m-draw{0%{stroke-dashoffset:1px}}@keyframes m-pop{0%{opacity:0;transform:scale(.3)}}@keyframes m-fade{0%{opacity:0}}html:lang(zh-CN) .intro-statement{word-break:keep-all;line-height:1.35}.intro-tg{align-items:center;gap:14px;min-height:44px;display:inline-flex}.intro-tg .plane{width:20px;height:20px;color:var(--tg);opacity:.88;stroke-width:1.15px;transition:transform var(--t-move) var(--ease)}.intro-tg-k{color:var(--ink-3);font-size:14px}.intro-tg-h{letter-spacing:-.012em;background-image:linear-gradient(var(--tg), var(--tg));background-position:0 100%;background-repeat:no-repeat;background-size:100% 1px;padding-bottom:3px;font-size:clamp(19px,1.45vw,23px);font-weight:500}.intro-tg:is(:hover,:focus-visible) .plane{transform:translate(2px,-3px)}.intro-tg:is(:hover,:focus-visible) .arrow-out{transform:translate(2px,-2px)}.selected{padding:clamp(36px,5vh,52px) 0 clamp(48px,7vh,80px);position:relative}.selected:before{content:"";z-index:-1;background:linear-gradient(180deg, #121418 0%, #0f1114 55%, var(--bg) 100%);position:absolute;inset:0 -100vw;box-shadow:inset 0 1px #ffffff0b}.selected .label{color:var(--ink);letter-spacing:-.01em;margin-bottom:22px;font-size:20px;font-weight:500}.more{grid-template-columns:minmax(0,7fr) minmax(0,13fr);align-items:start;column-gap:clamp(32px,3.6vw,64px);padding-top:clamp(32px,5vh,56px);padding-bottom:clamp(48px,8vh,88px);display:grid}.more-head{justify-items:start;gap:10px;padding-top:18px;display:grid}.more-head .label{color:var(--ink);letter-spacing:-.01em;font-size:22px;font-weight:500}.about{padding-top:clamp(96px,13vh,160px);padding-bottom:clamp(104px,14vh,176px)}.about-grid{grid-template-columns:minmax(0,5fr) minmax(0,7fr);align-items:start;gap:56px clamp(40px,6vw,120px);display:grid}.about-head{top:calc(var(--head) + 40px);position:sticky}.about-statement{max-width:18ch;letter-spacing:var(--tight);text-wrap:balance;margin-top:22px;font-size:clamp(32px,2.6vw,48px);font-weight:500;line-height:1.08}.about-body{max-width:34em;color:var(--ink-2);text-wrap:pretty;margin-top:28px;font-size:clamp(17px,1.25vw,20px);line-height:1.55}html:lang(zh-CN) .about-statement{word-break:keep-all;max-width:none;line-height:1.3}html:lang(zh-CN) .about-body{letter-spacing:0;line-height:1.75}.about-index{border-bottom:1px solid var(--line-2)}.ax{border-top:1px solid var(--line-2);grid-template-columns:56px minmax(0,1fr) auto;align-items:baseline;column-gap:24px;padding:clamp(26px,3.4vh,40px) 0;display:grid;position:relative}.ax:before{content:"";background:var(--a);width:0;height:2px;transition:width var(--t-structure) var(--ease);position:absolute;top:-1px;left:0}.ax-n{font-family:var(--mono);color:var(--ink-4);transition:color var(--t-feedback) var(--ease);font-size:12px}.ax-main{min-width:0}.ax-t{letter-spacing:-.02em;transition:transform var(--t-move) var(--ease);font-size:clamp(24px,2vw,34px);font-weight:500;line-height:1.15}html:lang(zh-CN) .ax-t{letter-spacing:0}.ax-d{max-width:34em;color:var(--ink-3);text-wrap:pretty;margin-top:10px;font-size:16px;line-height:1.5}.ax-ex{text-align:right;color:var(--ink-3);justify-items:end;gap:6px;font-size:15px;display:grid}.ax-ex a,.ax-ex li>span:last-child{text-wrap:balance;transition:color var(--t-feedback) var(--ease)}.ax-ex .arrow{vertical-align:.02em;transition:transform var(--t-move) var(--ease);margin-left:10px;display:inline-block}.ax:hover:before,.ax:focus-within:before{width:48px}.ax:hover .ax-n,.ax:focus-within .ax-n{color:var(--ink-2)}.ax:hover .ax-t,.ax:focus-within .ax-t{transform:translate(6px)}.ax:hover .ax-ex a,.ax:hover .ax-ex li>span:last-child,.ax:focus-within .ax-ex a{color:var(--ink)}.ax-ex a:hover .arrow,.ax-ex a:focus-visible .arrow{transform:translate(3px)}@media (width>=1200px) and (height<=820px){.about-head{position:static}}.contact{isolation:isolate;background:linear-gradient(180deg, var(--bg) 0%, #0f1114 22%, #0f1114 78%, var(--bg) 100%);position:relative}.contact:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(closest-side,#2aabee13,#0000);width:min(1200px,100%);height:64%;position:absolute;top:14%;left:0}.contact-in{padding-top:clamp(88px,13vh,150px);padding-bottom:clamp(80px,12vh,130px)}.contact-h{color:var(--ink-2);margin-bottom:20px;font-size:clamp(18px,1.5vw,22px);font-weight:400}.tg{flex-wrap:wrap;align-items:baseline;gap:12px 28px;display:inline-flex}.tg-handle{letter-spacing:var(--tighter);overflow-wrap:anywhere;background-image:linear-gradient(var(--tg), var(--tg));background-position:0 100%;background-repeat:no-repeat;background-size:100% 2px;padding-bottom:.06em;font-size:clamp(30px,6.3vw,98px);font-weight:600;line-height:1.02}.tg-open{color:var(--ink-2);transition:color var(--t-feedback) var(--ease);align-items:center;gap:10px;font-size:15px;display:inline-flex}.tg:is(:hover,:focus-visible) .tg-open{color:var(--ink)}.tg:is(:hover,:focus-visible) .arrow-out{transform:translate(2px,-2px)}.tg-official{color:var(--ink);align-items:center;gap:12px;margin-top:24px;font-size:clamp(16px,1.3vw,19px);display:flex}.tg-official .mark{color:var(--tg)}.also{border-left:1px solid var(--line-3);justify-items:start;gap:8px;margin-top:clamp(56px,9vh,96px);padding:4px 0 4px 22px;display:grid}.also-h{color:var(--ink-3);font-size:14px}.also ul{flex-wrap:wrap;gap:0 52px;display:flex}.also a{min-height:44px;color:var(--ink-2);align-items:baseline;gap:12px;padding-top:6px;display:inline-flex}.also-name{color:var(--ink);letter-spacing:-.012em;font-size:24px;font-weight:500}.also-desc{color:var(--ink-3);font-size:14px}.also a:is(:hover,:focus-visible) .arrow-out{transform:translate(2px,-2px)}.work-head{max-width:var(--max);padding:clamp(48px, 8vh, 96px) var(--gut) 32px;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;margin:0 auto;display:flex}.work-title{letter-spacing:var(--tighter);align-items:baseline;gap:18px;font-size:clamp(44px,5.6vw,88px);font-weight:600;line-height:1;display:flex}.work-n{font-family:var(--mono);color:var(--ink-3);letter-spacing:0;font-size:14px;font-weight:400}.work-split{max-width:var(--max);padding:0 var(--gut) clamp(72px, 12vh, 128px);grid-template-columns:minmax(0,7fr) minmax(0,5fr);margin:0 auto}.case{max-width:var(--max);padding:0 var(--gut);margin:0 auto}.case-top{padding:26px 0}.case-head{justify-items:start;gap:20px;padding:clamp(20px,5vh,56px) 0 clamp(40px,7vh,72px);display:grid}.case-meta{color:var(--ink-3);font-size:15px}.case-title{letter-spacing:var(--tighter);overflow-wrap:anywhere;font-size:clamp(52px,8vw,128px);font-weight:600;line-height:.94}.case-sum{color:var(--ink-2);max-width:34ch;font-size:clamp(19px,1.7vw,26px);line-height:1.42}.cs-label{color:var(--ink-3);margin-bottom:14px;font-size:15px;font-weight:400}.case .cs-label{letter-spacing:-.01em;color:var(--ink);align-items:center;gap:12px;margin-bottom:18px;font-size:clamp(18px,1.6vw,23px);font-weight:500;line-height:1.25;display:flex}.case .cs-label:before{content:"";background:var(--a);flex:none;width:clamp(20px,2.2vw,30px);height:2px}.case .case-reviews .cs-label{margin-bottom:0}.case-story{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px clamp(40px,5vw,88px);padding:clamp(40px,7vh,72px) 0 clamp(48px,8vh,88px);display:grid}.did{gap:12px;max-width:40ch;display:grid}.did li{color:var(--ink-2);text-wrap:pretty;align-items:baseline;gap:14px;font-size:clamp(18px,1.4vw,21px);line-height:1.5;display:flex}.did li:only-child:before{display:none}.did li:before{content:"";background:var(--a);flex:none;width:12px;height:1px;transform:translateY(-.32em)}.caps{max-width:44ch;display:grid}.caps>div{border-top:1px solid var(--line-2);gap:2px;padding:12px 0;display:grid}.caps>div:first-child{border-top:0;padding-top:0}.caps dt{letter-spacing:-.01em;font-size:18px;font-weight:500}.caps dd{color:var(--ink-3);font-size:15px;line-height:1.5}.prose{text-wrap:pretty;max-width:40ch;font-size:clamp(18px,1.4vw,22px);line-height:1.55}html:lang(zh-CN) .prose{max-width:30em;line-height:1.8}.case-flows{padding-bottom:clamp(56px,9vh,96px)}.flows{grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:28px clamp(28px,3vw,48px);display:grid}.flows li{align-content:start;gap:8px;display:grid}.flows h3{letter-spacing:-.01em;font-size:20px;font-weight:500;line-height:1.25}.flows p{color:var(--ink-2);text-wrap:pretty;font-size:16px;line-height:1.6}.case-tech{border-top:1px solid var(--line);grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:16px clamp(40px,5vw,88px);padding:clamp(48px,8vh,80px) 0 clamp(28px,4vh,40px);display:grid}.case-tech-body{gap:28px;display:grid}.tech{columns:2;column-gap:48px}.tech li{break-inside:avoid;color:var(--ink-2);padding-bottom:12px;font-size:15px;line-height:1.55}.case-facts{gap:8px;display:grid}.case>.case-facts{padding-bottom:clamp(48px,8vh,80px)}.case-facts>div{grid-template-columns:minmax(0,120px) 1fr;align-items:baseline;gap:16px;display:grid}.case-facts dt{color:var(--ink-3);font-size:14px}.case-facts dd{color:var(--ink-2);font-size:15px}.case-stack{font-family:var(--mono);font-size:13px!important}.case-reach{border-top:1px solid var(--line);justify-items:start;gap:12px;padding:clamp(48px,8vh,88px) 0;display:grid}.case-reach-h{color:var(--ink-2);font-size:16px}.case-tg{align-items:baseline;gap:14px;display:inline-flex}.case-tg b{letter-spacing:var(--tight);background-image:linear-gradient(var(--tg), var(--tg));background-position:0 100%;background-repeat:no-repeat;background-size:100% 2px;font-size:clamp(28px,3.4vw,48px);font-weight:600}.case-tg:hover .arrow-out{transform:translate(2px,-2px)}.case-official{color:var(--ink-2);font-size:15px}.case-next{border-top:1px solid var(--line);padding:clamp(36px,6vh,64px) 0 clamp(72px,12vh,120px)}.case-next a{gap:12px;display:grid}.case-next-t{letter-spacing:var(--tight);align-items:center;gap:18px;font-size:clamp(30px,4vw,60px);font-weight:600;display:flex}.case-next-t .arrow{width:28px;height:20px}.case-next a:hover .arrow{transform:translate(6px)}@media (width<=1199px){.split,.top,.work-split,.more,.about-grid{grid-template-columns:minmax(0,1fr)}.about-head{position:static}.intro{min-height:0;padding:clamp(48px,8vh,88px) 0 clamp(56px,9vh,96px)}.intro-name{font-size:18vw}.intro-statement{font-size:clamp(30px,4vw,44px)}.intro-motif{z-index:auto;width:min(100%,480px);margin:clamp(28px,5vh,44px) 0 0 auto;position:relative;top:auto;right:auto}.motif path,.motif circle,.motif rect{stroke-width:1.4px}.about-statement{max-width:20ch}.top-lens,.work-split .split-lens{display:none}.more-head{grid-auto-flow:column;justify-content:space-between;align-items:baseline;padding:0 0 8px}.flows,.case-tech{grid-template-columns:minmax(0,1fr)}}@media (width<=767px){.band{padding-top:48px;padding-bottom:48px}.intro{min-height:0;padding:36px 0 48px}.intro-name{font-size:27vw}.intro-statement{font-size:clamp(28px,8vw,36px)}.m-mod{animation:none}.intro-motif{width:min(68%,252px);margin-top:22px}.motif path,.motif circle,.motif rect{stroke-width:1.7px}.selected{padding:32px 0 48px}.more-head .label{font-size:20px}.about{padding-top:72px;padding-bottom:88px}.about-grid{row-gap:44px}.about-statement{margin-top:16px;font-size:clamp(28px,8vw,36px);line-height:1.12}.about-body{margin-top:20px;font-size:17px}.ax{grid-template-columns:36px minmax(0,1fr);column-gap:12px;padding:24px 0 26px}.ax-t{font-size:22px}.ax-d{margin-top:8px;font-size:15px}.ax-ex{text-align:left;grid-column:2;justify-items:start;margin-top:14px}.ax-ex li{gap:10px;display:flex}.ax-ex li:before{content:"";background:var(--a);opacity:.8;flex:none;align-self:flex-start;width:12px;height:1px;margin-top:.75em}.contact{min-height:calc(100svh - var(--head) - 88px);scroll-margin-top:var(--head)}.contact-in{padding-top:36px;padding-bottom:56px}.tg-handle{font-size:min(8.2vw,40px)}.also ul{flex-direction:column}.also-desc{white-space:nowrap}.case-story{grid-template-columns:minmax(0,1fr)}.tech{columns:1}.lens-body{padding:20px}}.case-reviews{border-top:1px solid var(--line);grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:16px clamp(40px,5vw,88px);padding:clamp(48px,8vh,80px) 0;display:grid}.case-reviews .cs-label{margin-bottom:0}.rv-list{min-width:0;display:grid}.rv{border-top:1px solid var(--line-2);gap:14px;min-width:0;padding:32px 0;display:grid}.rv:first-child{border-top:0;padding-top:0}.rv:last-child{padding-bottom:0}.rv-body{white-space:pre-line;overflow-wrap:anywhere;text-wrap:pretty;max-width:62ch;font-size:clamp(17px,1.3vw,19px);line-height:1.6}.rv-body:lang(zh-CN){line-height:1.8}.rv-by{flex-wrap:wrap;align-items:center;gap:8px 14px;min-width:0;display:flex}.rv-id{overflow-wrap:anywhere;flex-wrap:wrap;align-items:baseline;gap:0 10px;min-width:0;font-size:15px;display:flex}.rv-name{font-weight:500}.rv-co{color:var(--ink-3)}.rv-co:before{content:"·";color:var(--ink-4);margin-right:10px}.rv-anon{color:var(--ink-3);font-size:15px}.rv-prof{margin-left:auto}.rv-work{color:var(--ink-3);overflow-wrap:anywhere;font-size:14px}.rv-work>span:not(:last-child):after{content:" · "}.rv-work-t{color:var(--ink-2)}.wk-link{transition:color var(--t-feedback) var(--ease)}.wk-link .arrow{vertical-align:.04em;color:var(--ink-3);transition:transform var(--t-move) var(--ease);margin-left:10px;display:inline-block}.wk-link:is(:hover,:focus-visible){color:var(--ink)}.wk-link:is(:hover,:focus-visible) .arrow{transform:translate(3px)}.rv-lens{justify-self:start;width:max-content;max-width:min(720px,100%)}.rv-lens .lens-body{container-type:normal}.rv-shots{flex-wrap:wrap;gap:10px;display:flex}.rv-shots li{min-width:0}.rv-shots button{width:148px;height:112px;box-shadow:0 0 0 1px var(--line-2);cursor:zoom-in;transition:box-shadow var(--t-feedback) var(--ease);background:#0a0b10;padding:0;display:block}.rv-shots button:is(:hover,:focus-visible){box-shadow:0 0 0 1px var(--line-3)}.rv-shots button:focus-visible{outline-offset:3px}.rv-shots img{object-fit:contain;width:100%;height:100%;display:block}.sv{z-index:40;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(14px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));overscroll-behavior:contain;animation:sv-in var(--t-move) var(--ease) backwards;background:#07080af0;grid-template-rows:minmax(0,1fr) auto;display:grid;position:fixed;inset:0}@keyframes sv-in{0%{opacity:0}}.sv-stage{place-items:center;min-height:0;padding:48px 0 8px;display:grid}.sv-stage img{object-fit:contain;width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 140px);box-shadow:0 0 0 1px var(--line-2);animation:sv-in var(--t-move) var(--ease) backwards;display:block}.sv-close,.sv-nav{width:44px;height:44px;color:var(--ink-2);transition:color var(--t-feedback) var(--ease);justify-content:center;align-items:center;display:inline-flex}.sv-close{top:max(10px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));box-shadow:inset 0 0 0 1px var(--line-2);transition:color var(--t-feedback) var(--ease), box-shadow var(--t-feedback) var(--ease);background:#e9e8e30d;position:absolute}.sv-close:is(:hover,:focus-visible){box-shadow:inset 0 0 0 1px var(--line-3)}.sv-close svg{fill:none;stroke:currentColor;stroke-width:1.2px;width:14px;height:14px}.sv-close:is(:hover,:focus-visible),.sv-nav:is(:hover,:focus-visible){color:var(--ink)}.sv button:focus-visible{outline-offset:2px}.sv:focus{outline:none}.sv-bar{color:var(--ink-3);font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:20px;font-size:13px;display:flex}.sv-nav .arrow{width:16px}.av{object-fit:cover;background:var(--bg-2);box-shadow:0 0 0 1px var(--line-2);border-radius:2px;flex:none;display:block}.av-sm{width:36px;height:36px}.av-lg{width:72px;height:72px}.client{padding-bottom:clamp(72px,12vh,120px)}.client-state{max-width:var(--max);min-height:50vh;padding:96px var(--gut);color:var(--ink-2);align-content:start;justify-items:start;gap:16px;margin:0 auto;font-size:18px;display:grid}.client-state button{cursor:pointer}.cl-head{align-items:flex-start;gap:clamp(16px,2vw,28px);padding:clamp(20px,5vh,56px) 0 clamp(40px,7vh,72px);display:flex}.cl-id{justify-items:start;gap:14px;min-width:0;display:grid}.cl-name{font-size:clamp(38px,5.4vw,84px)}.cl-co{color:var(--ink-2);overflow-wrap:anywhere;font-size:clamp(18px,1.5vw,22px)}.cl-sum span:first-child{color:var(--ink-2)}.cl-works{border-top:1px solid var(--line);grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:16px clamp(40px,5vw,88px);padding:clamp(40px,7vh,64px) 0 clamp(48px,8vh,80px);display:grid}.cl-works .cs-label{margin-bottom:0}.cl-ledger{min-width:0;display:grid}.cl-row{border-top:1px solid var(--line-2);grid-template-columns:minmax(7rem,11rem) minmax(0,1fr) auto;align-items:baseline;gap:6px 24px;padding:18px 0;display:grid}.cl-row:first-child{border-top:0;padding-top:0}.cl-when{color:var(--ink-3);font-size:14px}.cl-what{gap:4px;min-width:0;display:grid}.cl-title{letter-spacing:-.01em;overflow-wrap:anywhere;font-size:clamp(18px,1.4vw,21px);font-weight:500;line-height:1.3}.cl-meta{color:var(--ink-3);font-size:14px}.cl-meta>span:not(:last-child):after{content:" · "}.cl-price{color:var(--ink-2);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:15px}@media (width<=1199px){.case-reviews,.cl-works{grid-template-columns:minmax(0,1fr)}}@media (width<=767px){.rv{padding:28px 0}.rv-prof{margin-left:0}.rv-id{flex-direction:column;gap:2px}.rv-co:before{content:none}.cl-head{flex-direction:column;gap:20px}.cl-row{grid-template-columns:minmax(0,1fr);gap:4px}.cl-price{font-size:14px}.rv-lens{justify-self:stretch;width:auto;max-width:none}.rv-shots li{flex:calc(50% - 5px);max-width:calc(50% - 5px)}.rv-shots button{aspect-ratio:4/3;width:100%;height:auto}.cl-head{padding-bottom:32px}.cl-works{padding:28px 0 32px}.cl-reviews{padding:32px 0 0}}.rv-ask-body{color:var(--ink-2);justify-items:start;gap:10px;font-size:17px;line-height:1.5;display:grid}.rv-ask-link{color:var(--ink);font-size:17px}.rv-ask-link:is(:hover,:focus-visible){color:var(--tg)}.rv-ask .cs-label{max-width:24ch;line-height:1.4}.rv-side{align-content:start;justify-items:start;gap:10px;display:grid}.rv-all{color:var(--ink-3);font-size:14px}.rvp-head{align-items:flex-end}.rvp-note{max-width:40ch;color:var(--ink-3);text-wrap:pretty;font-size:15px;line-height:1.55}.rvp-body{max-width:var(--max);padding:0 var(--gut) clamp(72px, 12vh, 128px);margin:0 auto}.client-state[aria-busy=true]~.foot{visibility:hidden}.rvp:has([aria-busy=true])~.foot{visibility:hidden}.rvp-state{color:var(--ink-2);border-top:1px solid var(--line-2);justify-items:start;gap:16px;padding:40px 0 clamp(72px,14vh,160px);font-size:18px;display:grid}.rvp-list{border-top:1px solid var(--line-2)}.rvp-row{border-bottom:1px solid var(--line);grid-template-columns:minmax(0,3fr) minmax(0,9fr);gap:18px clamp(40px,5vw,88px);padding:clamp(32px,5vh,48px) 0;display:grid;position:relative}.rvp-row:before{content:"";background:var(--a);width:0;height:2px;transition:width var(--t-structure) var(--ease);position:absolute;top:-1px;left:0}.rvp-row:is(:hover,:focus-within):before{width:56px}.rvp-about{align-content:start;gap:8px;min-width:0;display:grid}.rvp-work{letter-spacing:-.01em;overflow-wrap:anywhere;font-size:clamp(18px,1.4vw,21px);font-weight:500;line-height:1.3}.rvp-facts{color:var(--ink-3);font-size:14px;line-height:1.55}.rvp-facts>span:not(:last-child):after{content:" · "}.rvp-main{gap:16px;min-width:0;display:grid}.rvp-actions{flex-wrap:wrap;gap:4px 28px;display:flex}.rvp-actions .lnk{min-height:32px}@media (width<=767px){.rv-name{font-size:14px}.rv-work,.rvp-facts{font-size:13px}.rvp-work{font-size:16px}}@media (width<=1199px){.rvp-row{grid-template-columns:minmax(0,1fr)}}@media (width<=767px){.rvp-row{gap:14px;padding:28px 0 32px}.rvp-head{padding-bottom:24px}}[data-reveal=rise][data-rv]{transition:opacity var(--t-structure) var(--ease), transform var(--t-structure) var(--ease);transition-delay:calc(var(--i,0) * 70ms)}[data-reveal=rise][data-rv=out]{opacity:0;transform:translateY(8px)}.did li:before{transform-origin:0;transition:transform var(--t-structure) var(--ease) var(--t-move)}[data-rv=out] .did li:before{transform:translateY(-.32em)scaleX(0)}[data-reveal=line][data-rv] .tg-handle{transition:background-size calc(var(--t-structure) * 1.6) var(--ease) var(--t-feedback)}[data-reveal=line][data-rv=out] .tg-handle{background-size:0 2px}.rv-stars{letter-spacing:3px;color:var(--a,var(--ink));white-space:nowrap;font-size:17px;line-height:1;display:inline-block}.rv-stars .off{color:var(--ink-4)}.rv-card{justify-items:start;gap:12px;min-width:0;display:grid}.rv-clamp{-webkit-line-clamp:4;line-clamp:4;white-space:normal;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.rv-open{text-align:left;flex-wrap:wrap;align-items:center;gap:4px 0;min-height:36px;padding:0;display:inline-flex}.rv-open .arrow{margin-left:10px}.rv-open-n{border-left:1px solid var(--line-3);color:var(--ink-3);align-items:center;gap:6px;margin-left:12px;padding-left:12px;font-size:14px;display:inline-flex}.rv-open-n svg{fill:none;stroke:currentColor;stroke-width:1.2px;stroke-linejoin:round;width:15px;height:13px}.rv-open:is(:hover,:focus-visible) .rv-open-n{color:var(--ink-2)}.rvp-proj{letter-spacing:-.01em;overflow-wrap:anywhere;gap:4px;font-size:clamp(18px,1.4vw,21px);font-weight:500;line-height:1.3;display:grid}.rvv-k{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);font-size:12px;font-weight:400}.rvp-pl{min-height:32px}.rvp-proj~.rvp-work{color:var(--ink-2);font-size:15px;font-weight:400}.rvv{z-index:30;padding:max(16px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(16px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));overscroll-behavior:contain;animation:sv-in var(--t-move) var(--ease) backwards;background:#07080adb;place-items:center;display:grid;position:fixed;inset:0}.rvv:focus{outline:none}.rvv-panel{overscroll-behavior:contain;background:var(--bg,#0b0c0e);width:min(760px,100%);max-height:100%;box-shadow:0 0 0 1px var(--line-2);--a:var(--ink);gap:18px;padding:clamp(20px,3vw,36px);display:grid;overflow-y:auto}.rvv-head{align-items:center;gap:8px 20px;display:flex}.rvv-title{letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);margin:0;font-size:12px;font-weight:400}.rvv-head .rv-stars{font-size:20px}.rvv-close{width:44px;height:44px;color:var(--ink-2);place-items:center;margin:-8px -10px -8px auto;display:grid}.rvv-close svg{fill:none;stroke:currentColor;stroke-width:1.4px;width:16px;height:16px}.rvv-close:is(:hover,:focus-visible){color:var(--ink)}.rvv-project{flex-wrap:wrap;align-items:baseline;gap:2px 14px;font-size:17px;display:flex}.rvv-pn{color:var(--ink-2)}@media (width<=767px){.rvv{place-items:stretch stretch;padding:0}.rvv-panel{width:100%;height:100%;max-height:none;padding:max(18px, env(safe-area-inset-top)) 18px max(24px, env(safe-area-inset-bottom));box-shadow:none}.rv-open-n{border-left:0;flex-basis:100%;order:3;margin-left:0;padding-left:0}}.rvp-pl,.rvv-project .lnk{font-size:inherit;font-weight:500}.more-side{grid-template-rows:auto 1fr;align-self:stretch;display:grid;position:relative}.ow-index{align-self:end;padding-top:clamp(40px,7vh,88px);position:relative}.ow-n{z-index:1;gap:6px;padding-left:22px;display:grid;position:relative}.ow-num{font-family:var(--sans);letter-spacing:-.04em;color:#e9e8e314;font-variant-numeric:tabular-nums;-webkit-user-select:none;user-select:none;font-size:clamp(150px,15vw,290px);font-weight:500;line-height:.82}.ow-sub{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);font-size:12px}.ow-axis{pointer-events:none;position:absolute;inset:0}.ow-axis:before{content:"";background:var(--line-3);width:1px;position:absolute;top:clamp(40px,7vh,88px);bottom:0;left:0}.ow-axis:after{content:"";background:repeating-linear-gradient(180deg, var(--line-3) 0 1px, transparent 1px 24px);width:8px;position:absolute;top:clamp(40px,7vh,88px);bottom:0;left:0}.ow-n:after{content:"";background:var(--line-3);height:1px;position:absolute;bottom:0;left:0;right:calc(-1*clamp(32px,3.6vw,64px));transform:translateY(14px)}.ow-n:before{content:"";background:var(--bg);width:7px;height:7px;box-shadow:inset 0 0 0 1px var(--ink-3);border-radius:50%;position:absolute;bottom:0;right:calc(-1*clamp(32px,3.6vw,64px) - 3px);transform:translateY(17px)}.ow{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:56px clamp(24px,2.6vw,40px);padding-top:16px;display:grid}.ow-group{border:1px solid var(--line-2);border-top-color:var(--line-3);position:relative}.ow-tab{background:var(--bg);border:1px solid var(--line-3);height:34px;color:var(--ink);border-bottom:0;align-items:center;gap:12px;padding:0 18px;font-size:16px;font-weight:500;display:inline-flex;position:absolute;top:-17px;left:-1px}.ow-i{font-family:var(--mono);color:var(--ink-4);font-size:11px;font-weight:400}.ow-count{font-family:var(--mono);color:var(--ink-3);font-size:12px;font-weight:400}.ow-list{padding:30px clamp(20px,2vw,32px) 10px}.ow-row{border-bottom:1px solid var(--line);transition:border-color var(--t-feedback) var(--ease)}.ow-row:last-child{border-bottom:0}.ow-link{grid-template-columns:minmax(0,1fr) 18px;grid-template-areas:"t g""m g";align-items:center;gap:6px 16px;min-height:92px;padding:22px 0;display:grid}a.ow-link{cursor:pointer}.ow-title{letter-spacing:-.014em;overflow-wrap:anywhere;color:var(--ink-2);transition:color var(--t-feedback) var(--ease);grid-area:t;font-size:clamp(20px,1.6vw,25px);font-weight:500;line-height:1.22}html:lang(zh-CN) .ow-title{letter-spacing:0}.ow-meta{color:var(--ink-3);grid-area:m;font-size:15px;line-height:1.4}.ow-go{color:var(--ink-3);grid-area:g;justify-self:end}.ow-go .arrow{transition:transform var(--t-move) var(--ease)}.ow-row:hover,.ow-row:focus-within{border-bottom-color:var(--line-3)}.ow-link:is(:hover,:focus-visible) .ow-title{color:var(--ink)}.ow-link:is(:hover,:focus-visible) .arrow{transform:translate(4px)}@media (width<=1199px){.more-side{grid-template-rows:none;gap:28px}.ow-index{padding-top:0}.ow-num{font-size:clamp(110px,18vw,160px)}.ow-axis:before,.ow-axis:after{top:0}.ow-n:after,.ow-n:before{display:none}.ow{padding-top:28px}}@media (width<=767px){.more-side{gap:28px}.ow-n{align-items:baseline;gap:14px;padding-left:0;display:flex}.ow-num{letter-spacing:-.03em;color:#e9e8e338;font-size:52px;line-height:1}.ow-sub{font-size:11px}.ow-axis,.ow-n:after{display:none}.ow{grid-template-columns:minmax(0,1fr);gap:48px;padding-top:22px}.ow-link{min-height:72px;padding:16px 0}.ow-title{font-size:20px}}
