:root{--o:#f50;--o-ink:#c84300;--bg:#fffbf5;--fg:#241c15;--muted:#7c7064;--line:#e6ddd0;--code-bg:#f4ece0;--grain:.33;--glow:.07;--serif:"Fraunces", Georgia, serif;--mono:"DM Mono", ui-monospace, "SFMono-Regular", Menlo, monospace;color-scheme:light}:root[data-theme=dark]{--o-ink:#ff7a3d;--bg:#0a0908;--fg:#f1e9de;--muted:#958a7e;--line:#262220;--code-bg:#161412;--grain:.45;--glow:.08;color-scheme:dark}*,:before,:after{box-sizing:border-box}html{background:var(--bg);-webkit-text-size-adjust:100%}body{color:var(--fg);font:400 1.09rem/1.62 var(--serif);font-optical-sizing:auto;font-variation-settings:"SOFT" 50;-webkit-font-smoothing:antialiased;margin:0}::selection{background:var(--o);color:#fff}:focus-visible{outline:2px solid var(--o);outline-offset:3px;border-radius:2px}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.mono{font:400 .76rem var(--mono);letter-spacing:.02em;color:var(--muted)}.muted{color:var(--muted)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}body:after{content:"";z-index:50;pointer-events:none;opacity:var(--grain);mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .32 0 0 0 0 .22 0 0 0 0 .12 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}:root[data-theme=dark] body:after{mix-blend-mode:soft-light}body:before{content:"";z-index:-1;pointer-events:none;background:radial-gradient(60rem 40rem at var(--glow-x,100%) 0%, rgb(var(--glow-rgb,255 85 0) / calc(var(--glow) * var(--glow-k,1))), transparent 70%);transition:background .6s;position:fixed;inset:0}.wrap{max-width:44rem;margin:0 auto;padding:0 1.25rem 7rem}.u{background:linear-gradient(var(--o), var(--o)) 0 100% / 0 2px no-repeat, linear-gradient(var(--line), var(--line)) 0 100% / 100% 1px no-repeat;padding-bottom:1px;transition:background-size .35s cubic-bezier(.2,.8,.3,1),color .2s}.u:hover{color:var(--o-ink);background-size:100% 2px,100% 1px}.site-header{justify-content:space-between;align-items:center;padding:2.5rem 0 0;display:flex}.site-header nav{align-items:center;gap:1.25rem;display:flex}.site-header a:hover,.site-header a[aria-current=page]{color:var(--o-ink)}.theme-toggle{width:1.6rem;height:1.6rem;color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;margin:-.3rem;padding:0;transition:color .2s,transform .5s cubic-bezier(.3,1.5,.5,1);display:grid}.theme-toggle:hover{color:var(--o);transform:rotate(180deg)}.theme-toggle svg{width:.95rem;height:.95rem}.kin .w{white-space:nowrap}.kin .ch{font-variation-settings:"wght" var(--w,var(--w0)), "SOFT" var(--s,var(--s0)), "WONK" 1;color:color-mix(in oklab, var(--o) var(--c,0%), currentColor);transition:font-variation-settings .5s cubic-bezier(.2,.8,.3,1),color .5s;display:inline-block}.kin[data-kin=name]{--w0:650;--s0:0}.kin[data-kin=heading]{--w0:680;--s0:40}h1,h2,h3{margin:0}.section-title{font:italic 700 clamp(2.5rem, 8vw, 3.75rem)/1 var(--serif);font-variation-settings:"SOFT" 100, "WONK" 1;letter-spacing:-.035em;align-items:flex-start;gap:.5rem;margin:5rem 0 1.25rem;display:flex}.rows{margin:0;padding:0;list-style:none}.rows a,.rows .row{flex-wrap:wrap;align-items:baseline;gap:0 .75rem;padding:.45rem 0;transition:transform .3s cubic-bezier(.2,.8,.3,1);display:flex;position:relative}.rows a:before{content:"→";color:var(--o);opacity:0;transition:opacity .25s,transform .3s cubic-bezier(.2,.8,.3,1);position:absolute;left:-1.4rem;transform:translate(-.4rem)}.rows a:hover{transform:translate(.35rem)}.rows a:hover:before{opacity:1;transform:none}.rows .t{font-size:1.15rem;transition:font-variation-settings .3s}.rows a:hover .t{font-variation-settings:"wght" 560, "SOFT" 100}.rows .fill{border-bottom:1px dotted var(--line);flex:1;min-width:1.5rem;transition:border-color .3s;transform:translateY(-.3em)}.rows a:hover .fill{border-color:var(--o)}.rows .mono{white-space:nowrap;transition:color .2s}.rows a:hover .mono{color:var(--o-ink)}.rows small{color:var(--muted);flex-basis:100%;margin-top:-.3rem;font-size:.92rem}.badge{font:400 .68rem var(--mono);color:#fff;background:var(--o);vertical-align:.2em;border-radius:3px;margin-left:.4rem;padding:.05rem .35rem}.hero{--ns:clamp(4.4rem, 20vw, 11.5rem);flex-direction:column;min-height:calc(100svh - 4.1rem);padding-bottom:1.75rem;display:flex}.hero .intro{margin:auto 0;padding:3rem 0}.name{font-size:var(--ns);letter-spacing:-.05em;cursor:default;margin:0 0 2rem;font-weight:400;line-height:.84}.name .w{display:block}.name .w+.w{padding-left:.5em}.name .dot{color:var(--o)}.lede{margin:0 0 0 calc(var(--ns) * .5);letter-spacing:-.01em;max-width:27rem;font-size:clamp(1.25rem,3.2vw,1.55rem);line-height:1.38}.lede em{font-variation-settings:"SOFT" 100, "WONK" 1;color:var(--o-ink);font-style:italic}.cue{align-self:flex-start;align-items:center;gap:.5rem;transition:color .2s;display:inline-flex}.cue:hover{color:var(--o-ink)}.cue i{color:var(--o);font-style:normal;animation:2.2s ease-in-out infinite nudge;display:inline-block}@keyframes nudge{0%,60%,to{transform:none}30%{transform:translateY(5px)}}#projects{margin-top:3.5rem}.links{letter-spacing:-.01em;flex-wrap:wrap;gap:.6rem 2rem;margin:0;padding:0;font-size:1.45rem;font-weight:600;list-style:none;display:flex}.links a{align-items:center;gap:.55rem;display:inline-flex}.links .logo{width:1.05em;height:1.05em;color:var(--muted);flex:none;transition:color .25s,transform .45s cubic-bezier(.3,1.6,.5,1)}.links a:hover .logo{color:var(--o);transform:rotate(-10deg)scale(1.15)}.links a:hover .u{color:var(--o-ink);background-size:100% 2px,100% 1px}.more{margin:.9rem 0 0}.page-head{padding:5.5rem 0 1rem}.page-title{font:400 clamp(3.2rem, 13vw, 6.5rem)/.9 var(--serif);letter-spacing:-.045em}.page-title .dot{color:var(--o)}.page-head p{color:var(--muted);margin:1.25rem 0 0}.page-head+section .section-title{margin-top:3rem}.post-head{padding:5.5rem 0 0}.post-head .meta{margin-bottom:1.25rem}.post-head .meta .tag{color:var(--o-ink)}.post-title{font:400 clamp(2.4rem, 8vw, 4.2rem)/1 var(--serif);letter-spacing:-.035em}.post-desc{color:var(--muted);font-variation-settings:"SOFT" 100, "WONK" 1;margin:1.25rem 0 0;font-size:1.25rem;font-style:italic;line-height:1.45}.prose{margin-top:3rem}.prose>:first-child{margin-top:0}.prose h2{font:italic 700 1.9rem/1.1 var(--serif);font-variation-settings:"SOFT" 100, "WONK" 1;letter-spacing:-.025em;margin:3rem 0 .8rem}.prose h3{font:700 1.25rem/1.25 var(--serif);margin:2.25rem 0 .5rem}.prose p,.prose ul,.prose ol{margin:0 0 1.2rem}.prose li{margin:.3rem 0}.prose li::marker{color:var(--o)}.prose a{background:linear-gradient(var(--o), var(--o)) 0 100% / 100% 1px no-repeat;transition:background-size .25s,color .2s}.prose a:hover{color:var(--o-ink);background-size:100% 2px}.prose strong{font-weight:650}.prose blockquote{border-left:3px solid var(--o);font-variation-settings:"SOFT" 100, "WONK" 1;margin:2rem 0;padding-left:1.2rem;font-size:1.3rem;font-style:italic;line-height:1.4}.prose blockquote p{margin:0}.prose hr{text-align:center;border:0;margin:3rem 0}.prose hr:after{content:"•  •  •";color:var(--o);letter-spacing:.4em;white-space:pre}.prose img{border-radius:6px}.prose :not(pre)>code{font:.84em var(--mono);background:var(--code-bg);border-radius:4px;padding:.12em .35em}.prose pre{font:.84rem/1.6 var(--mono);border-radius:8px;margin:1.75rem 0;padding:1.1rem 1.2rem;overflow-x:auto;background:var(--code-bg)!important}.prose table{border-collapse:collapse;width:100%;margin:1.75rem 0;font-size:1rem}.prose th{font:400 .76rem var(--mono);color:var(--muted);text-align:left;border-bottom:1.5px solid var(--o);padding:.45rem .5rem}.prose td{border-bottom:1px solid var(--line);padding:.5rem}:root[data-theme=dark] .astro-code,:root[data-theme=dark] .astro-code span{color:var(--shiki-dark)!important}.back{margin-top:4rem;display:inline-block}.back:hover{color:var(--o-ink)}.kin .dot{cursor:pointer;transform-origin:50% 85%;display:inline-block}@property --wipe{syntax:"<length>";inherits:true;initial-value:0}html.theme-wipe::view-transition-image-pair(root){background:var(--o);isolation:auto}html.theme-wipe::view-transition-old(root),html.theme-wipe::view-transition-new(root){mix-blend-mode:normal;animation:none}html.theme-wipe::view-transition-new(root){z-index:2;clip-path:circle(var(--wipe) at var(--wx) var(--wy))}html.theme-wipe::view-transition-old(root){z-index:1;-webkit-mask:radial-gradient(circle at var(--wx) var(--wy), transparent calc(var(--wipe) + 6px), #000 calc(var(--wipe) + 6.5px));mask:radial-gradient(circle at var(--wx) var(--wy), transparent calc(var(--wipe) + 6px), #000 calc(var(--wipe) + 6.5px))}.peek{z-index:40;pointer-events:none;background:var(--bg);border:1px solid var(--line);opacity:0;border-radius:10px;width:17rem;padding:.45rem;transition:opacity .2s,scale .3s cubic-bezier(.3,1.5,.5,1);position:fixed;top:0;left:0;scale:.85;box-shadow:0 18px 40px #140a0038,0 2px 6px #140a001f}.peek.on{opacity:1;scale:1}.peek img,.peek-fallback{aspect-ratio:16/10;object-fit:cover;border-radius:6px;width:100%;display:block}.peek-fallback{background:var(--o) radial-gradient(circle at 80% 15%, #ffffff40, transparent 60%);color:#fff;text-align:center;place-items:center;padding:1rem;display:grid}.peek-fallback[hidden],.peek img[hidden]{display:none}.peek-fallback b{font:italic 700 1.9rem/1 var(--serif);font-variation-settings:"SOFT" 100, "WONK" 1;letter-spacing:-.03em}.peek-caption{padding:.4rem .25rem .1rem;display:block}.flood{z-index:100;background:var(--o);pointer-events:none;place-items:center;display:grid;position:fixed;inset:0}.flood span{font:400 min(40vw, 22rem)/1 var(--serif);font-variation-settings:"wght" 900, "SOFT" 100, "WONK" 1;color:#15110e;letter-spacing:-.05em}.flood i{color:#fffbf5;font-style:normal}.name{-webkit-user-select:none;user-select:none;touch-action:manipulation}.tilt-hint{margin:1.5rem 0 0 calc(var(--ns) * .5);transition:opacity .4s}.tilt-hint.done{opacity:0}@media (width<=520px){.tilt-hint{margin-left:0}}.kin .dot{transition:opacity 1.2s,filter 1.2s;position:relative}.kin .dot.asleep{opacity:.45;filter:saturate(.6);animation:3s ease-in-out infinite nod}@keyframes nod{50%{transform:translateY(.04em)rotate(-8deg)}}.kin .dot .z{font:italic 700 1.5rem/1 var(--serif);color:var(--muted);pointer-events:none;position:absolute;bottom:60%;left:70%}.site-header nav{position:relative}.quip{white-space:nowrap;background:var(--fg);color:var(--bg);border-radius:6px;padding:.3rem .6rem;position:absolute;top:2rem;right:-.25rem}.progress{z-index:45;pointer-events:none;opacity:0;height:12px;transition:opacity .3s;position:fixed;top:0;left:0;right:0}.progress.visible{opacity:1}.progress-line{background:var(--o);opacity:.35;transform-origin:0;height:2px;position:absolute;top:5px;left:0;right:0;transform:scaleX(0)}.progress-dot{background:var(--o);border-radius:50%;width:12px;height:12px;position:absolute;top:0;left:0}.prose>p:first-child:first-letter{float:left;color:var(--o);font-variation-settings:"wght" 800, "SOFT" 100, "WONK" 1;margin:.02em .1em 0 -.02em;font-size:4.6em;line-height:.82}.prose>p:first-child+*{clear:left}@view-transition{navigation:auto}.site-header{view-transition-name:site-header}.name,.page-title,.post-title{view-transition-name:page-title}::view-transition-group(page-title){animation-duration:.5s;animation-timing-function:cubic-bezier(.3,0,.2,1)}::view-transition-old(root){animation:.25s ease-in both vt-out}::view-transition-new(root){animation:.35s cubic-bezier(.2,.8,.3,1) 50ms both vt-in}@keyframes vt-out{to{opacity:0}}@keyframes vt-in{0%{opacity:0;transform:translateY(14px)}}@media (width<=520px){.site-header{padding-top:1.5rem}.hero{min-height:calc(100svh - 3.1rem)}.lede{margin-left:0}.rows .fill{display:none}.rows a,.rows .row{justify-content:space-between}.page-head,.post-head{padding-top:3.5rem}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition:none!important;animation:none!important}@view-transition{navigation:none}}.physics-hint{margin-top:.75rem!important}@media (prefers-reduced-motion:reduce){.physics-hint{display:none}}
