:root{font-synthesis:none;text-rendering:optimizelegibility}@font-face{font-family:IBM Plex Mono;font-style:normal;font-weight:500;font-display:swap;src:url(/fonts/ibm-plex-mono-500.woff2)format("woff2")}@font-face{font-family:Space Grotesk;font-style:normal;font-weight:400 500;font-display:swap;src:url(/fonts/space-grotesk.woff2)format("woff2")}*{box-sizing:border-box}::selection{color:#050505;background:#e8e8e8}html,body{min-width:320px;margin:0;overflow:hidden}body,button{font-family:Space Grotesk,sans-serif}body{color:#e8e8e8;background:#050505}button{font:inherit}.language-switcher{z-index:2;color:#fff;letter-spacing:.11em;mix-blend-mode:difference;align-items:center;gap:6px;font:500 9px/1.5 IBM Plex Mono,monospace;display:flex;position:fixed;top:32px;right:5vw}.language-switcher>span{opacity:.3}.language-switcher button{color:inherit;cursor:pointer;opacity:.42;background:0 0;border:0;padding:3px 0;transition:opacity .15s}.language-switcher button:hover{opacity:.72}.language-switcher button:focus-visible{outline-offset:4px;outline:1px solid}.language-switcher button:active{opacity:.58}.language-switcher button[aria-pressed=true]{opacity:1}.ribbon{color:#e8e8e8;background:#050505;height:100dvh;position:relative;overflow:hidden}.ribbon-track{touch-action:pan-y;will-change:transform;width:max-content;height:100dvh;transition:transform .462s cubic-bezier(.22,1,.36,1);display:flex;transform:translate(0,0)}.ribbon-panel{border-right:1px solid #343434;flex-direction:column;flex:none;justify-content:space-between;min-width:80vw;height:100dvh;padding:100px 5vw 88px;display:flex;position:relative;overflow:hidden}.ribbon-intro{background:radial-gradient(#ffffff1a .7px,#0000 .7px) 0 0/5px 5px,#050505;min-width:100vw}.ribbon-panel-label,.ribbon-panel-foot,.ribbon-list span{letter-spacing:.11em;text-transform:uppercase;font:500 9px/1.5 IBM Plex Mono,monospace}.ribbon-panel-label,.ribbon-panel-foot{color:#777}.ribbon-intro-top{justify-content:flex-end;align-items:baseline;gap:24px;display:flex}.ribbon-intro h1{letter-spacing:-.1em;margin:auto 0;font-size:clamp(110px,19vw,290px);font-weight:500;line-height:.68}.ribbon-intro h1 span{color:#555;margin-left:.42em;display:block}.ribbon-swipe-hint{display:none}.ribbon-intro-top,.ribbon-intro h1{animation:.6s cubic-bezier(.22,1,.36,1) both ribbon-enter}.ribbon-intro-top{animation-delay:80ms}.ribbon-intro h1{animation-delay:.16s}.ribbon-project{background:#101010}.ribbon-project.shape-square{background:#1b1b1b}.ribbon-project h2{letter-spacing:-.09em;align-items:flex-end;gap:clamp(12px,1.5vw,24px);margin:auto 0 24px;font-size:clamp(94px,15vw,230px);font-weight:400;line-height:.76;display:flex}.ribbon-project-link-icon{flex:none;width:clamp(18px,1.8vw,28px);height:auto;transform:translateY(-3px)}.ribbon-project p{color:#8d8d8d;max-width:480px;margin:0;font-size:14px;line-height:1.6}.ribbon-project:after{content:"";border:1px solid #4c4c4c;border-radius:50%;width:22vw;height:22vw;position:absolute;top:18%;right:8%}.ribbon-project.shape-orbit:after{background:radial-gradient(circle,#686868 0 3px,#0000 4px),radial-gradient(circle,#0000 0 24%,#4c4c4c 24.3% 24.7%,#0000 25%),radial-gradient(circle,#0000 0 48%,#4c4c4c 48.3% 48.7%,#0000 49%)}.ribbon-project.shape-square:after{background:radial-gradient(circle,#0000 0 11%,#555 11.3% 11.7%,#0000 12%),linear-gradient(#0000 49.7%,#4c4c4c 49.7% 50.3%,#0000 50.3%),linear-gradient(90deg,#0000 49.7%,#4c4c4c 49.7% 50.3%,#0000 50.3%);border-radius:0;transform:rotate(18deg)}.ribbon-project.shape-grid{background:#242424}.ribbon-project.shape-grid:after{display:none}.ribbon-project-grid{color:#595959;pointer-events:none;border:1px solid;width:22vw;height:22vw;position:absolute;top:18%;right:8%}.ribbon-project-link{z-index:1;color:inherit;text-decoration:none;display:block;position:relative}.ribbon-project-link h2{transition:opacity .15s}.ribbon-project-link:hover h2{opacity:.6}.ribbon-project-link:focus-visible{outline-offset:8px;border-radius:2px;outline:2px solid #e8e8e8}.ribbon-project-link:active h2{opacity:.4}.ribbon-collection{background:#080808;min-width:100vw}.ribbon-collection h2{letter-spacing:-.08em;margin:0 0 28px;font-size:clamp(72px,10vw,150px);font-weight:400;line-height:.8}.ribbon-list{border-top:1px solid #3b3b3b;margin:auto 0;display:grid}.ribbon-list div{border-bottom:1px solid #3b3b3b;grid-template-columns:56px minmax(250px,.9fr) minmax(280px,1.1fr);align-items:center;gap:24px;padding:22px 0;display:grid}.ribbon-list strong{letter-spacing:-.05em;font-size:clamp(32px,4vw,64px);font-weight:400}.ribbon-list-title{flex-direction:column;align-items:flex-start;gap:4px;min-width:0;margin:0;display:flex}.ribbon-list-title small{color:#737373;letter-spacing:.11em;text-transform:uppercase;font:500 9px/1.5 IBM Plex Mono,monospace}.ribbon-list span{color:#737373}.ribbon-list-meta{text-align:left;flex-direction:column;justify-self:start;gap:6px;max-width:480px;display:flex}.ribbon-list-meta>span{color:#8d8d8d;letter-spacing:.08em;white-space:pre-line;font-size:10px;line-height:1.65}.ribbon-list-meta small{color:#555;letter-spacing:.11em;text-transform:uppercase;font:500 8px/1.5 IBM Plex Mono,monospace}.ribbon-end{color:#0a0a0a;background:#c6c6c6;grid-template-rows:auto 1fr auto;min-width:56vw;padding-bottom:136px;display:grid}.ribbon-end ::selection{color:#e8e8e8;background:#101010}.ribbon-end-main{align-self:center;width:100%}.ribbon-end strong{letter-spacing:-.1em;margin:0;font-size:clamp(100px,15vw,220px);font-weight:500;line-height:.75;display:block}.ribbon-end-contact{justify-content:space-between;align-items:baseline;gap:32px;display:flex}.ribbon-end-contact>span{letter-spacing:.11em;white-space:nowrap;font:500 11px/1.5 IBM Plex Mono,monospace}.ribbon-contact-links{flex-wrap:wrap;justify-content:flex-end;gap:8px 32px;display:flex}.ribbon-contact-links a{color:#4a4a4a;letter-spacing:.11em;text-underline-offset:5px;text-transform:uppercase;font:500 11px/1.5 IBM Plex Mono,monospace;text-decoration-color:#8a8a8a;text-decoration-thickness:1px;transition:opacity .15s}.ribbon-contact-links a:hover{opacity:.55}.ribbon-contact-links a:focus-visible{outline-offset:4px;border-radius:2px;outline:2px solid}.ribbon-contact-links a:active{opacity:.35}@keyframes ribbon-enter{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@media (width<=720px){.language-switcher{top:28px;right:24px}.ribbon-panel,.ribbon-intro,.ribbon-collection,.ribbon-end{flex-basis:88vw;width:88vw;min-width:88vw;padding:88px 24px 92px}.ribbon-intro,.ribbon-collection{flex-basis:100vw;width:100vw;min-width:100vw}.ribbon-intro h1{font-size:clamp(88px,31vw,132px)}.ribbon-intro h1 span{margin-left:0;font-size:.7em}.ribbon-swipe-hint{color:#777;letter-spacing:.11em;text-transform:uppercase;align-items:center;gap:12px;font:500 9px/1.5 IBM Plex Mono,monospace;display:flex;position:absolute;bottom:32px;left:50%;transform:translate(-50%)}.ribbon-swipe-hint svg{width:48px;height:12px}.ribbon-project h2{font-size:clamp(76px,25vw,110px)}.ribbon-project:after,.ribbon-project-grid{width:48vw;height:48vw}.ribbon-collection h2{font-size:72px}.ribbon-list div{grid-template-columns:36px minmax(0,1fr);gap:6px 12px;padding:14px 0}.ribbon-list-meta{text-align:left;grid-column:2;justify-self:stretch;align-items:flex-start;max-width:none}.ribbon-list strong{font-size:32px}.ribbon-end-contact{flex-direction:column;align-items:flex-start;gap:16px;margin-top:32px}.ribbon-contact-links{justify-content:flex-start;gap:8px 24px}}@media (width<=720px),(pointer:coarse){.language-switcher{gap:0}.language-switcher>span{position:absolute;left:50%;transform:translate(-50%)}.language-switcher button{place-items:center;width:44px;height:44px;padding:0;display:grid}.ribbon-contact-links a{align-items:center;min-height:44px;display:flex}}@media (height<=700px){.language-switcher{top:8px}.ribbon-panel{padding-block:56px 48px}.ribbon-collection h2{margin-bottom:16px;font-size:56px}.ribbon-list div{padding-block:8px}.ribbon-list strong{font-size:28px}.ribbon-list-meta>span{font-size:9px;line-height:1.45}.ribbon-end{padding-bottom:48px}}@media (prefers-reduced-motion:reduce){.ribbon-track{transition-duration:.176s!important}.ribbon-intro-top,.ribbon-intro h1{animation:.15s both ribbon-fade}*,:before,:after{transition-duration:1ms!important}}@keyframes ribbon-fade{0%{opacity:0}to{opacity:1}}
