@font-face{font-family:PixelHackers;src:url(/fonts/PixelHackers.woff2)format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:PolySans;src:url(/fonts/PolySans-Slim.woff2)format("woff2");webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-weight:200;font-style:normal;font-display:swap}body.loading-skip #loading-screen{display:none!important}#loading-screen{background:var(--bg);width:100%;height:100%;z-index:var(--z-loading);box-sizing:border-box;justify-content:center;align-items:center;padding-left:2rem;padding-right:2rem;transition:opacity .22s cubic-bezier(.215,.61,.355,1);display:flex;position:fixed;top:0;left:0}#loading-screen.fade-out{opacity:0;pointer-events:none}#loading-screen .loading-content{text-align:center;flex-direction:column;align-items:center;gap:1rem;display:flex}.loading-pixels{justify-content:center;align-items:flex-end;gap:12px;min-width:84px;height:36px;display:flex}.loading-pixel{background:var(--text);will-change:transform;width:12px;height:12px;animation:1.2s steps(4,end) infinite loading-pixel-grid}.loading-pixel:first-child{animation-delay:0s}.loading-pixel:nth-child(2){animation-delay:.3s}.loading-pixel:nth-child(3){animation-delay:.6s}@keyframes loading-pixel-grid{0%{transform:translate(0)}25%{transform:translate(12px)}50%{transform:translate(12px,-12px)}75%{transform:translateY(-12px)}to{transform:translate(0)}}@media (prefers-reduced-motion:reduce){#loading-screen{transition:opacity .1s linear}.loading-pixel{animation:none}}#loading-screen .loading-text{margin:0}@media (width<=768px){#loading-screen{padding-left:1.5rem;padding-right:1.5rem}}:root{color-scheme:light;--bg:white;--text:black;--muted:#5a5a5a;--highlight-bg:black;--highlight-text:white;--skeleton-bg:#e8e8e8;--z-preview:1000;--z-loading:9999}[data-theme=dark]{color-scheme:dark;--bg:black;--text:white;--muted:#c8c8c8;--highlight-bg:white;--highlight-text:black;--skeleton-bg:#2a2a2a}*{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-wrap:balance;font-family:PolySans,Arial,sans-serif;font-size:16px}::selection{color:#fff;background-color:#000}[data-theme=dark] ::selection{color:#000;background-color:#fff}html,body{scroll-behavior:smooth;height:100%;margin:0;padding:0}html{background:var(--bg)}@view-transition{navigation:auto}::view-transition-old(root),::view-transition-new(root){animation-duration:.12s}.corner-nav{view-transition-name:corner-nav}footer{view-transition-name:site-footer}@media (prefers-reduced-motion:reduce){::view-transition-group(*),::view-transition-old(*),::view-transition-new(*){animation:none!important}}body{background:var(--bg);color:var(--text);flex-direction:column;display:flex;overflow:hidden}main{box-sizing:border-box;flex:1;gap:4rem;min-height:0;padding:2rem;display:flex}.homepage-container{--home-main-pad:2rem;--home-content-max:383px;--home-col-gap:4rem;--gallery-safe-left:calc(var(--home-main-pad) + var(--home-content-max) + var(--home-col-gap));--gallery-max:400px;--gallery-w:min(var(--gallery-max), max(0px, calc(100vw - var(--gallery-safe-left) - var(--home-main-pad))));gap:4rem;width:100%;display:flex}.content{z-index:999;flex-direction:column;flex-shrink:0;max-width:383px;display:flex;position:relative}.project-list{flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.project-list li{color:var(--muted);align-items:baseline;gap:.25rem;padding:.125rem 0;display:flex}.project-list li:before{content:"— ";flex-shrink:0}.project-list a{color:var(--muted)}.project-list-row{justify-content:space-between;align-items:baseline;gap:.25rem;display:flex}.project-list-main{min-width:0}.project-tag{color:var(--muted);white-space:nowrap;text-align:right}.gallery-grid>*{transition:opacity .15s ease-out,filter .15s ease-out}.grid-dimmed>*{opacity:.2;filter:blur(3px)}.grid-dimmed>.grid-highlight{opacity:1;filter:none}.gallery-edge-blur{z-index:5;pointer-events:none;-webkit-backdrop-filter:blur(8px);width:100%;height:11rem;position:fixed;left:0}.gallery-edge-blur-top{height:8rem;top:0;mask-image:linear-gradient(#000,#0000)}.gallery-edge-blur-bottom{bottom:0;mask-image:linear-gradient(#0000,#000)}.gallery-blur-layer{position:absolute;inset:0}.gallery-blur-layer:first-child{-webkit-backdrop-filter:blur(2px)}.gallery-blur-layer:nth-child(2){-webkit-backdrop-filter:blur(6px)}.gallery-blur-layer:nth-child(3){-webkit-backdrop-filter:blur(16px)}.gallery-blur-layer:nth-child(4){-webkit-backdrop-filter:blur(32px)}.gallery-edge-blur-top .gallery-blur-layer:first-child{mask-image:linear-gradient(#000 0%,#0000 60%)}.gallery-edge-blur-top .gallery-blur-layer:nth-child(2){mask-image:linear-gradient(#000 0%,#0000 40%)}.gallery-edge-blur-top .gallery-blur-layer:nth-child(3){mask-image:linear-gradient(#000 0%,#0000 25%)}.gallery-edge-blur-top .gallery-blur-layer:nth-child(4){mask-image:linear-gradient(#000 0%,#0000 15%)}.gallery-edge-blur-bottom .gallery-blur-layer:first-child{mask-image:linear-gradient(#0000 40%,#000 100%)}.gallery-edge-blur-bottom .gallery-blur-layer:nth-child(2){mask-image:linear-gradient(#0000 60%,#000 100%)}.gallery-edge-blur-bottom .gallery-blur-layer:nth-child(3){mask-image:linear-gradient(#0000 75%,#000 100%)}.gallery-edge-blur-bottom .gallery-blur-layer:nth-child(4){mask-image:linear-gradient(#0000 85%,#000 100%)}.about-layout .content{flex-shrink:1;min-height:0;overflow-y:auto}.projects-gallery{top:0;bottom:0;left:max(50vw, calc(var(--gallery-safe-left) + var(--gallery-w) / 2));width:var(--gallery-w);position:fixed;overflow:hidden auto;transform:translate(-50%)}.projects-gallery,.about-layout .content,.about-layout .content-sidebar{scrollbar-width:none;-ms-overflow-style:none}.projects-gallery::-webkit-scrollbar{display:none}.about-layout .content::-webkit-scrollbar{display:none}.about-layout .content-sidebar::-webkit-scrollbar{display:none}.gallery-grid{box-sizing:border-box;flex-direction:column;gap:.5rem;width:100%;min-height:min-content;padding-block:2rem;display:flex}.gallery-grid>*{cursor:default;min-height:0;display:flex;overflow:hidden}.gallery-grid a{cursor:default}.gallery-image{filter:grayscale();transition:filter .2s}@media (hover:hover) and (pointer:fine){.gallery-grid>:hover .gallery-image,.grid-highlight .gallery-image{filter:none}}.gallery-item-square{aspect-ratio:1;position:relative}.gallery-grid a.gallery-item-square{display:block}.gallery-image{width:100%;height:100%;aspect-ratio:var(--aspect-ratio,1);object-fit:cover;display:block}.gallery-video-tile{position:relative}.gallery-item-tooltip{display:none}.gallery-cursor-tooltip{pointer-events:none;background:color-mix(in srgb, var(--bg) 60%, transparent);-webkit-backdrop-filter:blur(8px);color:var(--text);white-space:nowrap;z-index:50;transform-origin:0 0;opacity:0;padding:.2rem .45rem .25rem;font-size:16px;line-height:1;position:fixed;scale:.87}.gallery-cursor-tooltip.is-entering{animation:.4s cubic-bezier(.34,1.56,.64,1) forwards gallery-tooltip-in}.gallery-cursor-tooltip.is-exiting{animation:.1s forwards gallery-tooltip-out}@keyframes gallery-tooltip-in{0%{opacity:0;scale:.87}to{opacity:1;scale:1}}@keyframes gallery-tooltip-out{0%{opacity:1;scale:1}to{opacity:0;scale:.95}}@media (prefers-reduced-motion:reduce){.gallery-image{filter:none;transition:none}.gallery-cursor-tooltip.is-entering{opacity:1;animation:none;scale:1}.gallery-cursor-tooltip.is-exiting{opacity:0;animation:none}}a{color:var(--muted);padding:0 2px;text-decoration:underline}a:hover,a:focus-visible,.webring-link:hover,.webring-link:focus-visible,.back-link:hover,.back-link:focus-visible,.theme-toggle:hover,.theme-toggle:focus-visible,.section-link:hover,.section-link:focus-visible{background-color:var(--highlight-bg);color:var(--highlight-text);text-decoration:none}.theme-toggle:focus-visible,a:focus-visible,.webring-link:focus-visible,.back-link:focus-visible,.section-link:focus-visible{outline-offset:2px;outline:2px solid}.inline-avatar{object-fit:cover;vertical-align:middle;border-radius:0;width:1em;height:1em;margin-inline:.15em;display:inline-block;position:relative;top:-1px}.inline-avatar-ring{box-shadow:0 0 0 .5px color-mix(in srgb, currentColor 8%, transparent)}[data-theme=dark] .inline-avatar-invert-dark{filter:invert()}.email{color:var(--muted);margin-bottom:1rem}p{margin-bottom:.25em}.content>:first-child,.about-bio>:first-child{margin-top:0}.text-reveal>*,.reveal{--reveal-order:0;opacity:0;animation:.18s cubic-bezier(.215,.61,.355,1) forwards text-reveal-in;animation-delay:calc(var(--reveal-order) * 35ms);transform:translateY(12px)}.page-intro-pending .text-reveal>*,.page-intro-pending .reveal{animation-play-state:paused}@keyframes text-reveal-in{to{opacity:1;transform:translateY(0)}}@media (prefers-reduced-motion:reduce){.text-reveal>*,.reveal{opacity:1;animation:none;transform:none}}[data-revisit] .text-reveal>*,[data-revisit] .reveal{opacity:1;animation:none;transform:none}.corner-nav{z-index:999;text-align:right;flex-direction:column;align-items:flex-end;gap:.1rem;display:flex;position:fixed;top:1rem;right:1.5rem}.corner-nav-link{min-height:24px;color:var(--muted);align-items:center;padding:0;font-size:16px;text-decoration:none;transition:color .15s;display:flex}.corner-nav-link:hover,.corner-nav-link.is-current,.liking-source:hover{color:var(--text);background:0 0}footer{padding:1rem 2rem;padding-bottom:calc(1rem + env(safe-area-inset-bottom));padding-left:calc(2rem + env(safe-area-inset-left));padding-right:calc(2rem + env(safe-area-inset-right));-webkit-backdrop-filter:none;z-index:999;background:0 0;align-items:center;gap:.25rem;display:flex;position:fixed;bottom:0;left:0;right:0}.webring-nav{flex-direction:row;align-items:center;gap:.25rem;display:flex}.webring-link,.back-link{color:var(--muted);text-decoration:none}.webring-link{justify-content:center;align-items:center;min-width:24px;min-height:24px;font-size:16px;display:flex}.webring-logo{padding:0 .25rem}.back-link{padding:0}.about-bio{margin-bottom:0}.about-layout .content-sidebar{flex-direction:column;flex-shrink:0;gap:2rem;width:380px;max-width:380px;min-height:0;display:flex;overflow:auto}.about-layout .content-sidebar .section-link{width:44ch}.about-layout .gallery-item-tooltip{display:none}.about-layout .gallery-image{opacity:0;will-change:transform, opacity;transition:opacity .22s cubic-bezier(.215,.61,.355,1),transform .22s cubic-bezier(.215,.61,.355,1);transform:translateY(8px)}.about-layout .gallery-image.img-loaded{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.about-layout .gallery-image{opacity:1;transition:none;transform:none}}.section-heading{color:var(--muted);margin:0 0 .75rem}.section-list{flex-direction:column;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.section-item{flex-direction:column;gap:.15rem;display:flex}.section-row{align-items:baseline;gap:.5rem;display:flex}.section-date{flex-shrink:0}.section-link{color:var(--text);text-underline-offset:2px;white-space:nowrap;text-overflow:ellipsis;width:32ch;padding:0;text-decoration:underline #ccc;display:block;overflow:hidden}.section-tag,.section-meta,.section-date,.favorite-topic{color:var(--muted)}.favorite-topic{flex-shrink:0}.favorite-dots{flex:1;min-width:.5rem;overflow:hidden}.favorite-dots:after{content:"................................................................................................................................................................................................";color:var(--muted);letter-spacing:.15em;white-space:nowrap;vertical-align:baseline;display:inline-block}.section-row-favorites{flex-wrap:wrap;gap:.5rem 0;width:100%}.section-row-favorites .favorite-items{flex-shrink:0}.favorite-items{flex-wrap:wrap;justify-content:flex-end;align-items:baseline;gap:0 .35em;display:inline-flex}.favorite-items .section-link{white-space:nowrap;width:auto;display:inline}.section-skeleton .skeleton-line{background:var(--skeleton-bg);border-radius:2px;height:1em;display:block}.section-skeleton .skeleton-title{width:24ch}.section-skeleton .skeleton-meta{width:6ch}.hover-preview-float{z-index:var(--z-preview)}.theme-toggle{color:var(--muted);cursor:pointer;background:0 0;border:none;align-items:center;margin-right:.5rem;padding:0;font-size:16px;text-decoration:none;display:flex}.tab-refocus *{transition-duration:.001ms!important}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.now-layout{--now-pad:2rem;--now-uses-max:360px;--now-col-gap:4rem;--now-safe-left:calc(var(--now-pad) + var(--now-uses-max) + var(--now-col-gap));align-items:flex-start}.now-uses{width:var(--now-uses-max);max-width:var(--now-uses-max);scrollbar-width:none;-ms-overflow-style:none;flex-shrink:1;min-height:0;max-height:100%;overflow-y:auto}.now-liking{--now-liking-max:460px;--now-liking-w:min(var(--now-liking-max), max(0px, calc(100vw - var(--now-safe-left) - var(--now-pad))));width:var(--now-liking-w);top:2rem;bottom:2.5rem;left:max(50vw, calc(var(--now-safe-left) + var(--now-liking-w) / 2));scrollbar-width:none;-ms-overflow-style:none;position:fixed;overflow:hidden auto;transform:translate(-50%)}.now-uses::-webkit-scrollbar{display:none}.now-liking::-webkit-scrollbar{display:none}.liking-source{color:var(--muted);text-decoration:none;transition:color .15s}.uses-list,.liking-list{margin:0;padding:0;list-style:none}.uses-sections{flex-direction:column;gap:1.25rem;display:flex}.uses-section-title{color:var(--muted);margin:0 0 .35rem}.uses-groups{flex-direction:column;gap:.6rem;display:flex}.uses-category{color:var(--muted);margin:0 0 .1rem}.uses-item{color:var(--text);margin-bottom:.05rem;line-height:1.35}.uses-item:last-child{margin-bottom:0}.uses-sep{color:var(--muted);margin:0 .35rem}.uses-link{color:var(--text);text-decoration:none}.liking-groups{flex-direction:column;gap:1.75rem;display:flex}.liking-month{color:var(--muted);margin:0 0 .5rem}.liking-item{align-items:center;gap:.75rem;margin-bottom:1rem;display:flex}.liking-item:last-child{margin-bottom:0}.liking-thumb{object-fit:cover;opacity:0;border-radius:3px;flex-shrink:0;width:56px;height:56px;transition:opacity .2s cubic-bezier(.215,.61,.355,1),transform .2s cubic-bezier(.215,.61,.355,1);display:block;transform:translateY(8px)}.liking-thumb.img-loaded{opacity:1;transform:translateY(0)}@media (prefers-reduced-motion:reduce){.liking-thumb{opacity:1;transition:none;transform:none}}.liking-thumb.is-favicon{object-fit:contain;border-radius:0;width:28px;height:28px}.liking-body{flex:1;min-width:0}.liking-text{color:var(--text);margin:0;line-height:1.45}.liking-link{color:var(--text);border-bottom:1px solid var(--muted);text-decoration:none;transition:border-color .15s}.liking-link:hover{border-bottom-color:var(--text)}.liking-empty{color:var(--muted)}@media (width<=768px){html,body{height:auto}body{display:block;overflow:auto}main{padding:1.5rem;display:block}.homepage-container{flex-direction:column;gap:2rem;display:flex}.content,.about-layout .content-sidebar{width:100%;max-width:100%}.now-uses,.now-liking{width:100%;max-width:100%;max-height:none;overflow-y:visible}.now-liking{position:static;top:auto;bottom:auto;left:auto;transform:none}.projects-gallery{width:100%;height:auto;padding-bottom:4rem;position:static;overflow:visible;transform:none}.corner-nav{background:color-mix(in srgb, var(--bg) 70%, transparent);-webkit-backdrop-filter:blur(8px);flex-direction:row;align-items:center;gap:.75rem;padding:.25rem .5rem;top:1rem;left:1.5rem;right:auto}main{padding-top:3rem}footer{padding:1rem 1.5rem;position:relative}}
