:root{--ground:#edeae2;--ink:#17140f;--ink-2:#17140fa8;--ink-3:#17140f73;--hair:#17140f24;--rust:#c1533b;--serif:"Fraunces", Georgia, "Times New Roman", serif;--sans:"IBM Plex Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"IBM Plex Mono", ui-monospace, "SFMono-Regular", Consolas, monospace;--ease-mech:cubic-bezier(.16, 1, .3, 1);--ease-snap:cubic-bezier(.8, 0, .2, 1);--hdr-h:56px;--gutter:clamp(16px, 4vw, 48px)}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:calc(var(--hdr-h) + 16px);-webkit-text-size-adjust:100%}body{background:var(--ground);color:var(--ink);font:400 17px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;overflow-x:hidden}::selection{background:var(--rust);color:var(--ground)}img,svg,canvas{max-width:100%}a{color:inherit}:focus-visible{outline:2px solid var(--rust);outline-offset:3px}#view{padding-top:var(--hdr-h);outline:none;min-height:100vh;overflow-x:clip}.wrap{max-width:1240px;padding:0 var(--gutter);margin:0 auto}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.skip-link{z-index:200;background:var(--rust);color:#fff;font:500 13px var(--mono);padding:10px 14px;position:fixed;top:8px;left:8px;transform:translateY(-200%)}.skip-link:focus{transform:none}#grain{z-index:40;pointer-events:none;opacity:.075;mix-blend-mode:multiply;position:fixed;inset:0;overflow:hidden}#grain:before{content:"";background-image:var(--grain);animation:.8s steps(6,end) infinite grain;position:absolute;inset:-100%}@keyframes grain{0%{transform:translate(0)}17%{transform:translate(-7%,4%)}33%{transform:translate(5%,-8%)}50%{transform:translate(-3%,9%)}67%{transform:translate(8%,2%)}83%{transform:translate(-9%,-5%)}to{transform:translate(0)}}.tags{font:500 11px/1.4 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);flex-wrap:wrap;gap:6px 0;display:flex}.tags span{border-right:1px solid var(--hair);margin-right:14px;padding-right:14px}.tags span:last-child{border-right:0}.rule{background:var(--ink);height:1px;position:relative}.rule:before{content:"";background:var(--rust);width:28px;height:3px;position:absolute;top:-1px;left:0}.btn{--near:0;border:1px solid var(--ink);min-height:48px;color:var(--ink);font:500 12.5px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;cursor:pointer;transform:translate(var(--mx,0px), var(--my,0px));box-shadow:calc(var(--near) * 5px) calc(var(--near) * 5px) 0 var(--rust);background:0 0;align-items:center;gap:.8em;padding:14px 20px;text-decoration:none;transition:background-color .12s steps(2,end),color .12s steps(2,end),border-color .12s steps(2,end);display:inline-flex}.btn i{transition:transform .25s var(--ease-mech);font-style:normal}.btn:hover{background:var(--ink);color:var(--ground)}.btn:hover i{transform:translate(4px)}.btn:active{transform:translate(var(--mx,0px), var(--my,0px)) translate(2px, 2px);box-shadow:none}.btn--solid{background:var(--ink);color:var(--ground)}.btn--solid:hover{background:var(--rust);border-color:var(--rust)}[data-reveal]{opacity:0;transition:opacity .5s var(--ease-mech) var(--d,0s), transform .6s var(--ease-mech) var(--d,0s);transform:translateY(18px)}[data-reveal].is-in{opacity:1;transform:none}.rule[data-reveal]{opacity:1;transform-origin:0;transition:transform .7s var(--ease-snap);transform:scaleX(0)}.rule[data-reveal].is-in{transform:scaleX(1)}.ftr{border-top:1px solid var(--hair)}.ftr__inner{max-width:1240px;padding:22px var(--gutter) 36px;font:500 11px/1.5 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);flex-wrap:wrap;justify-content:space-between;gap:8px 24px;margin:0 auto;display:flex}.ftr__inner a{color:inherit;text-underline-offset:3px}.ftr__inner a:hover{color:var(--rust)}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}#grain:before{animation:none}*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.src-btn{border:1px solid var(--hair);color:var(--ink-3);font:500 9.5px/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;vertical-align:middle;white-space:nowrap;border-radius:2px;align-items:center;gap:4px;padding:3px 6px 2px;text-decoration:none;transition:color .12s steps(2,end),border-color .12s steps(2,end);display:inline-flex}.src-btn:after{content:"↗";letter-spacing:0}.src-btn:hover{color:var(--rust);border-color:var(--rust)}.hdr{z-index:100;pointer-events:none;height:56px;position:fixed;top:0;left:0;right:0}.hdr__dots{pointer-events:none;width:100%;position:absolute;top:0;left:0}.hdr__inner{z-index:1;align-items:center;gap:24px;max-width:1440px;height:100%;margin:0 auto;padding:0 clamp(14px,3vw,32px);display:flex;position:relative}.hdr__nav a{pointer-events:auto;color:#17140f;-webkit-tap-highlight-color:transparent;align-items:center;min-height:44px;text-decoration:none;display:flex}.hdr__nav{margin-left:auto}.hdr__nav ul{gap:10px;margin:0;padding:0;list-style:none;display:flex}.hdr__nav a{text-transform:uppercase;padding:0 10px;font:400 26px/1 IBM Plex Mono,monospace}.hdr__tel{white-space:nowrap;font:400 16px/1 IBM Plex Mono,monospace}.hdr.has-dots .hdr__t{color:#0000}.hdr__nav a:focus-visible{outline-offset:2px;outline:2px solid #c1533b}@media (width<=960px){.hdr__tel{display:none}}@media (width<=640px){.hdr__nav{margin:0 auto}.hdr__nav ul{gap:2px}.hdr__nav a{padding:0 8px;font-size:16px}}#transition-layer{z-index:90;pointer-events:none;position:fixed;inset:0}.tx--telemetry{pointer-events:auto;flex-direction:column;display:flex}.tx__band{transform-origin:0;background:#17140f;flex:1;margin-bottom:-1px;display:block;transform:scaleX(0);box-shadow:inset -2px 0 #c1533b}.tx__label{opacity:0;color:#f5f1e8;letter-spacing:.22em;white-space:nowrap;flex-direction:column;align-items:center;gap:10px;font:500 12px/1 IBM Plex Mono,monospace;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tx__load{color:#f5f1e880}.tx__load b{vertical-align:-2px;background:#c1533b;width:.62em;height:1em;margin-left:6px;animation:.4s step-end infinite tx-blink;display:inline-block}@keyframes tx-blink{50%{opacity:0}}
