[data-pong-field]{display:none;position:relative;padding-bottom:48px;-webkit-user-select:none;user-select:none;touch-action:pan-y}.pong-no-select,.pong-no-select *{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.pong-no-select:focus,.pong-no-select:focus-visible{outline:none;box-shadow:none}[data-pong-damaged]{outline:2px dotted var(--grid-fg);outline-offset:-5px}.pong-overlay{display:none;position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;z-index:20;overflow:hidden}.pong-ball,.pong-paddle{position:absolute;pointer-events:none;background:var(--page-fg)}.pong-ball{width:10px;height:10px;transform:translate(-50%,-50%);border-radius:50%}.pong-paddle{bottom:18px;left:50%;width:52px;height:6px;transform:translate(-50%);border-radius:999px}.pong-drop{position:absolute;display:grid;place-items:center;width:24px;height:24px;border-radius:5px;border:1px solid var(--grid-fg);background:var(--grid-bg);color:var(--grid-fg);font:18px/1 sans-serif;transform:translate(-50%,-50%)}.pong-controls{-webkit-user-select:none;user-select:none;display:none;position:absolute;right:4px;bottom:2px;z-index:21;align-items:center;gap:3px;border-radius:4px;background:var(--page-bg);color:var(--page-fg);padding:0 2px 0 4px;font-size:7px;letter-spacing:2px}.pong-controls button{display:grid;place-items:center;width:24px;height:24px;padding:0;border-radius:4px;font-size:16px;line-height:1;letter-spacing:normal}@media (hover: hover) and (pointer: fine){.pong-controls button:hover{background:var(--accent);color:var(--accent-fg)}}.pong-controls button:focus-visible{outline:2px solid currentColor;outline-offset:-2px}@media (min-width: 801px) and (hover: hover) and (pointer: fine){[data-pong-field]{display:grid}[data-pong-field]>.hidden-large{display:block}.pong-overlay{display:block}.pong-controls{display:flex}}.contact-form{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}.contact-form .grid-item{grid-column:auto;min-width:0;box-sizing:border-box}.contact-form .contact-title{grid-column:1;padding:24px;font-size:clamp(20px,2vw,28px);font-weight:700}.contact-form .contact-label{grid-column:1;padding:24px;font-size:16px;font-weight:700}.contact-form .contact-input{grid-column:2 / -1;width:calc(100% - 4px);padding:22px 24px;border:1px solid var(--grid-bg);background:var(--page-bg);color:var(--page-fg);font:inherit;font-size:18px;line-height:1.6;caret-color:currentColor;transition:box-shadow .2s ease}.contact-input::placeholder{color:var(--page-fg);opacity:.6}textarea.contact-input{resize:vertical;min-height:180px}@media (hover: hover) and (pointer: fine){.contact-input:hover{box-shadow:inset 0 0 0 1px var(--page-fg)}}.contact-input:focus-visible{outline:2px solid var(--page-fg);outline-offset:-5px}.contact-form .contact-submit{grid-column:2 / -1;display:flex;justify-content:space-between;align-items:center;padding:20px 24px;font:inherit;font-weight:700;min-height:64px}@media (hover: hover) and (pointer: fine){.contact-submit:hover:not(:disabled){background:var(--accent);color:var(--accent-fg)}}.contact-submit:focus-visible{outline:2px solid currentColor;outline-offset:-5px}.contact-submit:disabled{cursor:wait;opacity:.7}.contact-status{grid-column:2 / -1;margin:0;padding:0 24px}.contact-status:not(:empty){padding-block:16px}@media (max-width: 600px){.contact-form{grid-template-columns:minmax(0,1fr)}.contact-form .contact-heading-spacer,.contact-form .contact-submit-spacer{display:none}.contact-form .contact-input,.contact-form .contact-submit,.contact-form .contact-status{grid-column:1}.contact-label{padding:14px 20px}.contact-form .contact-input{padding:18px 20px}}@font-face{font-family:Neue Montreal;src:url(/assets/PPNeueMontreal-Regular-36f13e02.woff) format("woff")}@font-face{font-family:Neue Montreal;src:url(/assets/PPNeueMontreal-Bold-43e217d6.woff) format("woff");font-weight:700}:root{--page-bg: #f4f1ea;--page-fg: #101010;--grid-bg: color-mix(in srgb, var(--page-fg) 88%, var(--page-bg));--grid-fg: color-mix(in srgb, var(--page-bg) 88%, var(--page-fg));--accent: color-mix(in srgb, var(--page-bg) 72%, var(--page-fg));--accent-fg: #101010;--hover-bg: var(--accent);--hover-fg: var(--accent-fg);--grid-hover-bg: var(--accent);--grid-hover-fg: var(--accent-fg);--pill-bg: var(--grid-fg);--pill-fg: var(--grid-bg)}html{overflow-x:hidden;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Neue Montreal,sans-serif;font-display:swap;line-height:1.5;position:relative;overflow:auto;margin:2px;background-color:var(--page-bg);color:var(--page-fg)}h2{margin:.3rem 0;font-size:xx-large}h5{margin-top:0}a,button{color:inherit;transition:.2s;text-decoration:none}@media (hover: hover) and (pointer: fine){a:hover,button:hover{cursor:pointer;background-color:var(--hover-bg);color:var(--hover-fg)}}.text a{text-decoration:underline}a img{transition:.2s}p{font-size:15px}b{font-size:16px}::-moz-selection{color:red;background:yellow}::selection{color:red;background:yellow}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-moz-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-webkit-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-o-keyframes fadeIn{0%{opacity:0}to{opacity:1}}@-ms-keyframes fadeIn{0%{opacity:0}to{opacity:1}}.grid-layout{display:grid;grid-template-columns:repeat(auto-fill,minmax(15%,1fr));grid-auto-rows:minmax(100px,auto);grid-auto-flow:dense}.grid-layout.condensed-grid{grid-auto-rows:minmax(25px,auto)}.condensed-grid--secondary{margin-top:0}.condensed-grid .grid-item,.text{padding:1rem}.text-l{margin:0}.text-l p{font-size:16px;margin:0}.grid-item{word-wrap:break-word;margin:2px;border-radius:8px;background:var(--grid-bg);color:var(--grid-fg);--hover-bg: var(--grid-hover-bg);--hover-fg: var(--grid-hover-fg)}.overview p{padding-top:1px;margin:0}.overview-title{display:flex;align-items:center;justify-content:space-between;gap:10px}.overview-title-left{display:inline-flex;align-items:center;gap:10px;flex-wrap:wrap}.overview-title-right{display:inline-flex;align-items:center;gap:8px}.new-pill{display:inline-block;background:var(--pill-bg);color:var(--pill-fg);font-size:11px;line-height:1;padding:5px 9px;border-radius:999px;letter-spacing:.04em}.grid-item img,.grid-item video{object-fit:cover;width:100%;animation:fadeIn 2s;-webkit-animation:fadeIn 2s;-moz-animation:fadeIn 2s;-o-animation:fadeIn 2s;-ms-animation:fadeIn 2s;border-radius:2px 2px 0 0}.large-grid .grid-item img{height:100%;border-radius:2px}.grid-item--link{display:flex;align-items:center}.span-2{grid-column-end:span 2;grid-row-end:span 1}.span-3{grid-column-end:span 3;grid-row-end:span 1}.span-4{grid-column-end:span 4;grid-row-end:span 1}.span-5{grid-column-end:span 5;grid-row-end:span 1}.span-most{grid-column-start:2;grid-column-end:-2;grid-row-end:span 1}.span-all{grid-column-start:1;grid-column-end:-1;grid-row-end:span 1}.xl-grid{display:flex;align-items:center}.xl-grid--about{display:flex}.xl-grid p{font-size:25px;margin:0}.l-grid{display:flex;align-items:center}.l-grid p{font-size:20px;margin:0}.grid-crumbs+.grid-crumbs:before{content:" · ";margin:0 2px}.logo-link{display:block}.logo-link:focus-visible{background:transparent;color:var(--grid-fg)}@media (hover: hover) and (pointer: fine){.logo-link:hover{background:transparent;color:var(--grid-fg)}}.logo-link:focus-visible{outline:2px solid currentColor;outline-offset:4px;border-radius:2px}.logo{margin:0;display:grid}.logo-default,.logo-hover{grid-area:1 / 1}.logo-hover{visibility:hidden}footer .logo-link:focus-visible .logo-default{visibility:hidden}@media (hover: hover) and (pointer: fine){footer .logo-link:hover .logo-default{visibility:hidden}}footer .logo-link:focus-visible .logo-hover{visibility:visible}@media (hover: hover) and (pointer: fine){footer .logo-link:hover .logo-hover{visibility:visible}}.home-button{display:block;font-size:x-large}button{background-color:transparent;border:none;color:currentColor;font-size:inherit}.selected{font-weight:700;text-decoration:underline}.menu-link{text-decoration:underline}.newsletter{width:100%;max-width:100%;box-sizing:border-box;min-width:0;display:grid;gap:5px}.newsletter-label{font-size:12px;font-weight:700;line-height:1.2}.newsletter-control{display:flex;align-items:stretch;min-width:0;border-radius:8px;background:var(--grid-fg);color:var(--grid-bg)}.newsletter .newsletter-email{box-sizing:border-box;flex:1;width:0;min-width:0;min-height:36px;padding:8px;border:0;border-radius:8px 0 0 8px;font:inherit;font-size:16px;line-height:1.25;background:transparent;color:var(--grid-bg);box-shadow:none}.newsletter .newsletter-email:focus{background:var(--grid-fg);color:var(--grid-bg);caret-color:var(--grid-bg);box-shadow:none}@media (hover: hover) and (pointer: fine){.newsletter .newsletter-email:hover{background:var(--grid-fg);color:var(--grid-bg);caret-color:var(--grid-bg);box-shadow:none}}.newsletter .newsletter-email:autofill{-webkit-text-fill-color:var(--grid-bg);caret-color:var(--grid-bg);box-shadow:0 0 0 1000px var(--grid-fg) inset}.newsletter .newsletter-email::placeholder,.newsletter .newsletter-email:focus::placeholder{color:color-mix(in srgb,var(--grid-bg) 75%,var(--grid-fg));opacity:1}@media (hover: hover) and (pointer: fine){.newsletter .newsletter-email:hover::placeholder{color:color-mix(in srgb,var(--grid-bg) 75%,var(--grid-fg));opacity:1}}.newsletter .newsletter-submit{flex:0 0 32px;box-sizing:border-box;min-height:36px;padding:0;border-radius:0 8px 8px 0;border-left:1px solid color-mix(in srgb,var(--grid-bg) 25%,transparent);font-size:20px;line-height:1;color:var(--grid-bg);transition:background-color .2s ease}@media (hover: hover) and (pointer: fine){.newsletter .newsletter-submit:hover{background:var(--accent);color:var(--accent-fg)}}.newsletter-control:focus-within{outline:2px solid var(--grid-fg);outline-offset:3px}.newsletter .newsletter-email:focus-visible,.newsletter .newsletter-submit:focus-visible{outline:2px solid var(--grid-bg);outline-offset:-4px}::placeholder{color:#000}.thanks-bubble{position:sticky;top:25px;right:25px;background-color:#000000e6;color:#fff;padding:10px 15px;z-index:1000000;border-radius:20px;animation:fadeOut 3s forwards;width:max-content;margin:10px}.thanks-bubble-newsletter{position:fixed;top:2%;right:2%;background-color:#000c;color:#fff;padding:10px;border-radius:10px;max-width:300px;z-index:1000;transition:opacity .8s ease-in-out}.bottom{top:initial;bottom:25px}@keyframes fadeOut{0%{opacity:1}75%{opacity:1}to{opacity:0}}.visually-hidden{clip:rect(0 0 0 0);clip-path:inset(50%);height:1px;overflow:hidden;position:absolute;white-space:nowrap;width:1px}.hidden-large{display:none}.blog.grid-item.span-2.text{padding:2rem 1.5rem}@media only screen and (min-width: 1100px){.hidden-large{display:initial}}@media only screen and (max-width: 800px){.grid-item{grid-column-end:span 3}.span-all,.span-most{grid-column-start:1;grid-column-end:-1;grid-row-end:span 1}.hidden-mobile{display:none}}@media only screen and (max-width: 600px){.span-3,.span-2,.grid-item,.span-4{grid-column-end:span 10}.blog{max-width:100%}}.about-page .text-l p{font-size:16px;line-height:1.65;text-wrap:pretty;overflow-wrap:anywhere}.about-page .text-l p+p{margin-top:1em}.about-page .xl-grid--about b{font-size:18px;line-height:1.65}.about-page .text a{font-weight:700;text-decoration-thickness:1px;text-underline-offset:.18em}.about-page .text a:focus-visible{outline:2px solid currentColor;outline-offset:3px}@media (min-width: 801px){.about-page .span-most{grid-column-end:-3}}.nav-cell{display:flex;align-items:center;min-width:0;text-decoration:underline;text-underline-offset:.18em;transition:background-color .2s ease,color .2s ease}.nav-cell:focus-visible{background:var(--grid-hover-bg);color:var(--grid-hover-fg)}@media (hover: hover) and (pointer: fine){.nav-cell:hover{background:var(--grid-hover-bg);color:var(--grid-hover-fg)}}.nav-cell:focus-visible{outline:2px solid currentColor;outline-offset:-5px}:is(header,footer) .nav-cell{text-decoration:none;font-size:16px;font-weight:700;justify-content:space-between;gap:8px}:is(header,footer) .nav-cell:after{content:"→";font-weight:400;opacity:.55;transition:transform .2s ease,opacity .2s ease}:is(header,footer) .nav-cell[href^="https://"]:after{content:"↗"}:is(header,footer) .nav-cell:focus-visible:after{opacity:1;transform:translate(2px)}@media (hover: hover) and (pointer: fine){:is(header,footer) .nav-cell:hover:after{opacity:1;transform:translate(2px)}}@media (prefers-reduced-motion: reduce){:is(header,footer) .nav-cell:after{transition:none;transform:none}}.colophon-page .text a{font-weight:700;text-decoration:none}.colophon-page .text a:after{content:"↗";display:inline-block;margin-left:.35em;font-weight:400;opacity:.55}.colophon-page .text a:focus-visible:after{opacity:1}@media (hover: hover) and (pointer: fine){.colophon-page .text a:hover:after{opacity:1}}.colophon-page .text a:focus-visible{outline:2px solid currentColor;outline-offset:3px}header .nav-cell.nav-back{justify-content:flex-start;font-size:24px;text-decoration:none}header .nav-cell.nav-back:after{content:none}
