@import "https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=JetBrains+Mono:ital,wght@0,400;0,500;0,700;1,400&display=swap";:root{--bg:#000;--panel:#141414;--element:#1e1e1e;--border:#262626;--ink:#eee;--ink-soft:#c9c9c9;--muted:gray;--accent-primary:#ec5b2b;--accent-primary-hover:#c94d24;--accent-primary-muted:#ec5b2b29;--accent-secondary:#6ba1e6;--accent-secondary-hover:#8bb8ee;--accent-secondary-muted:#6ba1e629;--primary:var(--accent-primary);--primary-deep:var(--accent-primary-hover);--info:var(--accent-secondary);--font:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;--sans:"Inter", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--radius:8px;--content-max:56rem;--content-wide:56rem;--gutter:1.25rem;--shadow:none;color:var(--ink);background:var(--bg);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;font-family:var(--sans);font-synthesis:none;text-rendering:optimizelegibility}:root[data-theme=dark]{--bg:#000;--panel:#141414;--element:#1e1e1e;--border:#262626;--ink:#eee;--ink-soft:#c9c9c9;--muted:gray;--accent-primary:#ec5b2b;--accent-primary-hover:#c94d24;--accent-primary-muted:#ec5b2b29;--accent-secondary:#6ba1e6;--accent-secondary-hover:#8bb8ee;--accent-secondary-muted:#6ba1e629;--primary:var(--accent-primary);--primary-deep:var(--accent-primary-hover);--info:var(--accent-secondary);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}:root[data-theme=light]{--bg:#f8f8f8;--panel:#fff;--element:#e7edef;--border:#d9e2e6;--ink:#11181b;--ink-soft:#37474f;--muted:#5e7077;--accent-primary:#c2471d;--accent-primary-hover:#9e3814;--accent-primary-muted:#c2471d1f;--accent-secondary:#0062d1;--accent-secondary-hover:#0052b0;--accent-secondary-muted:#0062d11a;--primary:var(--accent-primary);--primary-deep:var(--accent-primary-hover);--info:var(--accent-secondary);--backdrop-wash:#f2f5f6cc;--shadow:0 1px 2px #0f172a0a, 0 1px 3px #0f172a0f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}html{scroll-behavior:smooth}@media (prefers-color-scheme:light){:root:not([data-theme]){--bg:#f8f8f8;--panel:#fff;--element:#e7edef;--border:#d9e2e6;--ink:#11181b;--ink-soft:#37474f;--muted:#5e7077;--accent-primary:#c2471d;--accent-primary-hover:#9e3814;--accent-primary-muted:#c2471d1f;--accent-secondary:#0062d1;--accent-secondary-hover:#0052b0;--accent-secondary-muted:#0062d11a;--primary:var(--accent-primary);--primary-deep:var(--accent-primary-hover);--info:var(--accent-secondary);--backdrop-wash:#f2f5f6cc;--shadow:0 1px 2px #0f172a0a, 0 1px 3px #0f172a0f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}}@media (width>=768px){:root{--gutter:2rem}}@media (width>=1440px){:root{--gutter:3rem}}*,:before,:after{box-sizing:border-box}.backdrop{z-index:-1;pointer-events:none;color:var(--ink);position:fixed;inset:0;overflow:hidden}.backdrop canvas{width:100%;height:100%;display:block}.backdrop:after{content:"";pointer-events:none;background:linear-gradient(90deg,#0000 0%,#0000006b 30% 70%,#0000 100%);position:absolute;inset:0}:root[data-theme=light] .backdrop:after{background:linear-gradient(90deg, transparent 0%, var(--backdrop-wash,#f2f5f6cc) 30%, var(--backdrop-wash,#f2f5f6cc) 70%, transparent 100%)}@media (width<=899px){.backdrop:after{display:none}}html,body{overflow-x:clip}html{scroll-behavior:smooth;background:var(--bg);scroll-padding-top:2rem}body{min-width:320px;color:var(--ink);margin:0;line-height:1.6}img{max-width:100%}a{color:inherit;text-decoration:none}a:focus-visible,button:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:4px}.skip-link{z-index:100;color:#fff;background:var(--primary);border-radius:var(--radius);padding:.6rem .9rem;font-size:.8rem;font-weight:700;transition:transform .18s;position:fixed;top:.75rem;left:.75rem;transform:translateY(-160%)}.skip-link:focus{transform:translateY(0)}.scroll-progress{z-index:90;background:var(--primary);transform-origin:0;opacity:0;pointer-events:none;height:2px;position:fixed;top:0;left:0;right:0;transform:scaleX(0)}.to-top{z-index:120;right:calc(1.25rem + env(safe-area-inset-right,0px));bottom:calc(1.25rem + env(safe-area-inset-bottom,0px));cursor:pointer;background:var(--panel);width:2.75rem;height:2.75rem;color:var(--ink-soft);border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font);opacity:0;pointer-events:none;place-items:center;padding:0;font-size:1rem;font-weight:700;line-height:1;transition:opacity .2s,translate .2s,color .15s,border-color .15s,transform .16s ease-out;display:grid;position:fixed;translate:0 8px;box-shadow:0 4px 12px #00000059}.to-top.is-visible{opacity:1;pointer-events:auto;translate:0}.to-top:hover{color:var(--primary);border-color:var(--primary)}.to-top:active{transform:scale(.96)}.site-shell{overflow-x:clip}.section-frame{width:min(calc(100% - var(--gutter) * 2), var(--content-max));margin:0 auto}.reveal{opacity:0;transition:opacity .4s cubic-bezier(.23,1,.32,1),translate .4s cubic-bezier(.23,1,.32,1);translate:0 10px}.reveal.is-inview{opacity:1;translate:0}.wordmark,.site-nav,.skip-link,.intro h1,.work h2,.currently h2,.github h2,.recently h2,.outside-of-work h2,.smaller h2,.experience h2,.skills h2,.toolkit h2,.outside h2,.work-row h3,.smaller-row h3,.exp-row h3,.skills-group h3,.work-status,.smaller-status,.exp-period,.now-ticker__label,.btn-primary{font-family:var(--font)}.site-header{width:min(calc(100% - var(--gutter) * 2), var(--content-max));justify-content:space-between;align-items:center;gap:1rem;margin:0 auto;padding:1rem 0;display:flex}.wordmark{font-size:.95rem;font-weight:700}.site-header__group{align-items:center;gap:.85rem;min-width:0;display:flex}.site-nav{color:var(--ink-soft);gap:1.25rem;font-size:.85rem;display:flex}.site-nav a{border-bottom:2px solid #0000;padding-bottom:.15rem;transition:color .15s,border-color .15s;position:relative}.site-nav a:hover{color:var(--ink)}.site-nav a.is-active{color:var(--ink);border-bottom-color:var(--primary)}@media (hover:hover){.site-nav a[data-shortcut]:after,.lamp-toggle[data-shortcut]:after{content:"press " attr(data-shortcut);z-index:60;font-family:var(--font);letter-spacing:.08em;text-transform:uppercase;white-space:nowrap;color:var(--ink);background:var(--element);border:1px solid var(--border);opacity:0;pointer-events:none;border-radius:6px;padding:.24rem .5rem;font-size:.6rem;font-weight:700;transition:opacity .14s,translate .14s;position:absolute;top:calc(100% + .5rem);left:50%;translate:-50% 2px;box-shadow:0 4px 12px #0006}.site-nav a[data-shortcut]:hover:after,.site-nav a[data-shortcut]:focus-visible:after,.lamp-toggle[data-shortcut]:hover:after,.lamp-toggle[data-shortcut]:focus-visible:after{opacity:1;translate:-50%}.lamp-toggle[data-shortcut]:after{left:auto;right:0;translate:0 2px}.lamp-toggle[data-shortcut]:hover:after,.lamp-toggle[data-shortcut]:focus-visible:after{translate:0}}.nav-menu{display:none;position:relative}.nav-menu-btn{appearance:none;cursor:pointer;width:2.5rem;height:2.5rem;color:var(--ink-soft);background:0 0;border:0;border-radius:10px;justify-content:center;align-items:center;padding:0;transition:color .15s;display:inline-flex}.nav-menu-btn:hover{color:var(--accent-primary,var(--primary))}.nav-menu-btn svg{width:1.4rem;height:1.4rem;display:block}.nav-menu-panel{z-index:50;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);min-width:12rem;margin:0;padding:.4rem;position:absolute;top:calc(100% + .5rem);right:0}.nav-menu-panel a{min-height:44px;font-family:var(--font);color:var(--ink-soft);border-bottom:0;border-radius:6px;align-items:center;padding:.4rem .75rem;font-size:.85rem;transition:color .15s,background .15s;display:flex}.nav-menu-panel a:hover{color:var(--ink)}.nav-menu-panel a[data-shortcut]:after{content:attr(data-shortcut);font-family:var(--font);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--border);border-radius:4px;margin-left:auto;padding:.05rem .32rem;font-size:.68rem;font-weight:700}.nav-menu-panel a.is-active{color:var(--ink);text-decoration:underline;-webkit-text-decoration-color:var(--primary);text-decoration-color:var(--primary);text-underline-offset:4px;text-decoration-thickness:2px}@media (width<=600px){.site-nav{display:none}.nav-menu{display:block}}.lamp-toggle{appearance:none;cursor:pointer;width:2.5rem;height:2.5rem;color:var(--ink-soft);background:0 0;border:0;border-radius:10px;flex:none;place-items:center;padding:0;transition:color .15s,transform .15s;display:inline-grid;position:relative}.lamp-toggle:hover{color:var(--accent-primary);transform:translateY(-1px)}.lamp-toggle:active{transform:translateY(0)scale(.96)}.lamp-toggle svg{width:1.4rem;height:1.4rem;display:block;overflow:visible}.lamp-stroke{stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;fill:none}.lamp-shade{fill:var(--element);stroke:currentColor;stroke-width:1.5px;stroke-linejoin:round;transition:fill .2s}.lamp-toggle.is-on .lamp-shade{fill:#2b1a12}:root[data-theme=light] .lamp-toggle.is-on .lamp-shade{fill:#e9ebee}.lamp-glow{fill:var(--accent-primary);opacity:0;transition:opacity .25s}.lamp-toggle.is-on .lamp-glow{opacity:.28;transition-delay:70ms}.lamp-bulb{fill:#0000;stroke:currentColor;stroke-width:1.5px;transition:fill .2s,stroke .2s}.lamp-toggle.is-on .lamp-bulb{fill:#ffc46b;stroke:#ffc46b}.lamp-knob{fill:currentColor;opacity:.7}.lamp-pull{transition:transform .15s}.lamp-toggle:active .lamp-pull,.lamp-toggle:active .lamp-knob{transform:translateY(1px)}.lamp-rays{stroke:var(--accent-primary);stroke-width:1.5px;stroke-linecap:round;opacity:0;transition:opacity .25s}.lamp-toggle.is-on .lamp-rays{opacity:1;transition-delay:70ms}.sound-toggle{appearance:none;cursor:pointer;width:2.5rem;height:2.5rem;color:var(--ink-soft);background:0 0;border:0;border-radius:10px;flex:none;place-items:center;padding:0;transition:color .15s,transform .15s;display:inline-grid;position:relative}.sound-toggle:hover{color:var(--accent-primary);transform:translateY(-1px)}.sound-toggle:active{transform:translateY(0)scale(.96)}.sound-toggle svg{width:1.4rem;height:1.4rem;display:block}.sound-toggle__wave{opacity:0;transition:opacity .2s}.sound-toggle.is-on .sound-toggle__wave{opacity:1}.sound-toggle__slash{opacity:1;transition:opacity .2s}.sound-toggle.is-on .sound-toggle__slash{opacity:0}@media (width<=600px){.sound-toggle{width:2.25rem;height:2.25rem}}.intro{padding:3rem 0 2rem}.intro h1{letter-spacing:-.03em;margin:0;font-size:1.4rem;font-weight:700;line-height:1.15}.intro p{color:var(--ink-soft);max-width:36rem;margin:.75rem 0 0;font-size:.95rem}.intro-meta{color:var(--muted)!important;font-size:.82rem!important}.now{margin-bottom:2rem}.now-ticker{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:stretch;display:flex;overflow:hidden}.now-ticker__label{border-right:1px solid var(--border);font-family:var(--font);color:var(--muted);white-space:nowrap;background:var(--element);flex:none;align-items:center;gap:.5rem;margin:0;padding:.85rem 1rem;font-size:.8rem;font-weight:500;display:flex}.now-ticker__label .now-dot{color:var(--info)}.now-ticker__viewport{flex:auto;align-items:center;min-width:0;display:flex;position:relative;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,#0000,#000 3rem calc(100% - 3rem),#0000);mask-image:linear-gradient(90deg,#0000,#000 3rem calc(100% - 3rem),#0000)}.now-ticker__track{white-space:nowrap;will-change:transform;align-items:center;padding:.85rem 0;animation:28s linear infinite now-ticker-scroll;display:inline-flex}.now-ticker__item{color:var(--ink-soft);padding-right:2.5rem;font-size:.86rem}.now-ticker__sep{color:var(--accent-primary);vertical-align:.1em;margin-right:.6rem;font-size:.6rem}.now-ticker:hover .now-ticker__track,.now-ticker:focus-within .now-ticker__track{animation-play-state:paused}@keyframes now-ticker-scroll{to{transform:translate(-50%)}}@media (width<=600px){.now-ticker__label{padding:.7rem .75rem;font-size:.72rem}.now-ticker__track{animation-duration:20s}}@media (prefers-reduced-motion:reduce){.now-ticker__track{animation:none}.now-ticker__viewport{overflow-x:auto;-webkit-mask-image:none;mask-image:none}}.work h2,.currently h2,.github h2,.recently h2,.outside-of-work h2,.collections h2,.smaller h2,.experience h2,.skills h2,.toolkit h2,.outside h2{color:var(--primary);text-transform:uppercase;letter-spacing:.1em;margin:0;padding-top:2.25rem;font-size:.78rem;font-weight:700}.work,.currently,.github,.recently,.collections,.smaller,.experience,.skills,.toolkit,.outside{padding-bottom:2.75rem}.section-count{color:var(--muted);font-variant-numeric:tabular-nums;white-space:nowrap;margin-left:.5rem;font-size:.72rem;font-weight:500}.work-list{border-bottom:1px solid var(--border)}.work-row{border-top:1px solid var(--border);padding:1.6rem 0}.work-row:first-child{border-top:0}.work-row__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.work-row h3{letter-spacing:-.02em;margin:0;font-size:1.15rem;font-weight:700;line-height:1.2}.work-status{color:var(--info);white-space:nowrap;font-size:.74rem}.work-status .live-dot{color:var(--info)}.work-row p{color:var(--ink-soft);max-width:38rem;margin:.55rem 0 0;font-size:.9rem}.work-links{font-size:.82rem!important}.work-links a{border-bottom:1px solid var(--muted)}.work-links a:hover{color:var(--ink);border-color:var(--ink)}.btn-primary{background:var(--primary);color:#fff;border-radius:var(--radius);border:1px solid var(--primary);padding:.45rem 1rem;font-weight:700;transition:background .15s;display:inline-block}.btn-primary:hover{background:var(--primary-deep);border-color:var(--primary-deep);color:#fff}.smaller-list{border-bottom:1px solid var(--border)}.smaller-row{border-top:1px solid var(--border);padding:1.1rem 0}.smaller-row:first-child{border-top:0}.smaller-row__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.smaller-row h3{margin:0;font-size:.9rem;font-weight:500}.smaller-status{color:var(--info);white-space:nowrap;font-size:.72rem}.smaller-row p{color:var(--muted);max-width:38rem;margin:.4rem 0 0;font-size:.8rem}.smaller-links{font-size:.78rem!important}.smaller-links a{color:var(--muted);border-bottom:1px solid var(--muted);transition:color .15s,border-color .15s}.smaller-links a:hover{color:var(--primary);border-color:var(--primary)}.collections-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.collections-toggle{border:1px solid var(--border);border-radius:var(--radius);font-family:var(--font);display:inline-flex;overflow:hidden}.collections-toggle button{appearance:none;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);background:0 0;border:0;margin:0;padding:.45rem .95rem;font-family:inherit;font-size:.74rem;font-weight:700;transition:color .15s,background .15s,transform .12s ease-out}.collections-toggle button+button{border-left:1px solid var(--border)}.collections-toggle button:hover{color:var(--ink)}.collections-toggle button[aria-pressed=true]{background:var(--primary-deep);border-color:var(--primary-deep);color:#fff}.collections-toggle button:active{transform:scale(.98)}.archive-panel{animation:.24s cubic-bezier(.23,1,.32,1) backwards archive-panel-in}@keyframes archive-panel-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.archive-panel .coll-card{animation:.24s cubic-bezier(.23,1,.32,1) backwards archive-card-in}.archive-panel .coll-card:nth-child(2){animation-delay:40ms}.archive-panel .coll-card:nth-child(3){animation-delay:80ms}.archive-panel .coll-card:nth-child(4){animation-delay:.12s}.archive-panel .coll-card:nth-child(5){animation-delay:.16s}.archive-panel .coll-card:nth-child(6){animation-delay:.2s}.archive-panel .coll-card:nth-child(n+7){animation-delay:.24s}@keyframes archive-card-in{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.collections-strip{scroll-snap-type:x proximity;overscroll-behavior-x:contain;gap:1.25rem;padding:1rem .25rem .9rem;display:flex;overflow-x:auto}.collections-strip:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:var(--radius)}.coll-card{scroll-snap-align:start;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);min-width:0;box-shadow:var(--shadow);flex-direction:column;flex:0 0 clamp(16rem,72vw,20.5rem);padding:1.1rem 1.1rem 1.2rem;display:flex}.coll-card--project{flex-basis:clamp(16rem,60vw,21.5rem)}.coll-cover{aspect-ratio:3/2;object-fit:cover;border:1px solid var(--border);border-radius:var(--radius);background:var(--element);width:100%;height:auto;margin:0 0 .8rem;display:block}.coll-project-cover{aspect-ratio:16/9;object-fit:cover;object-position:top center}.coll-card--project .coll-project-cover{aspect-ratio:4/3}.coll-meta{font-family:var(--font);color:var(--info);margin:0;font-size:.72rem}.coll-title{font-family:var(--font);letter-spacing:-.02em;overflow-wrap:break-word;margin:.4rem 0;font-size:.98rem;font-weight:700;line-height:1.3}.coll-title a{transition:color .15s,border-color .15s}.coll-title a:hover{color:var(--primary);border-color:var(--primary)}.coll-desc{color:var(--ink-soft);overflow-wrap:break-word;margin:.45rem 0 0;font-size:.84rem}.coll-tags{font-family:var(--font);color:var(--muted);margin:.55rem 0 0;font-size:.7rem}.coll-links{flex-wrap:wrap;align-items:center;gap:.5rem 1rem;margin:auto 0 0;padding-top:.75rem;font-size:.8rem;display:flex}.coll-links a{border-bottom:1px solid var(--muted);transition:color .15s,border-color .15s}.coll-links a:hover{color:var(--primary);border-color:var(--primary)}.coll-card--project .coll-desc{margin-bottom:.25rem}.work .coll-meta{text-transform:uppercase;letter-spacing:.04em}.work .coll-desc{min-height:4.6em}.coll-media{border:1px solid var(--border);border-radius:var(--radius);background:var(--element);margin:0 0 .8rem;display:block;position:relative;overflow:hidden}.coll-media .coll-cover{background:0 0;border:0;border-radius:0;margin:0;transition:transform .2s}.coll-media--link{cursor:pointer}.coll-media--link:hover .coll-cover,.coll-media--link:focus-visible .coll-cover{transform:scale(1.03)}.coll-media--link:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.coll-media__cta{border:1px solid var(--border);background:var(--panel);color:var(--ink-soft);font-family:var(--font);text-transform:uppercase;letter-spacing:.08em;opacity:0;pointer-events:none;border-radius:999px;align-items:center;gap:.3rem;padding:.22rem .5rem;font-size:.62rem;font-weight:700;transition:opacity .18s,transform .18s;display:inline-flex;position:absolute;bottom:.5rem;right:.5rem;transform:translateY(3px)}.coll-media--link:hover .coll-media__cta,.coll-media--link:focus-visible .coll-media__cta{opacity:1;transform:translateY(0)}.coll-links a.coll-link--primary{font-family:var(--font);text-transform:uppercase;letter-spacing:.06em;color:var(--primary);border-bottom:0;align-items:center;gap:.4rem;font-size:.72rem;font-weight:700;display:inline-flex}.coll-links a.coll-link--primary:hover{color:var(--primary)}.coll-link__arrow{transition:transform .15s;display:inline-block}.coll-link--primary:hover .coll-link__arrow,.coll-link--primary:focus-visible .coll-link__arrow{transform:translate(3px)}.blog-series-label{font-family:var(--font);color:var(--primary);text-transform:uppercase;letter-spacing:.1em;margin:1.75rem 0 0;font-size:.78rem;font-weight:700}.blog-series-label span{color:var(--muted);font-weight:500}.work-group-label{font-family:var(--font);color:var(--primary);text-transform:uppercase;letter-spacing:.1em;margin:2rem 0 0;font-size:.78rem;font-weight:700}.gallery-note{color:var(--muted);max-width:38rem;margin:1.25rem 0 0;font-size:.82rem}.gallery-strip{scroll-snap-type:x proximity;overscroll-behavior-x:contain;gap:1.25rem;margin-top:1rem;padding:.25rem .25rem .9rem;display:flex;overflow-x:auto}.gallery-strip:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:var(--radius)}.gallery-strip .gallery-card{scroll-snap-align:start;flex:0 0 clamp(15rem,58vw,19rem);min-width:0}.gallery-card{min-width:0;margin:0}.gallery-thumb{appearance:none;cursor:zoom-in;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);width:100%;padding:0;transition:border-color .15s,transform .15s;display:block;overflow:hidden}.gallery-thumb:hover{border-color:var(--primary);transform:translateY(-2px)}.gallery-thumb:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.gallery-thumb img{width:100%;height:auto;display:block}.gallery-card figcaption{flex-direction:column;gap:.15rem;margin-top:.6rem;display:flex}.gallery-title{font-family:var(--font);letter-spacing:-.01em;color:var(--ink);overflow-wrap:break-word;font-size:.85rem;font-weight:700}.gallery-meta{font-family:var(--font);color:var(--muted);overflow-wrap:break-word;font-size:.72rem}.gallery-lightbox{z-index:200;overscroll-behavior:contain;opacity:0;background:#000000d1;justify-content:center;align-items:center;padding:1.25rem;transition:opacity .2s;display:flex;position:fixed;inset:0;overflow:hidden}.gallery-lightbox.is-shown{opacity:1}.gallery-lightbox__panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);opacity:0;width:min(100%,56rem);max-height:calc(100vh - 2.5rem);padding:1.25rem;transition:opacity .2s,transform .24s cubic-bezier(.22,.8,.3,1);overflow-y:auto;transform:translateY(6px)scale(.985)}.gallery-lightbox.is-shown .gallery-lightbox__panel{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.gallery-lightbox,.gallery-lightbox__panel{transition:none}}.gallery-lightbox__bar{justify-content:space-between;align-items:center;gap:1rem;display:flex}.gallery-lightbox__bar>.gallery-lightbox__btn:only-child{margin-left:auto}.gallery-lightbox__count{font-family:var(--font);color:var(--muted);margin:0;font-size:.76rem}.gallery-lightbox__btn{appearance:none;cursor:pointer;border:1px solid var(--border);border-radius:var(--radius);color:var(--ink-soft);font-family:var(--font);text-transform:uppercase;letter-spacing:.08em;background:0 0;padding:.45rem .95rem;font-size:.74rem;font-weight:700;transition:color .15s,border-color .15s}.gallery-lightbox__btn:hover{color:var(--primary);border-color:var(--primary)}.gallery-lightbox__img{object-fit:contain;border:1px solid var(--border);border-radius:var(--radius);background:var(--element);width:auto;max-width:100%;height:auto;max-height:calc(100dvh - 14rem);margin:1rem auto 0;display:block}.gallery-lightbox__title{font-family:var(--font);letter-spacing:-.02em;margin:1rem 0 0;font-size:1.05rem;font-weight:700}.gallery-lightbox__meta{font-family:var(--font);color:var(--info);margin:.35rem 0 0;font-size:.76rem}.gallery-lightbox__desc{color:var(--ink-soft);max-width:46rem;margin:.6rem 0 0;font-size:.86rem}.gallery-lightbox__points{gap:.75rem;margin:1rem 0 0;display:grid}.gallery-lightbox__points div{margin:0}.gallery-lightbox__points dt{font-family:var(--font);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.72rem;font-weight:700}.gallery-lightbox__points dd{color:var(--ink-soft);margin:.3rem 0 0;font-size:.86rem}.gallery-lightbox__nav{border-top:1px solid var(--border);justify-content:space-between;gap:1rem;margin-top:1.25rem;padding-top:1rem;display:flex}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;left:0;overflow:hidden}.experience-anchor{scroll-margin-top:1rem}.exp-list{border-bottom:1px solid var(--border)}.exp-row{border-top:1px solid var(--border);grid-template-columns:2.5rem 1fr;gap:0 1.1rem;padding:1.85rem 0;display:grid}.exp-row:first-child{border-top:0;padding-top:1.5rem}.experience .exp-row{opacity:0;transition:opacity .36s cubic-bezier(.23,1,.32,1),translate .36s cubic-bezier(.23,1,.32,1);translate:0 8px}.experience.reveal.is-inview .exp-row{opacity:1;translate:0}.experience.reveal.is-inview .exp-row:nth-child(2){transition-delay:40ms}.experience.reveal.is-inview .exp-row:nth-child(3){transition-delay:80ms}.experience.reveal.is-inview .exp-row:nth-child(4){transition-delay:.12s}.experience.reveal.is-inview .exp-row:nth-child(5){transition-delay:.16s}.experience.reveal.is-inview .exp-row:nth-child(6){transition-delay:.2s}.exp-index{color:var(--primary);padding-top:.1rem;font-size:.85rem;font-weight:700}.exp-row__title{letter-spacing:-.01em;margin:0;font-size:.95rem;font-weight:700}.exp-row__trigger{appearance:none;cursor:pointer;text-align:left;border-radius:var(--radius);width:100%;color:inherit;font:inherit;background:0 0;border:1px solid #0000;flex-wrap:wrap;align-items:baseline;gap:1rem;margin:0 -.35rem;padding:.15rem .35rem;transition:color .15s,background .15s,transform .16s cubic-bezier(.23,1,.32,1);display:flex}.exp-row__trigger:active{transform:scale(.97)}.exp-row__trigger:hover{background:#ffffff06}.exp-row__trigger:hover .exp-row__role{color:var(--primary)}.exp-row__trigger:focus-visible{border-color:var(--primary)}.exp-row__role{transition:color .15s}.exp-org{color:var(--muted);font-weight:500}.exp-period{color:var(--info);white-space:nowrap;margin-left:auto;font-size:.72rem}.exp-row__chevron{width:1.35rem;height:1.35rem;color:var(--muted);border-radius:6px;flex:none;place-items:center;transition:rotate .18s cubic-bezier(.4,0,.2,1),color .15s;display:inline-grid}.exp-row__trigger:hover .exp-row__chevron{color:var(--ink-soft)}.exp-row.is-open .exp-row__chevron{color:var(--ink-soft);rotate:180deg}.exp-row__panel{visibility:hidden;grid-template-rows:0fr;transition:grid-template-rows .18s cubic-bezier(.4,0,.2,1),visibility 0s linear .18s;display:grid}.exp-row.is-open .exp-row__panel{visibility:visible;grid-template-rows:1fr;transition:grid-template-rows .22s cubic-bezier(.4,0,.2,1),visibility}.exp-row__panel-inner{opacity:0;min-height:0;transition:opacity .18s cubic-bezier(.4,0,.2,1);overflow:hidden}.exp-row.is-open .exp-row__panel-inner{opacity:1;transition:opacity .18s cubic-bezier(.4,0,.2,1)}.exp-highlights{max-width:51rem;margin:1.35rem 0 0;padding-left:1.15rem}.exp-highlights li{color:var(--ink-soft);font-size:1.0625rem;line-height:1.6}.exp-highlights li+li{margin-top:1.1rem}.exp-highlights li::marker{color:var(--muted)}.exp-metric{color:var(--ink);font-weight:700}.exp-supporting{color:var(--muted);max-width:51rem;margin:1.5rem 0 0;font-size:.875rem;line-height:1.6}.skills-grid{grid-template-columns:1fr 1fr;gap:1.5rem;max-width:60rem;padding-top:1.1rem;display:grid}.skills-group{min-width:0}.skills-group h3{color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:.72rem;font-weight:700}.skill-chips,.toolkit-chips{flex-wrap:wrap;gap:.6rem;margin-top:.75rem;display:flex}.skill-chip,.tool-chip{border:1px solid var(--border);color:var(--ink-soft);background:#161616;border-radius:10px;align-items:center;gap:.55rem;padding:.55rem .85rem .55rem .6rem;font-size:.84rem;font-weight:500;line-height:1.25;transition:border-color .15s,transform .15s,background .15s;display:inline-flex}.skill-chip:hover,.tool-chip:hover{background:#1c1c1c;border-color:#3a3a3a;transform:translateY(-1px)}.skill-chip__icon,.tool-chip__icon{color:#d6d6d6;background-color:var(--icon-tile-bg,#242424);border-radius:6px;flex:none;place-items:center;width:1.5rem;height:1.5rem;transition:background-color .2s;display:inline-grid;overflow:hidden}.skill-chip:hover .skill-chip__icon,.skill-chip:focus-within .skill-chip__icon,.tool-chip:hover .tool-chip__icon,.tool-chip:focus-within .tool-chip__icon{background-color:var(--brand-wash,var(--icon-tile-bg,#242424))}.skill-chip__icon svg,.tool-chip__icon svg{filter:grayscale();opacity:.85}.skill-chip:hover .skill-chip__icon svg,.skill-chip:focus-within .skill-chip__icon svg,.tool-chip:hover .tool-chip__icon svg,.tool-chip:focus-within .tool-chip__icon svg{filter:grayscale(0);opacity:1}.skill-chip__icon:has(.skill-icon--figma){--brand-wash:#f24e1e29}.skill-chip__icon:has(.skill-icon--git){--brand-wash:#f0503229}.skill-chip__icon:has(.skill-icon--github){--brand-wash:#ffffff1f}.skill-chip__icon:has(.skill-icon--linux){--brand-wash:#ffd04229}.skill-chip__icon:has(.skill-icon--hyprland){--brand-wash:#9678ff29}.skill-chip__icon:has(.skill-icon--zed){--brand-wash:#94a3b829}.skill-chip__icon:has(.skill-icon--x){--brand-wash:#a0a0a02e}.skill-chip__icon:has(.skill-icon--linkedin){--brand-wash:#0a66c233}.chip-stamp.is-armed .skill-chip,.chip-stamp.is-armed .tool-chip{opacity:0}.chip-stamp.is-armed .skill-chip:nth-child(odd){--stamp-rotate:-4deg}.chip-stamp.is-armed .skill-chip:nth-child(2n){--stamp-rotate:4deg}.chip-stamp.is-armed .tool-chip:nth-child(odd){--stamp-rotate:-4deg}.chip-stamp.is-armed .tool-chip:nth-child(2n){--stamp-rotate:4deg}.chip-stamp.is-armed.is-stamped .skill-chip,.chip-stamp.is-armed.is-stamped .tool-chip{animation:chip-stamp .18s cubic-bezier(.22, .9, .28, 1) var(--stamp-delay,0s) backwards;opacity:1}@keyframes chip-stamp{0%{opacity:0;transform:scale(1.4) rotate(var(--stamp-rotate,4deg))}to{opacity:1;transform:scale(1)rotate(0)}}.toolkit-chips{margin-top:0;padding-top:1.1rem}@media (prefers-color-scheme:light){:root:not([data-theme=dark]) .skill-chip,:root:not([data-theme=dark]) .tool-chip{color:var(--ink-soft);background:#f1f3f5}:root:not([data-theme=dark]) .skill-chip:hover,:root:not([data-theme=dark]) .tool-chip:hover{background:#e9ecef;border-color:#d3d8dd}:root:not([data-theme=dark]) .skill-chip__icon,:root:not([data-theme=dark]) .tool-chip__icon{--icon-tile-bg:#e2e6ea;color:var(--ink-soft)}}:root[data-theme=light] .skill-chip,:root[data-theme=light] .tool-chip{color:var(--ink-soft);background:#f1f3f5}:root[data-theme=light] .skill-chip:hover,:root[data-theme=light] .tool-chip:hover{background:#e9ecef;border-color:#d3d8dd}:root[data-theme=light] .skill-chip__icon,:root[data-theme=light] .tool-chip__icon{--icon-tile-bg:#e2e6ea;color:var(--ink-soft)}.outside p{color:var(--muted);max-width:38rem;margin:0;padding-top:1.1rem;font-size:.82rem}.site-footer{border-top:1px solid var(--border);color:var(--ink-soft);padding:2rem 0 3rem;font-size:.84rem}.site-footer p{margin-bottom:16px}.site-footer a{transition:color .15s,border-color .15s}.site-footer a:hover{color:var(--ink);border-color:var(--ink)}.email-note{color:var(--muted)}.contact-links{margin-top:2rem}.contact-links__title{font-family:var(--font);color:var(--muted);letter-spacing:.08em;margin:0;font-size:.72rem;font-weight:700}.contact-links .skill-chips{margin-top:.75rem;margin-bottom:2rem}.contact-links .skill-chip{text-decoration:none}.hire{padding-top:1.5rem}.hire__intro{color:var(--ink-soft);max-width:38rem;margin:0 0 1.9rem;font-size:.85rem;line-height:1.6}.hire__form{border-top:1px solid var(--border)}.hire__row{border-bottom:1px solid var(--border);grid-template-columns:5rem 1fr;align-items:baseline;gap:0 .9rem;display:grid}.hire__label{font-family:var(--font);color:var(--muted);white-space:nowrap;padding:.7rem 0;font-size:.78rem}.hire__value,.hire__input,.hire__textarea{width:100%;min-width:0;font-family:var(--font);color:var(--ink);background:0 0;border:0;border-radius:0;padding:.7rem;font-size:.82rem}.hire__value{color:var(--ink-soft);display:block}.hire__input::placeholder,.hire__textarea::placeholder{color:var(--muted);opacity:1}.hire__input:focus-visible,.hire__textarea:focus-visible{outline:2px solid var(--primary);outline-offset:-2px}.hire__body{border-bottom:1px solid var(--border)}.hire__textarea{resize:vertical;min-height:5.5rem;line-height:1.6;display:block}.hire__foot{justify-content:space-between;align-items:center;gap:1rem;margin-top:.9rem;display:flex}.hire__status{font-family:var(--font);color:var(--muted);min-height:1em;margin:0;font-size:.72rem}.hire__send{font-family:var(--font);color:var(--ink-soft);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;background:0 0;padding:.45rem 1.1rem;font-size:.78rem;font-weight:700;transition:color .15s,border-color .15s,transform .16s ease-out}.hire__send:hover{color:var(--primary);border-color:var(--primary)}.hire__send:active{transform:scale(.97)}.hire__send:disabled{opacity:.5;cursor:default;transform:none}.hire__trap{opacity:0;pointer-events:none;width:1px;height:1px;position:absolute}.hire__receipt{padding:.4rem 0 .2rem}.hire__receipt-line{font-family:var(--font);color:var(--ink-soft);margin:0;font-size:.82rem;line-height:1.6}.hire__receipt-line:focus-visible{outline:2px solid var(--primary);outline-offset:2px;border-radius:4px}.hire__receipt-prompt{color:var(--primary);font-weight:700}.hire__receipt-subject{font-family:var(--font);color:var(--muted);max-width:38rem;margin:.3rem 0 0;font-size:.78rem}.hire__again{appearance:none;cursor:pointer;border:0;border-bottom:1px solid var(--muted);font-family:var(--font);color:var(--ink-soft);background:0 0;margin-top:.9rem;padding:0;font-size:.76rem;transition:color .15s,border-color .15s}.hire__again:hover{color:var(--ink);border-bottom-color:var(--ink)}.cmdline{z-index:150;background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);max-width:calc(100vw - 2rem);font-family:var(--font);color:var(--ink-soft);cursor:pointer;opacity:0;align-items:baseline;gap:.45rem;padding:.5rem .85rem;font-size:.72rem;transition:translate .2s cubic-bezier(.23,1,.32,1),opacity .16s;display:flex;position:fixed;bottom:1.25rem;left:50%;translate:-50% calc(100% + 1.75rem);box-shadow:0 8px 24px #00000073}.cmdline.is-shown{opacity:1;translate:-50%}.cmdline__prompt{color:var(--primary);font-weight:700}.cmdline.is-error{border-color:var(--primary)}@media (prefers-reduced-motion:reduce){.cmdline{transition:none}}@media (width<=700px){.hire__row{grid-template-columns:4.25rem 1fr;gap:0 .6rem}}.footer-clock{font-family:var(--font);font-variant-numeric:tabular-nums}.footer-keys{font-family:var(--font);font-size:.72rem}.footer-meta{color:var(--muted)!important;margin-top:.75rem!important;font-size:.76rem!important}.cs .section-frame{width:min(calc(100% - var(--gutter) * 2), var(--content-wide))}.cs-page{animation:.32s cubic-bezier(.23,1,.32,1) backwards page-in}@keyframes page-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.cs-page .site-header{width:min(calc(100% - var(--gutter) * 2), var(--content-wide))}.cs-page .site-nav a{align-items:center;min-height:44px;display:inline-flex}.cs-header{padding:3rem 0 2rem}.cs-kicker{font-family:var(--font);color:var(--primary);text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:.78rem;font-weight:700}.cs-header h1{font-family:var(--font);letter-spacing:-.02em;text-wrap:balance;overflow-wrap:break-word;margin:.75rem 0 0;font-size:clamp(1.6rem,4vw,2.4rem);font-weight:700;line-height:1.2}.cs-header h1:focus,.cs-section:focus{outline:none}.cs-meta{font-family:var(--font);color:var(--info);margin:.5rem 0 0;font-size:.82rem}.cs-summary{color:var(--ink-soft);max-width:44rem;margin:1rem 0 0;font-size:1rem}.cs-facts{border-top:1px solid var(--border);grid-template-columns:repeat(2,1fr);gap:1rem 2rem;max-width:56rem;margin:1.75rem 0 0;padding:1.25rem 0 0;display:grid}.cs-facts div{margin:0}.cs-facts dt{font-family:var(--font);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.72rem;font-weight:700}.cs-facts dd{color:var(--ink-soft);margin:.3rem 0 0;font-size:.86rem}.cs-section{padding-bottom:2rem}.cs-section h2,.cs-galleries>h2{border-top:1px solid var(--border);font-family:var(--font);color:var(--primary);text-transform:uppercase;letter-spacing:.1em;margin:0;padding-top:1.75rem;font-size:.85rem;font-weight:700}.cs-section p,.cs-galleries-intro{color:var(--ink-soft);max-width:46rem;margin:1rem 0 0;font-size:.92rem}.cs-section ul{margin:.75rem 0 0;padding-left:1.25rem}.cs-section li{color:var(--ink-soft);max-width:44rem;margin:.5rem 0 0;font-size:.92rem}.cs-galleries{padding-bottom:2rem}.cs-galleries-intro{color:var(--muted)!important;font-size:.86rem!important}.cs-gallery{margin-top:2.5rem}.cs-gallery h3{font-family:var(--font);letter-spacing:-.02em;margin:0;font-size:1.05rem;font-weight:700}.cs-gallery-intro{color:var(--muted);max-width:46rem;margin:.5rem 0 0;font-size:.88rem}.cs-screens{scroll-snap-type:x proximity;gap:1.5rem;margin-top:1.25rem;padding:.25rem .25rem .75rem;display:flex;overflow-x:auto}.cs-screens:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:var(--radius)}.cs-screen{scroll-snap-align:start;flex:0 0 15rem;min-width:0;margin:0}.cs-screens--landscape .cs-screen{flex-basis:clamp(16rem,60vw,26rem)}.cs-screens--portrait .cs-screen{flex-basis:15rem}.cs-screen__btn{appearance:none;cursor:zoom-in;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);width:100%;padding:0;transition:border-color .15s,transform .15s;display:block;overflow:hidden}.cs-screen__btn:hover{border-color:var(--primary);transform:translateY(-2px)}.cs-screen__btn:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.cs-screen img{width:100%;height:auto;display:block}.cs-screen figcaption{color:var(--muted);overflow-wrap:break-word;margin-top:.6rem;font-size:.8rem;line-height:1.6}.cs-screen-name{font-family:var(--font);color:var(--ink-soft);overflow-wrap:break-word;margin-bottom:.2rem;font-size:.76rem;font-weight:700;display:block}.cs-omitted{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);margin-top:2.5rem;padding:1.25rem}.cs-omitted p{color:var(--ink-soft);margin:0;font-size:.86rem}.cs-omitted ul{margin:.75rem 0 0;padding-left:1.25rem}.cs-omitted li{color:var(--muted);margin:.5rem 0 0;font-size:.84rem}.work-title-link{transition:color .15s,border-color .15s}.work-title-link:hover{color:var(--primary);border-color:var(--primary)}.cs-related{border-top:1px solid var(--border);justify-content:space-between;gap:2rem;margin-top:1rem;padding-top:1.5rem;display:flex}.cs-related a{flex-direction:column;justify-content:center;gap:.2rem;min-width:0;padding:.5rem 0;transition:color .15s;display:flex}.cs-related a:last-child{text-align:right;align-items:flex-end}.cs-related__dir{font-family:var(--font);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.75rem}.cs-related__title{font-family:var(--font);color:var(--ink);overflow-wrap:break-word;font-size:.95rem;font-weight:700}.cs-related a:hover .cs-related__title{color:var(--primary)}@media (width<=600px){.cs-facts{grid-template-columns:1fr}.cs-screens--portrait .cs-screen{flex-basis:12rem}.cs-screens--landscape .cs-screen{flex-basis:min(20rem,82%)}.cs-screens{gap:1rem}}@media (width<=480px){.cs-related{gap:1rem}.cs-related__title{font-size:.85rem}}@media (width<=600px){.intro{padding-top:2rem}.site-header__group{gap:.6rem}.lamp-toggle{width:2.25rem;height:2.25rem}.skills-grid{grid-template-columns:1fr}.work-row__head,.smaller-row__head,.exp-row__trigger{gap:.35rem}.exp-row{grid-template-columns:1.75rem 1fr;gap:0 .75rem;padding:1.6rem 0}.exp-period{order:-1;margin-left:0;margin-right:auto}.exp-row__role{flex-basis:100%;order:0}.exp-row__chevron{order:1;margin-left:auto}.exp-highlights{margin-top:1.2rem}.exp-highlights li{font-size:1rem}.exp-highlights li+li{margin-top:1rem}.exp-supporting{margin-top:1.35rem}.work .coll-desc{min-height:0}.coll-media--link:hover .coll-cover,.coll-media--link:focus-visible .coll-cover{transform:none}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}.lamp-toggle.is-on .lamp-glow,.lamp-toggle.is-on .lamp-rays{transition-delay:0s}.coll-media--link:hover .coll-cover,.coll-media--link:focus-visible .coll-cover{transform:none}}.currently-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.currently-updated{font-family:var(--font);color:var(--muted);margin:0;font-size:.72rem}.currently-grid{scroll-snap-type:x proximity;overscroll-behavior-x:contain;gap:1rem;margin-top:1.1rem;padding:.25rem .25rem .9rem;display:flex;overflow-x:auto}.currently-card{--object-h:8.75rem;scroll-snap-align:start;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);min-width:0;box-shadow:var(--shadow);flex-direction:column;flex:0 0 18rem;padding:1rem 1.1rem 1.1rem;display:flex}.currently-card__head{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.currently-card__head h3{font-family:var(--font);color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:.72rem;font-weight:700}.currently-badge{font-family:var(--font);color:var(--muted);white-space:nowrap;font-size:.68rem}.currently-badge.is-live{color:var(--info)}.currently-title{font-family:var(--font);letter-spacing:-.01em;overflow-wrap:break-word;margin:.65rem 0 0;font-size:.95rem;font-weight:700;line-height:1.35}.currently-meta{color:var(--muted);overflow-wrap:break-word;margin:.3rem 0 0;font-size:.8rem}.currently-empty{color:var(--muted);margin:.7rem 0 0;font-size:.84rem}.currently-foot{justify-content:space-between;align-items:baseline;gap:.75rem;margin-top:auto;padding-top:.85rem;display:flex}.currently-state{font-family:var(--font);color:var(--info);white-space:nowrap;font-size:.72rem}.currently-link{white-space:nowrap;border-bottom:1px solid var(--muted);margin-left:auto;font-size:.78rem;transition:color .15s,border-color .15s}.currently-link:hover{color:var(--primary);border-color:var(--primary)}.currently-object{--object-w:232px;min-height:var(--object-h,8.75rem);place-items:center;margin-top:.5rem;display:grid}.currently-object--reading,.currently-object--working{min-height:calc(var(--object-w,232px) * 179 / 232)}.currently-working__shot{border:1px solid var(--border);border-radius:12px;width:auto;max-width:100%;max-height:179px;display:block;box-shadow:0 8px 22px #0006}.deck{width:min(100%, var(--object-w));aspect-ratio:232/179;transition:transform .22s;display:block;position:relative}.deck__svg{width:100%;height:100%;display:block}.deck__shadow{fill:#00000073}.deck__body{fill:var(--element);stroke:var(--border);stroke-width:1px;transition:stroke .22s}.deck__body-inner{fill:none;stroke:#ffffff0b;stroke-width:1px}.deck__body-lip{fill:none;stroke:#ffffff12;stroke-width:1.4px;stroke-linecap:round}.deck__platter{fill:#0000004d;stroke:#ffffff0f;stroke-width:1px}.deck__platter-ring{fill:none;stroke:#ffffff0b;stroke-width:.8px}.deck__record-shadow{fill:#0006}.deck__record{fill:#121212;stroke:#ffffff29;stroke-width:.6px}.deck__grooves{fill:none;stroke:#ffffff13;stroke-width:.5px}.deck__label{fill:#2c2825}.deck__label-ring{fill:none;stroke:#00000080;stroke-width:.8px}.deck__spindle-hole{fill:#080808}.deck__spindle-glint{fill:#ffffff73}.deck__rest{fill:var(--muted);opacity:.5}.deck__arm-shadow{fill:none;stroke:#00000059;stroke-width:2.6px;stroke-linecap:round}.deck__arm-tube{fill:none;stroke:var(--muted);stroke-width:2.2px;stroke-linecap:round}.deck__weight{fill:var(--muted)}.deck__cartridge{fill:var(--ink-soft)}.deck__stylus{fill:var(--ink)}.deck__pivot-base{fill:#0000004d}.deck__pivot{fill:var(--element);stroke:var(--muted);stroke-width:1.1px}.deck__pivot-dot{fill:var(--muted)}.deck__spin{transform-box:view-box;transform-origin:60px 63px;animation:9s linear infinite paused deck-spin}.deck.is-playing .deck__spin{animation-play-state:running}@keyframes deck-spin{to{transform:rotate(360deg)}}.deck__arm{transform-box:view-box;transform-origin:124px 30px;transition:transform .62s cubic-bezier(.32,.72,.3,1);transform:rotate(0)}.deck.is-parked .deck__arm{transform:rotate(-18deg)}.deck__notes{z-index:4;pointer-events:none;width:42%;height:56%;position:absolute;top:10%;left:10%;overflow:visible}.deck__note{color:var(--ink-soft);font-family:var(--font);text-shadow:0 1px 3px #0000008c;font-size:1.05rem;font-weight:700;line-height:1;position:absolute}.deck__note--one{animation:2.8s ease-in-out .1s infinite deck-note-one;top:52%;left:28%}.deck__note--two{animation:3.2s ease-in-out .8s infinite deck-note-two;top:28%;left:58%}.deck__note--three{animation:2.6s ease-in-out 1.35s infinite deck-note-three;top:68%;left:10%}.deck__notes.is-arming .deck__note,.deck__notes.is-fading .deck__note{animation-play-state:paused}.deck__note-glyph{opacity:0;transition:opacity .5s cubic-bezier(.23,1,.32,1);display:inline-block}.deck__notes.is-playing .deck__note-glyph{opacity:1}@keyframes deck-note-one{0%,to{opacity:0;transform:translate(0)scale(.88)rotate(-8deg)}18%{opacity:.7}72%{opacity:.3;transform:translate(4px,-24px)scale(1)rotate(4deg)}}@keyframes deck-note-two{0%,to{opacity:0;transform:translate(0)scale(.9)rotate(6deg)}20%{opacity:.62}76%{opacity:.22;transform:translate(-5px,-30px)scale(1.04)rotate(-4deg)}}@keyframes deck-note-three{0%,to{opacity:0;transform:translate(0)scale(.86)rotate(-3deg)}16%{opacity:.62}70%{opacity:.2;transform:translate(5px,-27px)scale(1.02)rotate(7deg)}}.deck__arm-button{z-index:5;appearance:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;background:0 0;border:1px solid #0000;border-radius:10px;padding:0;position:absolute;inset:10.8% 3.8% 5.8% 47%}@media (pointer:coarse){.deck__arm-button{top:8%;bottom:4%;left:3.8%}}.deck__arm-button:hover{background:#ffffff06}.deck__arm-button:focus-visible{border-color:var(--primary);outline:2px solid var(--primary);outline-offset:2px}.crt{width:min(100%, var(--object-w,232px));display:block;position:relative}.crt__body{aspect-ratio:150/113;border:1px solid var(--border);background:var(--element);border-radius:9px 9px 6px 6px;width:100%;padding:6px 13px 0;transition:transform .16s ease-out;display:block;position:relative;box-shadow:inset 0 1px #ffffff0f,0 3px 7px #00000059}.crt__body:active{transform:translateY(1px)}.crt__screen{aspect-ratio:4/3;background:#050505;border-radius:8px;display:block;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #000000e6,inset 0 0 16px 3px #000000a6}.crt__tube{transform-origin:50%;opacity:0;transition:transform .2s cubic-bezier(.5,0,.75,0),opacity .16s ease-out .24s,filter .24s;display:block;position:absolute;inset:0;transform:scaleY(.006)}.crt.is-on .crt__tube{opacity:1;transition:transform .34s cubic-bezier(.23,1,.32,1),opacity .12s ease-out,filter .24s;transform:scaleY(1)}.crt{--snow-filter:brightness(1.35) contrast(3);--snow-opacity:.52}:root[data-theme=light] .crt{--snow-filter:brightness(.62) contrast(3)}@media (prefers-color-scheme:light){:root:not([data-theme]) .crt{--snow-filter:brightness(.62) contrast(3)}}.crt__static{image-rendering:pixelated;filter:var(--snow-filter);opacity:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.75' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='16' height='16' filter='url(%23n)'/%3E%3C/svg%3E");background-size:22px 22px;display:block;position:absolute;inset:-12%}.crt.is-on .crt__static{opacity:var(--snow-opacity);animation:.82s step-end crt-static-burst,2.6s step-end infinite crt-static-drift}.crt__picture{aspect-ratio:2/3;background:#0a0a0a;border-radius:2px;height:88%;position:absolute;top:50%;left:50%;overflow:hidden;transform:translate(-50%,-50%);box-shadow:0 1px 4px #000000bf,0 0 0 1px #0000008c}.crt__poster{object-fit:cover;width:100%;height:100%;display:block}.crt:not(.is-on) .crt__poster{opacity:0}.crt.is-on .crt__poster{animation:.42s ease-out .28s both crt-picture-in}.crt__fallback{font-family:var(--font);color:var(--muted);place-items:center;font-size:1rem;font-weight:700;display:grid;position:absolute;inset:0}.crt__glass{pointer-events:none;background:linear-gradient(142deg,#ffffff17,#fff0 44%),radial-gradient(120% 120%,#0000 58%,#00000052 100%);position:absolute;inset:0}.crt__scanlines{pointer-events:none;opacity:.28;background:repeating-linear-gradient(#00000021 0 1px,#0000 1px 3px);position:absolute;inset:0}.crt__panel{justify-content:space-between;align-items:center;height:14px;padding:0 2px;display:flex}.crt__grille{gap:2.5px;display:inline-flex}.crt__grille span{background:var(--border);border-radius:1px;width:2px;height:6px;display:block}.crt__controls{align-items:center;gap:5px;display:inline-flex}.crt__led{background:#2e2e2e;border-radius:50%;width:4px;height:4px;transition:background .22s,box-shadow .22s}.crt.is-on .crt__led{background:var(--muted);transition-delay:.32s}.crt.is-on.is-live .crt__led{background:var(--info);box-shadow:0 0 5px var(--info)}.crt__knob{background:var(--border);border-radius:50%;width:8px;height:8px;position:relative;box-shadow:inset 0 1px 1px #ffffff24,inset 0 -1px 1px #0006}.crt__knob:after{content:"";background:var(--muted);width:1px;height:3px;position:absolute;top:1.4px;left:50%;transform:translate(-50%)}.crt__panel-button{z-index:5;appearance:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #0000;border-radius:0 0 8px 8px;height:18px;padding:0;position:absolute;bottom:0;left:0;right:0}.crt__panel-button:focus-visible{border-color:var(--primary);outline:2px solid var(--primary);outline-offset:-2px}@media (pointer:coarse){.crt__panel-button{height:32px}}.crt__feet{justify-content:space-between;padding:0 22px;display:flex}.crt__foot{border:1px solid var(--border);background:var(--element);border-top:0;border-radius:0 0 3px 3px;width:16px;height:4px;display:block}.crt__line{z-index:3;opacity:0;background:#fff;height:2px;margin-top:-1px;display:block;position:absolute;top:50%;left:4%;right:4%;box-shadow:0 0 6px 1px #ffffffa6}.crt.is-turning-off .crt__line{animation:.4s ease-out crt-line-flash}.crt.is-on .crt__line{animation:.52s ease-out crt-line-flash}@keyframes crt-line-flash{0%{opacity:0}18%{opacity:1}62%{opacity:1}to{opacity:0}}@keyframes crt-picture-in{0%{opacity:0;filter:brightness(1.6)saturate(.2)}55%{opacity:1;filter:brightness(1.12)saturate(.85)}to{opacity:1;filter:brightness()saturate()}}@keyframes crt-static-burst{0%{opacity:.92}28%{opacity:.74}to{opacity:.52}}@keyframes crt-static-drift{0%{transform:translate(0,0)}20%{transform:translate(-6px,3px)}42%{transform:translate(4px,-5px)}64%{transform:translate(-3px,-2px)}82%{transform:translate(5px,4px)}to{transform:translate(0,0)}}.book{--paper:#d9d4c7;--paper-edge:#b6b0a3;width:100%;max-width:100%;display:block;position:relative}.book__stage{width:fit-content;height:150px;margin:.35rem auto 10px;transition:transform .22s;display:block;position:relative}.book__cover{z-index:1;border:1px solid var(--border);background:var(--element);border-radius:2px 4px 4px 2px;width:auto;max-width:100%;height:100%;margin:0 auto;display:block;position:relative;transform:perspective(600px)rotateY(-3deg)rotate(-1.6deg)}.book__pages{z-index:0;border:1px solid var(--paper-edge);background:var(--paper);border-radius:2px 4px 4px 2px;position:absolute;inset:0;transform:perspective(600px)rotateY(-3deg)rotate(-1.6deg)translate(3px,3px)}.book__shadow{z-index:0;background:radial-gradient(50% 50%,#00000061,#0000 70%);border-radius:50%;height:12px;transition:opacity .22s,transform .22s;position:absolute;bottom:-9px;left:6%;right:2%}.book__pages{transition:transform .26s}.book.is-peeking .book__pages{transform:perspective(600px)rotateY(-3deg)rotate(-1.6deg)translate(6px,5px)}.book__bookmark{z-index:0;border:1px solid var(--paper-edge);background:var(--paper);clip-path:polygon(0 0,100% 0,100% 100%,50% 88%,0 100%);border-top:0;border-radius:0 0 2px 2px;width:30px;height:52px;transition:transform .32s cubic-bezier(.23,1,.32,1);display:block;position:absolute;top:-2px;right:14%;transform:translateY(8%)}.book.is-peeking .book__bookmark{transform:translateY(-72%)}.book__bookmark-text{font-family:var(--font);text-align:center;color:#23211d;margin-top:5px;font-size:.6rem;font-weight:700;display:block}.book__button{z-index:2;appearance:none;cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:transparent;background:0 0;border:1px solid #0000;border-radius:4px;padding:0;position:absolute;inset:0}.book__button:focus-visible{border-color:var(--primary);outline:2px solid var(--primary);outline-offset:2px}.book__fallback{border:1px solid var(--border);border-radius:var(--radius);background:var(--element);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:.3rem;min-height:9rem;padding:1rem;display:flex}.book__fallback-title{font-family:var(--font);color:var(--ink);font-size:.85rem;font-weight:700}.book__fallback-author{color:var(--muted);font-size:.75rem}:root[data-theme=light] .book{--paper:#e4dfd2;--paper-edge:#c3bcac}@media (prefers-color-scheme:light){:root:not([data-theme]) .book{--paper:#e4dfd2;--paper-edge:#c3bcac}}@media (hover:hover) and (pointer:fine){.deck:hover{transform:translateY(-2px)}.deck:hover .deck__body{stroke:#ffffff29}.crt__tube{transition:transform .2s cubic-bezier(.5,0,.75,0),opacity .16s ease-out .24s,filter .24s}.crt:hover .crt__tube{filter:brightness(1.06)}.book:hover .book__stage,.book:focus-within .book__stage{transform:translateY(-4px)}.book:hover .book__shadow,.book:focus-within .book__shadow{transform:scaleX(1.05)}}@media (prefers-reduced-motion:reduce){.deck.is-playing .deck__spin{animation:none}.deck,.deck__body,.deck__arm,.book__stage,.book__shadow,.book__pages,.book__bookmark,.crt__body{transition:none}.deck:hover,.book:hover .book__stage,.book:focus-within .book__stage{transform:none}.deck__note{animation:none}.deck__note-glyph,.skill-chip__icon,.tool-chip__icon{transition:none}.chip-stamp.is-armed.is-stamped .skill-chip,.chip-stamp.is-armed.is-stamped .tool-chip{animation:none}.deck__notes.is-playing .deck__note-glyph{opacity:.55}.deck__notes.is-arming .deck__note-glyph,.deck__notes.is-fading .deck__note-glyph{opacity:0}.crt__tube,.crt.is-on .crt__tube{transition:opacity .2s}.crt__line{opacity:0;animation:none}.crt.is-on .crt__static,.crt.is-on .crt__poster{animation:none}}@media (width<=700px){.currently-grid{scroll-snap-type:x proximity;overscroll-behavior-x:contain;gap:1rem;margin-top:1.1rem;padding:.25rem .25rem .9rem;display:flex;overflow-x:auto}.currently-card{scroll-snap-align:start;flex:0 0 min(19rem,80vw)}}.recently-note{color:var(--muted);max-width:38rem;margin:.6rem 0 0;font-size:.82rem}.recently-strip{scroll-snap-type:x proximity;overscroll-behavior-x:contain;gap:1rem;margin-top:1rem;padding:.25rem .25rem .9rem;display:flex;overflow-x:auto}.recently-strip:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:var(--radius)}.recently-card{scroll-snap-align:start;flex:0 0 clamp(8.5rem,30vw,10.5rem);min-width:0;margin:0}.recently-card__link{border-radius:var(--radius);color:inherit;flex-direction:column;gap:.6rem;display:flex}.recently-card__link:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.recently-card__media{aspect-ratio:2/3;border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);place-items:center;width:100%;transition:border-color .15s,transform .15s;display:grid;overflow:hidden}.recently-card__link:hover .recently-card__media{border-color:var(--primary);transform:translateY(-2px)}.recently-card__media img{object-fit:cover;width:100%;height:100%;display:block}.recently-card__fallback{font-family:var(--font);color:var(--muted);font-size:1.6rem;font-weight:700}.recently-card__body{flex-direction:column;gap:.15rem;min-width:0;display:flex}.recently-card__title{font-family:var(--font);letter-spacing:-.01em;color:var(--ink);overflow-wrap:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.82rem;font-weight:700;line-height:1.3;display:-webkit-box;overflow:hidden}.recently-card__meta{color:var(--muted);overflow-wrap:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.74rem;line-height:1.4;display:-webkit-box;overflow:hidden}.recently-card__time{font-family:var(--font);color:var(--info);font-size:.7rem}.recently-profile{text-align:right;margin:0;font-size:.78rem}.recently-profile a{border-bottom:1px solid var(--muted);transition:color .15s,border-color .15s}.recently-profile a:hover{color:var(--primary);border-color:var(--primary)}.skullet-reveal [skullet-loading]{width:100%;overflow-x:hidden}@media (width<=600px){.recently-card{flex-basis:8rem}}.outside-of-work{padding-bottom:2.75rem}.oow-intro{color:var(--ink-soft);max-width:40rem;margin:.6rem 0 0;font-size:.85rem}.outside-of-work h3{font-family:var(--font);color:var(--muted);text-transform:uppercase;letter-spacing:.1em;margin:0;font-size:.76rem;font-weight:700}.oow-block{padding-top:2rem}.oow-block__head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:1rem;display:flex}.oow-block__meta{font-family:var(--font);color:var(--muted);margin:0;font-size:.72rem}.oow-block__link{border-bottom:1px solid var(--muted);font-size:.78rem;transition:color .15s,border-color .15s}.oow-block__link:hover{color:var(--primary);border-color:var(--primary)}.oow-block__note{color:var(--muted);margin:.5rem 0 0;font-size:.82rem}.oow-photos-block{padding-bottom:.5rem}.polaroid{width:var(--pw);--paper:#e4ddcd;--paper-edge:#c9c0ac;--paper-blank:#cdc5b4;--paper-rim:#ffffff0d;--paper-grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)' opacity='0.055'/%3E%3C/svg%3E");--paper-shadow:0 0 0 1px #ffffff0d, 0 26px 48px -24px #000000d9, 0 9px 20px -12px #0009;--paper-shadow-lift:0 0 0 1px #ffffff12, 0 34px 58px -24px #000000e6, 0 12px 24px -12px #000000a8;margin:0}:root[data-theme=light] .polaroid{--paper:#fdfaf2;--paper-edge:#e2dac7;--paper-blank:#e9e3d6;--paper-rim:#ffffffb3;--paper-shadow:0 20px 36px -22px #30271666, 0 6px 14px -8px #30271633;--paper-shadow-lift:0 28px 48px -22px #30271675, 0 9px 18px -8px #3027163d}@media (prefers-color-scheme:light){:root:not([data-theme]) .polaroid{--paper:#fdfaf2;--paper-edge:#e2dac7;--paper-blank:#e9e3d6;--paper-rim:#ffffffb3;--paper-shadow:0 20px 36px -22px #30271666, 0 6px 14px -8px #30271633;--paper-shadow-lift:0 28px 48px -22px #30271675, 0 9px 18px -8px #3027163d}}.polaroid__button{appearance:none;width:100%;color:inherit;cursor:zoom-in;background:0 0;border:0;border-radius:3px;margin:0;padding:0;display:block}.polaroid__button:focus-visible{outline:2px solid var(--primary);outline-offset:5px}.polaroid__button:active .polaroid__paper{transform:translateY(1px)scale(.992)}.polaroid__paper{width:100%;padding:calc(var(--pw) * .058) calc(var(--pw) * .058) calc(var(--pw) * .2);background-color:var(--paper);background-image:var(--paper-grain);box-shadow:var(--paper-shadow), inset 0 0 0 1px var(--paper-rim), inset 0 0 0 2px var(--paper-edge);background-size:140px 140px;border-radius:3px;transition:transform .14s cubic-bezier(.22,.8,.3,1),box-shadow .26s;display:block;position:relative}.polaroid__media{aspect-ratio:9/16;background:var(--paper-blank);border-radius:1px;width:100%;display:block;position:relative;overflow:hidden;box-shadow:0 1px 2px #0000002e,inset 0 0 0 1px #0003}.polaroid__media img{object-fit:cover;opacity:0;width:100%;height:100%;transition:opacity .32s;display:block}.polaroid__media img.is-loaded{opacity:1}.oow-line{--pw:11.5rem;--clip-h:26px;--track-pad:1.25rem;--clip-glow:color-mix(in srgb, var(--accent-primary) 58%, #ffd9a0);--clip-glow-soft:color-mix(in srgb, var(--accent-primary) 30%, transparent);position:relative}@media (width<=600px){.oow-line{--pw:9.5rem}}:root[data-theme=light] .oow-line{--clip-glow:color-mix(in srgb, var(--accent-primary) 42%, #ffd9a0);--clip-glow-soft:color-mix(in srgb, var(--accent-primary) 18%, transparent)}@media (prefers-color-scheme:light){:root:not([data-theme]) .oow-line{--clip-glow:color-mix(in srgb, var(--accent-primary) 42%, #ffd9a0);--clip-glow-soft:color-mix(in srgb, var(--accent-primary) 18%, transparent)}}.oow-line__wire{left:0;right:0;top:calc(var(--track-pad) + var(--clip-h) / 2 - 1px);z-index:0;background:var(--border);height:2px;position:absolute}.oow-line__track{padding-block:var(--track-pad) 2.25rem;scroll-snap-type:x proximity;overscroll-behavior-x:contain;scrollbar-width:none;cursor:grab;align-items:flex-start;gap:clamp(1.25rem,3.5vw,2.75rem);display:flex;position:relative;overflow:auto hidden}.oow-line__track.is-grabbing{cursor:grabbing}.oow-line__track::-webkit-scrollbar{display:none}.oow-line__track:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:var(--radius)}.oow-line__item{scroll-snap-align:start;flex:none;padding-top:34px;position:relative}.oow-line__clip{width:13px;height:var(--clip-h);z-index:3;background:linear-gradient(to bottom, color-mix(in srgb, var(--ink) 20%, #b9bec2), color-mix(in srgb, var(--ink) 52%, #7c8287));box-shadow:0 1px 2px #0006, 0 0 9px 0 var(--clip-glow), 0 0 20px 3px var(--clip-glow-soft);border-radius:3px;position:absolute;top:0;left:50%;transform:translate(-50%)}.oow-line__clip:after{content:"";background:color-mix(in srgb, var(--accent-primary) 26%, #fff2d2);width:5px;height:5px;box-shadow:0 0 4px 1px var(--clip-glow), 0 0 12px 3px var(--clip-glow-soft);border-radius:999px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.oow-line .polaroid{width:var(--pw);transform-origin:50% 0;transform:rotate(var(--tilt,0deg));transition:transform .32s cubic-bezier(.22,.8,.3,1)}.oow-line__item:hover .polaroid,.oow-line__item:focus-within .polaroid{transform:rotate(calc(var(--tilt,0deg) * -1.5))}.oow-line__item:hover .polaroid__paper,.oow-line__item:focus-within .polaroid__paper{box-shadow:var(--paper-shadow-lift), inset 0 0 0 1px var(--paper-rim), inset 0 0 0 2px var(--paper-edge)}@keyframes oow-line-in{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.oow-line.is-in .oow-line__item{animation:.44s cubic-bezier(.22,.9,.28,1) both oow-line-in;animation-delay:calc(var(--i,0) * 45ms)}@media (prefers-reduced-motion:reduce){.oow-line.is-in .oow-line__item{animation:none}.oow-line .polaroid,.polaroid__paper,.polaroid__media img{transition:none}.oow-line__item:hover .polaroid,.oow-line__item:focus-within .polaroid{transform:rotate(var(--tilt,0deg))}}.shelf-scroll{scroll-snap-type:x proximity;overscroll-behavior-x:contain;margin-top:1.25rem;padding:.3rem .3rem .7rem;overflow-x:auto}.shelf-scroll:focus-visible{outline:2px solid var(--primary);outline-offset:-2px;border-radius:var(--radius)}.shelf{--shelf-unit:1rem;align-items:flex-end;gap:.55rem;width:max-content;padding:.45rem .45rem 0;display:flex;position:relative}.shelf:after{content:"";z-index:0;border-top:1px solid var(--border);background:var(--element);border-radius:0 0 2px 2px;height:3px;position:absolute;bottom:3.6rem;left:0;right:0}.shelf-book{z-index:1;min-width:0;width:calc(var(--book-w) * var(--shelf-unit));scroll-snap-align:start;flex-direction:column;margin:0;transition:transform .2s cubic-bezier(.22,.8,.3,1);display:flex;position:relative}.shelf-book__cover{width:100%;height:calc(var(--book-h) * var(--shelf-unit));object-fit:cover;border:1px solid var(--border);background:var(--panel);box-shadow:var(--shadow);transform:rotate(var(--book-tilt,0deg));transform-origin:bottom;border-radius:3px 5px 5px 3px;transition:transform .2s cubic-bezier(.22,.8,.3,1),border-color .2s;display:block}.shelf-book__caption{flex-direction:column;gap:.1rem;height:3.6rem;padding-top:.5rem;display:flex;overflow:hidden}.shelf-book__title{font-family:var(--font);color:var(--ink);overflow-wrap:break-word;-webkit-line-clamp:2;-webkit-box-orient:vertical;font-size:.72rem;font-weight:700;line-height:1.3;transition:color .15s;display:-webkit-box;overflow:hidden}.shelf-book__author{color:var(--muted);font-size:.68rem}@media (hover:hover) and (pointer:fine){.shelf-book:hover .shelf-book__cover{border-color:var(--primary);transform:translateY(-7px)rotate(0)}.shelf-book:hover .shelf-book__title{color:var(--primary)}.shelf-book:hover+.shelf-book{transform:translate(4px)}.shelf-book:has(+.shelf-book:hover){transform:translate(-3px)}}@media (width<=700px){.shelf{--shelf-unit:.85rem}}@media (prefers-reduced-motion:reduce){.shelf-book:hover .shelf-book__cover{transform:rotate(var(--book-tilt,0deg))}.shelf-book:hover+.shelf-book{transform:none}.shelf-book:has(+.shelf-book:hover){transform:none}}.oow-videos{grid-template-columns:repeat(2,1fr);gap:1rem;margin-top:1rem;display:grid}.oow-video{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);flex-direction:column;transition:border-color .15s,transform .15s;display:flex;overflow:hidden}.oow-video:hover{border-color:var(--primary);transform:translateY(-2px)}.oow-video:focus-visible{outline:2px solid var(--primary);outline-offset:3px}.oow-video__media{aspect-ratio:16/9;background:var(--element);display:block;position:relative;overflow:hidden}.oow-video__media img{object-fit:cover;width:100%;height:100%;display:block}.oow-video__kind{font-family:var(--font);text-transform:uppercase;letter-spacing:.08em;color:#fff;background:#0000009e;border-radius:4px;padding:.18rem .42rem;font-size:.6rem;font-weight:700;position:absolute;top:.5rem;left:.5rem}.oow-video__body{flex-direction:column;gap:.35rem;padding:.7rem .8rem .85rem;display:flex}.oow-video__title{font-family:var(--font);color:var(--ink);overflow-wrap:break-word;font-size:.82rem;font-weight:700;line-height:1.35}.oow-video__title--short{color:var(--muted)}.oow-video__tags{font-family:var(--font);color:var(--muted);flex-wrap:wrap;gap:.35rem;font-size:.68rem;display:flex}@media (width<=600px){.oow-videos{grid-template-columns:1fr}}.github{--gh-0:var(--element);--gh-1:color-mix(in srgb, var(--accent-primary) 28%, var(--element));--gh-2:color-mix(in srgb, var(--accent-primary) 52%, var(--element));--gh-3:color-mix(in srgb, var(--accent-primary) 78%, var(--element));--gh-4:var(--accent-primary)}.github-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);box-shadow:var(--shadow);margin-top:1.1rem;padding:1rem 1.1rem 1.1rem}.github-card__head{font-family:var(--font);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;font-size:.8rem;display:flex}.github-card__head a{border-bottom:1px solid var(--muted);transition:color .15s,border-color .15s}.github-card__head a:hover{color:var(--primary);border-color:var(--primary)}.github-error{flex-direction:column;justify-content:center;align-items:flex-start;gap:.5rem;min-height:8.5rem;margin-top:.9rem;padding:.25rem;display:flex}.github-error__title{font-family:var(--font);letter-spacing:-.01em;color:var(--ink);margin:0;font-size:.95rem;font-weight:700}.github-error__body{color:var(--muted);max-width:32rem;margin:0;font-size:.84rem;line-height:1.6}.github-error__actions{flex-wrap:wrap;align-items:center;gap:1.1rem;margin-top:.5rem;display:inline-flex}.github-error__retry{appearance:none;cursor:pointer;font-family:var(--font);text-transform:uppercase;letter-spacing:.08em;border:1px solid var(--border);border-radius:var(--radius);color:var(--ink-soft);background:0 0;padding:.45rem .95rem;font-size:.74rem;font-weight:700;transition:color .15s,border-color .15s,transform .15s}.github-error__retry:hover{color:var(--primary);border-color:var(--primary)}.github-error__retry:active{transform:scale(.97)}.github-error__link{border-bottom:1px solid var(--muted);font-size:.8rem;transition:color .15s,border-color .15s}.github-error__link:hover{color:var(--primary);border-color:var(--primary)}.github-scroll{margin-top:.9rem;padding-bottom:.25rem;overflow-x:auto}.github-scroll:focus-visible{outline:2px solid var(--primary);outline-offset:3px;border-radius:4px}.github-svg{display:block}.github-canvas{position:relative}.github-flap{transform-box:fill-box;transform-origin:50%}.github-flap__panel{fill:var(--element);stroke:var(--border);stroke-width:.75px}.github-flap__seam{stroke:var(--border);stroke-width:.75px}.github-flap__text{fill:var(--muted);font-family:var(--font);letter-spacing:.03em;font-size:9px;font-weight:500}.github-card.is-in .github-flap{animation:.46s cubic-bezier(.22,.9,.28,1) backwards github-flap-in}@keyframes github-flap-in{0%{opacity:0;transform:scaleY(.14)}58%{opacity:1;transform:scaleY(1.05)}to{opacity:1;transform:scaleY(1)}}.github-svg rect.gh-cell{transform-box:fill-box;transform-origin:50%;transition:transform .12s,stroke .12s}.github-cursor{z-index:2;pointer-events:none;border:1.5px solid var(--primary);border-radius:3px;transition:transform 90ms;position:absolute;top:0;left:0}.github-tip{z-index:3;pointer-events:none;white-space:nowrap;border:1px solid var(--border);background:var(--element);box-shadow:var(--shadow);border-radius:5px;gap:.05rem;padding:.32rem .5rem;display:grid;position:absolute;transform:translate(-50%,-100%)}.github-tip.is-below{transform:translate(-50%)}.github-tip__date{font-family:var(--font);letter-spacing:.06em;color:var(--ink);font-size:.68rem;font-weight:700}.github-tip__count{font-family:var(--font);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-size:.6rem}@media (hover:hover) and (pointer:fine){.github-svg rect.gh-cell:hover{stroke:var(--primary);stroke-width:1.25px;transform:scale(1.32)}}@media (prefers-reduced-motion:reduce){.github-card.is-in .github-flap{animation:none}.github-svg rect.gh-cell:hover{stroke:var(--primary);transform:none}.github-cursor{transition:none}}.github-updated{text-transform:uppercase;letter-spacing:.06em}.github-svg rect.gh-l0{fill:var(--gh-0);stroke:var(--border);stroke-width:1px}.github-svg rect.gh-l1{fill:var(--gh-1)}.github-svg rect.gh-l2{fill:var(--gh-2)}.github-svg rect.gh-l3{fill:var(--gh-3)}.github-svg rect.gh-l4{fill:var(--gh-4)}.github-foot{font-family:var(--font);color:var(--muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1rem;margin-top:.75rem;font-size:.72rem;display:flex}.github-legend{align-items:center;gap:.3rem;display:inline-flex}.gh-swatch{border:1px solid var(--border);border-radius:2px;width:10px;height:10px;display:inline-block}.gh-swatch.gh-l0{background:var(--gh-0)}.gh-swatch.gh-l1{background:var(--gh-1);border-color:#0000}.gh-swatch.gh-l2{background:var(--gh-2);border-color:#0000}.gh-swatch.gh-l3{background:var(--gh-3);border-color:#0000}.gh-swatch.gh-l4{background:var(--gh-4);border-color:#0000}@media (width<=600px){.cs-screens{flex-direction:column;overflow:visible}.cs-screens .cs-screen{flex:none;width:100%}.cs-screens--portrait .cs-screen{max-width:18rem;margin-inline:auto}}.initial-loader{z-index:10000;background:var(--bg);opacity:1;place-items:center;transition:opacity .34s cubic-bezier(.23,1,.32,1);display:grid;position:fixed;inset:0}.initial-loader.is-leaving{opacity:0;pointer-events:none}.initial-loader__frame{width:min(26rem,100vw - 2.5rem);font-family:var(--font);color:var(--ink-soft);flex-direction:column;gap:.35rem;font-size:.85rem;line-height:1.5;display:flex}.initial-loader__head{color:var(--muted);text-transform:uppercase;letter-spacing:.14em;margin:0 0 .6rem;font-size:.7rem;font-weight:700}.initial-loader__lines{min-height:9.6rem}.initial-loader__line{color:var(--muted);white-space:pre}.initial-loader__line.is-active{color:var(--ink)}.initial-loader__bar{background:var(--border);border-radius:999px;width:100%;height:2px;margin-top:.9rem;overflow:hidden}.initial-loader__bar-fill{background:linear-gradient(90deg, var(--primary), var(--info));width:0%;height:100%;transition:width .12s linear}.initial-loader__pct{color:var(--primary);letter-spacing:.08em;align-self:flex-end;margin:.35rem 0 0;font-size:.7rem}@media (prefers-reduced-motion:reduce){.initial-loader{transition:opacity .12s}.initial-loader__bar-fill{transition:none}}
