:root{--macos-bg: #f5f5f7;--macos-bg-secondary: #ffffff;--macos-text: #1d1d1f;--macos-text-secondary: #86868b;--macos-text-tertiary: #6e6e73;--macos-accent: #0071e3;--macos-accent-hover: #0077ed;--macos-accent-light: rgba(0, 113, 227, .1);--sonoma-pink: #ff6b9d;--sonoma-purple: #c084fc;--sonoma-blue: #60a5fa;--sonoma-cyan: #22d3ee;--sonoma-orange: #fb923c;--window-bg: rgba(255, 255, 255, .7);--window-bg-solid: #ffffff;--window-border: rgba(255, 255, 255, .5);--window-border-light: rgba(255, 255, 255, .5);--window-shadow: 0 10px 30px rgba(0, 0, 0, .05), 0 1px 3px rgba(0, 0, 0, .1);--window-shadow-hover: 0 14px 36px rgba(0, 0, 0, .08), 0 2px 5px rgba(0, 0, 0, .12);--traffic-close: #ff5f57;--traffic-close-hover: #ff3b30;--traffic-minimize: #febc2e;--traffic-minimize-hover: #ffcc00;--traffic-maximize: #28c840;--traffic-maximize-hover: #34c759;--traffic-inactive: #ddd;--glass-bg: rgba(255, 255, 255, .72);--glass-bg-dark: rgba(30, 30, 30, .78);--glass-blur: 20px;--glass-blur-heavy: 40px;--glass-saturate: 180%;--vibrancy-light: rgba(255, 255, 255, .6);--vibrancy-ultra-light: rgba(255, 255, 255, .4);--vibrancy-material: rgba(245, 245, 247, .8);--radius-xs: 4px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-2xl: 28px;--dock-bg: rgba(255, 255, 255, .7);--dock-blur: 20px;--sidebar-width: 240px;--sidebar-bg: rgba(245, 245, 247, .8);--toolbar-bg: rgba(246, 246, 248, .85);--toolbar-border: rgba(0, 0, 0, .06);--spring-bounce: cubic-bezier(.34, 1.56, .64, 1);--spring-smooth: cubic-bezier(.25, .1, .25, 1);--spring-snappy: cubic-bezier(.2, 0, 0, 1);--ease-out-expo: cubic-bezier(.16, 1, .3, 1)}:root[data-theme=dark]{--macos-bg: #12141a;--macos-bg-secondary: #1c2029;--macos-text: #f3f6ff;--macos-text-secondary: #a7b3c6;--macos-text-tertiary: #7d8ca3;--macos-accent: #54a7ff;--macos-accent-hover: #7abcff;--macos-accent-light: rgba(84, 167, 255, .2);--window-bg: rgba(19, 24, 34, .62);--window-bg-solid: #1b2230;--window-border: rgba(182, 209, 255, .28);--window-border-light: rgba(255, 255, 255, .22);--window-shadow: 0 14px 34px rgba(0, 0, 0, .38), 0 2px 6px rgba(0, 0, 0, .42);--window-shadow-hover: 0 18px 42px rgba(0, 0, 0, .44), 0 3px 8px rgba(0, 0, 0, .48);--glass-bg: rgba(18, 24, 34, .72);--glass-bg-dark: rgba(11, 14, 20, .8);--vibrancy-light: rgba(42, 53, 73, .58);--vibrancy-ultra-light: rgba(55, 66, 87, .46);--vibrancy-material: rgba(35, 44, 61, .78);--dock-bg: rgba(16, 22, 32, .62);--toolbar-bg: rgba(28, 34, 46, .84);--toolbar-border: rgba(190, 218, 255, .14)}@font-face{font-family:SF Pro Display;src:local("SF Pro Display"),local(".SF NS Display"),local("Helvetica Neue");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:SF Pro Text;src:local("SF Pro Text"),local(".SF NS Text"),local("Helvetica Neue");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:SF Pro Rounded;src:local("SF Pro Rounded"),local(".SF NS Rounded"),local("SF Pro Display");font-weight:100 900;font-style:normal;font-display:swap}*{box-sizing:border-box}html{scroll-behavior:smooth;scrollbar-gutter:stable}body{font-family:-apple-system,BlinkMacSystemFont,SF Pro Text,PingFang SC,Hiragino Sans GB,Microsoft YaHei,Segoe UI,Roboto,sans-serif;margin:0;padding:0;background-color:#f3e7e9;background-image:radial-gradient(at 0% 0%,hsla(253,16%,7%,0) 0,transparent 50%),radial-gradient(at 50% 0%,hsla(225,39%,30%,0) 0,transparent 50%),radial-gradient(at 100% 0%,hsla(339,49%,30%,0) 0,transparent 50%),radial-gradient(at 0% 50%,hsla(190,100%,76%,1) 0px,transparent 50%),radial-gradient(at 80% 50%,hsla(332,100%,82%,1) 0px,transparent 50%),radial-gradient(at 0% 100%,hsla(22,100%,77%,1) 0px,transparent 50%),radial-gradient(at 80% 100%,hsla(242,100%,70%,1) 0px,transparent 50%);background-attachment:fixed;color:var(--macos-text);font-size:17px;line-height:1.47059;letter-spacing:-.022em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh;overflow-x:hidden;cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M3.2 1.5 3.7 19l4.2-4 2.8 6.7c.25.6.95.89 1.55.64l1.5-.62c.61-.25.9-.95.64-1.56L11.6 13l6.3-.1c1.06-.02 1.58-1.31.84-2.05L5.2 0.98A1.25 1.25 0 0 0 3.2 1.5z' fill='%23101010'/%3E%3Cpath d='M4.45 2.95 4.83 16.2l2.81-2.69a.9.9 0 0 1 1.48.35l3.17 7.57 1.35-.56-3.17-7.57a.9.9 0 0 1 .8-1.25l5.64-.09L4.45 2.95z' fill='%23ffffff' fill-opacity='.18'/%3E%3C/svg%3E") 3 1,default}:root[data-theme=dark] body{background-color:#0f1624;background-image:radial-gradient(at 0% 0%,hsla(253,40%,18%,.28) 0,transparent 50%),radial-gradient(at 50% 0%,hsla(225,48%,24%,.34) 0,transparent 50%),radial-gradient(at 100% 0%,hsla(339,38%,26%,.3) 0,transparent 50%),radial-gradient(at 0% 50%,hsla(193,78%,46%,.28) 0px,transparent 50%),radial-gradient(at 80% 50%,hsla(325,76%,56%,.24) 0px,transparent 50%),radial-gradient(at 0% 100%,hsla(23,92%,46%,.22) 0px,transparent 50%),radial-gradient(at 80% 100%,hsla(242,74%,56%,.28) 0px,transparent 50%)}body:before,body:after{content:"";position:fixed;inset:0;pointer-events:none;z-index:0}body:before{background:radial-gradient(circle at 18% 22%,rgba(255,255,255,.42) 0%,transparent 36%),radial-gradient(circle at 84% 78%,rgba(255,255,255,.22) 0%,transparent 42%);filter:blur(40px);opacity:.45;animation:bodyAmbientFloat 18s ease-in-out infinite alternate}:root[data-theme=dark] body:before{background:radial-gradient(circle at 20% 16%,rgba(71,123,212,.3) 0%,transparent 36%),radial-gradient(circle at 82% 80%,rgba(120,58,178,.2) 0%,transparent 42%);filter:blur(56px);opacity:.58}:root[data-theme=dark] body:after{background-image:radial-gradient(rgba(142,168,215,.25) .8px,transparent 1px);opacity:.09;mix-blend-mode:screen}body:after{background-image:radial-gradient(rgba(255,255,255,.42) .8px,transparent 1px);background-size:26px 26px;opacity:.065;mix-blend-mode:soft-light;animation:bodySparklePulse 7s ease-in-out infinite}body>*{position:relative;z-index:1}body.has-dock main{padding-bottom:max(88px,calc(env(safe-area-inset-bottom,0px) + 74px))}a,button,[role=button],summary,label,.dock-icon{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M10.5 2.2c.66 0 1.2.54 1.2 1.2v6.1h1.1V5.7c0-.66.54-1.2 1.2-1.2s1.2.54 1.2 1.2v3.8h1.1V7.1c0-.66.54-1.2 1.2-1.2s1.2.54 1.2 1.2v7c0 3.9-2.8 7-6.6 7-2.8 0-5.3-1.7-6.3-4.3l-1.2-3.1c-.22-.58.05-1.23.62-1.46.57-.23 1.23.04 1.47.61l.9 2.2V3.4c0-.66.54-1.2 1.2-1.2s1.2.54 1.2 1.2v5.9h1.1V3.4c0-.66.54-1.2 1.2-1.2z' fill='%23ffffff' stroke='%23121417' stroke-width='1' stroke-linejoin='round'/%3E%3Ccircle cx='10.2' cy='3.9' r='0.7' fill='%23ffffff' fill-opacity='.35'/%3E%3C/svg%3E") 10 2,pointer}a:active,button:active,[role=button]:active,summary:active,label:active,.dock-icon:active{cursor:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cpath d='M10.5 2.2c.66 0 1.2.54 1.2 1.2v6.1h1.1V5.7c0-.66.54-1.2 1.2-1.2s1.2.54 1.2 1.2v3.8h1.1V7.1c0-.66.54-1.2 1.2-1.2s1.2.54 1.2 1.2v7c0 3.9-2.8 7-6.6 7-2.8 0-5.3-1.7-6.3-4.3l-1.2-3.1c-.22-.58.05-1.23.62-1.46.57-.23 1.23.04 1.47.61l.9 2.2V3.4c0-.66.54-1.2 1.2-1.2s1.2.54 1.2 1.2v5.9h1.1V3.4c0-.66.54-1.2 1.2-1.2z' fill='%23e7ebf2' stroke='%23080d14' stroke-width='1.1' stroke-linejoin='round'/%3E%3Cpath d='M9.35 9.2V4.05' stroke='%23080d14' stroke-width='.7' stroke-linecap='round' opacity='.28'/%3E%3C/svg%3E") 10 2,pointer}input,textarea{cursor:text}select{cursor:pointer}.article-image-zoomable{cursor:zoom-in}.js body.is-ready main,.js body.is-ready header,.js body.is-ready footer{opacity:1;transform:none;filter:none;pointer-events:auto;transition:opacity .65s var(--ease-out-expo),transform .65s var(--ease-out-expo),filter .65s var(--ease-out-expo)}.stage-intro{opacity:1;transform:none;filter:none}.js .stage-intro{opacity:0;transform:translateY(18px) scale(.985);filter:blur(6px);will-change:transform,opacity,filter}.js body.is-ready .stage-intro{animation:stageReveal .5s var(--ease-out-expo) both}.js body.is-ready .stage-intro.stage-1{animation-delay:.05s}.js body.is-ready .stage-intro.stage-2{animation-delay:.1s}.js body.is-ready .stage-intro.stage-3{animation-delay:.15s}.js body.is-ready .stage-intro.stage-4{animation-delay:.2s}.js body.is-ready .stage-intro.stage-5{animation-delay:.25s}.js body.is-ready .stage-intro.stage-6{animation-delay:.3s}.js body.is-ready .stage-intro.stage-7{animation-delay:.35s}.js body.is-ready .stage-intro.stage-8{animation-delay:.4s}@keyframes stageReveal{0%{opacity:0;transform:translateY(18px) scale(.985);filter:blur(6px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes bodyAmbientFloat{0%{transform:translate3d(-1.5%,0,0) scale(1)}to{transform:translate3d(1.5%,-1.5%,0) scale(1.04)}}@keyframes bodySparklePulse{0%,to{opacity:.08}50%{opacity:.18}}@keyframes orbBreathing{0%,to{filter:blur(12px);opacity:.55}50%{filter:blur(18px);opacity:.8}}.app-fx-layer{position:fixed;inset:0;pointer-events:none;z-index:2500;display:none}.js .app-fx-layer{display:block}main{width:100%;max-width:1040px;margin:0 auto;padding:2rem 1.5rem 4rem}h1,h2,h3,h4,h5,h6{font-family:SF Pro Display,-apple-system,PingFang SC,Hiragino Sans GB,Microsoft YaHei,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--macos-text);line-height:1.08;margin:0 0 .5rem;font-weight:600;letter-spacing:-.025em}h1{font-size:2.8rem;font-weight:700;letter-spacing:-.03em}h2{font-size:2rem}h3{font-size:1.5rem}h4{font-size:1.25rem}h5{font-size:1.1rem}p{margin:0 0 1em;color:var(--macos-text-secondary)}.prose p{margin-bottom:1.5em;color:var(--macos-text);font-size:1.05rem;line-height:1.7}a{color:var(--macos-accent);text-decoration:none;transition:color .2s var(--spring-smooth)}a:hover{color:var(--macos-accent-hover);text-decoration:underline}strong,b{font-weight:600}.macos-window{position:relative;background:var(--window-bg);backdrop-filter:saturate(var(--glass-saturate)) blur(var(--glass-blur));-webkit-backdrop-filter:saturate(var(--glass-saturate)) blur(var(--glass-blur));border-radius:var(--radius-lg);box-shadow:var(--window-shadow);border:.5px solid var(--window-border);overflow:hidden;transition:transform .4s var(--spring-smooth),box-shadow .4s var(--spring-smooth)}.macos-window:before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.8) 20%,rgba(255,255,255,.8) 80%,transparent 100%);z-index:1;pointer-events:none}.macos-window:hover{transform:translateY(-2px) scale(1.002);box-shadow:var(--window-shadow-hover)}.macos-window:active{transform:translateY(-1px) scale(1.001)}.glass-panel{position:relative;background:#ffffffa6;backdrop-filter:blur(25px) saturate(120%);-webkit-backdrop-filter:blur(25px) saturate(120%);border:1px solid rgba(255,255,255,.4);box-shadow:0 12px 40px #0000000d;border-radius:20px;overflow:hidden;isolation:isolate}.glass-panel:before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.06;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noiseFilter'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noiseFilter)'/%3E%3C/svg%3E");background-size:190px 190px;background-repeat:repeat}.glass-panel>*{position:relative;z-index:1}:root[data-theme=dark] .glass-panel{background:#131a268f;border-color:#b9d5ff3d;box-shadow:0 14px 38px #00000057}:root[data-theme=dark] .glass-panel:before{opacity:.05;mix-blend-mode:overlay}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .glass-panel{background:#131a268f;border-color:#b9d5ff3d;box-shadow:0 14px 38px #00000057}:root:not([data-theme=light]) .glass-panel:before{opacity:.05;mix-blend-mode:overlay}}:root[data-theme=dark] .macos-window:before{background:linear-gradient(90deg,transparent 0%,rgba(214,231,255,.24) 20%,rgba(214,231,255,.24) 80%,transparent 100%)}.window-titlebar{position:relative;display:flex;align-items:center;padding:11px 16px;background:linear-gradient(180deg,#fffffff7,#f8f8faf2);border-bottom:.5px solid rgba(0,0,0,.06);gap:8px;min-height:40px}.window-titlebar:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.4) 0%,transparent 50%);pointer-events:none}.traffic-lights{display:flex;gap:10px;flex-shrink:0;position:relative;z-index:2}.traffic-light{width:12px;height:12px;border-radius:50%;position:relative;cursor:default;transition:all .15s var(--spring-smooth)}.traffic-light:before{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);opacity:0;transition:opacity .15s ease}.traffic-lights:hover .traffic-light:before{opacity:1}.traffic-light.close{background:linear-gradient(180deg,#ff6058,#ff5047);box-shadow:inset 0 0 0 .5px #0000001f,inset 0 -1px 1px #0000000d,inset 0 1px 1px #ffffff4d}.traffic-light.close:before{width:6px;height:1px;background:#4d0605cc;transform:translate(-50%,-50%) rotate(45deg);box-shadow:0 0 0 .5px #4d0605cc}.traffic-light.close:after{content:"";position:absolute;top:50%;left:50%;width:6px;height:1px;background:#4d0605cc;transform:translate(-50%,-50%) rotate(-45deg);opacity:0;transition:opacity .15s ease}.traffic-lights:hover .traffic-light.close:after{opacity:1}.traffic-light.minimize{background:linear-gradient(180deg,#ffbe2f,#ffb71b);box-shadow:inset 0 0 0 .5px #0000001a,inset 0 -1px 1px #0000000d,inset 0 1px 1px #ffffff4d}.traffic-light.minimize:before{width:6px;height:1px;background:#995904cc}.traffic-light.maximize{background:linear-gradient(180deg,#2ace42,#24c138);box-shadow:inset 0 0 0 .5px #0000001a,inset 0 -1px 1px #0000000d,inset 0 1px 1px #ffffff4d}.traffic-light.maximize:before{width:0;height:0;border-left:2.5px solid transparent;border-right:2.5px solid transparent;border-bottom:4px solid rgba(11,79,21,.8);background:none;transform:translate(-50%,-70%)}.traffic-light.maximize:after{content:"";position:absolute;top:65%;left:50%;width:0;height:0;border-left:2.5px solid transparent;border-right:2.5px solid transparent;border-top:4px solid rgba(11,79,21,.8);transform:translate(-50%,-50%);opacity:0;transition:opacity .15s ease}.traffic-lights:hover .traffic-light.maximize:after{opacity:1}.window-title{flex:1;text-align:center;font-size:13px;font-weight:500;color:var(--macos-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 8px;position:relative;z-index:1}.window-content{padding:20px;background:#ffffff8c;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px)}:root[data-theme=dark] .window-titlebar{background:linear-gradient(180deg,#262e3ee6,#19202deb);border-bottom:.5px solid rgba(7,11,18,.8)}:root[data-theme=dark] .window-content{background:#141a268f}.tag-macos{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;font-size:12px;font-weight:500;border-radius:20px;background:var(--vibrancy-material);color:var(--macos-text-secondary);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);text-decoration:none;transition:all .15s ease}.tag-macos:hover{background:#0071e31f;color:#0071e3;text-decoration:none}.tag-macos.active{background:var(--macos-accent);color:#fff}code{font-family:SF Mono,SFMono-Regular,ui-monospace,Menlo,Monaco,PingFang SC,Hiragino Sans GB,Microsoft YaHei,monospace;font-size:.875em;padding:.16em .46em;background:linear-gradient(180deg,#eef3fb,#e9eff9);border:.5px solid rgba(30,64,175,.24);border-radius:6px;color:#0f2850;font-weight:560;line-height:1.48;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}pre{position:relative;margin:1.35rem 0;padding:2.2rem 1.15rem 1.05rem;overflow-x:auto;background:linear-gradient(180deg,#fffffff7,#f7fafffa),radial-gradient(circle at 20% -10%,rgba(45,123,246,.12) 0%,transparent 44%);border:.5px solid rgba(31,41,55,.14);border-radius:14px;box-shadow:inset 0 1px #ffffffd9,0 10px 24px #111f341f;color:#24292f;font-size:.875rem;line-height:1.7;text-shadow:0 0 0 transparent}pre:before{content:"";position:absolute;left:0;right:0;top:0;height:1.8rem;border-bottom:.5px solid rgba(31,41,55,.12);background:linear-gradient(180deg,#ffffffd1,#f4f8fee6)}pre:after{content:"";position:absolute;top:.56rem;left:.74rem;width:2.15rem;height:.65rem;background:radial-gradient(circle at .33rem .33rem,#ff5f57 .28rem,transparent .3rem),radial-gradient(circle at 1.08rem .33rem,#febc2e .28rem,transparent .3rem),radial-gradient(circle at 1.83rem .33rem,#28c840 .28rem,transparent .3rem);pointer-events:none}pre>code{all:unset;display:block;white-space:pre;word-break:normal;overflow-wrap:normal;tab-size:2;unicode-bidi:plaintext;font-family:JetBrains Mono,Fira Code,Cascadia Code,Source Code Pro,IBM Plex Mono,Iosevka,SF Mono,SFMono-Regular,ui-monospace,Consolas,Menlo,Monaco,PingFang SC,Hiragino Sans GB,Microsoft YaHei,monospace;font-size:.9rem;line-height:1.7;font-variant-ligatures:none;color:#24292f}pre code .token.comment,pre code .token.prolog,pre code .token.doctype,pre code .token.cdata{color:#6e7781}pre code .token.punctuation{color:#24292f}pre code .token.property,pre code .token.tag,pre code .token.boolean,pre code .token.number,pre code .token.constant,pre code .token.symbol,pre code .token.deleted,pre code .token.keyword{color:#cf222e}pre code .token.selector,pre code .token.attr-name,pre code .token.string,pre code .token.char,pre code .token.builtin,pre code .token.inserted{color:#0a3069}pre code .token.operator,pre code .token.entity,pre code .token.url,pre code .language-css .token.string,pre code .style .token.string{color:#0550ae}pre code .token.atrule,pre code .token.attr-value,pre code .token.function,pre code .token.class-name{color:#8250df}pre code .token.regex,pre code .token.important,pre code .token.variable{color:#953800}:root[data-code-theme=github-dark] code{background:linear-gradient(180deg,#383f4ab8,#292f3ac7);border-color:#b1bac46b;color:#f0f6fc}:root[data-code-theme=github-dark] pre{background:linear-gradient(180deg,#161b22fa,#0d1117fa),radial-gradient(circle at 20% -10%,rgba(47,129,247,.25) 0%,transparent 44%);border-color:#ffffff1a;box-shadow:inset 0 1px #ffffff0f,0 12px 24px #0000005c;color:#e6edf3}:root[data-code-theme=github-dark] pre:before{border-bottom-color:#ffffff1a;background:linear-gradient(180deg,#21262de6,#161b22eb)}:root[data-code-theme=github-dark] pre>code{color:#e6edf3}:root[data-code-theme=github-dark] pre code .token.comment,:root[data-code-theme=github-dark] pre code .token.prolog,:root[data-code-theme=github-dark] pre code .token.doctype,:root[data-code-theme=github-dark] pre code .token.cdata{color:#8b949e}:root[data-code-theme=github-dark] pre code .token.punctuation{color:#c9d1d9}:root[data-code-theme=github-dark] pre code .token.property,:root[data-code-theme=github-dark] pre code .token.tag,:root[data-code-theme=github-dark] pre code .token.boolean,:root[data-code-theme=github-dark] pre code .token.number,:root[data-code-theme=github-dark] pre code .token.constant,:root[data-code-theme=github-dark] pre code .token.symbol,:root[data-code-theme=github-dark] pre code .token.deleted,:root[data-code-theme=github-dark] pre code .token.keyword{color:#ff7b72}:root[data-code-theme=github-dark] pre code .token.selector,:root[data-code-theme=github-dark] pre code .token.attr-name,:root[data-code-theme=github-dark] pre code .token.string,:root[data-code-theme=github-dark] pre code .token.char,:root[data-code-theme=github-dark] pre code .token.builtin,:root[data-code-theme=github-dark] pre code .token.inserted{color:#a5d6ff}:root[data-code-theme=github-dark] pre code .token.operator,:root[data-code-theme=github-dark] pre code .token.entity,:root[data-code-theme=github-dark] pre code .token.url,:root[data-code-theme=github-dark] pre code .language-css .token.string,:root[data-code-theme=github-dark] pre code .style .token.string{color:#79c0ff}:root[data-code-theme=github-dark] pre code .token.atrule,:root[data-code-theme=github-dark] pre code .token.attr-value,:root[data-code-theme=github-dark] pre code .token.function,:root[data-code-theme=github-dark] pre code .token.class-name{color:#d2a8ff}:root[data-code-theme=github-dark] pre code .token.regex,:root[data-code-theme=github-dark] pre code .token.important,:root[data-code-theme=github-dark] pre code .token.variable{color:#ffa657}:root[data-code-theme=one-dark] code{background:linear-gradient(180deg,#4f556199,#3e444fbf);border-color:#abb2bf6b;color:#f3f6fc}:root[data-code-theme=one-dark] pre{background:linear-gradient(180deg,#282c34,#21252b);border-color:#ffffff14;box-shadow:inset 0 1px #ffffff0d,0 12px 24px #00000059;color:#abb2bf}:root[data-code-theme=one-dark] pre:before{border-bottom-color:#ffffff14;background:linear-gradient(180deg,#3a3f49e6,#2d313aeb)}:root[data-code-theme=one-dark] pre>code{color:#abb2bf}:root[data-code-theme=one-dark] pre code .token.comment,:root[data-code-theme=one-dark] pre code .token.prolog,:root[data-code-theme=one-dark] pre code .token.doctype,:root[data-code-theme=one-dark] pre code .token.cdata{color:#7f848e}:root[data-code-theme=one-dark] pre code .token.punctuation{color:#abb2bf}:root[data-code-theme=one-dark] pre code .token.property,:root[data-code-theme=one-dark] pre code .token.tag,:root[data-code-theme=one-dark] pre code .token.boolean,:root[data-code-theme=one-dark] pre code .token.number,:root[data-code-theme=one-dark] pre code .token.constant,:root[data-code-theme=one-dark] pre code .token.symbol,:root[data-code-theme=one-dark] pre code .token.deleted,:root[data-code-theme=one-dark] pre code .token.keyword{color:#e06c75}:root[data-code-theme=one-dark] pre code .token.selector,:root[data-code-theme=one-dark] pre code .token.attr-name,:root[data-code-theme=one-dark] pre code .token.string,:root[data-code-theme=one-dark] pre code .token.char,:root[data-code-theme=one-dark] pre code .token.builtin,:root[data-code-theme=one-dark] pre code .token.inserted{color:#98c379}:root[data-code-theme=one-dark] pre code .token.operator,:root[data-code-theme=one-dark] pre code .token.entity,:root[data-code-theme=one-dark] pre code .token.url,:root[data-code-theme=one-dark] pre code .language-css .token.string,:root[data-code-theme=one-dark] pre code .style .token.string{color:#56b6c2}:root[data-code-theme=one-dark] pre code .token.atrule,:root[data-code-theme=one-dark] pre code .token.attr-value,:root[data-code-theme=one-dark] pre code .token.function,:root[data-code-theme=one-dark] pre code .token.class-name{color:#c678dd}:root[data-code-theme=one-dark] pre code .token.regex,:root[data-code-theme=one-dark] pre code .token.important,:root[data-code-theme=one-dark] pre code .token.variable{color:#d19a66}:root[data-code-theme=github-light] pre[class*=language-bash] code .token,:root[data-code-theme=github-light] pre[class*=language-shell] code .token,:root[data-code-theme=github-light] pre[data-language=bash] code .token,:root[data-code-theme=github-light] pre[data-language=shell] code .token,:root[data-code-theme=github-dark] pre[class*=language-bash] code .token,:root[data-code-theme=github-dark] pre[class*=language-shell] code .token,:root[data-code-theme=github-dark] pre[data-language=bash] code .token,:root[data-code-theme=github-dark] pre[data-language=shell] code .token,:root[data-code-theme=one-dark] pre[class*=language-bash] code .token,:root[data-code-theme=one-dark] pre[class*=language-shell] code .token,:root[data-code-theme=one-dark] pre[data-language=bash] code .token,:root[data-code-theme=one-dark] pre[data-language=shell] code .token{color:inherit!important}:root[data-code-theme=github-light] pre[class*=language-bash] code .token.parameter.variable,:root[data-code-theme=github-light] pre[class*=language-shell] code .token.parameter.variable,:root[data-code-theme=github-light] pre[data-language=bash] code .token.parameter.variable,:root[data-code-theme=github-light] pre[data-language=shell] code .token.parameter.variable{color:#0550ae!important;font-weight:600}:root[data-code-theme=github-dark] pre[class*=language-bash] code .token.parameter.variable,:root[data-code-theme=github-dark] pre[class*=language-shell] code .token.parameter.variable,:root[data-code-theme=github-dark] pre[data-language=bash] code .token.parameter.variable,:root[data-code-theme=github-dark] pre[data-language=shell] code .token.parameter.variable{color:#79c0ff!important;font-weight:600}:root[data-code-theme=one-dark] pre[class*=language-bash] code .token.parameter.variable,:root[data-code-theme=one-dark] pre[class*=language-shell] code .token.parameter.variable,:root[data-code-theme=one-dark] pre[data-language=bash] code .token.parameter.variable,:root[data-code-theme=one-dark] pre[data-language=shell] code .token.parameter.variable{color:#61afef!important;font-weight:600}blockquote{margin:1.1rem 0;padding:.8rem .95rem;background:linear-gradient(180deg,#ffb8001a,#ffb8000a);border-left:3px solid rgba(245,158,11,.72);border-radius:10px;color:#6b4f00;font-size:.97rem;line-height:1.72;font-style:normal;box-shadow:inset 0 0 0 .5px #f59e0b33}blockquote:before{content:none}blockquote p{margin:.45rem 0}blockquote>:first-child{margin-top:0}blockquote>:last-child{margin-bottom:0}hr{border:none;height:1px;background:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.1) 20%,rgba(0,0,0,.1) 80%,transparent 100%);margin:2.5rem 0}img{max-width:100%;height:auto;border-radius:var(--radius-md)}textarea,input[type=text],input[type=email],input[type=password]{font-family:inherit;font-size:15px;border:.5px solid rgba(0,0,0,.12);border-radius:var(--radius-sm);padding:8px 12px;background:#fff;transition:all .2s var(--spring-smooth);box-shadow:inset 0 1px 2px #0000000a}textarea:focus,input:focus{outline:none;border-color:var(--macos-accent);box-shadow:inset 0 1px 2px #0000000a,0 0 0 3px #0071e326}table{width:100%;border-collapse:separate;border-spacing:0;border-radius:var(--radius-md);overflow:hidden;box-shadow:0 0 0 .5px #00000014}th{background:#00000008;font-weight:600;color:var(--macos-text);text-align:left;padding:12px 16px;border-bottom:.5px solid rgba(0,0,0,.08)}td{padding:12px 16px;border-bottom:.5px solid rgba(0,0,0,.06)}tr:last-child td{border-bottom:none}tr:hover td{background:#00000005}ul,ol{padding-left:1.5em;margin:1em 0}li{margin-bottom:.5em;position:relative}li::marker{color:var(--macos-accent)}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.animate-in{animation:scaleIn .5s var(--spring-smooth) backwards}.animate-in:nth-child(1){animation-delay:.05s}.animate-in:nth-child(2){animation-delay:.1s}.animate-in:nth-child(3){animation-delay:.15s}.animate-in:nth-child(4){animation-delay:.2s}.animate-in:nth-child(5){animation-delay:.25s}.animate-in:nth-child(6){animation-delay:.3s}.animate-in:nth-child(7){animation-delay:.35s}.animate-in:nth-child(8){animation-delay:.4s}@media(max-width:768px){body{cursor:auto}a,button,[role=button],input,textarea,select,summary,label,.article-image-zoomable{cursor:pointer}body{font-size:16px}h1{font-size:2rem}h2{font-size:1.6rem}main{padding:1.5rem 1rem 3rem}.app-fx-layer{display:none!important}.stage-intro{filter:none;transform:translateY(10px) scale(.995)}.macos-window{border-radius:var(--radius-md)}.macos-window:hover{transform:none;box-shadow:var(--window-shadow)}.window-content{padding:16px}body.mobile-no-dock main{padding-bottom:1.5rem!important}.glass-panel{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#fffffff2!important}:root[data-theme=dark] .glass-panel{background:#171f2ceb!important}:root:not([data-theme=light]) .glass-panel{background:#171f2ceb!important}}:root[data-performance-mode=low] body:before{animation:none;filter:blur(24px);opacity:.28}:root[data-performance-mode=low] body:after{animation:none;mix-blend-mode:normal;opacity:.02}:root[data-performance-mode=low] .animate-in,:root[data-performance-mode=low] .js body.is-ready .stage-intro{animation:none!important}:root[data-performance-mode=low] .stage-intro,:root[data-performance-mode=low] .js .stage-intro{opacity:1!important;transform:none!important;filter:none!important;will-change:auto}:root[data-performance-mode=low] .glass-panel{backdrop-filter:none!important;-webkit-backdrop-filter:none!important;background:#ffffffe6!important}:root[data-performance-mode=low][data-theme=dark] .glass-panel,:root[data-performance-mode=low]:not([data-theme=light]) .glass-panel{background:#18202ee6!important}:root[data-performance-mode=low] .menubar.is-scrolled .menubar-backdrop{backdrop-filter:saturate(125%) blur(10px)!important;-webkit-backdrop-filter:saturate(125%) blur(10px)!important;box-shadow:0 6px 16px #141b2b14!important}:root[data-performance-mode=low] .dock,:root[data-performance-mode=low] .dock-label,:root[data-performance-mode=low] .copyright{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}:root[data-performance-mode=low] .dock:after{opacity:.22;filter:blur(2px)}:root[data-performance-mode=low] .dock-item:hover .dock-icon{--dock-scale: 1 !important;--dock-lift: 0 !important;--dock-tilt: 0deg !important}:root[data-performance-mode=low] .dock-item:hover .dock-label{opacity:0!important}::selection{background:#ff69b44d;color:#2f2330}:root[data-theme=dark] ::selection{background:#ff69b45c;color:#f7fbff}:root:not([data-theme=light]) ::selection{background:#ff69b45c;color:#f7fbff}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#0003;border-radius:8px;border:2px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:#0006;background-clip:content-box}html{scrollbar-width:thin;scrollbar-color:rgba(0,0,0,.3) transparent}:focus-visible{outline:2px solid var(--macos-accent);outline-offset:2px}button:focus-visible,a:focus-visible{outline:2px solid var(--macos-accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.macos-window:hover{transform:none}body:before{animation:none}body:after,.stage-intro,.js body.is-ready .stage-intro{animation:none!important;transition:none!important}}:root[data-theme=dark]{color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){color-scheme:dark;--macos-bg: #12141a;--macos-bg-secondary: #1c2029;--macos-text: #f3f6ff;--macos-text-secondary: #a7b3c6;--macos-text-tertiary: #7d8ca3;--macos-accent: #54a7ff;--macos-accent-hover: #7abcff;--macos-accent-light: rgba(84, 167, 255, .2);--window-bg: rgba(19, 24, 34, .66);--window-bg-solid: #1b2230;--window-border: rgba(182, 209, 255, .16);--window-border-light: rgba(255, 255, 255, .22);--window-shadow: 0 0 0 1px rgba(3, 8, 15, .56), 0 8px 18px rgba(0, 0, 0, .42), 0 24px 50px rgba(0, 0, 0, .5);--window-shadow-hover: 0 0 0 1px rgba(3, 8, 15, .62), 0 11px 24px rgba(0, 0, 0, .48), 0 30px 62px rgba(0, 0, 0, .58);--glass-bg: rgba(18, 24, 34, .72);--glass-bg-dark: rgba(11, 14, 20, .8);--vibrancy-light: rgba(42, 53, 73, .58);--vibrancy-ultra-light: rgba(55, 66, 87, .46);--vibrancy-material: rgba(35, 44, 61, .78);--dock-bg: rgba(16, 22, 32, .42);--toolbar-bg: rgba(28, 34, 46, .84);--toolbar-border: rgba(190, 218, 255, .14)}}:root[data-theme=dark] blockquote{background:linear-gradient(180deg,#ffb80021,#ffb80014);border-left-color:#fcd34db8;color:#fef3c7;box-shadow:inset 0 0 0 .5px #fcd34d33}:root[data-theme=dark] textarea,:root[data-theme=dark] input[type=text],:root[data-theme=dark] input[type=email],:root[data-theme=dark] input[type=password]{background:#ffffff0d;border-color:#ffffff1a;color:#f3f6ff}:root[data-theme=dark] textarea:focus,:root[data-theme=dark] input:focus{background:#ffffff1a}:root[data-theme=dark] th{background:#ffffff14;border-bottom:.5px solid rgba(255,255,255,.1)}:root[data-theme=dark] td{border-bottom:.5px solid rgba(255,255,255,.08)}:root[data-theme=dark] tr:hover td{background:#ffffff0d}:root[data-theme=dark] p{color:#dbe7faeb}:root[data-theme=dark] h1,:root[data-theme=dark] h2,:root[data-theme=dark] h3,:root[data-theme=dark] h4{color:#f2f8ff}:root[data-theme=dark] .traffic-light.close{background:#ff453a}:root[data-theme=dark] .traffic-light.minimize{background:#ff9f0a}:root[data-theme=dark] .traffic-light.maximize{background:#30d158}:root[data-theme=dark] ::-webkit-scrollbar-thumb{background:#fff3}:root[data-theme=dark] ::-webkit-scrollbar-thumb:hover{background:#ffffff4d}
