:root{--baseline: 0.5rem;--grid-1: calc(2 * var(--baseline));--grid-2: calc(4 * var(--baseline));--grid-3: calc(6 * var(--baseline));--grid-4: calc(8 * var(--baseline));--grid-5: calc(10 * var(--baseline));--grid-6: calc(12 * var(--baseline));--font-size: 1rem;--container-max: 900px;--container-padding: var(--grid-2);--ease-out: cubic-bezier(0.16, 1, 0.3, 1);--duration-fast: 150ms;--duration-base: 250ms;--border-width: 1px;--border-color: #111;--border: var(--border-width) solid var(--border-color);--accent: #F08080;--accent-ink: #111}/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */html{line-height:1.15;-webkit-text-size-adjust:100%}body{margin:0}main{display:block}h1{font-size:2em;margin:.67em 0}hr{box-sizing:content-box;height:0;overflow:visible}pre{font-family:monospace,monospace;font-size:1em}a{background-color:rgba(0,0,0,0)}abbr[title]{border-bottom:none;text-decoration:underline;text-decoration:underline dotted}b,strong{font-weight:bolder}code,kbd,samp{font-family:monospace,monospace;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-0.25em}sup{top:-0.5em}img{border-style:none}button,input,optgroup,select,textarea{font-family:inherit;font-size:100%;line-height:1.15;margin:0}button,input{overflow:visible}button,select{text-transform:none}button,[type=button],[type=reset],[type=submit]{-webkit-appearance:button}button::-moz-focus-inner,[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner{border-style:none;padding:0}button:-moz-focusring,[type=button]:-moz-focusring,[type=reset]:-moz-focusring,[type=submit]:-moz-focusring{outline:1px dotted ButtonText}fieldset{padding:.35em .75em .625em}legend{box-sizing:border-box;color:inherit;display:table;max-width:100%;padding:0;white-space:normal}progress{vertical-align:baseline}textarea{overflow:auto}[type=checkbox],[type=radio]{box-sizing:border-box;padding:0}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}details{display:block}summary{display:list-item}template{display:none}[hidden]{display:none}@font-face{font-family:"Libre Franklin";src:url("/assets/fonts/LibreFranklin-VariableFont_wght.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:"Libre Franklin";src:url("/assets/fonts/LibreFranklin-Italic-VariableFont_wght.woff2") format("woff2");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:"Playfair Display";src:url("/assets/fonts/PlayfairDisplay-VariableFont_wght.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}@font-face{font-family:"Playfair Display";src:url("/assets/fonts/PlayfairDisplay-Italic-VariableFont_wght.woff2") format("woff2");font-weight:100 900;font-style:italic;font-display:swap}@font-face{font-family:"Fira Mono";src:url("/assets/fonts/FiraMono-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:"Fira Mono";src:url("/assets/fonts/FiraMono-Medium.woff2") format("woff2");font-weight:500;font-style:normal;font-display:swap}@font-face{font-family:"Fira Code";src:url("/assets/fonts/FiraCode-VariableFont_wght.woff2") format("woff2");font-weight:300 700;font-style:normal;font-display:swap}h1,h2,h3,h4,h5,h6,p,span,strong,em,b,i,a,small,label,li,cite,time,abbr,code,kbd,samp,blockquote{overflow:visible}h1,h2,h3,h4,h5,h6{font-family:"Playfair Display",Georgia,serif;font-weight:300;color:#111;margin-top:0}h1{display:inline-flex;align-items:baseline;height:var(--grid-6);overflow:visible;width:100%;line-height:var(--grid-6)}h1::before{content:"";height:var(--grid-6)}h1{font-size:6rem;letter-spacing:-0.02em;margin-bottom:var(--grid-2)}h2{display:inline-flex;align-items:baseline;height:var(--grid-4);overflow:visible;width:100%;line-height:var(--grid-4)}h2::before{content:"";height:var(--grid-4)}h2{font-size:4rem;letter-spacing:-0.02em;margin-bottom:var(--grid-1)}h3{display:inline-flex;align-items:baseline;height:var(--grid-3);overflow:visible;width:100%;line-height:var(--grid-3)}h3::before{content:"";height:var(--grid-3)}h3{font-size:2.5rem;margin-bottom:var(--grid-1)}h4{display:inline-flex;align-items:baseline;height:var(--grid-2);overflow:visible;width:100%;line-height:var(--grid-2)}h4::before{content:"";height:var(--grid-2)}h4{font-size:1.75rem;margin-bottom:var(--grid-1)}h5,h6{display:inline-flex;align-items:baseline;height:var(--grid-1);overflow:visible;width:100%;line-height:var(--grid-1)}h5::before,h6::before{content:"";height:var(--grid-1)}h5,h6{font-size:1.25rem;margin-bottom:var(--grid-1)}.strut--multiline{height:auto;flex-wrap:wrap}.strut--multiline::before,.strut--multiline::after{display:none}p{max-width:65ch;margin-bottom:var(--grid-1)}p:last-child{margin-bottom:0}code,pre,.code{font-family:"Fira Code",monospace}html{font-size:12px}body{font-family:"Libre Franklin",Arial,sans-serif;font-weight:100;background:#fffdee;color:#111;line-height:1.6;margin:0;padding:0}a{color:#111}a:hover{background:var(--accent);color:var(--accent-ink)}img{max-width:100%;height:auto}:focus-visible{outline:2px solid #111;outline-offset:2px}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}@media(max-width: 640px){h1{display:inline-flex;align-items:baseline;height:var(--grid-4);overflow:visible;width:100%;line-height:var(--grid-4)}h1::before{content:"";height:var(--grid-4)}h1{font-size:3.5rem}h2{display:inline-flex;align-items:baseline;height:var(--grid-3);overflow:visible;width:100%;line-height:var(--grid-3)}h2::before{content:"";height:var(--grid-3)}h2{font-size:2.75rem}}:root{--cursor-default: url("/assets/cursors/arrow.svg") 1 1, default;--cursor-pointer: url("/assets/cursors/hand.svg") 4 0, pointer;--cursor-grab: url("/assets/cursors/hand-open.svg") 8 8, grab;--cursor-grabbing: url("/assets/cursors/hand-closed.svg") 8 8, grabbing;--cursor-text: url("/assets/cursors/ibeam.svg") 4 7, text;--cursor-vertical-text: url("/assets/cursors/ibeam-horizontal.svg") 7 4, vertical-text;--cursor-wait: url("/assets/cursors/watch.svg") 7 8, wait;--cursor-progress: url("/assets/cursors/arrow-watch.svg") 1 1, progress;--cursor-crosshair: url("/assets/cursors/crosshair.svg") 7 7, crosshair;--cursor-cell: url("/assets/cursors/plus.svg") 7 7, cell;--cursor-move: url("/assets/cursors/move.svg") 7 7, move;--cursor-all-scroll: url("/assets/cursors/move.svg") 7 7, all-scroll;--cursor-n-resize: url("/assets/cursors/resize-ns.svg") 7 7, n-resize;--cursor-s-resize: url("/assets/cursors/resize-ns.svg") 7 7, s-resize;--cursor-ns-resize: url("/assets/cursors/resize-ns.svg") 7 7, ns-resize;--cursor-e-resize: url("/assets/cursors/resize-ew.svg") 7 7, e-resize;--cursor-w-resize: url("/assets/cursors/resize-ew.svg") 7 7, w-resize;--cursor-ew-resize: url("/assets/cursors/resize-ew.svg") 7 7, ew-resize;--cursor-nw-resize: url("/assets/cursors/resize-nwse.svg") 7 7, nw-resize;--cursor-se-resize: url("/assets/cursors/resize-nwse.svg") 7 7, se-resize;--cursor-nwse-resize: url("/assets/cursors/resize-nwse.svg") 7 7, nwse-resize;--cursor-ne-resize: url("/assets/cursors/resize-nesw.svg") 7 7, ne-resize;--cursor-sw-resize: url("/assets/cursors/resize-nesw.svg") 7 7, sw-resize;--cursor-nesw-resize: url("/assets/cursors/resize-nesw.svg") 7 7, nesw-resize;--cursor-col-resize: url("/assets/cursors/resize-col.svg") 7 7, col-resize;--cursor-row-resize: url("/assets/cursors/resize-row.svg") 7 7, row-resize;--cursor-not-allowed: url("/assets/cursors/not-allowed.svg") 7 7, not-allowed;--cursor-no-drop: url("/assets/cursors/arrow-not-allowed.svg") 1 1, no-drop;--cursor-help: url("/assets/cursors/arrow-help.svg") 1 1, help;--cursor-copy: url("/assets/cursors/arrow-copy.svg") 1 1, copy;--cursor-alias: url("/assets/cursors/arrow-alias.svg") 1 1, alias;--cursor-context-menu: url("/assets/cursors/arrow-menu.svg") 1 1, context-menu;--cursor-zoom-in: url("/assets/cursors/zoom-in.svg") 6 5, zoom-in;--cursor-zoom-out: url("/assets/cursors/zoom-out.svg") 6 5, zoom-out}html{cursor:var(--cursor-default)}h1,h2,h3,h4,h5,h6,p,li,dt,dd,blockquote,figcaption,caption,td,th,pre,code,label,input:not([type=submit]):not([type=button]):not([type=reset]):not([type=checkbox]):not([type=radio]):not([type=file]):not([type=range]):not([type=color]),textarea,[contenteditable]{cursor:var(--cursor-text)}a,a *,area[href],button,button *,[role=button],[role=button] *,[role=link],[role=link] *,[role=tab],[role=tab] *,[role=menuitem],[role=menuitem] *,[role=option],[role=checkbox],[role=radio],[role=switch],summary,summary *,select,option,label[for],label[for] *,input[type=submit],input[type=button],input[type=reset],input[type=checkbox],input[type=radio],input[type=file],input[type=range],input[type=color]{cursor:var(--cursor-pointer)}abbr[title],dfn[title]{cursor:var(--cursor-help)}[draggable=true],[draggable=true] *{cursor:var(--cursor-grab)}[draggable=true]:active,[draggable=true]:active *{cursor:var(--cursor-grabbing)}a[data-lightbox],a[data-lightbox] *{cursor:var(--cursor-zoom-in)}.lb-backdrop{cursor:var(--cursor-zoom-out)}.lb-stage{cursor:var(--cursor-default)}[aria-busy=true],[aria-busy=true] *{cursor:var(--cursor-progress)}html[aria-busy=true],html[aria-busy=true] *{cursor:var(--cursor-wait)}:disabled,:disabled *,[aria-disabled=true],[aria-disabled=true] *{cursor:var(--cursor-not-allowed)}.site-header{max-width:900px;margin:auto;padding:var(--grid-1) 3rem;border-left:var(--border);border-right:var(--border);border-bottom:var(--border);color:#111;font-family:"Fira Code",monospace;box-sizing:border-box}.site-header nav ul{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.25rem 1rem;margin:0;padding:0;list-style:none}.site-header nav a{color:#111;text-decoration:none;font-weight:600}.site-header nav a[aria-current]{background:var(--accent);color:var(--accent-ink)}.site-header .site-name{font-weight:700;margin-right:auto}@media(max-width: 640px){.site-header{padding-inline:var(--grid-1)}}main{max-width:900px;margin:auto;padding:3rem;border-left:var(--border);border-right:var(--border);min-height:100vh;box-sizing:border-box}@media(max-width: 640px){main{padding:var(--grid-2) var(--grid-1)}}.site-footer{max-width:900px;margin:auto;padding:var(--grid-1) 3rem;border:var(--border);font-family:"Fira Code",monospace;font-size:.9rem;box-sizing:border-box;display:flex;flex-wrap:wrap;gap:.25rem 1rem;justify-content:space-between}.site-footer p{margin:0}@media(max-width: 640px){.site-footer{padding-inline:var(--grid-1)}}p.meta{margin:0;font-family:"Fira Code",monospace;font-size:.9rem;font-weight:400}p.meta a{text-decoration:none}a.back{display:inline-block;font-family:"Fira Code",monospace;margin-bottom:3rem}ul.portfolio-list{list-style:square;margin:1rem 0;padding-left:1.25rem;font-size:1.25rem;font-weight:300}ul.portfolio-list li{margin-bottom:.5rem}ul.portfolio-list li::marker{color:#111}ul.portfolio-list a{color:#111;text-decoration:underline}ul.portfolio-list .year{font-family:"Fira Code",monospace;font-size:.85em;color:#555}.year-heading{margin-top:2rem;border-bottom:2px solid #111;padding-bottom:.25rem;font-family:"Playfair Display",Georgia,serif}ul.work-grid{display:grid;grid-template-columns:repeat(auto-fill, minmax(240px, 1fr));gap:var(--grid-2);list-style:none;margin:var(--grid-2) 0;padding:0}.card a{display:flex;flex-direction:column;height:100%;color:#111;text-decoration:none;border:var(--border);background:#fff}.card a:hover{background:#fff;color:#111}.card a:hover .card__body{background:var(--accent);color:var(--accent-ink)}.card__image{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border-bottom:var(--border);background:#fffdee}.card__image--contain{object-fit:contain;padding:var(--grid-1);box-sizing:border-box;background:#fff}.card__placeholder{aspect-ratio:4/3;border-bottom:var(--border);display:flex;align-items:center;justify-content:center;font-family:"Fira Code",monospace;color:#555;background:repeating-linear-gradient(45deg, transparent 0 8px, rgba(0, 0, 0, 0.04) 8px 9px)}.card__body{flex:1;padding:var(--grid-1);transition:background var(--duration-fast)}.card__title{display:block;font-family:"Playfair Display",Georgia,serif;font-size:1.75rem;font-weight:400;line-height:1.2}.card__meta{display:block;font-weight:400;font-family:"Fira Code",monospace;font-size:.85rem;margin-top:.25rem}.empty{font-family:"Fira Code",monospace;color:#555}.tag-filter{display:flex;flex-wrap:wrap;gap:.5rem;margin:1rem 0}.tag-btn{border:2px solid #111;background:#fff;color:#111;padding:.2rem .5rem;cursor:var(--cursor-pointer);text-transform:uppercase;font-family:"Fira Code",monospace}.tag-btn:hover{background:#111;color:#fff}.tag-btn--small{font-size:.85rem;border-width:1px}.tag-btn.is-active{background:var(--accent);color:var(--accent-ink);border-color:#111}.swatch{display:inline-block;width:.6em;height:.6em;margin-right:.4em;background:var(--accent);border:var(--border);vertical-align:.05em}.lede{font-family:"Playfair Display",Georgia,serif;font-size:1.75rem;font-weight:300;line-height:1.4;max-width:40ch;margin-bottom:var(--grid-4)}.hero{margin:var(--grid-2) 0 var(--grid-3)}.hero img{display:block;width:100%;max-height:70vh;object-fit:cover;border:var(--border)}.hero a:hover{background:none}.prose p,.prose li{font-size:1.35rem;font-weight:300;line-height:1.65}.prose p{margin-bottom:var(--grid-2)}.prose code{font-size:.85em;background:rgba(0,0,0,.05);padding:.05em .25em}.prose strong{font-weight:600}.prose a{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.15em}.pager{display:flex;justify-content:space-between;gap:var(--grid-2);margin-top:var(--grid-4);padding-top:var(--grid-1);border-top:var(--border);font-family:"Fira Code",monospace}.pager a{text-decoration:none}.pager .next{margin-left:auto;text-align:right}pre{position:relative;margin:0 0 var(--grid-2);padding:var(--grid-2);background:#f6f1df;border:var(--border-width) solid #d8d0b4;color:#2b2924;font-family:"Fira Mono","Fira Code",monospace;font-size:1.1rem;font-weight:400;line-height:1.6;tab-size:4;overflow-x:auto;white-space:pre;-webkit-overflow-scrolling:touch}pre code{font-family:inherit;font-size:inherit;background:none;padding:0;color:inherit}pre::after{position:absolute;top:0;right:0;padding:.2em .6em;font-family:"Fira Code",monospace;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:#555;border-left:var(--border-width) solid #d8d0b4;border-bottom:var(--border-width) solid #d8d0b4}pre:has(code.language-python)::after{content:"python"}pre:has(code.language-ts)::after,pre:has(code.language-typescript)::after{content:"typescript"}pre:has(code.language-js)::after,pre:has(code.language-javascript)::after{content:"javascript"}pre:has(code.language-scss)::after{content:"scss"}pre:has(code.language-css)::after{content:"css"}pre:has(code.language-html)::after{content:"html"}pre:has(code.language-json)::after{content:"json"}pre:has(code.language-sh)::after,pre:has(code.language-bash)::after{content:"shell"}pre:has(code.language-glsl)::after{content:"glsl"}.prose pre{max-width:none}.prose pre code{font-size:inherit;background:none;padding:0}@media(max-width: 640px){pre{padding:var(--grid-1);font-size:1rem}}.gallery{display:grid;grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));gap:var(--grid-3) var(--grid-2);margin:3rem 0}.gallery figure{margin:0;display:flex;flex-direction:column;font-family:"Libre Franklin",Arial,sans-serif}.gallery figure.wide{grid-column:1/-1}.gallery a:hover{background:none}.gallery img{display:block;width:100%;aspect-ratio:4/3;object-fit:cover;border:var(--border);background:#fff}.gallery figure.contain img{object-fit:contain}.gallery figure.wide img{aspect-ratio:auto;height:auto}figcaption{font-size:1rem;color:#333;margin-top:.25rem;font-style:italic;font-family:"Playfair Display",Georgia,serif}figcaption .credit{font-style:normal;font-family:"Fira Code",monospace;font-size:.85em;color:#555}.gallery-item--video a{position:relative;display:block}.play-icon{position:absolute;top:50%;left:50%;transform:translate(-50%, -50%);font-size:3rem;color:#fff;text-shadow:0 0 10px rgba(0,0,0,.8);pointer-events:none;opacity:.9;transition:opacity .2s,transform .2s}.gallery-item--video a:hover .play-icon{opacity:1;transform:translate(-50%, -50%) scale(1.1)}.lb-backdrop{position:fixed;inset:0;background:rgba(255,253,238,.97);display:none;align-items:center;justify-content:center;z-index:9999;border:4px solid #111}.lb-backdrop.is-open{display:flex}.lb-stage{max-width:95vw;max-height:90vh;border:3px solid #111;background:#fff;padding:.5rem}.lb-img{display:block;max-width:100%;max-height:80vh;margin:auto}.lb-video{display:none;max-width:100%;max-height:80vh;background:#000}.lb-caption{margin-top:.5rem;font-size:1rem;color:#111;text-align:center;font-family:"Libre Franklin",Arial,sans-serif;font-weight:300}.lb-close,.lb-prev,.lb-next{position:absolute;top:.5rem;background:#111;color:#fff;border:2px solid #fff;cursor:var(--cursor-pointer);font-size:1.25rem;padding:.3rem .6rem;font-family:"Fira Code",monospace}.lb-close:hover,.lb-prev:hover,.lb-next:hover{background:var(--accent);color:var(--accent-ink)}.lb-close{right:.5rem}.lb-prev{left:.5rem;top:50%;transform:translateY(-50%)}.lb-next{right:.5rem;top:50%;transform:translateY(-50%)}@font-face{font-family:"Bebas Neue";src:url("/assets/fonts/BebasNeue-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}h1,h2,h3,.year-heading,.card__title,.card__placeholder{font-family:"Bebas Neue","Arial Narrow",sans-serif;font-weight:400;letter-spacing:.01em}::selection{background:#f08080;color:#111}.site-header{margin-top:var(--grid-1);border-top:var(--border)}.site-footer{margin-bottom:var(--grid-1)}.site-footer .copyright{position:relative;top:.08em}.year-heading{padding-bottom:var(--grid-1);margin-bottom:var(--grid-1)}[data-kind=werk]{--accent: #FFD936;--accent-ink: #111}[data-kind=autonoom]{--accent: #F4B9C9;--accent-ink: #111}.page-title mark.highlight{background:var(--accent);color:var(--accent-ink);padding:0 .08em}.pager a:hover,.pager a:focus-visible{background:var(--accent);color:var(--accent-ink)}.tag-filter--kinds .tag-btn{font-size:1.15rem;padding:.3rem .75rem;border-width:1px}.tag-filter--tags{margin-bottom:var(--grid-3)}.tag-btn--reset{margin-left:auto;background:var(--accent)}.site-header h1{all:unset}.site-header h1::before{content:none}.about>.prose>:first-child{margin-top:0;text-box:trim-start cap alphabetic}.about{display:grid;grid-template-columns:minmax(0, 1fr);gap:var(--grid-3)}@media(min-width: 640px){.about{grid-template-columns:220px minmax(0, 1fr);align-items:start}}.portrait{margin:0}.portrait img{display:block;width:100%;max-width:320px;border:var(--border)}.portrait a,.about__photo a{display:block}.portrait figcaption,.about__photo figcaption{margin-top:var(--grid-1);font-family:"Fira Code",monospace;font-size:.8rem;color:#555}.about__photo{margin:0;grid-column:1/-1}.about__photo img{display:block;width:100%;height:auto;border:var(--border)}.cv{margin-top:var(--grid-4)}.cv li strong:first-child{font-family:"Fira Code",monospace;font-weight:600;white-space:nowrap}.quotes{margin-top:var(--grid-4);display:grid;gap:var(--grid-2)}@media(min-width: 640px){.quotes{grid-template-columns:1fr 1fr}.quotes h2{grid-column:1/-1}}.quote{margin:0;padding-left:var(--grid-1);border-left:3px solid var(--accent)}.quote blockquote{margin:0;font-family:"Playfair Display",Georgia,serif;font-size:1.2rem;line-height:1.45}.quote blockquote p{margin:0}.quote figcaption{margin-top:var(--grid-1);font-family:"Fira Code",monospace;font-size:.8rem;color:#555}pre code.hljs{display:block}.hljs-keyword,.hljs-selector-tag,.hljs-built_in.hljs-keyword,.hljs-operator.hljs-keyword{color:#b2245f}.hljs-string,.hljs-regexp,.hljs-char,.hljs-template-tag,.hljs-template-variable,.hljs-addition{color:#7f5a00}.hljs-number,.hljs-symbol,.hljs-bullet{color:#b23a3a}.hljs-literal,.hljs-variable.language_,.hljs-variable.constant_{color:#6a3fa0}.hljs-title.function_,.hljs-title.function_.invoke__,.hljs-section{color:#2e6e1f}.hljs-title,.hljs-title.class_,.hljs-type,.hljs-built_in,.hljs-class .hljs-title{color:#146c73}.hljs-attr,.hljs-attribute,.hljs-property,.hljs-params{color:inherit}.hljs-meta,.hljs-meta .hljs-keyword,.hljs-doctag{color:#b23a3a}.hljs-comment,.hljs-quote{color:#6f6a58;font-style:italic}.hljs-deletion{color:#b2245f}.hljs-emphasis{font-style:italic}.hljs-strong{font-weight:600}:root{--rizoom-root: #E6D9B4;--rizoom-deep: #C9B47E;--rizoom-idea: #D9CB9E;--rizoom-bg: #FFFDEE;--rizoom-ink: #111;--rizoom-muted: #555}canvas.rizoom{position:fixed;inset:0;width:100vw;height:100vh;z-index:-1;pointer-events:none}.site-header a[data-rizoom-toggle] .icon{width:.62em;height:.62em;vertical-align:middle;transform:translateY(-0.07em);fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:square;stroke-linejoin:miter;font-size:1rem}body.rizoom-open{overflow:hidden}body.rizoom-open canvas.rizoom{z-index:10;pointer-events:auto;outline:none;touch-action:none;user-select:none}body.rizoom-open .site-header,body.rizoom-open main,body.rizoom-open .site-footer{opacity:0;pointer-events:none}body.rizoom-open .site-header{opacity:1;pointer-events:auto;position:relative;z-index:11}.site-header,main,.site-footer{transition:opacity 300ms var(--ease-out)}@media(prefers-reduced-motion: reduce){.site-header,main,.site-footer{transition:none}}.noemt{scroll-margin-top:calc(var(--grid-1)*2);transition:background-color 600ms var(--ease-out)}.noemt:target{background:color-mix(in srgb, var(--accent) 45%, transparent);box-shadow:0 0 0 .15em color-mix(in srgb, var(--accent) 45%, transparent)}.site-header,main,.site-footer{background:color-mix(in srgb, #FFFDEE 72%, transparent)}.hero--model{position:relative}.hero--model model-viewer{display:block;width:100%;height:auto;aspect-ratio:16/9;background:#fff;border:var(--border);cursor:var(--cursor-grab, grab);--progress-bar-color: var(--accent);--progress-bar-height: 2px}.hero--model model-viewer:active{cursor:var(--cursor-grabbing, grabbing)}.hero--model model-viewer:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero--model noscript img{display:block;width:100%}.viewcube{--size: 3.25rem;position:absolute;top:1.75rem;right:1.75rem;width:var(--size);height:var(--size);perspective:600px;z-index:1;pointer-events:none}.viewcube__cube{position:relative;width:100%;height:100%;transform-style:preserve-3d;transition:transform 80ms linear;touch-action:none;pointer-events:auto;cursor:var(--cursor-grab, grab)}.viewcube__cube:active{cursor:var(--cursor-grabbing, grabbing)}.viewcube__face{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:0;border:1px solid #111;background:color-mix(in srgb, #FFFDEE 88%, transparent);color:#111;font:500 .55rem/1 "Fira Code",monospace;letter-spacing:.04em;text-transform:uppercase;backface-visibility:hidden;pointer-events:auto;cursor:var(--cursor-pointer, pointer)}.viewcube__face:hover{background:var(--accent);color:var(--accent-ink, #111)}.viewcube__face:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}.viewcube__face--voor{transform:translateZ(calc(var(--size) / 2))}.viewcube__face--achter{transform:rotateY(180deg) translateZ(calc(var(--size) / 2))}.viewcube__face--rechts{transform:rotateY(90deg) translateZ(calc(var(--size) / 2))}.viewcube__face--links{transform:rotateY(-90deg) translateZ(calc(var(--size) / 2))}.viewcube__face--boven{transform:rotateX(90deg) translateZ(calc(var(--size) / 2))}.viewcube__face--onder{transform:rotateX(-90deg) translateZ(calc(var(--size) / 2))}@media(prefers-reduced-motion: reduce){.viewcube__cube{transition:none}}