:root{--bg:#0f0d0c;--text:#fff6e8f0;--muted:#fff6e899;--quiet:#fff6e873;--line:#fff6e81f;--chip:#14100d99;--chip-line:#fff6e81a;--brand:#f40;--focus:#ff7a45;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.65, 0, .35, 1);--text-xs:.8125rem;--text-base:.875rem;--radius:8px;--radius-figure:12px;--rail:2.5rem;--gutter:clamp(1.5rem, 4vw, 3rem);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}[hidden]{display:none!important}html{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}a,img,canvas{-webkit-user-drag:none}html,body{background:var(--bg);height:100%;margin:0;overflow:hidden}body{color:var(--text);font:460 var(--text-base) / 1.4286 "Inter", system-ui, sans-serif;letter-spacing:-.0064em;-webkit-font-smoothing:antialiased}#room{touch-action:none;width:100vw;height:100vh;display:block;position:fixed;inset:0}.vignette{pointer-events:none;transition:opacity .6s var(--ease-out);background:radial-gradient(75% 70% at 50% 45%,#0000 55%,#0806058c 100%);position:fixed;inset:0}.grain{pointer-events:none;opacity:.07;mix-blend-mode:overlay;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");position:fixed;inset:0}a{color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:4px}.sr{clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.site-header{z-index:10;padding:1.25rem var(--gutter);font-size:var(--text-base);justify-content:space-between;align-items:baseline;gap:1.5rem;display:flex;position:fixed;top:0;left:0;right:0}.site-header:after{content:"";right:var(--gutter);bottom:0;left:var(--gutter);background:var(--line);height:1px;position:absolute}.site-header .links{gap:2.25rem;margin:0;padding:0;list-style:none;display:flex}.site-header .links a,.site-header .contact,.site-header .name{color:var(--muted);transition:color .2s ease, transform .16s var(--ease-out);text-decoration:none;display:inline-block;position:relative}.site-header .name{display:none}.site-header .links a:active,.site-header .contact:active{transform:scale(.97)}@media (hover:hover) and (pointer:fine){.site-header .links a:hover,.site-header .contact:hover{color:var(--text)}}.site-header a[aria-current=page]{color:var(--text)}.site-header a[aria-current=page]:before{content:"";background:var(--brand);border-radius:50%;width:6px;height:6px;margin-top:-3px;position:absolute;top:50%;left:-13px}.roll{vertical-align:top;flex-direction:column;height:1lh;display:inline-flex;overflow:hidden}@media (prefers-reduced-motion:no-preference){.roll>span{transition:transform .22s var(--ease-out)}@media (hover:hover) and (pointer:fine){:hover>.roll>span,:focus-visible>.roll>span{transform:translateY(-100%)}}}@media (width>=90rem){.site-header{top:11.75rem;left:var(--rail);pointer-events:none;flex-direction:column;align-items:flex-start;gap:.75rem;padding:0;right:auto}.site-header a{pointer-events:auto}.site-header:after{display:none}.site-header .name{top:1.75rem;left:var(--rail);color:var(--quiet);display:block;position:fixed}.site-header .links{flex-direction:column;gap:.75rem}}.site-footer{z-index:10;padding:1.5rem var(--gutter);font-size:var(--text-base);color:var(--quiet);flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:.75rem 2rem;display:flex;position:fixed;bottom:0;left:0;right:0}.site-footer p{margin:0}.site-footer a{color:var(--quiet);text-decoration:none;transition:color .2s}@media (hover:hover) and (pointer:fine){.site-footer a:hover{color:var(--text)}}.site-footer .links{flex-wrap:wrap;gap:.5rem 1.5rem;margin:0;padding:0;list-style:none;display:flex}.site-footer .time{font-size:var(--text-xs);white-space:nowrap;align-items:center;gap:.5rem;display:inline-flex}.site-footer .cat{flex:none;overflow:visible}.site-footer .cat path{fill:none;stroke:currentColor;stroke-width:1.2px;stroke-linecap:round;stroke-linejoin:round}.site-footer .cat .eye{fill:currentColor}@media (width<=39.99rem){.site-footer .freelance{display:none}.site-footer{justify-content:center}}@media (width>=40rem){.site-footer{grid-template-columns:1fr auto 1fr;display:grid}.site-footer .resume{justify-self:start}.site-footer .freelance{justify-self:center}.site-footer .links{justify-self:end}}@media (width>=90rem){.site-footer{padding-inline:var(--rail)}}.books ol{margin:0;padding:0;list-style:none}.books button{position:fixed;top:0;left:-9999px}.lab{z-index:11;font-size:var(--text-base);transition:opacity .25s var(--ease-out);align-items:center;gap:8px;display:flex;position:fixed;bottom:5.25rem;left:50%;translate:-50%}body[data-state=opening] .lab,body[data-state=open] .lab,body[data-state=closing] .lab{opacity:0;pointer-events:none}.seg{border:1px solid var(--chip-line);border-radius:var(--radius-figure);background:var(--chip);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);padding:4px;display:inline-flex}.seg button{border-radius:var(--radius);color:var(--muted);font:inherit;cursor:pointer;transition:background-color .16s var(--ease-out), color .16s var(--ease-out);background:0 0;border:0;padding:6px 12px}.seg button[aria-pressed=true]{background:var(--text);color:var(--bg)}.seg button:not([aria-pressed=true]):hover{color:var(--text)}@media (width<=47.99rem){.lab{gap:6px}.seg button{padding:6px 8px}}.light-switch{top:1.25rem;right:var(--gutter);z-index:12;width:20px;height:20px;color:var(--muted);cursor:pointer;filter:drop-shadow(0 0 6px #0009);transition:color .2s ease, transform .16s var(--ease-out);background:0 0;border:0;place-items:center;padding:0;display:grid;position:fixed}.light-switch:hover{color:var(--text)}.light-switch:active{transform:scale(.92)}.light-switch svg{fill:none;stroke:currentColor;stroke-width:1.5px;stroke-linecap:round;stroke-linejoin:round;width:16px;height:16px}:root[data-theme=dark] .light-switch .moon,:root[data-theme=light] .light-switch .sun{display:none}@media (width<=89.99rem){.site-header{padding-right:calc(var(--gutter) + 3.25rem)}.site-header:after{right:var(--gutter)}}@media (width>=90rem){.light-switch{top:1.75rem;right:var(--rail)}}.nudge{z-index:8;pointer-events:none;color:var(--text);transition:opacity .3s var(--ease-out);position:fixed;top:0;left:0}.nudge-note{white-space:nowrap;text-shadow:0 0 12px #000000b3;font-family:Nothing You Could Do,cursive;font-size:1.375rem;line-height:1.3;position:absolute;top:12px;left:36px;transform:rotate(-3deg)}.nudge-arrow{filter:drop-shadow(0 0 6px #0009);position:absolute;top:-4px;left:-4px;overflow:visible}.nudge-arrow path{fill:none;stroke:currentColor;stroke-width:1.6px;stroke-linecap:round;stroke-linejoin:round}.nudge-book .nudge-note{top:4px;left:32px;transform:rotate(-2deg)}.nudge-book .nudge-arrow{top:-68px;left:-7px}.nudge[data-gone],body[data-state=opening] .nudge,body[data-state=open] .nudge,body[data-state=closing] .nudge{opacity:0}@media (prefers-reduced-motion:no-preference){.nudge .nudge-note{clip-path:inset(-.4em 100% -.4em -.2em)}.nudge .nudge-arrow path{stroke-dasharray:1;stroke-dashoffset:1px}.nudge[data-play] .nudge-note{animation:1.2s cubic-bezier(.45,0,.25,1) forwards write}.nudge[data-play] .nudge-arrow path{animation:draw .5s var(--ease-out) 1.2s forwards}}@keyframes write{to{clip-path:inset(-.4em -.4em -.4em -.2em)}}@keyframes draw{to{stroke-dashoffset:0}}.scrim{z-index:9;pointer-events:none;background:linear-gradient(#0a080699,#0a080600 96px),linear-gradient(0deg,#0a0806a6,#0a080600 150px);position:fixed;inset:0}@media (width>=90rem){.scrim{background:radial-gradient(240px 240px at 0 270px,#0a08069e,#0a080600),radial-gradient(260px 90px at 0 0,#0a08068c,#0a080600),radial-gradient(160px 90px at 100% 0,#0a080680,#0a080600),linear-gradient(0deg,#0a0806a6,#0a080600 150px)}}.site-header a,.site-footer{text-shadow:0 0 14px #000000bf,0 1px 2px #00000080}.controls{z-index:11;border:1px solid var(--chip-line);border-radius:var(--radius-figure);background:var(--chip);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:var(--text-base);opacity:0;transition:opacity .25s var(--ease-out);gap:4px;padding:4px;display:flex;position:fixed;bottom:5.25rem;left:50%;translate:-50%}.controls[data-on]{opacity:1}.controls>*{border-radius:var(--radius);color:var(--text);font:inherit;cursor:pointer;transition:background-color .16s var(--ease-out);background:0 0;border:0;align-items:center;gap:6px;padding:6px 12px;text-decoration:none;display:inline-flex}.controls>:hover{background:var(--chip-line)}.controls kbd{font:inherit;color:var(--muted)}.controls>*{white-space:nowrap}@media (width<=47.99rem){.controls{flex-wrap:wrap;justify-content:center;width:max-content;max-width:calc(100vw - 32px)}.controls kbd{display:none}}.pill{z-index:50;color:#fff;font-size:var(--text-xs);white-space:nowrap;pointer-events:none;opacity:0;background:#111;border-radius:999px;align-items:center;gap:.5rem;padding:.375rem .75rem;display:inline-flex;position:fixed;top:0;left:0;scale:.95;box-shadow:0 6px 20px #00000040}.pill[data-on]{opacity:1;scale:1}.pill i{background:var(--brand);border-radius:50%;width:6px;height:6px}.pill em{color:#fff9;font-style:normal}.curtain{z-index:60;background:var(--bg);pointer-events:none;transition:opacity .7s var(--ease-out);position:fixed;inset:0}body[data-ready] .curtain{opacity:0}.fallback{position:fixed;inset:auto 32px 32px}@media (prefers-reduced-motion:no-preference){.pill{transition:opacity .1s ease-out,scale .1s ease-out}.pill[data-on]{transition-duration:.15s;transition-timing-function:var(--ease-out)}.pill i{animation:breathe 1.4s var(--ease-in-out) infinite}}@keyframes breathe{0%,to{transform:scale(1)}50%{transform:scale(1.5)}}
