:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;scroll-padding-top:96px}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial}}:root,.notion{--site-background:var(--lightningcss-light,#fafcfc)var(--lightningcss-dark,#282c34);--site-surface:var(--lightningcss-light,#fff)var(--lightningcss-dark,#2c313c);--site-ink:var(--lightningcss-light,#172b30)var(--lightningcss-dark,#d7dae0);--site-muted:var(--lightningcss-light,#52676b)var(--lightningcss-dark,#abb2bf);--site-line:var(--lightningcss-light,#dce6e5)var(--lightningcss-dark,#3e4451);--site-accent:var(--lightningcss-light,#087c73)var(--lightningcss-dark,#7ed3c8);--site-cover:var(--lightningcss-light,#127b72)var(--lightningcss-dark,#1e5953);--site-on-cover:#fff;--site-on-cover-body:#ecfaf6;--site-on-cover-quiet:#e4faf4;--site-on-cover-mark:#9fe6da;--site-tint:var(--lightningcss-light,#e7f2ef)var(--lightningcss-dark,#333842);--site-brand:var(--lightningcss-light,#087c73)var(--lightningcss-dark,#fff);--site-glow-from:var(--lightningcss-light,#0d9488)var(--lightningcss-dark,#2dd4bf);--site-glow-to:var(--lightningcss-light,#7c3aed)var(--lightningcss-dark,#a78bfa);--site-width:1200px;--notion-font:-apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;--notion-max-width:720px;--notion-corner-radius:14px;--fg-color:var(--site-ink);--fg-color-0:color-mix(in srgb, var(--site-ink) 5%, transparent);--fg-color-1:var(--site-line);--fg-color-2:var(--site-muted);--fg-color-3:var(--site-muted);--fg-color-4:var(--site-ink);--fg-color-5:var(--site-surface);--fg-color-6:var(--site-ink);--fg-color-7:var(--site-muted);--fg-color-icon:var(--site-muted);--bg-color:var(--site-background);--bg-color-0:var(--site-tint);--bg-color-1:var(--site-surface);--bg-color-2:var(--site-line);--select-color-0:var(--site-accent);--select-color-1:color-mix(in srgb, var(--site-accent) 24%, transparent);color:var(--site-ink);background:var(--site-background);font-family:var(--notion-font)}.notion{--notion-red:var(--lightningcss-light,#e03e3e)var(--lightningcss-dark,#ff7369);--notion-pink:var(--lightningcss-light,#ad1a72)var(--lightningcss-dark,#e255a1);--notion-blue:var(--lightningcss-light,#0b6e99)var(--lightningcss-dark,#529cca);--notion-purple:var(--lightningcss-light,#6940a5)var(--lightningcss-dark,#9a6dd7);--notion-teal:var(--lightningcss-light,#4d6461)var(--lightningcss-dark,#4dab9a);--notion-yellow:var(--lightningcss-light,#dfab01)var(--lightningcss-dark,#ffdc49);--notion-orange:var(--lightningcss-light,#d9730d)var(--lightningcss-dark,#ffa344);--notion-brown:var(--lightningcss-light,#64473a)var(--lightningcss-dark,#937264);--notion-gray:var(--lightningcss-light,#9b9a97)var(--lightningcss-dark,#979a9bf2);--notion-red_background:var(--lightningcss-light,#fbe4e4)var(--lightningcss-dark,#594141);--notion-pink_background:var(--lightningcss-light,#f4dfeb)var(--lightningcss-dark,#533b4c);--notion-blue_background:var(--lightningcss-light,#ddebf1)var(--lightningcss-dark,#364954);--notion-purple_background:var(--lightningcss-light,#eae4f2)var(--lightningcss-dark,#443f57);--notion-teal_background:var(--lightningcss-light,#ddedea)var(--lightningcss-dark,#354c4b);--notion-yellow_background:var(--lightningcss-light,#fbf3db)var(--lightningcss-dark,#59563b);--notion-orange_background:var(--lightningcss-light,#faebdd)var(--lightningcss-dark,#594a3a);--notion-brown_background:var(--lightningcss-light,#e9e5e3)var(--lightningcss-dark,#434040);--notion-gray_background:var(--lightningcss-light,#ebeced)var(--lightningcss-dark,#454b4e);--notion-red_background_co:var(--lightningcss-light,#fbe4e44d)var(--lightningcss-dark,#5941414d);--notion-pink_background_co:var(--lightningcss-light,#f4dfeb4d)var(--lightningcss-dark,#533b4c4d);--notion-blue_background_co:var(--lightningcss-light,#ddebf14d)var(--lightningcss-dark,#78a2bb4d);--notion-purple_background_co:var(--lightningcss-light,#eae4f24d)var(--lightningcss-dark,#443f574d);--notion-teal_background_co:var(--lightningcss-light,#ddedea4d)var(--lightningcss-dark,#354c4b4d);--notion-yellow_background_co:var(--lightningcss-light,#fbf3db4d)var(--lightningcss-dark,#59563b4d);--notion-orange_background_co:var(--lightningcss-light,#faebdd4d)var(--lightningcss-dark,#594a3a4d);--notion-brown_background_co:var(--lightningcss-light,#e9e5e34d)var(--lightningcss-dark,#4340404d);--notion-gray_background_co:var(--lightningcss-light,#ebeced4d)var(--lightningcss-dark,#454b4e4d);--notion-item-text-blue:var(--lightningcss-light,#183347)var(--lightningcss-dark,#9bc4e2);--notion-item-blue:var(--lightningcss-light,#d3e5ef)var(--lightningcss-dark,color-mix(in srgb, var(--notion-item-text-blue) 12%, var(--site-background)));--notion-item-text-orange:var(--lightningcss-light,#49290e)var(--lightningcss-dark,#dfb087);--notion-item-orange:var(--lightningcss-light,#fadec9)var(--lightningcss-dark,color-mix(in srgb, var(--notion-item-text-orange) 12%, var(--site-background)));--notion-item-text-green:var(--lightningcss-light,#1c3829)var(--lightningcss-dark,#a2c6a6);--notion-item-green:var(--lightningcss-light,#dbeddb)var(--lightningcss-dark,color-mix(in srgb, var(--notion-item-text-green) 12%, var(--site-background)));--notion-item-text-pink:var(--lightningcss-light,#4c2337)var(--lightningcss-dark,#d6a5bf);--notion-item-pink:var(--lightningcss-light,#f5e0e9)var(--lightningcss-dark,color-mix(in srgb, var(--notion-item-text-pink) 12%, var(--site-background)));--notion-item-text-brown:var(--lightningcss-light,#442a1e)var(--lightningcss-dark,#cbb2a0);--notion-item-brown:var(--lightningcss-light,#eee0da)var(--lightningcss-dark,color-mix(in srgb, var(--notion-item-text-brown) 12%, var(--site-background)));--notion-item-text-red:var(--lightningcss-light,#5d1715)var(--lightningcss-dark,#dfa3a0);--notion-item-red:var(--lightningcss-light,#ffe2dd)var(--lightningcss-dark,color-mix(in srgb, var(--notion-item-text-red) 12%, var(--site-background)));--notion-item-text-yellow:var(--lightningcss-light,#402c1b)var(--lightningcss-dark,#d9c38c);--notion-item-yellow:var(--lightningcss-light,#fdecc8)var(--lightningcss-dark,color-mix(in srgb, var(--notion-item-text-yellow) 12%, var(--site-background)));--notion-item-text-default:var(--lightningcss-light,#32302c)var(--lightningcss-dark,#b6bdc9);--notion-item-default:var(--lightningcss-light,#e3e2e080)var(--lightningcss-dark,color-mix(in srgb, var(--notion-item-text-default) 12%, var(--site-background)));--notion-item-text-purple:var(--lightningcss-light,#412454)var(--lightningcss-dark,#beaee0);--notion-item-purple:var(--lightningcss-light,#e8deee)var(--lightningcss-dark,color-mix(in srgb, var(--notion-item-text-purple) 12%, var(--site-background)));--notion-item-text-gray:var(--lightningcss-light,#32302c)var(--lightningcss-dark,#bec2ca);--notion-item-gray:var(--lightningcss-light,#e3e2e0)var(--lightningcss-dark,color-mix(in srgb, var(--notion-item-text-gray) 12%, var(--site-background)))}.notion :is(.notion-property-select-item,.notion-property-multi_select-item,.notion-property-status-item){box-shadow:inset 0 0 0 1px color-mix(in srgb, currentColor 18%, transparent)}.notion{--highlight-padding:0 .5rem;--highlight-margin:0 -.5rem 0 -.25rem;--highlight-radius:.5rem .5rem .5rem .125rem}.notion :is(.notion-red_background,.notion-pink_background,.notion-blue_background,.notion-purple_background,.notion-teal_background,.notion-yellow_background,.notion-orange_background,.notion-brown_background,.notion-gray_background){--highlight-start:#fff697;--highlight-end:#fdf59d;padding:var(--highlight-padding);margin:var(--highlight-margin);border-radius:var(--highlight-radius);-webkit-box-decoration-break:clone;box-decoration-break:clone;background-image:var(--highlight-image,linear-gradient(119deg, var(--bg-color), var(--highlight-start) 10.5%, var(--highlight-end) 85.29%, var(--bg-color)))}.notion :is(.notion-purple_background,.notion-pink_background){--highlight-start:#f5b8d1;--highlight-end:#f9bcd3}.notion .notion-blue_background{--highlight-start:#adedfc;--highlight-end:#adebfd}.notion .notion-gray_background{--highlight-start:#dfe1e5;--highlight-end:#e4e6e9}.notion :is(.notion-red_background,.notion-orange_background){--highlight-start:#f5c4ff;--highlight-end:#e7a8fc}.notion .notion-teal_background{--highlight-start:#d4eabc;--highlight-end:#d2eabc}.notion .notion-brown_background{--highlight-start:#96b8ec;--highlight-end:#a6c3f0}:root[data-theme=dark] .notion{--highlight-image:none;--highlight-padding:0;--highlight-margin:0;--highlight-radius:0}@media (prefers-color-scheme:dark){:root:not([data-theme]) .notion{--highlight-image:none;--highlight-padding:0;--highlight-margin:0;--highlight-radius:0}}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}:root[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}body{overflow-wrap:anywhere;flex-direction:column;min-height:100svh;margin:0;display:flex}a{color:inherit;text-underline-offset:4px}a:hover{color:var(--site-accent)}:focus-visible,.notion :focus-visible{outline:3px solid var(--site-accent);outline-offset:4px}.skip-link{color:var(--site-ink);background:var(--site-surface);z-index:300;padding:12px 16px;position:absolute;top:8px;left:16px;transform:translateY(-180%)}.skip-link:focus{transform:translateY(0)}.site-header-inner,.site-footer{width:100%;max-width:var(--site-width);margin-inline:auto;padding:18px 40px}.site-header{z-index:200;background:var(--lightningcss-light,color-mix(in srgb, var(--site-background) 88%, transparent))var(--lightningcss-dark,#21252b);-webkit-backdrop-filter:saturate(180%)blur(18px);backdrop-filter:saturate(180%)blur(18px);width:100%;position:sticky;top:0}.site-header-inner{flex-wrap:wrap;align-items:center;gap:10px 22px;display:flex}.site-name,.footer-name{align-items:center;gap:8px;min-height:44px;text-decoration:none;display:inline-flex}.logo-symbol,.logo-wordmark{color:var(--site-brand);flex-shrink:0;display:block}.notion-page-icon-hero .logo-symbol{width:100%;height:100%}.site-navigation{align-items:center;gap:4px;margin-left:auto;display:flex}.site-navigation a,.mobile-menu-dialog a{min-height:36px;color:var(--site-muted);border-radius:999px;align-items:center;padding-inline:12px;font-size:14px;text-decoration:none;display:inline-flex}.site-navigation a:hover,.mobile-menu-dialog a:hover{color:var(--site-ink);background:color-mix(in srgb, var(--site-tint) 60%, transparent)}.site-navigation a[aria-current],.mobile-menu-dialog a[aria-current]{color:var(--site-ink);background:var(--site-tint)}.site-navigation .navigation-cta,.mobile-menu-dialog .navigation-cta{color:var(--lightningcss-light,var(--site-surface))var(--lightningcss-dark,var(--site-accent));background:var(--lightningcss-light,var(--site-accent))var(--lightningcss-dark,color-mix(in srgb, var(--site-accent) 14%, transparent));margin-left:8px;font-weight:600}.site-navigation .navigation-cta:is(:hover,[aria-current=page]),.mobile-menu-dialog .navigation-cta:is(:hover,[aria-current=page]){color:var(--lightningcss-light,var(--site-surface))var(--lightningcss-dark,var(--site-accent));background:var(--lightningcss-light,color-mix(in srgb, var(--site-accent) 85%, var(--site-ink)))var(--lightningcss-dark,color-mix(in srgb, var(--site-accent) 24%, transparent))}.icon-button{width:44px;height:44px;color:inherit;background:0 0;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;padding:0;text-decoration:none;display:inline-flex}.icon-button:hover{background:var(--site-tint)}.theme-toggle,.mobile-menu-trigger{border-color:#0000}.mobile-menu-trigger{display:none}.site-actions{align-items:center;gap:6px;display:flex}.site-dialog.mobile-menu-dialog{align-content:start;justify-items:end;padding:12px}.mobile-menu-dialog .dialog-content{max-width:320px;padding:60px 12px 12px}.mobile-menu-dialog .dialog-close{color:var(--site-muted);background:0 0;border-color:#0000}.mobile-menu-dialog .dialog-close:hover{color:var(--site-ink);background:var(--site-tint)}.mobile-menu-dialog nav{flex-direction:column;gap:4px;display:flex}.mobile-menu-dialog a{border-radius:12px;min-height:48px;padding-inline:16px;font-size:16px}.mobile-menu-dialog .navigation-cta{justify-content:center;margin:8px 0 0}@media (max-width:1024px){.site-navigation{display:none}.site-actions{margin-left:auto}.mobile-menu-trigger{display:inline-flex}}@media (prefers-reduced-motion:no-preference){.mobile-menu-dialog .dialog-content{animation:.18s ease-out menu-enter}@keyframes menu-enter{0%{opacity:0;transform:translateY(-8px)scale(.98)}}}.theme-sun{display:none}:root[data-theme=dark] .theme-sun{display:block}:root[data-theme=dark] .theme-moon{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme]) .theme-sun{display:block}:root:not([data-theme]) .theme-moon{display:none}}.copy-button,.search-form button{justify-content:center;align-items:center;gap:8px;display:inline-flex}.copy-button{z-index:1;color:var(--lightningcss-light,#52676b)var(--lightningcss-dark,#abb2bf);cursor:pointer;background:var(--lightningcss-light,#f9fafb)var(--lightningcss-dark,#21252b);border:1px solid #0000;border-radius:6px;width:32px;height:32px;padding:0;position:absolute;top:8px;right:8px}.copy-button:hover,.copy-button:focus-visible{border-color:var(--site-line);color:var(--site-ink)}.copy-button[data-status=copied]{color:var(--lightningcss-light,#28783c)var(--lightningcss-dark,#98c379)}.copy-button[data-status=failed]{color:var(--lightningcss-light,#b42336)var(--lightningcss-dark,#e06c75)}.copy-button span{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}@media (hover:hover) and (pointer:fine){.notion-code-container .copy-button[data-status=idle]{opacity:0}.notion-code-container:hover .copy-button,.notion-code-container:focus-within .copy-button{opacity:1}}.medium-zoom-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.medium-zoom-image:focus-visible{outline:2px solid var(--site-accent);outline-offset:4px}.site-dialog{width:100vw;max-width:none;height:100svh;max-height:none;color:var(--site-ink);background:0 0;border:0;margin:0;padding:24px}.site-dialog[open]{place-items:center;display:grid}.site-dialog::backdrop{-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);background:#0710148c}.dialog-content{border:1px solid var(--site-line);background:var(--site-surface);border-radius:18px;width:100%;padding:32px;position:relative;box-shadow:0 24px 80px #0005}.dialog-close{background:var(--site-surface);position:absolute;top:12px;right:12px}.search-dialog{align-content:start;padding-top:min(14vh,120px)}.search-dialog .dialog-content{border-radius:16px;max-width:680px;padding:0;overflow:hidden}.search-dialog .dialog-close{color:var(--site-muted);background:0 0;border-color:#0000;top:10px;right:10px}.search-dialog .dialog-close:hover{color:var(--site-ink);background:var(--site-tint)}.search-palette{flex-direction:column;max-height:min(620px,100svh - min(14vh,120px) - 24px);display:flex}.search-palette-field{border-bottom:1px solid var(--site-line);color:var(--site-muted);align-items:center;gap:12px;padding:8px 64px 8px 20px;display:flex;position:relative}.search-palette-field input{min-width:0;height:48px;color:var(--site-ink);font:inherit;background:0 0;border:0;outline:0;flex:1;padding:0;font-size:18px}.search-palette-field input::placeholder{color:var(--site-muted);opacity:.8}.search-palette-field input::-webkit-search-cancel-button{display:none}.search-palette-field:after{content:"";background:linear-gradient(90deg, transparent, var(--site-accent), transparent);opacity:0;width:100%;height:2px;transition:opacity .2s;position:absolute;bottom:-1px;left:0}.search-palette[data-loading] .search-palette-field:after{opacity:1}.search-palette kbd{border:1px solid var(--site-line);min-width:22px;height:22px;color:var(--site-muted);background:var(--site-background);border-radius:6px;place-items:center;padding:0 6px;font:11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;display:inline-grid}.search-palette-caption{color:var(--site-muted);letter-spacing:.08em;text-transform:uppercase;margin:14px 20px 0;font-size:11px;font-weight:600}.search-palette-list{overscroll-behavior:contain;padding:8px;scroll-padding:8px;overflow-y:auto}.search-palette-list:empty{display:none}.search-palette-option{min-height:52px;color:var(--site-ink);border-radius:10px;grid-template-columns:96px minmax(0,1fr) 16px;align-items:center;gap:16px;padding:10px 12px;text-decoration:none;display:grid}.search-palette-option[aria-selected=true]{background:var(--site-tint)}.search-palette-label{color:var(--site-muted);font-variant-numeric:tabular-nums;white-space:nowrap;font-size:12px}.search-palette-option[aria-selected=true] .search-palette-label,.search-palette-option[aria-selected=true] .search-palette-enter{color:var(--site-accent);opacity:1}.search-palette-text{gap:2px;min-width:0;display:grid}.search-palette-title,.search-palette-snippet{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.search-palette-title{font-size:15px;font-weight:500}.search-palette-snippet{color:var(--site-muted);font-size:13px}.search-palette-enter{opacity:0}.search-palette mark,.search-results mark{color:var(--site-accent);background:0 0;font-weight:650}.search-palette-empty{color:var(--site-muted);text-align:center;margin:0;padding:32px 20px;font-size:14px}.search-palette-footer{border-top:1px solid var(--site-line);color:var(--site-muted);flex-wrap:wrap;align-items:center;gap:8px 16px;padding:10px 16px;font-size:12px;display:flex}.search-palette-keys{align-items:center;gap:6px;display:flex}.search-palette-footer output{margin-left:auto}.search-palette-footer a{color:var(--site-accent)}@media (prefers-reduced-motion:no-preference){.search-palette[data-loading] .search-palette-field:after{animation:1s ease-in-out infinite search-loading}}@keyframes search-loading{0%{transform:translate(-100%)}to{transform:translate(100%)}}@media (hover:none),(max-width:580px){.search-palette-keys,.search-palette-field kbd{display:none}}@media (max-width:580px){.search-dialog{padding-top:8px}.search-palette{max-height:calc(100svh - 16px)}.search-palette-option{grid-template-columns:minmax(0,1fr);gap:2px}.search-palette-enter{display:none}.search-palette-title{white-space:normal;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box}.site-dialog{padding-inline:12px}.dialog-content{padding:28px 20px}}.site-content{flex:1;width:100%;min-width:0}.home-hero{cursor:default;width:calc(100% - 48px);color:var(--site-on-cover);background:var(--site-cover);border-radius:18px;align-items:center;gap:36px;margin:24px 24px 32px;padding:42px 54px 50px;display:flex;position:relative}.home-hero-content{max-width:520px}.home-hero-label{color:var(--site-on-cover-quiet);letter-spacing:1.5px;text-transform:uppercase;margin-bottom:10px;font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace;display:block}.home-hero h1{align-items:flex-end;gap:.08em;margin:0;font-size:clamp(40px,5vw,58px);line-height:1;display:flex}.home-hero-dot{background:var(--site-on-cover-mark);border-top-right-radius:.03em;flex-shrink:0;width:.24em;height:.24em;margin-bottom:.08em}.home-hero h1 .logo-wordmark{width:4.5em;height:auto;color:var(--site-on-cover)}.home-hero p{max-width:460px;color:var(--site-on-cover-body);margin:16px 0 0;font-size:17px;line-height:1.65}.home-hero .home-hero-logo{color:var(--site-on-cover);opacity:.92;margin-left:auto}.home-hero-domain{color:var(--site-on-cover-quiet);letter-spacing:1px;font:12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;position:absolute;bottom:18px;right:24px}.site-footer{border-top:1px solid var(--site-line);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:18px 24px;padding-block:24px;display:flex}.footer-status{color:var(--site-muted);margin:6px 0 0;font-size:.8rem;font-style:italic;line-height:1.6}.footer-links{flex-wrap:wrap;gap:4px;display:flex}.footer-links .icon-button{color:var(--site-muted);transition:color .15s,background .15s}.footer-links .icon-button:hover{color:var(--site-accent)}.page-state{max-width:760px;margin-inline:auto;padding:64px 24px;line-height:1.6;display:block}.sr-only{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.page-loading{min-height:100svh;animation:.2s .15s both page-loading-in}.page-loading-bar{z-index:100;background:linear-gradient(90deg, var(--site-glow-from), var(--site-glow-to));transform-origin:0;height:2px;position:fixed;inset:0 0 auto;transform:scaleX(.3)}.skeleton{background:linear-gradient(90deg, transparent, color-mix(in srgb, var(--site-surface) 70%, transparent), transparent) var(--site-tint);background-repeat:no-repeat;background-size:200% 100%;border-radius:8px;height:1em;display:block}.skeleton-cover{width:calc(100% - 48px);max-width:calc(var(--site-width) - 48px);background:var(--lightningcss-light,var(--site-cover))var(--lightningcss-dark,color-mix(in srgb, var(--site-cover) 45%, var(--site-background)));border-radius:18px;height:170px;margin:24px auto 0;position:relative;overflow:hidden}.page-loading-article .skeleton-cover{max-width:var(--site-width);border-radius:24px;height:clamp(200px,20vw,333px);margin-top:0}.entry-collection .notion-collection-card-cover:has(img):not([data-loaded]){background:var(--lightningcss-light,var(--site-cover))var(--lightningcss-dark,color-mix(in srgb, var(--site-cover) 45%, var(--site-background)))}:is(.skeleton-cover,.entry-collection .notion-collection-card-cover:has(img):not([data-loaded])):after{content:"";background-image:linear-gradient(90deg,#ffffff0b 1px,#0000 1px),linear-gradient(#ffffff0b 1px,#0000 1px);background-size:14px 14px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000 30%,#0000 100%);mask-image:linear-gradient(90deg,#000 30%,#0000 100%)}:is(.skeleton-cover,.entry-collection .notion-collection-card-cover:has(img):not([data-loaded])):before{content:"";opacity:0;background-image:linear-gradient(90deg,#ffffff24 1px,#0000 1px),linear-gradient(#ffffff24 1px,#0000 1px);background-size:14px 14px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#0000,#000,#0000);mask-image:linear-gradient(90deg,#0000,#000,#0000);-webkit-mask-position:-70% 0;mask-position:-70% 0;-webkit-mask-size:40% 100%;mask-size:40% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.page-loading-body{max-width:calc(var(--notion-max-width) + 48px);margin:56px auto 64px;padding-inline:24px}.page-loading-article .page-loading-body{max-width:calc(var(--site-width) - 12px);margin-top:48px}.skeleton-title{width:min(240px,60%);height:2.2em;margin-bottom:36px}.page-loading-article .skeleton-title{width:min(420px,75%);margin-bottom:28px}.skeleton-meta{border-bottom:1px solid var(--site-line);gap:16px;margin-bottom:48px;padding-bottom:40px;display:flex}.skeleton-icon{width:48px;height:48px}.skeleton-meta-lines{gap:10px;display:grid}.skeleton-tags{width:130px}.skeleton-date{width:90px}.skeleton-columns{gap:48px;display:flex}.skeleton-text,.skeleton-toc{gap:14px;display:grid}.skeleton-text{flex:0 1 var(--notion-max-width)}.skeleton-toc{flex:1;align-content:start;max-width:280px}.skeleton-line-short{width:55%}@media (max-width:959px){.skeleton-toc{display:none}}@media (max-width:580px){.skeleton-cover{border-radius:14px;width:calc(100% - 24px);height:126px;margin-top:14px}.page-loading-article .skeleton-cover{border-radius:16px;height:180px;margin-top:0}.page-loading-body{margin-top:32px;padding-inline:22px}}@media (prefers-reduced-motion:no-preference){.page-loading-bar{animation:8s cubic-bezier(.1,.6,.2,1) forwards page-loading-bar}.skeleton{animation:1.5s ease-in-out infinite skeleton-shimmer}:is(.skeleton-cover,.entry-collection .notion-collection-card-cover:has(img):not([data-loaded])):before{opacity:1;animation:2.4s ease-in-out .6s infinite skeleton-grid-sweep}:is(.skeleton-cover,.entry-collection .notion-collection-card-cover:has(img):not([data-loaded])):after{animation:1.4s cubic-bezier(.22,1,.36,1) .2s both home-hero-grid}}@keyframes page-loading-in{0%{opacity:0}}@keyframes page-loading-bar{0%{transform:scaleX(.05)}to{transform:scaleX(.9)}}@keyframes skeleton-shimmer{0%{background-position:150% 0}to{background-position:-50% 0}}.notion-page{line-height:1.65}.notion-quote{line-height:1.5}.notion .notion-h1{font-size:1.625em}.notion .notion-h2{font-size:1.375em}.notion-app{min-height:0}.notion-frame{padding:0}.entry-listing{width:min(900px,100% - 40px);margin:56px auto 80px}.entry-listing-header{border-bottom:1px solid var(--site-line);grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:16px 40px;margin-bottom:28px;padding-bottom:32px;display:grid}.entry-listing-header h1{letter-spacing:-.025em;grid-column:1/-1;margin:0;font-size:clamp(34px,5vw,46px);line-height:1.1}.entry-listing-header p{max-width:54ch;color:var(--site-muted);text-wrap:pretty;margin:0;font-size:17px;line-height:1.6}.entry-listing-stats{gap:clamp(16px,3vw,32px);margin:0;display:flex}.entry-listing-stats div{flex-direction:column-reverse;gap:2px;display:flex}.entry-listing-stats dd{font-variant-numeric:tabular-nums;margin:0;font-size:26px;font-weight:650;line-height:1.2}.entry-listing-stats dt{color:var(--site-muted);letter-spacing:.06em;text-transform:uppercase;white-space:nowrap;font-size:12px;font-weight:500}.entry-filters{gap:16px;display:grid}.entry-filter-row{gap:12px;display:flex}.entry-search-field,.entry-select-field{min-width:0;position:relative}.entry-search-field{flex:1}.entry-select-field{flex:0 0 220px}.entry-filter-row svg{color:var(--site-muted);pointer-events:none;transition:color .16s;position:absolute;top:50%;transform:translateY(-50%)}.entry-search-field svg{width:18px;height:18px;left:14px}.entry-select-field svg{width:16px;height:16px;right:12px}.entry-filter-row :is(input,select){appearance:none;width:100%;height:46px;color:var(--site-ink);background:var(--site-surface);border:1px solid var(--site-line);font:inherit;border-radius:12px;padding:10px 14px;font-size:15px;transition:border-color .16s,box-shadow .16s}.entry-filter-row input{padding-left:42px}.entry-filter-row select{cursor:pointer;padding-right:36px}.entry-filter-row input::placeholder{color:var(--site-muted);opacity:1}.entry-filter-row :is(input,select):hover{border-color:color-mix(in srgb, var(--site-muted) 50%, var(--site-line))}.entry-filter-row :is(input,select):focus{border-color:var(--site-accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--site-accent) 18%, transparent);outline:2px solid #0000}.entry-filter-row :is(.entry-search-field,.entry-select-field):focus-within svg{color:var(--site-accent)}.entry-topics{border:0;flex-wrap:wrap;gap:8px;min-width:0;margin:0;padding:0;display:flex}.entry-topics button{border:1px solid var(--site-line);background:var(--site-surface);min-height:34px;color:var(--site-ink);font:inherit;cursor:pointer;border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 14px;font-size:13px;font-weight:500;transition:border-color .16s,background-color .16s,color .16s;display:inline-flex}.entry-topics button span{color:var(--site-muted);font-variant-numeric:tabular-nums;font-size:12px}.entry-topics button:hover{border-color:var(--site-accent)}.entry-topics button[aria-pressed=true]{border-color:var(--site-accent);background:var(--site-accent);color:var(--site-background)}.entry-topics button[aria-pressed=true] span{color:inherit;opacity:.8}.entry-results{scroll-margin-top:24px}.entry-results-bar{min-height:32px;color:var(--site-muted);justify-content:space-between;align-items:center;gap:16px;margin-block:28px 16px;font-size:14px;display:flex}.entry-results-bar output{scroll-margin-top:24px}.entry-clear{min-height:32px;color:var(--site-accent);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:999px;flex-shrink:0;align-items:center;gap:6px;padding:0 12px;font-size:14px;font-weight:500;display:inline-flex}.entry-clear:hover{border-color:var(--site-line)}.entry-clear svg{width:14px;height:14px}.entry-empty{border:1px dashed var(--site-line);border-radius:var(--notion-corner-radius);color:var(--site-muted);text-align:center;justify-items:center;gap:12px;padding:56px 24px;display:grid}.entry-empty svg{width:28px;height:28px}.entry-empty p{margin:0}.entry-pagination{color:var(--site-muted);flex-wrap:wrap;justify-content:center;align-items:center;gap:6px;margin-top:48px;font-size:14px;display:flex}.entry-pagination :is(button,a){border:1px solid var(--site-line);background:var(--site-surface);min-width:40px;height:40px;color:var(--site-ink);font:inherit;font-variant-numeric:tabular-nums;cursor:pointer;border-radius:10px;place-items:center;padding:0 10px;font-weight:500;text-decoration:none;transition:border-color .16s,color .16s;display:inline-grid}.entry-pagination :is(button,a) svg{width:18px;height:18px}.entry-pagination span{text-align:center;min-width:24px}.entry-pagination a:hover{border-color:var(--site-accent);color:var(--site-accent)}.entry-pagination a[aria-current=page]{border-color:var(--site-accent);background:var(--site-accent);color:var(--site-background)}.entry-pagination button:disabled{opacity:.4;cursor:default}:is(.entry-topics,.entry-clear,.entry-pagination) :is(button,a):focus-visible,.entry-clear:focus-visible{outline:2px solid var(--site-accent);outline-offset:2px}@media (max-width:600px){.entry-listing{margin-top:40px}.entry-listing-header{grid-template-columns:minmax(0,1fr);padding-bottom:24px}.entry-listing-header p{font-size:16px}.entry-filter-row{flex-direction:column}.entry-select-field{flex-basis:auto}.entry-topics{scrollbar-width:none;flex-wrap:nowrap;margin-inline:-20px;padding-inline:20px;overflow-x:auto}}.entry-tags{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.entry-tags li{background:var(--site-tint);border-radius:5px;padding:3px 8px;font-size:12px}.entry-share{border-top:1px solid var(--site-line);width:100%;color:var(--site-muted);flex-wrap:wrap;grid-column:1/-1;justify-content:space-between;align-items:center;gap:12px 24px;margin-top:48px;padding-top:20px;font-size:14px;display:flex}.entry-share-links{align-items:center;gap:4px;display:flex}.entry-share-links a,.entry-share .copy-button,.entry-share-native{height:36px;color:var(--site-muted);font:inherit;cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;justify-content:center;align-items:center;gap:8px;display:inline-flex;position:static}.entry-share-links a{width:36px}.entry-share .copy-button,.entry-share-native{border-color:var(--site-line);width:auto;color:var(--site-ink);padding-inline:12px}.entry-share .copy-button span{clip-path:none;white-space:nowrap;width:auto;height:auto;position:static;overflow:visible}.entry-share .copy-button[data-status=copied]{color:var(--site-accent)}.entry-share-links a:hover,.entry-share-links a:focus-visible,.entry-share .copy-button:hover,.entry-share .copy-button:focus-visible,.entry-share-native:hover,.entry-share-native:focus-visible{color:var(--site-ink);background:var(--site-tint)}.project-status{background:var(--site-tint);width:fit-content;color:var(--site-muted);border-radius:999px;justify-self:start;padding:2px 8px;font-size:12px;font-weight:600}.project-status[data-status=Released]{color:var(--site-accent)}.project-details{border-bottom:1px solid var(--site-line);gap:20px;width:100%;margin-bottom:24px;padding-bottom:24px;display:grid}.project-page .notion-page>.notion-page-icon-hero{display:none}.project-meta:has(.project-icon){grid-template-columns:48px minmax(0,1fr);align-items:start;column-gap:16px;display:grid}.project-meta .project-icon{width:48px;height:48px}.project-details .project-meta .project-icon .notion-page-icon-hero{width:100%;height:100%;margin:0;position:relative;inset:auto}.project-icon img{object-fit:contain;border-radius:0}@media (max-width:580px){.project-meta:has(.project-icon){grid-template-columns:36px minmax(0,1fr);column-gap:12px}.project-meta .project-icon{width:36px;height:36px}}.project-summary{color:var(--site-muted);margin:0;font-size:18px;line-height:1.6}.project-details dl{grid-template-columns:max-content 1fr;gap:10px 24px;margin:0;font-size:14px;display:grid}.project-details dl>div{display:contents}.project-details dt{color:var(--site-muted)}.project-details dd{margin:0}.project-specifications{border:1px solid var(--site-line);background:var(--site-surface);border-radius:10px}.project-specifications summary{min-height:48px;color:var(--site-muted);cursor:pointer;border-radius:10px;justify-content:space-between;align-items:center;gap:12px;padding:12px 16px;font-size:14px;font-weight:500;list-style:none;display:flex}.project-specifications summary::-webkit-details-marker{display:none}.project-specifications summary:hover{color:var(--site-ink)}.project-specifications[open] summary svg{transform:rotate(180deg)}.project-specifications dl{padding:4px 16px 16px}.project-links{flex-wrap:wrap;gap:10px;display:flex}.project-links a{color:var(--site-ink);background:var(--site-tint);border-radius:8px;align-items:center;gap:8px;padding:7px 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.project-links a:hover{background:color-mix(in srgb, var(--site-tint) 80%, var(--site-ink))}.project-links a:first-child{color:var(--lightningcss-light,var(--site-surface))var(--lightningcss-dark,var(--site-accent));background:var(--lightningcss-light,var(--site-accent))var(--lightningcss-dark,color-mix(in srgb, var(--site-accent) 14%, transparent))}.project-links a:first-child:hover{background:var(--lightningcss-light,color-mix(in srgb, var(--site-accent) 85%, var(--site-ink)))var(--lightningcss-dark,color-mix(in srgb, var(--site-accent) 24%, transparent))}.collection-view-all{min-height:40px;color:var(--site-muted);flex-shrink:0;align-items:center;gap:8px;font-size:14px;font-weight:500;text-decoration:none;transition:border-color .16s,color .16s;display:inline-flex}.collection-view-all:hover{color:var(--site-accent)}.collection-view-all:focus-visible{outline:2px solid var(--site-accent);outline-offset:2px}.notion-header-anchor{top:0}.home-page{width:100%;max-width:var(--site-width);padding:0 0 40px}.home-page>.notion-text,.home-page>.notion-h,.home-page>.notion-row,.home-page>.notion-collection-section,.home-page>.notion-page-link{width:calc(100% - 108px);min-width:0;max-width:900px;margin-inline:auto}.home-page>.notion-text{padding:5px 0}.home-page>.notion-blank{height:14px;min-height:14px;padding:0}.home-page>.notion-collection-section{margin-top:32px;margin-bottom:20px}.home-collection .notion-collection-header{display:none}.home-collection-header{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.home-collection-header h2{letter-spacing:-.6px;min-width:0;margin:0;font-size:20px;line-height:1.4}.home-collection-heading{align-items:center;gap:8px;min-width:0;display:flex}.home-collection-heading>div{flex-shrink:0;display:flex}.home-collection-header .notion-page-icon-inline{flex-shrink:0;width:20px;height:20px;margin:0}:is(.home-page,.entry-listing-gallery) .notion-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(min(100%,max(240px,33.3333% - 10.6667px)),1fr))}:is(.home-page,.entry-listing-gallery) .notion-gallery-grid .notion-collection-card{border:1px solid var(--site-line);box-shadow:none}:is(.home-page,.entry-listing-gallery) .notion-gallery-grid .notion-collection-card:hover{color:var(--site-ink)}:is(.home-page,.entry-listing-gallery) .notion-gallery-grid .notion-page-icon-inline{vertical-align:-4px;width:20px;height:20px;margin-right:8px;display:inline-block}:is(.home-page,.entry-listing-gallery) .notion-gallery-grid .notion-page-title-icon{object-fit:contain;border-radius:0;width:100%;height:100%;max-height:none}:is(.home-page,.entry-listing-gallery) .notion-gallery-grid .notion-page-icon-inline:has(>svg){display:none}:is(.home-page,.entry-listing-gallery) .entry-collection .notion-collection-card-body{flex:1}:is(.home-page,.entry-listing-gallery) .entry-collection .notion-collection-card-property:has(.notion-property-date){margin-top:auto}.notion-gallery-grid :is(.notion-page-title,.notion-page-title-text){font-size:1.125rem;line-height:1.4}.notion-gallery-grid .notion-property-text{font-size:14px}.notion-gallery-grid .notion-collection-card-property:not(:has(>.notion-property-text)){font-size:13px}.notion-gallery-grid .notion-property-multi_select-item,.notion-gallery-grid .notion-property-select-item{font-size:13px}.entry-collection .notion-collection-card-property:has(>.notion-property-text){-webkit-line-clamp:2;white-space:normal;text-overflow:ellipsis;-webkit-box-orient:vertical;height:auto;display:-webkit-box}.entry-collection .notion-collection-card-cover img{border-radius:0}.entry-collection .notion-collection-card-cover:not(:has(img)){background:var(--site-cover)}.entry-collection .notion-collection-card-cover:not(:has(img)):before{content:"";background:var(--site-on-cover);pointer-events:none;width:72px;height:72px;margin:auto;position:absolute;inset:0;-webkit-mask:url(/codeup.svg) 50%/contain no-repeat;mask:url(/codeup.svg) 50%/contain no-repeat}:is(.home-page,.entry-listing-gallery) .notion-gallery-grid .notion-collection-card-property:first-child{white-space:normal}:is(.home-page,.entry-listing-gallery) .notion-gallery-grid .notion-collection-card-property:first-child .notion-page-title{-webkit-line-clamp:var(--gallery-title-lines,2);white-space:normal;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}:is(.home-page,.entry-listing-gallery) .notion-gallery-grid .notion-collection-card-property:first-child .notion-page-title-text{white-space:normal;display:inline}:is(.home-page,.entry-listing-gallery) .entry-collection .notion-collection-card-property:first-child{height:calc(var(--gallery-title-height,3.15rem) + 8px);z-index:1;position:relative;overflow:visible}:is(.home-page,.entry-listing-gallery) .entry-collection .notion-collection-card-property:first-child .notion-page-title{inset-inline:-10px;max-width:none;height:calc(var(--gallery-title-height,2.8em) + 12px);background:var(--site-background);overflow-wrap:anywhere;interpolate-size:allow-keywords;padding:12px 10px 0;position:absolute;top:auto;bottom:4px}:is(.home-page,.entry-listing-gallery) .entry-collection .notion-collection-card[data-title-overflow]:is(:hover,:focus-visible) .notion-collection-card-property:first-child .notion-page-title{-webkit-line-clamp:unset;border-radius:12px 12px 0 0;height:auto}:is(.home-page,.entry-listing-gallery) .entry-collection .notion-collection-card[data-title-overflow]:is(:hover,:focus-visible) .notion-collection-card-cover{transform:translateY(-16px)}@media (prefers-reduced-motion:no-preference){:is(.home-page,.entry-listing-gallery) .entry-collection .notion-collection-card-cover,:is(.home-page,.entry-listing-gallery) .entry-collection .notion-page-title{transition:height .28s cubic-bezier(.22,1,.36,1),transform .28s cubic-bezier(.22,1,.36,1),border-radius .28s}}@media (hover:none),(max-width:580px){:is(.home-page,.entry-listing-gallery) .entry-collection .notion-collection-card-property:first-child{height:auto}:is(.home-page,.entry-listing-gallery) .entry-collection .notion-collection-card-property:first-child .notion-page-title{-webkit-line-clamp:unset;height:auto;padding:0;position:static}:is(.home-page,.entry-listing-gallery) .entry-collection .notion-collection-card:is(:hover,:focus-visible) .notion-collection-card-cover{transform:none}}:is(.home-page,.entry-listing-gallery) .notion-property-multi_select-item{border-radius:4px;padding:2px 8px}:is(.home-page,.entry-listing-gallery) .notion-gallery-grid .notion-property-multi_select{max-height:20px;overflow:hidden}.entry-listing-gallery .notion-collection-header{display:none}.entry-listing-gallery .notion-gallery-grid{border-top:0;padding-top:0}.entry-listing-gallery{width:100%;max-width:none;padding:0}.project-collection{--gallery-title-lines:1;--gallery-title-height:1.575rem}.entry-listing-gallery>.notion-collection-section{width:100%;padding:0}@media (min-width:760px){.entry-gallery[data-lead] .notion-gallery-grid{grid-auto-rows:auto}.entry-gallery[data-lead] .notion-gallery-grid>.notion-collection-card:first-child{grid-column:1/-1;grid-template-columns:minmax(0,3fr) minmax(0,2fr);margin-bottom:8px;display:grid}.entry-gallery[data-lead] .notion-collection-card:first-child .notion-collection-card-cover{height:100%;min-height:320px;transform:none!important}.entry-gallery[data-lead] .notion-collection-card:first-child .notion-collection-card-body{justify-content:center;gap:6px;padding:28px}.entry-gallery[data-lead] .notion-collection-card:first-child .notion-collection-card-property:first-child{height:auto;margin-bottom:4px}.entry-gallery[data-lead] .notion-collection-card:first-child .notion-collection-card-property:first-child .notion-page-title{-webkit-line-clamp:4;background:0 0;height:auto;padding:0;position:static}.entry-gallery[data-lead] .notion-collection-card:first-child .notion-collection-card-property:first-child :is(.notion-page-title,.notion-page-title-text){letter-spacing:-.015em;font-size:1.625rem;font-weight:650;line-height:1.3}.entry-gallery[data-lead] .notion-collection-card:first-child .notion-collection-card-property:has(>.notion-property-text){-webkit-line-clamp:4;font-size:15px}.entry-gallery[data-lead] .notion-collection-card:first-child .notion-collection-card-property:has(.notion-property-date){margin-top:0}}.home-page>.notion-row{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:24px;padding-top:24px;padding-bottom:16px;display:grid}.home-page>.notion-row .notion-column{padding:0;width:100%!important}.home-page>.notion-row .notion-spacer{display:none}.home-page>.notion-row .notion-page-link{border-bottom:1px solid var(--site-line);align-items:center;min-height:58px;padding:8px 0;display:flex}.notion-link,.notion-page-link{opacity:1}.notion-link{--link-origin:50%;border-bottom:1px solid color-mix(in srgb, var(--site-ink) 35%, transparent);background-image:linear-gradient(90deg, var(--site-glow-from), var(--site-glow-to));background-repeat:no-repeat;background-origin:border-box;background-position:var(--link-origin) 100%;background-size:0 2px}.notion-link:hover,.notion-link:focus-visible{color:inherit;background-size:100% 2px;border-bottom-color:#0000}.notion-page-preview{z-index:100;border:1px solid var(--site-line);background:var(--site-surface);width:min(320px,100vw - 24px);max-height:min(360px,100dvh - 24px);color:var(--site-ink);overflow-wrap:anywhere;border-radius:10px;padding:16px;font-size:12px;line-height:1.5;position:fixed;overflow:hidden;box-shadow:0 8px 28px #0003}.notion-page-preview-title{margin-bottom:10px;font-size:16px;font-weight:600}.external-link-preview-image{object-fit:cover;width:calc(100% + 32px);max-width:none;height:150px;margin:-16px -16px 14px;display:block}.external-link-preview-description{-webkit-line-clamp:4;color:var(--site-muted);-webkit-box-orient:vertical;margin:0 0 12px;display:-webkit-box;overflow:hidden}.external-link-preview .notion-page-preview-title{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.notion-page-preview-status{min-height:90px;color:var(--site-muted);justify-content:center;align-items:center;gap:10px;display:flex}.preview-skeleton{display:block}.preview-skeleton-shape{background:var(--site-line);border-radius:4px}.preview-skeleton .external-link-preview-image{border-radius:0}.preview-skeleton-line{width:100%;height:12px}.preview-skeleton-title{width:75%;height:20px}.preview-skeleton-text{gap:6px;display:grid}.preview-skeleton-text>:last-child{width:65%}.preview-skeleton-content{height:130px}@media (prefers-reduced-motion:no-preference){.preview-skeleton-shape{animation:1.4s ease-in-out infinite alternate preview-pulse}}@keyframes preview-pulse{to{opacity:.45}}.notion-page-preview-path{color:var(--site-muted);white-space:nowrap;text-overflow:ellipsis;margin-bottom:4px;font-size:11px;overflow:hidden}.notion-page-preview-content{max-height:220px;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(#000 0 85%,#0000);mask-image:linear-gradient(#000 0 85%,#0000)}.notion-page-preview-content .notion-text{padding:0 0 8px}.notion-page-preview-content .notion-asset-wrapper{max-width:100%;margin:4px 0 0}.notion-page-preview-content .notion-asset-caption{display:none}.notion-page-preview-content .notion-code-block{font-size:10px}.notion .notion-bookmark{border-color:var(--site-line)}.notion .notion-bookmark:hover,.notion .notion-bookmark:focus-visible,:is(.home-page,.entry-listing-gallery) .notion-gallery-grid .notion-collection-card:hover,:is(.home-page,.entry-listing-gallery) .notion-gallery-grid .notion-collection-card:focus-visible{background:linear-gradient(var(--site-background), var(--site-background)) padding-box, linear-gradient(90deg, var(--site-glow-from), var(--site-glow-to)) border-box;border-color:#0000}@media (prefers-reduced-motion:no-preference){.notion-link{transition:background-size .45s cubic-bezier(.22,1,.36,1),border-bottom-color .2s}}.notion-collection-section{min-width:0;max-width:100%}.notion-collection-view-tabs-row{gap:4px;width:100%}.notion-collection-view-tabs-content-item{min-height:44px;color:var(--site-muted)}.notion-collection-view-tabs-content-item-active{border-bottom-color:var(--site-accent);color:var(--site-ink)}.notion-collection-view-type-icon{fill:currentColor}.notion-table{align-self:stretch;overflow-x:auto;width:100%!important;max-width:100%!important}.notion-table-view{min-width:100%;padding-inline:0!important}.notion-simple-table{border:1px solid var(--site-line);border-collapse:separate;border-radius:8px;width:100%;max-width:100%;margin-block:8px;font-size:15px;display:block;overflow-x:auto}.notion-simple-table>tbody{border-spacing:0;width:100%;display:table}.notion-simple-table td{border:0;border-bottom:1px solid var(--site-line);overflow-wrap:normal;vertical-align:top;padding:10px 14px}.notion-simple-table td+td{border-left:1px solid var(--site-line)}.notion-simple-table tr:last-child td{border-bottom:0}.notion-simple-table :is(.notion-simple-table-header-row td,.notion-simple-table-header-cell){background:var(--site-tint);font-weight:600}.content-page .notion-page{width:100%;max-width:780px;padding:48px 30px 64px}.content-page .notion-page-has-cover{padding-top:50px}.content-page .notion-page-no-cover{margin-top:24px!important}.content-page .notion-page-cover-wrapper{width:calc(100% - 48px);max-width:calc(var(--site-width) - 48px);border-radius:18px;height:30vh;min-height:30vh;max-height:30vh;margin:24px auto 0;overflow:hidden}.content-page .notion-page-cover-wrapper img{height:100%!important;min-height:0!important;max-height:none!important}.fallback-cover{background:var(--site-cover)}.content-page .notion-page-icon-hero{margin-left:0;left:30px}.content-page .notion-page-icon-hero.notion-page-icon-span{width:60px;height:60px;top:-30px}.content-page .notion-page-icon-hero.notion-page-icon-span .notion-page-icon{font-size:60px}.content-page .notion-page-icon-hero.notion-page-icon-image{width:80px;height:80px;top:-40px}.content-page .notion-page-icon-hero img{border-radius:50%}.content-page .notion-title{letter-spacing:-1.8px;margin-bottom:28px;font-size:clamp(1.75em,1.25em + 1vw,2em);font-weight:700}.content-page .notion-text{padding-block:8px}.content-page .notion-page-content-inner>.notion-page-link{border-bottom:0;border-radius:3px;height:auto;min-height:30px;margin:1px 0;padding:3px 2px}.content-page .notion-page-link .notion-page-title-text{white-space:normal;border-bottom:1px solid color-mix(in srgb, var(--site-ink) 20%, transparent);font-weight:600;line-height:1.5;top:0;overflow:visible}.content-page .notion-h{margin-top:28px}.content-page .notion-asset-wrapper{margin-block:20px}.notion-asset-caption{text-align:center}.notion-code-container{position:relative}.notion-code-block{width:100%;max-width:100%;margin:20px 0}.notion-mermaid{text-align:center;background:var(--lightningcss-light,#f9fafb)var(--lightningcss-dark,#21252b);border:1px solid var(--lightningcss-light,#e5e7eb)var(--lightningcss-dark,#333842);border-radius:10px;max-width:100%;padding:48px 20px 20px;overflow-x:auto}.notion-mermaid svg{width:100%;min-width:600px;height:auto;margin:auto;display:block}.notion .notion-code{color:var(--lightningcss-light,#1f2937)var(--lightningcss-dark,#abb2bf);white-space:pre;background:var(--lightningcss-light,#f9fafb)var(--lightningcss-dark,#21252b);border:1px solid var(--lightningcss-light,#e5e7eb)var(--lightningcss-dark,#333842);border-radius:10px;width:100%;max-width:100%;margin:0;padding:20px 56px 20px 20px;font:85%/1.7 ui-monospace,SFMono-Regular,Consolas,monospace;overflow-x:auto}.notion-code code{font:inherit;color:inherit;background:0 0;padding:0}.notion-code .token.cdata,.notion-code .token.doctype,.notion-code .token.prolog,.notion-code .token.punctuation{color:var(--lightningcss-light,#374151)var(--lightningcss-dark,#abb2bf)}.notion-code .token.comment{color:var(--lightningcss-light,#52676b)var(--lightningcss-dark,#7f8796);font-style:italic}.notion-code .token.boolean,.notion-code .token.constant,.notion-code .token.number,.notion-code .token.symbol{color:var(--lightningcss-light,#92400e)var(--lightningcss-dark,#d19a66)}.notion-code .token.deleted,.notion-code .token.property,.notion-code .token.tag,.notion-code .token.variable{color:var(--lightningcss-light,#b42336)var(--lightningcss-dark,#e06c75)}.notion-code .token.char,.notion-code .token.inserted,.notion-code .token.string,.notion-code .token.attr-value{color:var(--lightningcss-light,#28783c)var(--lightningcss-dark,#98c379)}.notion-code .token.entity,.notion-code .token.operator,.notion-code .token.regex,.notion-code .token.url{color:var(--lightningcss-light,#087c73)var(--lightningcss-dark,#56b6c2);background:0 0}.notion-code .token.atrule,.notion-code .token.keyword{color:var(--lightningcss-light,#7c3aed)var(--lightningcss-dark,#c678dd)}.notion-code .token.function,.notion-code .token.builtin{color:var(--lightningcss-light,#2563eb)var(--lightningcss-dark,#61afef)}.notion-code .token.class-name,.notion-code .token.attr-name,.notion-code .token.important,.notion-code .token.selector{color:var(--lightningcss-light,#92400e)var(--lightningcss-dark,#e5c07b)}.notion .notion-inline-code{color:var(--lightningcss-light,#b42336)var(--lightningcss-dark,#e5c07b);background:var(--lightningcss-light,#f0f3f5)var(--lightningcss-dark,#333842);border-radius:4px;padding:.15em .35em;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:.875em}.search-page{width:min(900px,100% - 40px);margin:56px auto 80px}.search-page-header{margin-bottom:32px}.search-page-header h1{letter-spacing:-.025em;margin:0 0 16px;font-size:clamp(34px,5vw,46px);line-height:1.1}.search-page-header p{color:var(--site-muted);margin:0;font-size:17px;line-height:1.6}.search-panel{border:1px solid var(--site-line);background:var(--site-surface);border-radius:16px;padding:24px}.search-form label{margin-bottom:12px;font-size:14px;font-weight:600;display:block}.search-form-row{gap:12px;display:flex}.search-input-field{flex:1;min-width:0;position:relative}.search-input-field>svg{color:var(--site-muted);pointer-events:none;position:absolute;top:50%;left:16px;transform:translateY(-50%)}.search-form input{border:1px solid var(--site-line);width:100%;min-width:0;height:52px;color:var(--site-ink);background:var(--site-background);font:inherit;border-radius:10px;padding:12px 16px 12px 48px}.search-form input::placeholder{color:var(--site-muted);opacity:1}.search-form input:focus{border-color:var(--site-accent);box-shadow:0 0 0 4px color-mix(in srgb, var(--site-accent) 18%, transparent);outline:2px solid #0000}.search-form .search-submit{min-height:52px;color:var(--site-background);background:var(--site-accent);font:inherit;cursor:pointer;border:1px solid #0000;border-radius:10px;justify-content:center;align-items:center;gap:12px;padding:0 20px;font-weight:600;display:inline-flex}.search-submit:hover{background:color-mix(in srgb, var(--site-accent) 88%, var(--site-ink))}.search-form>p{color:var(--site-muted);margin:12px 0 0;font-size:13px;line-height:1.6}.search-results-section{margin-top:36px}.search-results-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px 20px;display:flex}.search-results-header h2{letter-spacing:-.015em;margin:0;font-size:20px;line-height:1.4}.search-clear{min-height:40px;color:var(--site-muted);align-items:center;gap:8px;font-size:14px;text-decoration:none;display:inline-flex}.search-results-context{color:var(--site-muted);overflow-wrap:anywhere;margin:4px 0 20px;font-size:14px;line-height:1.6}.search-results-context strong{color:var(--site-ink);font-weight:500}.search-results{gap:12px;margin:0;padding:0;list-style:none;display:grid}.search-result{border:1px solid var(--site-line);color:var(--site-ink);background:var(--site-surface);border-radius:12px;justify-content:space-between;align-items:center;gap:20px;padding:22px 24px;text-decoration:none;display:flex}.search-result:hover{border-color:var(--site-accent);color:var(--site-ink);background:color-mix(in srgb, var(--site-tint) 30%, var(--site-surface))}.search-result>div{min-width:0}.search-result h3{letter-spacing:-.015em;overflow-wrap:anywhere;margin:0;font-size:20px;line-height:1.45}.search-result-label{color:var(--site-muted);margin-bottom:8px;font-size:12px;line-height:1.5;display:block}.search-result p{color:var(--site-muted);overflow-wrap:anywhere;margin:8px 0 0;font-size:15px;line-height:1.65}.search-result-arrow{color:var(--site-muted);flex-shrink:0}.search-result:hover .search-result-arrow{color:var(--site-accent)}.search-empty{border:1px dashed var(--site-line);text-align:center;border-radius:16px;justify-items:center;gap:12px;padding:48px 24px;display:grid}.search-empty-icon{width:64px;height:64px;color:var(--site-accent);background:var(--site-tint);border-radius:50%;place-items:center;margin-bottom:4px;display:grid}.search-empty h3{margin:0;font-size:20px}.search-empty p{max-width:40ch;color:var(--site-muted);margin:0;font-size:15px;line-height:1.65}.search-browse-links{flex-wrap:wrap;justify-content:center;gap:8px 24px;margin-top:8px;display:flex}.search-browse-links a{min-height:44px;color:var(--site-accent);align-items:center;gap:8px;font-size:14px;font-weight:500;text-decoration:none;display:inline-flex}@media (max-width:580px){.search-page{margin-top:40px}.search-page-header{margin-bottom:24px}.search-page-header p{font-size:16px}.search-panel{padding:20px}.search-form-row{flex-direction:column}.search-result{align-items:flex-start;gap:12px;padding:20px}.search-result h3{font-size:18px}.search-result-arrow{margin-top:24px}}@media (max-width:800px){.site-header-inner,.site-footer{padding-inline:28px}.home-hero{gap:22px;padding:38px 30px 48px}.home-hero .home-hero-logo{width:110px;height:110px}.home-page>.notion-text,.home-page>.notion-h,.home-page>.notion-row,.home-page>.notion-collection-section,.home-page>.notion-page-link{width:calc(100% - 64px)}}@media (max-width:580px){.site-header-inner{gap:8px 12px;padding:12px 20px}.site-name{flex:1;gap:6px}.site-name .logo-wordmark{width:86px;height:auto}.home-hero{border-radius:14px;flex-direction:column;align-items:flex-start;gap:20px;width:calc(100% - 24px);margin:14px 12px 28px;padding:28px 24px 46px}.home-hero .home-hero-logo{order:-1;width:72px;height:72px;margin:-11px 0 -11px -11px}.home-hero p{font-size:15px}.home-hero-domain{font-size:11px}.home-page>.notion-text,.home-page>.notion-h,.home-page>.notion-row,.home-page>.notion-collection-section,.home-page>.notion-page-link{width:calc(100% - 44px)}.site-footer{align-items:flex-start;padding:22px}.footer-status{max-width:280px}.content-page .notion-page{padding-inline:22px}.content-page .notion-page-cover-wrapper{border-radius:14px;width:calc(100% - 24px);margin-top:14px}.content-page .notion-page-icon-hero{left:22px}.notion-row{flex-direction:column}.notion-row .notion-column{padding:0;width:100%!important}.notion-row .notion-spacer{display:none}}.content-page .notion-page-content-inner{width:100%;min-width:0}.content-page .notion-aside{order:-1;align-items:stretch;width:100%;margin-bottom:32px;display:flex;position:static}.content-page .notion-aside-table-of-contents{background:0 0;border:0;border-radius:0;align-items:stretch;min-width:0;max-height:240px;padding:0;overflow:hidden}.content-page .notion-aside-table-of-contents-header{color:var(--site-muted);text-transform:none;flex-shrink:0;align-items:center;gap:8px;margin-bottom:8px;font-size:13px;font-weight:500;line-height:1.5;display:flex}.content-page .notion-aside-table-of-contents .notion-table-of-contents{overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:var(--site-line) transparent;min-height:0;margin:0;padding:4px;position:relative;overflow:auto}.content-page .notion-aside-table-of-contents-header svg{width:16px;height:16px}.content-page .notion-aside-table-of-contents .notion-table-of-contents-item{padding:6px 8px 6px calc(var(--depth) * 12px + 14px);color:var(--site-muted);opacity:1;white-space:normal;overflow-wrap:anywhere;background:0 0;border:0;border-radius:0;flex-shrink:0;margin:0;font-size:13px;line-height:1.5;position:relative;overflow:visible}.content-page .notion-aside-table-of-contents .notion-table-of-contents-item:hover{color:var(--site-ink);background:0 0}.content-page .notion-aside-table-of-contents .notion-table-of-contents-item:focus-visible{outline-offset:-3px}.content-page .notion-aside-table-of-contents .toc-visible-item{color:var(--site-ink);background:0 0}.content-page :is(.toc-rail,.toc-thumb){pointer-events:none;position:absolute;top:0;left:4px}.content-page .toc-rail{fill:none;stroke:var(--site-line);stroke-width:1px}.content-page .toc-thumb{-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}.content-page .toc-thumb-fill{background:var(--site-ink);position:absolute;inset-inline:0}@media (prefers-reduced-motion:no-preference){.content-page .toc-thumb-fill{transition:top .3s cubic-bezier(.22,1,.36,1),height .3s cubic-bezier(.22,1,.36,1)}.content-page .notion-aside-table-of-contents .notion-table-of-contents-item{transition:color .2s}}.content-page .notion-table-of-contents-item-body{min-width:0;line-height:1.5}.mobile-contents-dialog nav a span{background-image:linear-gradient(90deg, var(--site-glow-from), var(--site-glow-to));background-position:0 100%;background-repeat:no-repeat;background-size:0 1px;padding-bottom:2px}.mobile-contents-dialog nav a:is(:hover,:focus-visible,[aria-current=location]) span{background-size:100% 1px}@media (prefers-reduced-motion:no-preference){.mobile-contents-dialog nav a span{transition:background-size .45s cubic-bezier(.22,1,.36,1)}}.article-page{--site-background:var(--lightningcss-light,#fff)var(--lightningcss-dark,#282c34);--site-ink:var(--lightningcss-light,#24292e)var(--lightningcss-dark,#d7dae0);--site-muted:var(--lightningcss-light,#5b6268)var(--lightningcss-dark,#abb2bf);--notion-max-width:720px}.article-page .notion-page-cover-wrapper{max-width:var(--site-width);border-radius:24px}:is(.article-page,.project-page,.entry-subpage) .notion-page-cover-wrapper:not(.fallback-cover){border-radius:0;width:100%;max-width:none;height:clamp(200px,32vh,360px);min-height:0;max-height:none;margin:0}.entry-page-back{color:var(--site-muted);align-self:flex-start;align-items:center;gap:8px;margin-bottom:16px;font-size:14px;text-decoration:none;display:inline-flex}.entry-page-back:hover{color:var(--site-accent);text-decoration:underline}.article-page .notion-page,.article-page .notion-page.notion-page-has-cover.notion-page-has-icon{grid-template-columns:48px minmax(0,1fr);column-gap:16px;padding-top:48px;display:grid}.article-page .notion-page:after{content:"";border-top:1px solid var(--site-line);grid-area:3/1/auto/-1;margin-top:32px}.article-page .notion-page-icon-hero.notion-page-icon-image,.article-page .notion-page-icon-hero.notion-page-icon-span{grid-area:2/1;width:48px;height:48px;margin:0;position:relative;inset:auto}.article-page .notion-page-icon-hero.notion-page-icon-span .notion-page-icon{font-size:44px}.article-page .notion-page-icon-hero img{object-fit:contain;border-radius:8px;width:100%;height:100%}.article-page .notion-title{letter-spacing:-.6px;text-align:left;grid-area:1/1/auto/-1;width:100%;max-width:none;margin:0 0 28px;line-height:1.2}.article-page .notion-page>.notion-collection-section{grid-area:2/2;width:100%;max-width:none;min-height:48px}.article-page .notion-collection-row{border:0;padding:0}.article-page .notion-collection-row-body{flex-direction:column;align-items:flex-start;gap:6px;display:flex}.article-page .notion-collection-row-property{min-height:0;padding:0}.article-page .notion-collection-row-property:has(.notion-property:empty){display:none}.article-page .notion-collection-column-title{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.article-page .notion-collection-row-value{justify-content:flex-start;width:auto;padding:0;font-size:14px}.article-page .notion-property-multi_select{flex-wrap:wrap;justify-content:flex-start;gap:6px}.article-page .notion-property-multi_select-item{border-radius:4px;margin:0;padding:2px 7px;line-height:1.3}.article-page .notion-page-content{grid-area:4/1/auto/-1;margin-top:48px}.article-page .notion-page-content-inner,.article-page .notion-aside{padding-top:0}.article-page .notion-page-content-inner>:first-child{margin-top:0}.mobile-contents-trigger{display:none}@media (max-width:959px){.content-page .notion-aside{display:none}.mobile-contents-trigger{right:max(20px, env(safe-area-inset-right));bottom:calc(20px + env(safe-area-inset-bottom));z-index:110;border:1px solid var(--site-line);min-height:44px;color:var(--site-ink);background:var(--site-surface);font:inherit;cursor:pointer;border-radius:24px;align-items:center;gap:8px;padding:10px 16px;font-size:13px;font-weight:600;display:flex;position:fixed;box-shadow:0 4px 16px #0002}}.site-dialog.mobile-contents-dialog{padding:12px;padding-bottom:max(12px, env(safe-area-inset-bottom));align-content:end}.mobile-contents-dialog .dialog-content{flex-direction:column;max-width:560px;max-height:min(70svh,600px);padding:24px 16px 16px;display:flex}.mobile-contents-dialog h2{flex-shrink:0;margin:0 48px 16px 8px;font-size:16px;line-height:1.5}.mobile-contents-dialog nav{overscroll-behavior:contain;min-height:0;padding:4px;overflow:auto}.mobile-contents-dialog nav a{min-height:44px;color:var(--site-muted);overflow-wrap:anywhere;border-radius:6px;align-items:center;padding:10px 12px;font-size:14px;line-height:1.5;text-decoration:none;display:flex}.mobile-contents-dialog nav a:is(:hover,:focus-visible){color:var(--site-accent);outline-offset:-3px}@media (prefers-reduced-motion:no-preference){.mobile-contents-dialog .dialog-content{animation:.22s ease-out contents-enter}@keyframes contents-enter{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}}@media (min-width:960px) and (max-width:1299px){.content-page .notion-aside{width:40px;height:0;min-height:0;transform:translateX(calc((100vw - var(--notion-max-width)) / 2 - 16px));flex:0 0 0;align-self:flex-end;margin:0;position:sticky;top:112px}.content-page .notion-aside-table-of-contents{flex-shrink:0;max-height:calc(100svh - 136px)}.content-page .notion-aside-table-of-contents-header,.content-page .notion-aside:not(:hover,:focus-within) :is(.toc-rail,.toc-thumb){display:none}.content-page .notion-aside:not(:hover,:focus-within) .notion-table-of-contents-item{padding-left:8px}.content-page .notion-aside-table-of-contents .notion-table-of-contents-item{padding-block:6px;background:0 0;border:0;border-radius:0;justify-content:flex-end;min-height:24px;padding-right:8px;position:relative}.content-page .notion-aside-table-of-contents .notion-table-of-contents-item:after{content:"";opacity:.55;background:currentColor;border-radius:1px;flex-shrink:0;width:16px;height:2px}.content-page .notion-table-of-contents-item-indent-level-1:after{max-width:12px}.content-page .notion-table-of-contents-item-indent-level-2:after{max-width:8px}.content-page .notion-aside-table-of-contents .toc-visible-item:after{opacity:1}.content-page .notion-table-of-contents-item-body{clip-path:inset(50%);opacity:0;width:1px;height:1px;position:absolute;overflow:hidden}.content-page .notion-aside:is(:hover,:focus-within){width:280px}.content-page .notion-aside:is(:hover,:focus-within) .notion-aside-table-of-contents{background:var(--site-background);padding:12px}.content-page .notion-aside:is(:hover,:focus-within) .notion-aside-table-of-contents-header{display:flex}.content-page .notion-aside:is(:hover,:focus-within) .notion-table-of-contents-item{justify-content:flex-start}.content-page .notion-aside:is(:hover,:focus-within) .notion-table-of-contents-item:after{display:none}.content-page .notion-aside:is(:hover,:focus-within) .notion-table-of-contents-item-body{clip-path:none;opacity:1;width:auto;height:auto;position:static;overflow:visible}@media (prefers-reduced-motion:no-preference){.content-page .notion-aside{transition:width .22s}.content-page .notion-aside-table-of-contents{transition:padding .22s,background-color .22s}.content-page .notion-table-of-contents-item-body{transition:opacity .18s}}}@media (min-width:1300px){.content-page .notion-page:has(.notion-aside){max-width:var(--site-width)}.content-page .notion-page-content-has-aside{flex-direction:row;gap:48px;width:100%}.content-page .notion-page-content-has-aside .notion-page-content-inner{flex:0 0 var(--notion-max-width)}.content-page .notion-page-content-has-aside~.entry-share{max-width:var(--notion-max-width);place-self:flex-start start}.content-page .notion-aside{flex:1;order:0;min-width:0;margin-bottom:0;position:sticky;top:112px}.content-page .notion-aside-table-of-contents{max-height:calc(100svh - 136px)}}@media (max-width:580px){:is(.article-page,.project-page,.entry-subpage) .notion-page-cover-wrapper:not(.fallback-cover){aspect-ratio:3;height:auto}.article-page .notion-page-cover-wrapper{border-radius:16px}.article-page .notion-page,.article-page .notion-page.notion-page-has-cover.notion-page-has-icon{grid-template-columns:36px minmax(0,1fr);column-gap:12px;padding-top:32px}.article-page .notion-page-icon-hero.notion-page-icon-image,.article-page .notion-page-icon-hero.notion-page-icon-span{width:36px;height:36px}.article-page .notion-page-icon-hero.notion-page-icon-span .notion-page-icon{font-size:32px}.article-page .notion-page>.notion-collection-section{min-height:36px}.article-page .notion-title{letter-spacing:-.4px}.article-page .notion-page-content{margin-top:32px}}@media (prefers-reduced-motion:no-preference){.site-navigation a,.mobile-menu-dialog a,.theme-toggle{transition:color .15s,background-color .15s}}.content-page .notion-page-cover-wrapper.fallback-cover{height:170px;min-height:170px;max-height:170px}.article-page .notion-page-cover-wrapper.fallback-cover{height:clamp(200px,20vw,333px);min-height:0;max-height:none}@media (max-width:580px){.content-page .notion-page-cover-wrapper.fallback-cover{height:126px;min-height:126px;max-height:126px}.article-page .notion-page-cover-wrapper.fallback-cover{height:180px;min-height:0;max-height:none}}.typing-cursor{margin-left:.15ch}.pointer-trail{z-index:1;border-radius:inherit;pointer-events:none;--trail-from:var(--lightningcss-light,var(--site-glow-from))var(--lightningcss-dark,#1f9e90);--trail-to:var(--lightningcss-light,var(--site-glow-to))var(--lightningcss-dark,#8b7cf0);width:100%;height:100%;color:var(--trail-from);outline-color:color-mix(in srgb, var(--trail-to) 35%, var(--trail-from));font-family:ui-monospace,SFMono-Regular,Menlo,monospace;text-decoration-color:var(--lightningcss-light,#fff)var(--lightningcss-dark,#e4faf4);position:absolute;inset:0}.home-hero-logo{position:relative}.home-hero-content{z-index:2;position:relative}@media (prefers-reduced-motion:no-preference){.typing-cursor{animation:1s step-end infinite typing-cursor-blink}}@keyframes typing-cursor-blink{50%{opacity:0}}.home-hero:before,.content-page .notion-page-cover-wrapper:after{content:"";border-radius:inherit;pointer-events:none;background-image:linear-gradient(90deg,#ffffff0b 1px,#0000 1px),linear-gradient(#ffffff0b 1px,#0000 1px);background-size:14px 14px;position:absolute;inset:0;-webkit-mask-image:linear-gradient(90deg,#000 30%,#0000 100%);mask-image:linear-gradient(90deg,#000 30%,#0000 100%)}@media (prefers-reduced-motion:no-preference){.home-hero:before,.content-page .notion-page-cover-wrapper:after{animation:1.4s cubic-bezier(.22,1,.36,1) .2s both home-hero-grid}}@keyframes home-hero-grid{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}.content-page .notion-page-cover-wrapper{position:relative}.content-page .notion-page-cover-wrapper:after{background-image:linear-gradient(90deg,#ffffff01 1px,#0000 1px),linear-gradient(#ffffff01 1px,#0000 1px)}@keyframes skeleton-grid-sweep{0%{-webkit-mask-position:-70% 0;mask-position:-70% 0}to{-webkit-mask-position:170% 0;mask-position:170% 0}}::view-transition-old(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){mix-blend-mode:normal;animation:none}::view-transition-new(root){animation:.5s cubic-bezier(.22,1,.36,1) theme-reveal}@keyframes theme-reveal{0%{clip-path:circle(0 at var(--theme-x,50%) var(--theme-y,0))}to{clip-path:circle(var(--theme-r,150%) at var(--theme-x,50%) var(--theme-y,0))}}
