/*! tailwindcss v4.3.5 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:block))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-border-style:solid;--tw-leading:initial;--tw-font-weight:initial;--tw-content:""}}}@layer theme{:root,:host{--color-green-500:oklch(72.3% .219 149.579);--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1 / .75);--font-weight-medium:500;--radius-md:.375rem;--animate-marquee-left:marquee-left var(--duration,30s) linear infinite;--animate-marquee-up:marquee-up var(--duration,30s) linear infinite}}@layer base,components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.-top-6{top:calc(var(--spacing) * -6)}.top-\(--file-name-offset\){top:var(--file-name-offset)}.left-0{left:0}.left-2{left:calc(var(--spacing) * 2)}.mt-8{margin-top:calc(var(--spacing) * 8)}.block{display:block}.contents{display:contents}.flex{display:flex}.inline{display:inline}.table{display:table}.shrink-0{flex-shrink:0}.animate-marquee-left{animation:var(--animate-marquee-left)}.animate-marquee-up{animation:var(--animate-marquee-up)}.flex-col{flex-direction:column}.flex-row{flex-direction:row}.justify-around{justify-content:space-around}.gap-\[var\(--gap\)\]{gap:var(--gap)}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-md{border-radius:var(--radius-md)}.rounded-t-md{border-top-left-radius:var(--radius-md);border-top-right-radius:var(--radius-md)}.rounded-tl-none{border-top-left-radius:0}.\!border{border-style:var(--tw-border-style)!important;border-width:1px!important}.border{border-style:var(--tw-border-style);border-width:1px}.border-b-0{border-bottom-style:var(--tw-border-style);border-bottom-width:0}.px-2{padding-inline:calc(var(--spacing) * 2)}.py-1{padding-block:var(--spacing)}.py-4{padding-block:calc(var(--spacing) * 4)}.pr-2{padding-right:calc(var(--spacing) * 2)}.pl-4{padding-left:calc(var(--spacing) * 4)}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.leading-4{--tw-leading:calc(var(--spacing) * 4);line-height:calc(var(--spacing) * 4)}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}@media (hover:hover){:is(:where(.group):hover .group-hover\:\[animation-play-state\:paused\]){animation-play-state:paused}}.before\:absolute:before{content:var(--tw-content);position:absolute}.before\:top-\[45\%\]:before{content:var(--tw-content);top:45%}.before\:left-2:before{content:var(--tw-content);left:calc(var(--spacing) * 2)}.before\:inline-block:before{content:var(--tw-content);display:inline-block}.before\:size-1:before{content:var(--tw-content);width:var(--spacing);height:var(--spacing)}.before\:rounded-full:before{content:var(--tw-content);border-radius:2147483647px}.before\:bg-green-500:before{content:var(--tw-content);background-color:var(--color-green-500)}}:root,html[data-theme=light]{color-scheme:light;--bg:#fbf1c7;--fg:#282728;--fg-alt:#000;--accent:#3c3836;--card:#ebdbb2;--muted:#7c6f64;--line:#282728;--link:#427b58;--title-1:#3c3836;--title-2:#857a52;--toggle:#f59e0b;--maxw:720px;--pad:18px;--radius:8px}@media (prefers-color-scheme:dark){html:not([data-theme=light]){color-scheme:dark;--bg:#282828;--fg:#ebdbb2;--fg-alt:#fff;--accent:#ebdbb2;--card:#3c3836;--muted:#a89984;--line:#ebdbb2;--link:#8ec07c;--title-1:#fff;--title-2:#d8c787;--toggle:#f59e0b}}html[data-theme=dark]{color-scheme:dark;--bg:#282828;--fg:#ebdbb2;--fg-alt:#fff;--accent:#ebdbb2;--card:#3c3836;--muted:#a89984;--line:#ebdbb2;--link:#8ec07c;--title-1:#fff;--title-2:#d8c787;--toggle:#f59e0b}@keyframes marquee-left{0%{transform:translate(0)}to{transform:translateX(calc(-100% - var(--gap)))}}@keyframes marquee-up{0%{transform:translateY(0)}to{transform:translateY(calc(-100% - var(--gap)))}}html{scroll-behavior:smooth;cursor:url(/assets/cursors/marshmallonyuug.gif),auto;overflow-y:scroll}html,body{height:100%}body{background:var(--bg);color:var(--fg);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font:14px/1.55 IBM Plex Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;transition:background-color .25s,color .25s}::selection{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){::selection{background:color-mix(in oklab, var(--accent) 70%, transparent)}}::selection{color:var(--bg)}::-webkit-scrollbar{width:12px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--card)}::-webkit-scrollbar-thumb:hover{background:var(--accent)}p{margin:0 0 10px}.muted{color:var(--muted)}a,button{cursor:url(/assets/cursors/gracefuldice.gif),pointer}a{color:var(--link);text-underline-offset:4px;border-radius:5px;text-decoration:underline 1px dashed;transition:color .15s,background-color .15s}a:hover{color:var(--bg);background-color:var(--link);text-decoration:none}a:focus-visible{outline:2px dashed var(--accent);outline-offset:1px}a[target=_blank]:after{content:" ↗"}a.exp-mark:after,a.exp-org:after,.header-inner a:after{content:none}.wrap{max-width:var(--maxw);padding:10px var(--pad) calc(var(--pad) * 1.25);margin:0 auto}header{background:var(--card);z-index:10;position:sticky;top:0}.header-inner{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:14px;padding-top:8px;padding-bottom:8px;display:flex}.header-inner a.site-name{color:var(--title-1);text-shadow:2px 2px 7px;font-size:1.5rem;font-weight:600;text-decoration:none}.header-inner a.site-name:hover{color:var(--title-1);background:0 0}.site-name .name-2{color:var(--title-2)}#typewriter{white-space:nowrap}#theme-btn{color:var(--toggle);background:0 0;border:0;border-radius:6px;padding:4px;line-height:0;display:inline-flex}#theme-btn:hover{background:var(--accent)}@supports (color:color-mix(in lab, red, red)){#theme-btn:hover{background:color-mix(in oklab, var(--accent) 15%, transparent)}}#theme-btn:focus-visible{outline:2px dashed var(--accent);outline-offset:1px}#theme-btn svg{width:24px;height:24px;fill:var(--card)}.icon-sun,html[data-theme=dark] .icon-moon{display:none}.icon-moon,html[data-theme=dark] .icon-sun{display:block}.intro{grid-template-columns:1fr 140px;align-items:start;gap:20px;margin:0 0 10px;display:grid}@media (width<=560px){.intro{grid-template-columns:1fr}.avatar-col{order:-1;justify-self:center}}.avatar-col{flex-direction:column;align-items:center;gap:8px;display:flex}.location{color:var(--fg);align-items:center;gap:4px;font-size:14px;font-weight:700;display:inline-flex}.location svg{stroke:red;fill:var(--bg);flex:none}.avatar-frame{border-radius:var(--radius);border:2px solid var(--line);width:140px;height:140px;transition:transform .3s;position:relative;overflow:hidden}.avatar-frame:hover{transform:scale(1.04)}.avatar{object-fit:cover;width:100%;height:100%;display:block}.avatar-hover{object-position:70% center;opacity:0;transition:opacity .2s;position:absolute;inset:0}.avatar-frame:hover .avatar-hover{opacity:1}.badges{margin:0 0 8px}.badges a{border-radius:0;line-height:0;display:block}.badges a:hover{background:0 0}.badges a:after{content:none}.button-badge{width:88px;height:31px;image-rendering:pixelated;display:block}.demo-grid{grid-template-columns:repeat(6,1fr);gap:8px 14px;margin:0 0 16px;display:grid}.demo-grid figure{grid-column:span 2;margin:0}.demo-grid figure:nth-child(4){grid-column:2/span 2}.demo-grid img,.demo-grid video{aspect-ratio:16/9;border-radius:var(--radius);border:2px solid var(--line);object-fit:cover;box-sizing:border-box;width:100%;display:block}.demo-grid figcaption{color:var(--muted);text-align:center;margin-top:3px;font-size:11px}@media (width<=560px){.demo-grid{grid-template-columns:1fr}.demo-grid figure,.demo-grid figure:nth-child(4){grid-column:auto}}main section{margin:44px 0}h2{border-bottom:1px solid var(--line);margin:22px 0 12px;font-size:19px;font-weight:600}@supports (color:color-mix(in lab, red, red)){h2{border-bottom:1px solid color-mix(in oklab, var(--line) 30%, transparent)}}h2{padding-bottom:6px}h2:before{content:">> "}.exp-row{align-items:flex-start;gap:12px;padding:8px 0;display:flex}.exp-mark{flex:none;margin-top:-1px;line-height:0;display:block}.exp-mark:hover{background:0 0}.exp-logo{object-fit:cover;border-radius:6px;width:24px;height:24px;display:block}.exp-header{flex-wrap:wrap;flex:auto;justify-content:space-between;align-items:baseline;gap:4px 12px;min-width:0;display:flex}.exp-org{color:inherit;text-decoration:none}.exp-org:hover{color:var(--link);background:0 0;text-decoration:underline dashed}.card{background:var(--card);border:2px solid var(--line);border-radius:var(--radius);margin:10px 0;padding:14px 16px}.card-borderless{border:0}.pub-item{margin:0}.pub-title{margin-bottom:4px;font-weight:600}.pub-authors{color:var(--muted);margin-bottom:4px;font-size:14px}.pub-authors a{color:inherit;text-decoration:none}.pub-authors a:hover{color:var(--link);background:0 0}.pub-authors a:after{content:none}.pub-venue{margin-bottom:8px;font-style:italic}.pub-links{flex-wrap:wrap;align-items:center;gap:4px;font-size:14px;display:flex}.pub-links img{vertical-align:middle}ul.clean{margin:8px 0;padding:0;list-style:none}ul.clean li{margin:8px 0}footer{border-top:1px solid var(--line);margin-top:48px;padding-top:18px}@supports (color:color-mix(in lab, red, red)){footer{border-top:1px solid color-mix(in oklab, var(--line) 30%, transparent)}}footer{color:var(--muted);font-size:14px}footer a{color:var(--muted)}footer a:hover{color:var(--bg)}.not-found{margin:32px 0}.not-found h1{color:var(--fg-alt);margin:0 0 24px;font-size:clamp(26px,5vw,40px);line-height:1.2}.not-found h1:before{content:">> "}.neon{text-shadow:2px 2px 7px}.not-found p{margin-bottom:20px;font-size:17px}.skip-link{width:1px;height:1px;position:absolute;top:auto;left:-9999px;overflow:hidden}.skip-link:focus{background:var(--card);border-radius:8px;width:auto;height:auto;padding:8px 10px;position:static}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-leading{syntax:"*";inherits:false}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-content{syntax:"*";inherits:false;initial-value:""}.scanlines:where(.astro-sor4u3rk):before{content:"";pointer-events:none;z-index:9999;background:linear-gradient(#14141400 66%,#00000026 0) 0 0/100% 5px;animation:1s linear infinite scanlines;position:fixed;inset:0}@keyframes scanlines{0%{background-position:0 0}to{background-position:0 15px}}@media only screen and (orientation:portrait){.scanlines:where(.astro-sor4u3rk):before{background-size:100% 4px}}@media (prefers-reduced-motion:reduce){.scanlines:where(.astro-sor4u3rk):before{animation:none}}
