.page-module__qrOZDW__page{background:var(--bg);color:var(--text-primary);min-height:100vh;font-family:var(--font-geist),sans-serif}.page-module__qrOZDW__edgeTop{pointer-events:none;z-index:40;--edge-dir:to bottom;height:64px;position:fixed;top:0;left:0;right:0}.page-module__qrOZDW__edgeBlurSoft,.page-module__qrOZDW__edgeBlurStrong,.page-module__qrOZDW__edgeTint{position:absolute;inset:0}.page-module__qrOZDW__edgeBlurSoft{-webkit-backdrop-filter:blur(2px);-webkit-mask-image:linear-gradient(var(--edge-dir),#000 0%,#000 30%,transparent 100%);mask-image:linear-gradient(var(--edge-dir),#000 0%,#000 30%,transparent 100%);-webkit-mask-image:linear-gradient(var(--edge-dir),#000 0%,#000 30%,transparent 100%)}.page-module__qrOZDW__edgeBlurStrong{-webkit-backdrop-filter:blur(6px);-webkit-mask-image:linear-gradient(var(--edge-dir),#000 0%,transparent 60%);mask-image:linear-gradient(var(--edge-dir),#000 0%,transparent 60%);-webkit-mask-image:linear-gradient(var(--edge-dir),#000 0%,transparent 60%)}.page-module__qrOZDW__edgeTint{background:linear-gradient(var(--edge-dir),var(--bg-fade-30),transparent)}.page-module__qrOZDW__nav{z-index:60;justify-content:space-between;align-items:center;padding:24px 48px;animation:.4s ease-out .1s backwards page-module__qrOZDW__navFade;display:flex;position:fixed;top:0;left:0;right:0}@keyframes page-module__qrOZDW__navFade{0%{opacity:0}}.page-module__qrOZDW__navBack{color:var(--text-secondary);align-items:center;gap:8px;padding:12px 0;font-size:13px;text-decoration:none;transition:color .2s;display:flex}.page-module__qrOZDW__navBack:hover{color:var(--text-primary)}.page-module__qrOZDW__themeToggle{color:var(--text-secondary);cursor:pointer;background:0 0;border:1px solid #80808033;border-radius:6px;justify-content:center;align-items:center;width:32px;height:32px;font-size:12px;transition:color .2s;display:flex;position:relative}.page-module__qrOZDW__themeToggle:after{content:"";position:absolute;inset:-6px}.page-module__qrOZDW__themeToggle:hover{color:var(--text-primary)}.page-module__qrOZDW__article{max-width:648px;margin:0 auto;padding:128px 24px 0}.page-module__qrOZDW__header{margin:0 0 24px}.page-module__qrOZDW__title{letter-spacing:-.03em;color:var(--text-primary);text-wrap:balance;--rise-y:48px;margin:0 0 10px;font-size:32px;font-weight:500;line-height:1.1;animation:.55s cubic-bezier(.22,1,.36,1) .1s backwards page-module__qrOZDW__riseIn}.page-module__qrOZDW__date{color:var(--text-secondary);--rise-y:28px;margin:0;font-size:14px;animation:.45s cubic-bezier(.22,1,.36,1) .16s backwards page-module__qrOZDW__riseIn}@keyframes page-module__qrOZDW__riseIn{0%{opacity:0;transform:translateY(var(--rise-y,24px))}}.page-module__qrOZDW__article>.page-module__qrOZDW__body{--rise-y:24px;animation:.45s cubic-bezier(.22,1,.36,1) .22s backwards page-module__qrOZDW__riseIn}.page-module__qrOZDW__body{color:var(--text-secondary);text-wrap:pretty;margin:0 0 14px;font-size:15px;line-height:1.65}:is([data-theme=light] .page-module__qrOZDW__body,[data-theme=light] .page-module__qrOZDW__date){color:#6a7070}.page-module__qrOZDW__section{--rise-y:24px;margin-top:72px;animation:.5s cubic-bezier(.22,1,.36,1) .3s backwards page-module__qrOZDW__riseIn}.page-module__qrOZDW__sectionTitle{letter-spacing:-.01em;color:var(--text-primary);text-wrap:balance;margin:0 0 16px;font-size:17px;font-weight:600}.page-module__qrOZDW__videoWrap{background:var(--project-box);border:1px solid #ffffff1a;border-radius:16px;margin-top:40px;overflow:hidden}[data-theme=light] .page-module__qrOZDW__videoWrap{border-color:#0000001a}.page-module__qrOZDW__video{object-fit:cover;width:100%;display:block}.page-module__qrOZDW__footer{border-top:1px solid #8080801a;justify-content:space-between;align-items:center;margin-top:96px;padding:48px 48px 80px;display:flex}.page-module__qrOZDW__footerBack{color:var(--text-secondary);font-size:13px;text-decoration:none;transition:color .2s}.page-module__qrOZDW__footerBack:hover{color:var(--text-primary)}.page-module__qrOZDW__footerLinks{gap:24px;display:flex}.page-module__qrOZDW__footerLink{color:var(--text-secondary);font-size:13px;text-decoration:none;transition:color .2s}.page-module__qrOZDW__footerLink:hover{color:var(--text-primary)}@media (max-width:640px){.page-module__qrOZDW__nav{padding:16px 24px}.page-module__qrOZDW__article{padding-top:104px}.page-module__qrOZDW__title{font-size:28px}.page-module__qrOZDW__section{margin-top:56px}.page-module__qrOZDW__videoWrap{border-radius:12px;margin-top:32px}.page-module__qrOZDW__edgeTop{height:56px}.page-module__qrOZDW__footer{flex-direction:column;align-items:flex-start;gap:16px;padding:32px 24px 60px}}.page-module__qrOZDW__link{color:var(--text-primary);text-underline-offset:3px;-webkit-text-decoration:underline #80808059;text-decoration:underline #80808059;transition:text-decoration-color .2s}.page-module__qrOZDW__link:hover{text-decoration-color:currentColor}.page-module__qrOZDW__kbd{font-family:var(--font-geist-mono),monospace;color:var(--text-primary);border:1px solid #80808040;border-radius:5px;padding:1px 6px;font-size:12px}.page-module__qrOZDW__install{background:#ffffff06;border-radius:14px;margin:28px 0 32px;padding:4px;box-shadow:0 0 0 1px #ffffff12}.page-module__qrOZDW__installInner{background:#0e0e10;border-radius:10px;box-shadow:0 0 0 1px #ffffff0f}.page-module__qrOZDW__tabs{gap:2px;padding:8px 8px 0;display:flex}.page-module__qrOZDW__tab{height:28px;font:500 12.5px/28px var(--font-geist),sans-serif;color:#ededed6b;cursor:pointer;background:0 0;border:0;border-radius:7px;padding:0 10px;transition:color .15s,background-color .15s}.page-module__qrOZDW__tab:hover{color:#edededcc}.page-module__qrOZDW__tabOn{color:#ededed;background:#ffffff12}.page-module__qrOZDW__lines{padding:6px 0}.page-module__qrOZDW__copyLine{align-items:center;gap:8px;padding:2px 6px 2px 16px;display:flex}.page-module__qrOZDW__copyCode{white-space:nowrap;scrollbar-width:none;min-width:0;font:400 12.5px/28px var(--font-geist-mono),monospace;color:#d4d4d4;flex:1;overflow-x:auto}.page-module__qrOZDW__copyHead{color:#7aa2ff}.page-module__qrOZDW__copyBtn{color:#ededed66;cursor:pointer;background:0 0;border:0;border-radius:8px;flex:none;place-items:center;width:32px;height:32px;transition:color .15s,background-color .15s;display:grid}.page-module__qrOZDW__copyBtn:hover{color:#ededed;background:#ffffff0f}.page-module__qrOZDW__copyBtn svg{width:14px;height:14px}.page-module__qrOZDW__copied{color:#46a758}.page-module__qrOZDW__installLinks{grid-template-columns:1fr 1fr;gap:4px;margin-top:4px;display:grid}.page-module__qrOZDW__installLink{color:#d4d4d4;background:#0e0e10;border-radius:10px;justify-content:center;align-items:center;gap:8px;height:40px;font-size:13.5px;font-weight:500;text-decoration:none;transition:background-color .15s,color .15s,transform .15s;display:inline-flex;box-shadow:0 0 0 1px #ffffff0f}.page-module__qrOZDW__installLink:hover{color:#ededed;background:#151518}.page-module__qrOZDW__installLink:active{transform:scale(.98)}.page-module__qrOZDW__installLink svg{width:15px;height:15px}[data-theme=light] .page-module__qrOZDW__install{background:#00000005;box-shadow:0 0 0 1px #00000012}.page-module__qrOZDW__code{font:400 12.5px/20px var(--font-geist-mono),monospace;scrollbar-width:none;background:#0e0e10;border-radius:12px;margin:24px 0 8px;padding:12px 0;position:relative;overflow-x:auto;box-shadow:0 0 0 1px #ffffff0f}.page-module__qrOZDW__codeRow{white-space:pre;padding-right:24px;display:flex}.page-module__qrOZDW__codeNum{text-align:right;color:#d4d4d440;-webkit-user-select:none;user-select:none;flex:none;width:40px;padding-right:16px}.page-module__qrOZDW__codeKey{color:#7aa2ff}.page-module__qrOZDW__codeVal{color:#d4d4d4}.page-module__qrOZDW__codeDim{color:#d4d4d473}.page-module__qrOZDW__figure{margin:40px 0 8px}.page-module__qrOZDW__figcaption{text-align:center;color:var(--text-secondary);opacity:.8;margin-top:16px;font-size:12.5px}.page-module__qrOZDW__notes{color:var(--text-secondary);border-top:1px solid #8080801f;flex-direction:column;gap:8px;margin-top:64px;padding-top:24px;font-size:12.5px;line-height:1.6;display:flex}@media (max-width:640px){.page-module__qrOZDW__figure{margin-top:32px}}
