.astro-route-announcer{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;top:0;left:0;overflow:hidden}@font-face{font-family:Geist Pixel;src:url(/fonts/geistpixel-subset.woff2)format("woff2-variations");font-weight:400;font-display:swap}@font-face{font-family:Funnel Display;src:url(/fonts/funneldisplay-latin.woff2)format("woff2");font-weight:300 800;font-display:swap}@font-face{font-family:Chakra Petch;src:url(/fonts/chakrapetch-latin.woff2)format("woff2");font-weight:400;font-display:swap}:root{--bg:#fff;--fg:#1f1f1f;--fg-muted:#727272;--surface:#fafafa;--border:#efefef;--accent:#ade42b;--accent-fg:#1f1f1f;--dot:#f5f5f5;--dot-size:5px;--dot-pitch:25px;--shadow-card:0 18px 40px #1f1f1f24;color-scheme:light;--font-display:"Funnel Display", system-ui, sans-serif;--font-pixel:"Geist Pixel", ui-monospace, monospace;--font-body:"Chakra Petch", system-ui, sans-serif;--pixel-regular:"ELSH" 0;--pixel-square:"ELSH" 1;--fs-display:clamp(3.5rem, 8vw, 7.5rem);--fs-h1:clamp(2.5rem, 5vw, 4rem);--fs-h2:clamp(2rem, 4vw, 3rem);--fs-h3:clamp(1.5rem, 3vw, 2rem);--fs-h4:clamp(1.25rem, 2vw, 1.5rem);--fs-body:clamp(1rem, 1.2vw, 1.125rem);--fs-small:1rem;--fs-tag:.875rem;--fs-btn:1.125rem;--fs-name:clamp(1.375rem, 2.3vw, 2.75rem);--fs-clock:clamp(.875rem, 1.15vw, 1.375rem);--ring:var(--fg);--lh-display:1.02;--lh-title:1.05;--lh-body:1.5;--pad:32px;--gap:24px;--dur-base:.36s;--dur-fast:.22s;--ease-base:ease;--ease-out:cubic-bezier(.22, 1, .36, 1);--dur-sweep:var(--dur-base)}:root[data-theme=dark]{--bg:#1f1f1f;--fg:#f5f5f5;--fg-muted:#9a9aa0;--surface:#1f1f1f;--border:#1a1a1a;--accent:#ade42b;--accent-fg:#1f1f1f;--dot:#111;--shadow-card:0 18px 40px #00000080;--ring:var(--accent);color-scheme:dark}.ring{perspective:1500px;height:100%;min-height:0;position:relative}.ring[data-skin=detail]{perspective:2600px}.ring__stage{width:100%;height:100%;transform-style:preserve-3d;position:relative}.ring__orbit{width:0;height:0;transform-style:preserve-3d;position:absolute;top:50%;left:50%}.panel{width:var(--panel-w,240px);height:var(--panel-h,320px);margin-top:calc(var(--panel-h,320px) / -2);margin-left:calc(var(--panel-w,240px) / -2);background:var(--surface);box-shadow:var(--shadow-card);color:var(--fg);backface-visibility:hidden;opacity:.55;transition:opacity var(--dur-base) var(--ease-base);pointer-events:none;border-radius:10px;text-decoration:none;display:block;position:absolute;top:0;left:0;overflow:hidden}.panel.is-active{opacity:1;pointer-events:auto;cursor:pointer}.panel.is-active:focus-visible{outline:2px solid var(--ring);outline-offset:4px;opacity:1}.panel__media{width:100%;height:100%;display:block;position:relative}.panel__media img,.panel__video{object-fit:cover;width:100%;height:100%;display:block}.panel__video{opacity:0;visibility:hidden;transition:opacity var(--dur-base) var(--ease-base);position:absolute;inset:0}.panel__video.is-playing{opacity:1;visibility:visible}.ring__hint{color:var(--fg-muted);white-space:nowrap;transition:opacity var(--dur-base) var(--ease-base);margin:0;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.ring__hint.is-hidden,:root[data-intro] .ring{opacity:0}.ring:not([data-ring-ready]) .ring__orbit{align-items:center;gap:16px;width:100%;height:100%;display:flex;position:static;overflow-x:auto}.ring:not([data-ring-ready]) .panel{opacity:1;pointer-events:auto;margin:0;position:relative}.ring[data-skin=home]:not([data-ring-ready]) .panel{flex:0 0 min(46vw,280px);height:min(70%,400px)}.ring[data-skin=detail]:not([data-ring-ready]) .panel{aspect-ratio:16/9;flex:0 0 min(86vw,640px);height:auto}@media (prefers-reduced-motion:reduce){.panel,.panel__video,.ring__hint{transition:none}}:root{--vt-morph:.52s;--vt-grow:.42s;--vt-exit:.3s;--vt-card-delay:.38s;--seq-body:.72s;--seq-title:1.02s;--seq-body-direct:0s;--seq-title-direct:.26s;--rise:.42s;--sweep-in:.17s;--sweep-out:.3s;--vt-back:.28s;--vt-back-morph:.38s;--vt-sibling:.3s;--vt-sibling-shift:10%;--seq-body-sibling:.22s;--seq-title-sibling:.48s;--seq-body-about:.24s;--seq-title-about:.52s;--vt-ease-morph:cubic-bezier(.2, 0, 0, 1)}.shell__head{view-transition-name:site-header}.work,.about{view-transition-name:page-card}::view-transition-group(work-hero){animation-duration:var(--vt-morph);animation-timing-function:var(--vt-ease-morph)}::view-transition-image-pair(work-hero){border-radius:10px;overflow:clip}::view-transition-old(work-hero),::view-transition-new(work-hero){object-fit:cover;width:100%;height:100%}html[data-vt=back]::view-transition-group(work-hero),html[data-vt=sibling]::view-transition-group(work-hero){animation-duration:var(--vt-back-morph)}html[data-vt=enter]::view-transition-old(root){animation:vt-page-out var(--vt-exit) var(--ease-base) both}html[data-vt=enter]::view-transition-new(page-card){animation:vt-grow-from-bottom var(--vt-grow) var(--ease-out) both;animation-delay:var(--vt-card-delay)}html[data-vt=enter]::view-transition-new(root){animation:vt-fade-in var(--vt-exit) var(--ease-base) both}html[data-vt=about]::view-transition-old(root){animation:vt-page-out var(--vt-exit) var(--ease-base) both}html[data-vt=about]::view-transition-new(page-card){animation:vt-grow-from-bottom var(--vt-grow) var(--ease-out) both}html[data-vt=about]::view-transition-old(page-card){animation:vt-fade-out var(--vt-exit) var(--ease-base) both}html[data-vt=about]::view-transition-new(root){animation:vt-fade-in var(--vt-exit) var(--ease-base) both}html[data-vt=back]::view-transition-old(page-card){animation:vt-fade-out var(--vt-back) var(--ease-base) both}html[data-vt=back]::view-transition-new(root){animation:vt-fade-in var(--vt-back) var(--ease-base) both}html[data-vt=back]::view-transition-old(root){animation:vt-fade-out var(--vt-back) var(--ease-base) both}html[data-vt=sibling]::view-transition-old(page-card){animation:vt-fade-out var(--vt-sibling) var(--ease-base) both}html[data-vt=sibling]::view-transition-new(page-card){animation:vt-fade-in var(--vt-sibling) var(--ease-base) both}html[data-vt=sibling][data-dir=next]::view-transition-old(page-card){animation:vt-slide-out-left var(--vt-sibling) var(--ease-base) both}html[data-vt=sibling][data-dir=prev]::view-transition-old(page-card){animation:vt-slide-out-right var(--vt-sibling) var(--ease-base) both}@keyframes vt-slide-out-left{to{opacity:0;transform:translateX(calc(-1 * var(--vt-sibling-shift)))}}@keyframes vt-slide-out-right{to{opacity:0;transform:translateX(var(--vt-sibling-shift))}}@keyframes vt-grow-from-bottom{0%{clip-path:inset(100% 0 0)}to{clip-path:inset(0)}}@keyframes vt-page-out{to{opacity:0;transform:scale(.96)}}@keyframes vt-fade-in{0%{opacity:0}}@keyframes vt-fade-out{to{opacity:0}}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}:root{--holo-guilloche:repeating-radial-gradient(ellipse 70% 52% at 26% 20%, #ffffff24 0 1px, transparent 1px 5px), repeating-radial-gradient(ellipse 58% 78% at 80% 72%, #ffffff1a 0 1px, transparent 1px 6px), repeating-radial-gradient(ellipse 90% 60% at 50% 112%, #00000017 0 1px, transparent 1px 4px);--holo-guilloche-mask:repeating-radial-gradient(ellipse 70% 52% at 26% 20%, #000 0 1px, transparent 1px 5px);--holo-foil-image:linear-gradient(115deg, transparent 0%, color-mix(in srgb, var(--accent) 42%, transparent) 14%, #e2f4b04d 26%, #78c8ff29 40%, color-mix(in srgb, var(--accent) 38%, transparent) 55%, #ffeca033 70%, color-mix(in srgb, var(--accent) 34%, transparent) 84%, transparent 100%);--holo-pattern-o:.7;--holo-foil-o:.6;--holo-glare-o:.76;--holo-foil-blend:soft-light;--holo-glare-blend:soft-light;--holo-idle:.6;--holo-front:.8;--holo-hover:1;--holo-card:#ededed;--holo-bevel-light:#fffffff2;--holo-bevel-dark:#00000029;--holo-well:#00000038}:root[data-theme=dark]{--holo-card:#26262b;--holo-bevel-light:#ffffff12;--holo-bevel-dark:#0009;--holo-well:#000000b3}[data-skin=home] .panel{--holo-scale-w:var(--panel-w,240px);--holo-scale-h:var(--panel-h,320px);--holo-radius:calc(var(--holo-scale-w) * .0208);--holo-pad:calc(var(--holo-scale-w) * .0208);--holo-media-radius:calc(var(--holo-scale-w) * .0104);--holo-fs-title:20px;--holo-fs-tags:14px;--holo-fs-num:16px;--holo-num-radius:10px;isolation:isolate;border-radius:var(--holo-radius);background:var(--holo-card);padding:var(--holo-pad);box-shadow:0 12px 28px -10px var(--holo-bevel-dark), inset 1px 1px 0 var(--holo-bevel-light), inset -1px -1px 0 var(--holo-bevel-dark);gap:var(--holo-pad);--holo-mx:calc(18% + var(--holo-i,0) * 11%);--holo-my:calc(30% + var(--holo-i,0) * 7%);--holo-active:var(--holo-idle);flex-direction:column;display:flex}[data-skin=home] .panel.is-active{--holo-active:var(--holo-front)}[data-skin=home] .panel__media{z-index:1;border-radius:var(--holo-media-radius);flex:1;min-height:0;position:relative;overflow:hidden}[data-skin=home] .panel__media:after{content:"";z-index:1;pointer-events:none;border-radius:inherit;box-shadow:inset 0 2px 5px -1px var(--holo-well), inset 1px 0 3px -1px var(--holo-well), inset -1px -1px 0 var(--holo-bevel-light);position:absolute;inset:0}[data-skin=home] .panel__meta{z-index:5;padding:0 1.4% var(--holo-pad);color:var(--fg);opacity:1;background:0 0;flex-direction:column;flex:none;gap:2px;display:flex;position:static;transform:none}[data-skin=home] .panel__title{font-family:var(--font-display);font-weight:700;font-size:var(--holo-fs-title);line-height:1.1}[data-skin=home] .panel__tags{font-size:var(--holo-fs-tags);color:var(--fg-muted);line-height:1.15}[data-skin=home] .panel__title,[data-skin=home] .panel__tags{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}[data-skin=home] .panel__num{top:calc(var(--holo-pad) * 2);right:calc(var(--holo-pad) * 2);z-index:5;background:var(--holo-card);border-radius:var(--holo-num-radius);min-width:2.4em;box-shadow:0 3px 6px -2px var(--holo-bevel-dark), inset 1px 1px 0 var(--holo-bevel-light), inset -1px -1px 0 var(--holo-bevel-dark);font-family:var(--font-pixel);font-variation-settings:var(--pixel-regular);font-size:var(--holo-fs-num);color:var(--fg);pointer-events:none;place-items:center;padding:.35em .7em;line-height:1;display:grid;position:absolute}.holo{z-index:2;pointer-events:none;transition:opacity var(--dur-base) var(--ease-base);position:absolute;inset:0}.holo--pattern{z-index:2;mix-blend-mode:soft-light;opacity:calc(var(--holo-pattern-o) + var(--holo-active) * .3);background-image:var(--holo-guilloche)}.holo--foil{z-index:3;mix-blend-mode:var(--holo-foil-blend);opacity:calc(var(--holo-active) * var(--holo-foil-o));background-image:var(--holo-foil-image);background-size:300% 300%;background-position:var(--holo-mx) var(--holo-my)}.holo--foil:after{content:"";background-image:var(--holo-guilloche-mask);mix-blend-mode:multiply;opacity:.6;position:absolute;inset:0}.holo--glare{z-index:4;mix-blend-mode:var(--holo-glare-blend);opacity:calc(var(--holo-active) * var(--holo-glare-o));background-image:radial-gradient(circle at var(--holo-mx) var(--holo-my), #ffffff8c 0%, #ffffff1f 18%, transparent 42%)}@media (width<=1100px){[data-skin=home] .panel{--holo-fs-title:15px;--holo-fs-tags:11px;--holo-fs-num:12px;--holo-num-radius:8px}}@media (hover:none){.holo--pattern,.holo--foil,.holo--glare{display:none}}@media (prefers-reduced-motion:reduce){[data-skin=home] .panel,[data-skin=home] .panel.is-active{--holo-active:.25}.holo{transition:none}}*,:before,:after{box-sizing:border-box}html,body{height:100%}body{background-color:var(--bg);color:var(--fg);font-family:var(--font-body);font-size:var(--fs-body);line-height:var(--lh-body);-webkit-font-smoothing:antialiased;margin:0;overflow:hidden}h1,h2,h3,h4{font-family:var(--font-display);line-height:var(--lh-title);text-wrap:balance;margin:0}h1{font-weight:700;font-size:var(--fs-h1)}h2{font-weight:700;font-size:var(--fs-h2)}h3{font-weight:400;font-size:var(--fs-h3)}h4{font-weight:400;font-size:var(--fs-h4)}p{margin:0}a{color:inherit}img,video{max-width:100%;display:block}.t-display{font-family:var(--font-display);font-weight:700;font-size:var(--fs-display);line-height:var(--lh-display);letter-spacing:-.01em}.t-small{font-size:var(--fs-small)}.t-tag{font-family:var(--font-pixel);font-variation-settings:var(--pixel-square);font-size:var(--fs-tag)}.t-pixel{font-family:var(--font-pixel);font-variation-settings:var(--pixel-regular)}:focus-visible{outline:2px solid var(--ring);outline-offset:2px}.sr-only{clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}[hidden]{display:none!important}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}@keyframes astroFadeInOut{0%{opacity:1}to{opacity:0}}@keyframes astroFadeIn{0%{opacity:0;mix-blend-mode:plus-lighter}to{opacity:1;mix-blend-mode:plus-lighter}}@keyframes astroFadeOut{0%{opacity:1;mix-blend-mode:plus-lighter}to{opacity:0;mix-blend-mode:plus-lighter}}@keyframes astroSlideFromRight{0%{transform:translate(100%)}}@keyframes astroSlideFromLeft{0%{transform:translate(-100%)}}@keyframes astroSlideToRight{to{transform:translate(100%)}}@keyframes astroSlideToLeft{to{transform:translate(-100%)}}@media (prefers-reduced-motion){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*),[data-astro-transition-scope]{animation:none!important}}.webgl-stage[data-astro-cid-ga4iexfz]{z-index:-1;pointer-events:none;position:fixed;inset:0}.webgl-stage[data-astro-cid-ga4iexfz] canvas{width:100%;height:100%;display:block}html.gl-cursor,html.gl-cursor *{cursor:none!important}.gl-cursor-root{z-index:250;pointer-events:none;view-transition-name:gl-cursor;opacity:0;visibility:hidden;transition:opacity var(--dur-fast) var(--ease-base);position:fixed;inset:0}.gl-cursor-root[data-on=on]{opacity:1;visibility:visible}.gl-cursor-root__dot,.gl-cursor-root__ring{will-change:transform;border-radius:50%;position:absolute;top:0;left:0}.gl-cursor-root__dot{background:var(--fg);width:6px;height:6px;transition:background-color var(--dur-fast) var(--ease-base)}.gl-cursor-root__ring{border:1px solid var(--fg-muted);width:34px;height:34px;transition:border-color var(--dur-fast) var(--ease-base)}.gl-cursor-root[data-hover=on] .gl-cursor-root__ring{border-color:var(--accent)}.gl-cursor-root[data-hover=on] .gl-cursor-root__dot{background:var(--accent)}.theme-sweep[data-astro-cid-hkbrpulz]{z-index:100;background-color:var(--accent);transform-origin:0;pointer-events:none;will-change:transform;position:fixed;inset:0;transform:scaleX(0)}.btn[data-astro-cid-ekguhzzh]{--btn-fill:var(--fg);--btn-fg-hover:var(--bg);isolation:isolate;z-index:0;width:fit-content;color:var(--fg);font-family:var(--font-body);font-size:var(--fs-btn);cursor:pointer;-webkit-tap-highlight-color:transparent;transition:color var(--dur-base) var(--ease-base);background:0 0;border:0;align-items:center;gap:10px;padding:4px 8px;line-height:1.2;text-decoration:none;display:inline-flex;position:relative}.btn--secondary[data-astro-cid-ekguhzzh],.btn--accion[data-astro-cid-ekguhzzh]{--btn-fill:var(--accent);--btn-fg-hover:var(--accent-fg)}.btn[data-astro-cid-ekguhzzh]:before{content:"";z-index:-1;background-color:var(--btn-fill);transform-origin:0;transition:transform var(--dur-base) var(--ease-base);position:absolute;inset:0;transform:scaleX(0)}.btn__icon[data-astro-cid-ekguhzzh]{width:20px;height:20px;display:block;overflow:hidden}.btn__icon[data-astro-cid-ekguhzzh]>svg{opacity:0;transition:transform var(--dur-base) var(--ease-base), opacity var(--dur-base) var(--ease-base);display:block;transform:translateY(100%)}@media (hover:hover) and (pointer:fine){.btn[data-astro-cid-ekguhzzh]:hover{color:var(--btn-fg-hover)}.btn[data-astro-cid-ekguhzzh]:hover:before{transform:scaleX(1)}.btn[data-astro-cid-ekguhzzh]:hover .btn__icon[data-astro-cid-ekguhzzh]>svg{opacity:1;transform:translateY(0)}}.btn[data-astro-cid-ekguhzzh]:focus-visible{color:var(--btn-fg-hover);outline:2px solid var(--ring);outline-offset:2px}.btn[data-astro-cid-ekguhzzh]:focus-visible:before{transform:scaleX(1)}.btn[data-astro-cid-ekguhzzh]:focus-visible .btn__icon[data-astro-cid-ekguhzzh]>svg{opacity:1;transform:translateY(0)}@media (hover:none){.btn[data-astro-cid-ekguhzzh]:active{color:var(--btn-fg-hover)}.btn[data-astro-cid-ekguhzzh]:active:before{transform:scaleX(1)}.btn[data-astro-cid-ekguhzzh]:active .btn__icon[data-astro-cid-ekguhzzh]>svg{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.btn__icon[data-astro-cid-ekguhzzh]>svg{transform:none}}.switch[data-astro-cid-l6lhmie6]{background-color:var(--border);cursor:pointer;border:0;border-radius:6px;align-items:center;width:58px;padding:4px;display:flex}.switch__fill[data-astro-cid-l6lhmie6]{border-radius:4px;flex:1 0 0;align-items:center;min-width:0;display:flex}.switch__on[data-astro-cid-l6lhmie6],.switch__off[data-astro-cid-l6lhmie6]{width:24px;height:24px;transition:background-color var(--dur-fast) var(--ease-base);border-radius:4px}.switch__on[data-astro-cid-l6lhmie6]{background-color:var(--fg)}.switch__off[data-astro-cid-l6lhmie6]{background-color:var(--bg)}:root[data-theme=dark] .switch__fill[data-astro-cid-l6lhmie6]{flex-direction:row-reverse}
