@media (width<=640px){:root{--cWidth:calc(100% - 36px)}.portfolio{padding:24px 18px 60px}.work-item{grid-template-columns:38px 1fr}.work-item small{grid-column:2}}@media (width<=760px){html,body,#root{min-height:100%}body{overflow:hidden auto}}.sub2api-stats{z-index:5;opacity:0;filter:blur(12px);-webkit-backdrop-filter:blur(32px)saturate(155%);backdrop-filter:blur(32px)saturate(155%);background:linear-gradient(150deg,#ffffffad,#e0f0f94a);border:1px solid #ffffffad;border-radius:23px;width:100%;max-width:330px;position:relative;overflow:hidden;transform:translate(34px,24px)scale(.94);box-shadow:inset 1px 1px #ffffffeb,inset -1px -1px #5384a51f,0 28px 58px #2e506424}.sub2api-stats__header{justify-content:space-between;align-items:start;padding:11px 12px 8px;display:flex}.sub2api-stats__header>div{gap:2px;display:grid}.sub2api-stats__eyebrow{color:#617a8b;letter-spacing:0;font-family:Microsoft YaHei UI,PingFang SC,sans-serif;font-size:9px;font-weight:760;line-height:1.2}.sub2api-stats__header strong{color:#171c20;letter-spacing:0;font-family:Microsoft YaHei UI,PingFang SC,sans-serif;font-size:14px;font-weight:760}.sub2api-stats__status{color:#65757f;letter-spacing:0;align-items:center;gap:7px;margin-top:0;font-family:Microsoft YaHei UI,PingFang SC,sans-serif;font-size:9px;font-weight:650;line-height:1.2;display:inline-flex}.sub2api-stats__status i{background:#25b76a;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 4px #25b76a1f}.sub2api-stats__status--stale i{background:#f4a12c;box-shadow:0 0 0 4px #f4a12c21}.sub2api-stats__grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:5px;padding:0 7px 7px;display:grid}.stats-tile{background:#ffffffad;border:1px solid #ffffffc7;border-radius:15px;grid-template-columns:31px minmax(0,1fr);align-items:center;column-gap:6px;min-width:0;min-height:62px;padding:7px;transition:border-color .3s,background-color .3s,transform .45s cubic-bezier(.16,1,.3,1),box-shadow .4s;display:grid;position:relative;overflow:hidden;box-shadow:inset 0 1px #ffffffe6,0 8px 22px #274f6912}.stats-tile:hover{background:#ffffffd4;border-color:#fffffff5;transform:translateY(-2px);box-shadow:inset 0 1px #fff,0 13px 28px #274f691f}.stats-tile__icon{z-index:2;border-radius:9px;place-items:center;width:31px;height:31px;display:grid;position:relative}.stats-tile__icon svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:17px;height:17px}.stats-tile--green .stats-tile__icon{color:#20a85d;background:#d9f8e6}.stats-tile--orange .stats-tile__icon{color:#f08b19;background:#fff2cd}.stats-tile--indigo .stats-tile__icon{color:#586cf5;background:#e1e6ff}.stats-tile--violet .stats-tile__icon{color:#7b4cf1;background:#eee5ff}.stats-tile__copy{z-index:2;grid-template-rows:auto auto auto;align-content:center;align-self:stretch;min-width:0;display:grid;position:relative}.stats-tile__copy>span{color:#657179;font-family:Microsoft YaHei UI,PingFang SC,sans-serif;font-size:8px;font-weight:680;line-height:1.15}.stats-tile__copy>strong{color:#17202b;letter-spacing:0;white-space:nowrap;font-size:20px;font-weight:790;line-height:1.05}.stats-tile__copy>strong i{color:#6f7980;font-size:9px;font-style:normal;font-weight:700}.stats-tile__copy>small{color:#818c94;white-space:nowrap;min-height:10px;font-size:7px;font-weight:650;line-height:1.2}.stats-tile--violet .stats-tile__copy>small b{color:#6847e7}.dock-page--revealing .sub2api-stats{animation:.94s cubic-bezier(.16,1,.3,1) .43s both sub2api-stats-in}.sub2api-stats--ready .stats-tile{animation:.6s cubic-bezier(.16,1,.3,1) both stats-data-in}.sub2api-stats--ready .stats-tile:nth-child(2){animation-delay:40ms}.sub2api-stats--ready .stats-tile:nth-child(3){animation-delay:80ms}.sub2api-stats--ready .stats-tile:nth-child(4){animation-delay:.12s}@keyframes sub2api-stats-in{0%{opacity:0;filter:blur(12px);transform:translate(34px,24px)scale(.94)}to{opacity:1;filter:blur();transform:translate(0,0)scale(1)}}@keyframes stats-data-in{0%{opacity:.48;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@media (width<=1080px){.sub2api-stats{display:none}}@media (width<=760px){.sub2api-stats{border-radius:22px;width:100%;max-width:none;display:block}.sub2api-stats__header{padding:13px 14px 10px}.sub2api-stats__header strong{font-size:15px}.sub2api-stats__status{font-size:9px}.sub2api-stats__grid{gap:7px;padding:0 9px 9px}.stats-tile{min-height:72px;padding:9px}.stats-tile__copy>span{font-size:9px}.stats-tile__copy>strong{font-size:22px}.stats-tile__copy>small{font-size:8px}}@media (prefers-reduced-motion:reduce){.dock-page--revealing .sub2api-stats,.sub2api-stats--ready .stats-tile{animation-duration:.01ms;animation-delay:0s}.stats-tile{transition:none}}.wave-grid-background{z-index:0;opacity:1;pointer-events:none;position:absolute;inset:0;overflow:hidden}.wave-grid-background canvas{width:100%;height:100%;display:block}.dock-page{isolation:isolate;color:#111317;background:radial-gradient(circle at 51% 34%,#fffffffa 0%,#eef8ff52 18%,#0000 43%),linear-gradient(145deg,#e8edf1 0%,#f7f8f9 38%,#dae7ee 100%);grid-template-rows:70px minmax(0,1fr) 58px;width:100%;height:100svh;min-height:100svh;font-family:PP Neue Montreal,Arial,sans-serif;display:grid;position:relative;overflow:hidden}.scene-noise{pointer-events:none;z-index:1;opacity:.12;mix-blend-mode:soft-light;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.62'/%3E%3C/svg%3E");position:absolute;inset:0}.dock-header{z-index:6;letter-spacing:.12em;opacity:0;grid-template-columns:1fr auto 1fr;align-items:center;width:min(100% - 72px,1520px);height:70px;margin:0 auto;font-size:10px;font-weight:650;display:grid;position:relative;transform:translateY(-12px)}.dock-wordmark{letter-spacing:.16em;justify-self:start;align-items:center;gap:10px;font-size:13px;font-weight:800;display:inline-flex}.dock-wordmark i{background:#1d9bf0;border-radius:50%;width:8px;height:8px;box-shadow:0 0 0 4px #1d9bf024}.dock-header__center{color:#5f6970;align-items:center;gap:8px;display:inline-flex}.live-dot{background:#25b76a;border-radius:50%;width:6px;height:6px;box-shadow:0 0 0 4px #25b76a1f}.dock-header__right{color:#68737b;justify-self:end;gap:10px;display:flex}.dock-header__slash{color:#9ba7ad}.dock-content{z-index:4;grid-template-columns:minmax(560px,720px) minmax(270px,330px);justify-content:space-between;align-items:start;width:min(100% - 72px,1520px);min-height:0;margin:0 auto;padding-top:clamp(18px,3.3vh,30px);display:grid;position:relative}.dock-content__left{align-content:start;gap:clamp(40px,7.25vh,66px);min-width:0;display:grid}.dock-content__right{align-content:start;justify-items:end;gap:clamp(32px,5vh,46px);min-width:0;display:grid}.dock-intro{z-index:4;opacity:0;filter:blur(12px);width:100%;max-width:720px;position:relative;transform:translate(-30px,22px)}.dock-intro__kicker{color:#337dad;letter-spacing:.13em;align-items:center;gap:12px;font-size:10px;font-weight:750;display:inline-flex}.dock-intro__kicker i{opacity:.55;background:currentColor;width:44px;height:1px}.dock-intro h1{letter-spacing:-.035em;max-width:760px;margin:0;font-family:PP Neue Montreal,Microsoft YaHei UI,PingFang SC,sans-serif;font-size:clamp(52px,6.2vw,100px);font-weight:560;line-height:1.12}.dock-intro h1 span{white-space:nowrap;width:max-content;max-width:100%;display:block}.dock-intro h1 span:last-child{color:#6b7378;letter-spacing:-.042em}.dock-intro p{color:#5f696f;max-width:310px;margin:0;font-size:14px;line-height:1.55}.dock-intro__hint{letter-spacing:.1em;border-bottom:1px solid #11131752;align-items:center;gap:16px;margin-top:38px;padding-bottom:8px;font-size:10px;font-weight:700;transition:gap .35s cubic-bezier(.16,1,.3,1);display:inline-flex}.dock-intro__hint:hover{gap:24px}.dock-intro__hint i{color:#1978bd;font-size:16px;font-style:normal}.dock-signal{z-index:5;opacity:0;filter:blur(14px);-webkit-backdrop-filter:blur(32px)saturate(165%);backdrop-filter:blur(32px)saturate(165%);background:linear-gradient(155deg,#ffffffbf,#def0fa47);border:1px solid #ffffffa8;border-radius:30px;width:clamp(238px,100%,270px);position:relative;overflow:hidden;transform:translate(42px,28px)rotate(7deg)scale(.88);box-shadow:inset 1px 1px #ffffffeb,inset -1px -1px #5384a521,0 28px 60px #2e506429}.dock-signal__chrome{z-index:2;color:#5d7788;letter-spacing:.11em;justify-content:space-between;padding:15px 16px;font-size:8px;font-weight:750;display:flex;position:relative}.dock-signal__chrome-dot{background:#56c7ff;border-radius:50%;width:6px;height:6px;box-shadow:0 0 10px 2px #54c7ffa6}.dock-signal__content{z-index:2;flex-direction:column;gap:15px;padding:14px 18px 18px;display:flex;position:relative}.dock-signal__update{color:#0671d8;letter-spacing:0;grid-template-columns:6px minmax(0,1fr);align-items:start;gap:8px;margin:0;font-family:Microsoft YaHei UI,PingFang SC,sans-serif;font-size:11px;font-weight:750;line-height:1.55;display:grid}.dock-signal__update i{background:#0a84ff;border-radius:50%;width:5px;height:5px;margin-top:.53em;box-shadow:0 0 8px #0a84ff7a}.dock-signal__message{color:#20272b;letter-spacing:0;gap:10px;margin:0;font-family:Microsoft YaHei UI,PingFang SC,sans-serif;font-size:14px;font-weight:650;line-height:1.58;display:grid}.dock-signal__message span{display:block}.dock-signal__mail{color:#066dcc;letter-spacing:0;text-align:center;background:#ffffff7a;border:1px solid #007aff33;border-radius:12px;place-items:center;min-height:42px;padding:0 30px;font-size:11px;font-weight:750;transition:color .25s,background-color .25s,border-color .25s,transform .35s cubic-bezier(.16,1,.3,1),box-shadow .35s;display:grid;position:relative;box-shadow:inset 0 1px #ffffffc7,0 8px 20px #1a598014}.dock-signal__mail span{overflow-wrap:anywhere;min-width:0}.dock-signal__mail i{font-size:13px;font-style:normal;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.dock-signal__mail:hover{color:#0057b8;background:#ffffffbf;border-color:#007aff61;transform:translateY(-2px);box-shadow:inset 0 1px #fff,0 11px 24px #1a598021}.dock-signal__mail:focus-visible{outline-offset:3px;outline:2px solid #007aff7a}.dock-notes{z-index:4;opacity:0;gap:0;width:100%;display:grid;position:relative;transform:translate(28px)}.dock-note{border-top:1px solid #334b5938;grid-template-columns:34px minmax(205px,.9fr) minmax(270px,1.25fr);align-items:center;column-gap:10px;min-height:48px;padding:7px 0;display:grid}.dock-note:first-child{border-top-color:#334b594d}.dock-note>span{color:#1677b5;letter-spacing:.06em;font-size:11px;font-weight:800}.dock-note strong{color:#171c20;font-family:Microsoft YaHei UI,PingFang SC,sans-serif;font-size:13px;font-weight:750;line-height:1.45}.dock-note p{color:#4f5c64;text-align:left;margin:0;font-family:Microsoft YaHei UI,PingFang SC,sans-serif;font-size:12px;font-weight:600;line-height:1.5}.dock-notes__more{color:#53646e;border-top:1px solid #334b5938;justify-content:flex-start;align-items:center;gap:8px;min-height:30px;font-family:Microsoft YaHei UI,PingFang SC,sans-serif;font-size:11px;font-weight:700;display:flex}.dock-notes__more i{background:#56c7ff;border-radius:50%;width:5px;height:5px;box-shadow:0 0 9px #54c7ffb3}.apple-dock{z-index:8;pointer-events:none;opacity:0;flex-direction:column;justify-content:center;align-items:center;display:flex;position:absolute;bottom:6vh;left:0;right:0;transform:translateY(24px)scale(.98)}.apple-dock:before{z-index:-1;filter:blur(38px);content:"";background:#2697e92e;border-radius:50%;width:min(930px,84vw);height:145px;position:absolute;bottom:-25%}.apple-dock__caption{color:#4e6979;letter-spacing:.15em;margin-bottom:13px;font-size:9px;font-weight:750}.apple-dock__list{-webkit-backdrop-filter:blur(25px)saturate(155%);backdrop-filter:blur(25px)saturate(155%);background:linear-gradient(#ffffffa3,#e0edf56b);border:1px solid #ffffffc7;border-radius:30px;align-items:flex-end;margin:0;padding:10px 13px 13px;font-size:18px;list-style:none;display:flex;box-shadow:inset 1px 1px #ffffffe0,inset -1px -1px #426f8d1f,0 18px 42px #23405133}.apple-dock__item{justify-content:center;align-items:flex-end;width:5em;transition:width .45s cubic-bezier(.16,1,.3,1);display:flex;position:relative}.apple-dock__item--active{width:8em}.apple-dock__item--near{width:7em}.apple-dock__item--far{width:6em}.apple-dock__link{pointer-events:auto;place-items:end center;width:100%;padding:0 .5em;display:grid;position:relative}.apple-dock__link img{filter:drop-shadow(0 12px 12px #0b080c2e);width:100%;height:auto;transition:filter .35s;display:block}.apple-dock__item--active .apple-dock__link img{filter:drop-shadow(0 18px 17px #0b080c3d)saturate(1.06)}.apple-dock__tooltip{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);color:#1d1d1f;opacity:0;pointer-events:none;white-space:nowrap;background:#ffffffbf;border:1px solid #ffffffd9;border-radius:999px;padding:.6em .75em;font-size:1em;line-height:1;transition:opacity .25s,transform .45s cubic-bezier(.16,1,.3,1);position:absolute;top:-.25em;transform:translateY(-80%);box-shadow:inset 0 1px #fff,0 8px 24px #1d1d1f1f}.apple-dock__item--active .apple-dock__tooltip{opacity:1;transform:translateY(-140%)}.dock-credit{z-index:7;color:#647179;letter-spacing:.1em;opacity:0;grid-template-columns:1fr;align-items:center;width:min(100% - 72px,1520px);height:58px;margin:0 auto;padding:0;font-size:9px;font-weight:700;display:grid;position:relative;transform:translateY(8px)}.dock-credit__center{color:#8799a3;justify-self:center}.dock-page--revealing .dock-header{animation:.82s cubic-bezier(.16,1,.3,1) .1s both dock-fade-down}.dock-page--revealing .dock-intro{animation:1.05s cubic-bezier(.16,1,.3,1) .16s both dock-intro-in}.dock-page--revealing .dock-signal{animation:.92s cubic-bezier(.16,1,.3,1) .25s both signal-in,7s cubic-bezier(.45,0,.55,1) 1.35s infinite alternate signal-float}.dock-page--revealing .dock-notes{animation:.9s cubic-bezier(.16,1,.3,1) .36s both notes-in}.dock-page--revealing .apple-dock{animation:.92s cubic-bezier(.16,1,.3,1) .48s forwards dock-controls-reveal}.dock-page--revealing .dock-credit{animation:.75s cubic-bezier(.16,1,.3,1) .62s forwards dock-controls-reveal}.dock-page--revealing .live-dot,.dock-page--revealing .dock-notes__more i{animation:2.2s ease-in-out .9s infinite live-pulse}.dock-page--revealing .apple-dock:before{animation:5.5s cubic-bezier(.45,0,.55,1) 1.2s infinite alternate dock-aurora}@font-face{font-family:PP Neue Montreal;src:url(https://cdn.prod.website-files.com/6819ed8312518f61b84824df/6819ed8312518f61b84825ba_PPNeueMontreal-Medium.woff2)format("woff2");font-display:swap;font-style:normal;font-weight:500}@keyframes dock-controls-reveal{to{opacity:1;transform:translateY(0)scale(1)}}@keyframes dock-fade-down{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:translateY(0)}}@keyframes dock-intro-in{0%{opacity:0;filter:blur(12px);transform:translate(-30px,22px)}to{opacity:1;filter:blur();transform:translate(0,0)}}@keyframes signal-in{0%{opacity:0;filter:blur(14px);transform:translate(42px,28px)rotate(7deg)scale(.88)}to{opacity:1;filter:blur();transform:translate(0,0)rotate(0)scale(1)}}@keyframes signal-float{0%{translate:0 -4px;rotate:-.9deg}to{translate:0 8px;rotate:1.2deg}}@keyframes notes-in{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes live-pulse{50%{box-shadow:0 0 0 7px #25b76a00}}@keyframes dock-aurora{0%{opacity:.58;transform:translate(-3%)scaleX(.92)}to{opacity:.92;transform:translate(4%)scaleX(1.08)}}@media (width<=1180px) and (width>=761px){.dock-content{grid-template-columns:minmax(0,1fr) minmax(238px,270px);column-gap:28px}.dock-content__left{gap:clamp(36px,6vh,52px)}.dock-intro h1{font-size:clamp(46px,6vw,68px)}.dock-note{grid-template-columns:30px minmax(165px,.9fr) minmax(210px,1.15fr)}.dock-note strong{font-size:12px}.dock-note p{font-size:11px}}@media (width<=760px){.dock-page{grid-template-rows:62px auto 42px;height:auto;min-height:100svh;padding-bottom:120px;scroll-padding-bottom:120px;overflow:visible}.dock-header{grid-template-columns:1fr auto;width:calc(100% - 36px);height:62px}.dock-header__center{display:none}.dock-header__right{font-size:8px}.dock-content{grid-template-columns:minmax(0,1fr);gap:28px;width:calc(100% - 36px);padding-top:22px}.dock-content__left{gap:36px}.dock-content__right{justify-items:stretch;gap:18px;padding-bottom:104px;display:grid}.dock-intro{width:100%}.dock-intro h1{letter-spacing:-.025em;margin:12px 0 0;font-size:clamp(38px,11vw,52px);line-height:1.16}.dock-intro h1 span{white-space:normal;width:auto}.dock-intro h1 span:last-child{letter-spacing:-.03em}.dock-intro p{font-size:13px}.dock-intro__hint{margin-top:25px}.dock-signal{border-radius:22px;width:100%}.dock-signal__chrome{padding:13px 15px 8px}.dock-signal__content{gap:14px;padding:12px 15px 15px}.dock-signal__update{font-size:10px;line-height:1.6}.dock-signal__message{gap:8px;font-size:13px;font-weight:650;line-height:1.62}.dock-signal__mail{min-height:44px;padding:0 30px;font-size:11px}.dock-signal__mail i{font-size:12px;right:11px}.dock-notes{display:grid}.dock-note{grid-template-columns:32px minmax(0,1fr);gap:3px 10px;min-height:0;padding:13px 0}.dock-note>span{grid-row:1/span 2;align-self:start;padding-top:2px}.dock-note strong{font-size:13px}.dock-note p{font-size:11px;line-height:1.55}.dock-notes__more{min-height:42px}.apple-dock{right:0;bottom:max(10px, env(safe-area-inset-bottom));align-items:center;padding:0 12px;position:fixed;left:0;overflow:visible}.apple-dock:before{width:96vw;height:92px;bottom:-35%}.apple-dock__caption{align-self:center}.apple-dock__list{border-radius:24px;justify-content:center;width:min(100%,350px);padding:9px 10px 11px;font-size:12px}.apple-dock__item,.apple-dock__item--active,.apple-dock__item--near,.apple-dock__item--far{width:4.8em}.apple-dock__link{padding:0 .35em}.apple-dock__tooltip{display:none}.dock-credit{width:calc(100% - 36px);height:42px;font-size:7px}.dock-credit__center{justify-self:start;display:block}}@media (width<=430px){.dock-header,.dock-content{width:calc(100% - 30px)}.dock-intro h1{font-size:clamp(36px,10.5vw,46px)}.apple-dock__list{width:min(100%,334px);font-size:11.5px}}@media (hover:none) and (pointer:coarse){.dock-signal__mail:hover,.stats-tile:hover{transform:none}}:root{--vh:100svh;--cWidth:calc(100% - 64px);--cMaxWidth:1440px;--backgroundColor:#edf1f3}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--backgroundColor);color:#111317;margin:0;font-family:Arial,sans-serif;overflow:hidden}a{color:inherit;text-decoration:none}.portfolio{opacity:0;background:var(--backgroundColor);min-height:100svh;padding:35px 32px 80px;transition:opacity .6s .15s,transform .6s .15s;transform:translateY(12px)}.portfolio--visible{opacity:1;transform:translateY(0)}.site-nav{justify-content:space-between;font-size:12px;font-weight:700;display:flex}.hero{max-width:970px;min-height:68svh;padding-top:18svh}.hero p,.work-preview>p{color:#a87cff;font-size:12px;font-weight:700}.hero h1{letter-spacing:0;max-width:850px;margin:22px 0 40px;font-size:clamp(48px,8vw,116px);font-weight:500;line-height:.92}.hero-link{border-bottom:1px solid #eae5ec;padding-bottom:5px;font-size:12px;font-weight:700}.work-preview{max-width:970px}.work-item{border-top:1px solid #4a464a;grid-template-columns:70px 1fr auto;align-items:baseline;gap:16px;padding:22px 0;display:grid}.work-item strong{font-size:clamp(24px,3vw,42px);font-weight:500;line-height:1}.work-item span,.work-item small{color:#8f888d;font-size:12px}@media (width<=640px){:root{--cWidth:calc(100% - 36px)}.portfolio{padding:24px 18px 60px}.work-item{grid-template-columns:38px 1fr}.work-item small{grid-column:2}}@media (width<=760px){html,body,#root{min-height:100%}body{overflow:hidden auto}}
