:root{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#101114;--surface:#17181c;--surface-raised:#1d1e23;--line:rgba(255,255,255,.1);--line-strong:rgba(255,255,255,.16);--text:#f2f1ed;--muted:#a5a6aa;--faint:#74757b;--accent:#ff4b27;--accent-ink:#260504;--canvas:#131417;--shadow:0 24px 70px rgba(0,0,0,.2);background:var(--bg);color:var(--text);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f6f5f0;--surface:#fffffc;--surface-raised:#ebeae4;--line:rgba(25,27,29,.12);--line-strong:rgba(25,27,29,.2);--text:#1b1c1e;--muted:#65676b;--faint:#898b8f;--accent:#e44022;--accent-ink:#fffaf7;--canvas:#edede8;--shadow:0 24px 70px rgba(34,36,32,.11)}*{box-sizing:border-box}html{scroll-behavior:smooth;overflow-x:clip}body{background:var(--bg);min-width:320px;min-height:100vh;margin:0;overflow-x:clip}a{color:inherit;text-decoration:none}button,input,select{font:inherit}button{color:inherit}::-moz-selection{background:var(--accent);color:var(--accent-ink)}::selection{background:var(--accent);color:var(--accent-ink)}.shell{width:min(1160px,100% - 40px);margin-left:auto;margin-right:auto}.site-header{z-index:10;border-bottom:1px solid var(--line);position:relative}.site-footer{border-top:1px solid var(--line);background:radial-gradient(120% 100% at 50% 0%, color-mix(in srgb, var(--accent), transparent 88%), transparent 52%), var(--bg);margin-top:max(72px,min(10vw,128px));position:relative;overflow:hidden}.site-footer:before{background-image:repeating-linear-gradient(90deg, transparent 0, transparent 22px, color-mix(in srgb, var(--line), transparent 10%) 22px, color-mix(in srgb, var(--line), transparent 10%) 23px);content:"";opacity:.22;pointer-events:none;animation:18s linear infinite footer-grid-drift;position:absolute;top:0;bottom:0;left:0;right:0;transform:translate(0)}.site-footer:after{background:linear-gradient(90deg, transparent, var(--accent), transparent);content:"";opacity:.7;pointer-events:none;height:2px;animation:5.5s ease-in-out infinite footer-scan;position:absolute;top:auto;bottom:0;left:-24%;right:-24%}.footer-inner{z-index:1;grid-template-columns:1fr auto auto;align-items:center;gap:22px;min-height:92px;padding-top:18px;padding-bottom:18px;display:grid;position:relative}.footer-logo{object-fit:contain;width:118px;height:auto;margin-bottom:6px;display:block}.footer-brand small,.footer-copy{color:var(--faint);font-size:.72rem}.footer-links{align-items:center;gap:7px;display:inline-flex}.footer-links a{border:1px solid var(--line);background:color-mix(in srgb, var(--surface), transparent 18%);min-height:30px;color:var(--muted);border-radius:999px;align-items:center;padding:0 11px;font-size:.73rem;transition:transform .18s,border-color .18s,color .18s,background .18s;display:inline-flex}.footer-links a:hover{border-color:var(--line-strong);background:var(--surface);color:var(--text);transform:translateY(-1px)}.footer-copy{white-space:nowrap;justify-self:end}.header-inner{justify-content:space-between;align-items:center;gap:24px;min-height:70px;display:flex}.wordmark{align-items:center;min-height:32px;display:inline-flex}.wordmark-logo{width:max(96px,min(12vw,132px));height:auto;display:block}.wordmark-fallback{letter-spacing:-.045em;font-size:.96rem;font-weight:720;display:none}nav{align-items:center;gap:24px;margin-left:auto;display:flex}nav a{color:var(--muted);font-size:.84rem;transition:color .16s}nav a:hover{color:var(--text)}.github-link{align-items:center;gap:6px;display:inline-flex}.github-mark{flex:none;width:15px;height:15px;transition:transform .36s cubic-bezier(.2,.85,.25,1),filter .22s}.github-stars{border:1px solid var(--line);color:var(--faint);letter-spacing:-.02em;white-space:nowrap;border-radius:999px;align-items:center;justify-items:center;min-width:5.8em;padding:3px 6px;font:.6rem/1 SFMono-Regular,Consolas,monospace;transition:border-color .18s,color .18s,background .18s;display:inline-grid}.github-link:hover .github-stars{border-color:color-mix(in srgb, var(--accent) 42%, var(--line));color:var(--text);background:color-mix(in srgb, var(--accent) 8%, transparent)}nav .github-link{border:1px solid transparent;border-radius:999px;padding:5px 8px;transition:color .18s,border-color .18s,background .18s;position:relative;overflow:hidden}nav .github-link:after{content:"";opacity:0;background:linear-gradient(90deg,transparent,rgba(255,255,255,.24),transparent);width:45%;transition:transform .43s,opacity .16s;position:absolute;top:0;bottom:0;left:-70%;right:auto;transform:skew(-18deg)}nav .github-link:hover{border-color:var(--line-strong);background:var(--surface)}.github-link:hover .github-mark{filter:drop-shadow(0 0 6px color-mix(in srgb, var(--accent), transparent 44%));transform:rotate(-12deg)scale(1.14)}nav .github-link:hover:after{opacity:1;transform:translate(360%)skew(-18deg)}.header-actions{align-items:center;gap:10px;display:flex}.theme-toggle,.header-link{border:1px solid var(--line);cursor:pointer;background:0 0;border-radius:2px;align-items:center;justify-items:center;width:34px;height:34px;transition:background .16s,border-color .16s,transform .16s;display:grid}.header-link:hover{border-color:var(--line-strong);background:var(--surface);transform:translateY(-1px)}.mobile-github{display:none}.theme-toggle{position:relative;overflow:hidden}.theme-toggle:before{z-index:0;content:"";opacity:0;pointer-events:none;background:radial-gradient(circle,rgba(245,158,11,.48) 0,rgba(245,158,11,.18) 28%,transparent 68%);border-radius:50%;position:absolute;top:-7px;bottom:-7px;left:-7px;right:-7px;transform:scale(.2)}.theme-toggle.is-switching[data-theme=light]:before{animation:.54s cubic-bezier(.16,1,.3,1) both sun-halo}.theme-toggle:after{z-index:2;content:"";opacity:0;pointer-events:none;background:linear-gradient(120deg,transparent 42%,rgba(255,251,235,.58) 50%,transparent 58%);position:absolute;top:-8px;bottom:-8px;left:-8px;right:-8px;transform:translate(-112%)}.theme-toggle.is-switching[data-theme=light]:after{animation:.17s ease-out .41s both sun-sheen}.theme-icon{z-index:1;align-items:center;justify-items:center;width:17px;height:17px;display:grid;position:relative;overflow:visible}.theme-icon svg{width:17px;height:17px;color:var(--faint);transform-origin:50%;will-change:opacity, transform;transition:opacity .26s,transform .48s cubic-bezier(.16,1,.3,1),color .2s;position:absolute}.theme-toggle[data-theme=dark] .theme-sun{opacity:0;transform:translate(-12px,9px)rotate(-96deg)scale(.42)}.theme-toggle[data-theme=dark] .theme-moon{opacity:1;transform:rotate(0)scale(1)}.theme-toggle[data-theme=light] .theme-moon{opacity:0;transform:translate(13px,-10px)rotate(92deg)scale(.42)}.theme-toggle[data-theme=light] .theme-sun{opacity:1;transform:rotate(0)scale(1)}.theme-toggle:hover .theme-moon,.theme-toggle.is-switching[data-theme=dark] .theme-moon{color:#a78bfa}.theme-toggle:hover .theme-sun,.theme-toggle.is-switching[data-theme=light] .theme-sun{color:#f59e0b}.theme-toggle:hover:not(.is-switching)[data-theme=dark] .theme-moon{transform:rotate(-2deg)scale(1.08)}.theme-toggle:hover:not(.is-switching)[data-theme=light] .theme-sun{transform:rotate(18deg)scale(1.08)}.theme-moon .moon-stars{opacity:.75;transition:opacity .18s}.theme-toggle:hover .moon-stars{opacity:1}.theme-toggle.is-switching[data-theme=dark] .theme-moon{animation:.58s cubic-bezier(.22,.82,.28,1) both moon-return}.theme-toggle.is-switching[data-theme=dark] .theme-sun{animation:.46s cubic-bezier(.42,0,.85,.45) both sun-set-left}.theme-toggle.is-switching[data-theme=light] .theme-sun{animation:.58s cubic-bezier(.22,.82,.28,1) both sun-rise,.58s ease-out both sun-radiate}.theme-toggle.is-switching[data-theme=light] .theme-moon{animation:.46s cubic-bezier(.42,0,.85,.45) both moon-set}.theme-toggle.is-switching[data-theme=dark] .moon-stars{animation:.58s ease-out both moon-stars-twinkle}.theme-toggle.is-switching[data-theme=dark] .moon-star-large{animation:.2s cubic-bezier(.16,1,.3,1) .29s both moon-star-pop}.theme-toggle.is-switching[data-theme=dark] .moon-star-small{animation:.18s cubic-bezier(.16,1,.3,1) .33s both moon-star-pop}.theme-toggle.is-switching[data-theme=light] .sun-rays{animation:.58s cubic-bezier(.22,.82,.28,1) both sun-rays-turn}.theme-toggle.is-switching[data-theme=light] .sun-core{animation:.58s cubic-bezier(.22,.82,.28,1) both sun-core-pulse}.theme-toggle.is-switching[data-theme=light] .sun-flare-dots{animation:.17s cubic-bezier(.22,.82,.28,1) .37s both sun-dots-bloom}.sun-rays,.sun-core,.moon-stars,.moon-star,.sun-flare-dots{transform-box:fill-box;transform-origin:50%}@keyframes moon-return{0%,24%{opacity:0;transform:translate(32px,22px)rotate(142deg)scale(1)}44%{opacity:1;transform:translate(21px,14px)rotate(90deg)scale(1)}62%{opacity:1;transform:translate(10px,5px)rotate(36deg)scale(1)}80%{opacity:1;transform:translate(2px)rotate(8deg)scale(1)}to{opacity:1;transform:rotate(0)scale(1)}}@keyframes sun-set-left{0%{opacity:1;transform:rotate(0)scale(1)}34%{opacity:1;transform:translate(-8px,3px)rotate(-34deg)scale(1)}62%{opacity:1;transform:translate(-20px,10px)rotate(-96deg)scale(1)}to{opacity:0;transform:translate(-32px,22px)rotate(-150deg)scale(1)}}@keyframes sun-rise{0%,24%{opacity:0;transform:translate(-32px,23px)rotate(-140deg)scale(1)}44%{opacity:1;transform:translate(-21px,15px)rotate(-92deg)scale(1)}62%{opacity:1;transform:translate(-10px,5px)rotate(-38deg)scale(1)}80%{opacity:1;transform:translate(-2px)rotate(-8deg)scale(1)}to{opacity:1;transform:rotate(0)scale(1)}}@keyframes moon-set{0%{opacity:1;transform:rotate(0)scale(1)}34%{opacity:1;transform:translate(8px,3px)rotate(32deg)scale(1)}62%{opacity:1;transform:translate(20px,10px)rotate(94deg)scale(1)}to{opacity:0;transform:translate(32px,22px)rotate(142deg)scale(1)}}@keyframes moon-stars-twinkle{0%,66%{opacity:0;transform:rotate(-18deg)}82%{opacity:.82;transform:rotate(8deg)}92%{opacity:1;transform:rotate(-3deg)}to{opacity:.75;transform:rotate(0)}}@keyframes sun-rays-turn{0%,76%{opacity:0;transform:rotate(-24deg)}90%{opacity:.78;transform:rotate(16deg)}96%{opacity:1;transform:rotate(-4deg)}to{opacity:1;transform:rotate(0)}}@keyframes sun-core-pulse{0%,60%{opacity:0}80%{opacity:.84;stroke-width:2px}92%{opacity:1;stroke-width:2.45px}to{opacity:1;stroke-width:2px}}@keyframes moon-star-pop{0%{opacity:0;transform:scale(.2)rotate(-32deg)}72%{opacity:1;transform:scale(1.24)rotate(8deg)}to{opacity:1;transform:scale(1)rotate(0)}}@keyframes sun-dots-bloom{0%{opacity:0;transform:scale(.2)rotate(-26deg)}68%{opacity:1;transform:scale(1.16)rotate(10deg)}to{opacity:.78;transform:scale(1)rotate(0)}}@keyframes sun-radiate{0%,76%{filter:drop-shadow(0 0 transparent)}92%{filter:drop-shadow(0 0 4px rgba(245,158,11,.52))}to{filter:drop-shadow(0 0 1.5px rgba(245,158,11,.22))}}@keyframes sun-halo{0%,74%{opacity:0;transform:scale(.2)}90%{opacity:.48;transform:scale(1.06)}to{opacity:0;transform:scale(1.45)}}@keyframes sun-sheen{0%{opacity:0;transform:translate(-112%)}45%{opacity:.72}to{opacity:0;transform:translate(112%)}}@keyframes footer-grid-drift{to{transform:translate(23px)}}@keyframes footer-scan{0%,to{opacity:0;transform:translate(-46%)}18%{opacity:.85}50%{opacity:.7;transform:translate(46%)}80%{opacity:0}}.header-link{width:auto;padding-left:12px;padding-right:12px;font-size:.78rem;font-weight:650}[data-tilt]{--tilt-x-rotation:0deg;--tilt-y-rotation:0deg;--tilt-x:50%;--tilt-y:50%;isolation:isolate;transform-style:preserve-3d;will-change:transform;position:relative}[data-tilt]:after{z-index:-1;border-radius:inherit;background:radial-gradient(180px circle at var(--tilt-x) var(--tilt-y), rgba(255,255,255,.24), transparent 66%);content:"";opacity:0;pointer-events:none;transition:opacity .16s;position:absolute;top:0;bottom:0;left:0;right:0}[data-tilt]:hover{transform:perspective(800px) rotateX(var(--tilt-x-rotation)) rotateY(var(--tilt-y-rotation)) scale(1.045)!important;transition-duration:90ms!important}[data-tilt]:hover:after{opacity:1}[data-tilt]:not(:hover){transition:transform .38s cubic-bezier(.2,.8,.2,1)}[data-reveal]{--reveal-delay:0s;--reveal-x:0px;--reveal-y:22px;transition:opacity .62s ease var(--reveal-delay), transform .76s cubic-bezier(.2, .8, .2, 1) var(--reveal-delay), filter .62s ease var(--reveal-delay)}[data-reveal=left]{--reveal-x:-30px;--reveal-y:10px}[data-reveal=right]{--reveal-x:30px;--reveal-y:10px}[data-reveal=up]{--reveal-x:0px;--reveal-y:32px}[data-reveal=fade]{--reveal-x:0px;--reveal-y:0px}:root[data-reveal-motion] [data-reveal]:not(.is-revealed){opacity:0;transform:translate3d(var(--reveal-x), var(--reveal-y), 0) scale(.985);filter:blur(5px)saturate(.92)}:root[data-reveal-motion] [data-reveal=fade]:not(.is-revealed){filter:none;transform:none}[data-reveal].is-revealed{opacity:1;filter:blur()saturate();transform:translate(0,0)scale(1)}@media (prefers-reduced-motion:reduce){[data-reveal],:root[data-reveal-motion] [data-reveal]:not(.is-revealed){opacity:1;filter:none;transition:none;transform:none}.site-footer:before,.site-footer:after,.theme-toggle.is-switching:before,.theme-toggle.is-switching:after,.theme-toggle.is-switching .theme-moon,.theme-toggle.is-switching .theme-sun,.theme-toggle.is-switching .moon-stars,.theme-toggle.is-switching .moon-star,.theme-toggle.is-switching .sun-rays,.theme-toggle.is-switching .sun-core,.theme-toggle.is-switching .sun-flare-dots{transition:none;animation:none}}@media (max-width:640px){.shell{width:min(100% - 28px,1160px)}nav{display:none}.mobile-github{border:1px solid var(--line);width:34px;height:34px;color:var(--text);border-radius:2px;align-items:center;justify-items:center;transition:border-color .18s,background .18s,transform .18s;display:grid}.mobile-github:hover{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));background:color-mix(in srgb, var(--accent) 10%, transparent);transform:rotate(-8deg)scale(1.05)}.mobile-github:focus-visible{border-color:color-mix(in srgb, var(--accent) 55%, var(--line));background:color-mix(in srgb, var(--accent) 10%, transparent);transform:rotate(-8deg)scale(1.05)}.header-inner{min-height:62px}.footer-inner{grid-template-columns:1fr;align-items:start;gap:13px;padding-top:16px;padding-bottom:20px}.footer-copy{justify-self:start}}
