@font-face{font-family:Caslon;src:url('./assets/libre-caslon-display.ttf') format('truetype');font-style:normal;font-weight:400;font-display:swap}
:root{--paper:#f7f5ef;--ink:#171715;--red:#c63125;--rule:#75736d;--hairline:#b9b6ae;--serif:Caslon,'Times New Roman',serif;--mono:'SFMono-Regular',Consolas,'Liberation Mono',monospace}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:24px}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--serif);-webkit-font-smoothing:antialiased}
body::before{position:fixed;inset:0;z-index:-1;content:"";pointer-events:none;background:radial-gradient(ellipse at 28% 40%,#ffffff45,transparent 70%),radial-gradient(ellipse at 83% 88%,#e9e2d33b,transparent 65%)}
::selection{background:#e3cfc1;color:var(--ink)}
a{color:inherit;text-decoration:none}
a:focus-visible{outline:2px solid var(--red);outline-offset:6px}
button,a{-webkit-tap-highlight-color:transparent}
.page{width:min(100%,1680px);padding:0 clamp(20px,2.8vw,52px);margin:auto}
.skip-link{position:fixed;top:12px;left:12px;z-index:10;padding:12px 20px;background:var(--ink);color:var(--paper);font:14px var(--mono);transform:translateY(-150%)}
.skip-link:focus{transform:translateY(0)}
.masthead{display:flex;align-items:center;min-height:78px;gap:22px;border-bottom:1px solid var(--rule)}
.wordmark{white-space:nowrap;font-size:35px;line-height:1;letter-spacing:-1.4px}
.masthead-label,.location,.masthead nav,.marginal,.application-label,.cycle-caption,.footer{font-family:var(--mono);font-size:10px;font-weight:400;line-height:1.7;letter-spacing:1.9px;text-transform:uppercase}
.masthead-label,.location{padding-left:22px;border-left:1px solid var(--hairline);white-space:nowrap}
.masthead nav{display:flex;align-items:center;gap:30px;margin-left:auto}
.masthead nav a{padding:14px 0;transition:color .2s}
.masthead nav a:hover,.masthead nav a[aria-current]{color:var(--red)}
.hero{position:relative;padding:63px 0 57px}
.marginal{margin:0;font-size:9px;letter-spacing:1.5px;line-height:1.65}
.dash{display:block;width:12px;height:1px;background:currentColor;margin-top:12px}
.hero-left{position:absolute;top:73px;left:0}
.hero-right{position:absolute;top:59px;right:0}
.hero h1{margin:0 0 0 12%;font-weight:400;font-size:clamp(80px,10.65vw,176px);letter-spacing:-.057em;line-height:.795}
.hero h1 span{display:block}
.hero-description{position:absolute;top:46.5%;left:73.7%;margin:0;font-size:clamp(20px,2.22vw,36px);line-height:1.05;letter-spacing:-.02em}
.hero-resolution{margin:40px 0 0 19.2%;font-size:clamp(65px,8.45vw,142px);letter-spacing:-.058em;line-height:1.04;white-space:nowrap}
.hero-resolution>span{position:relative;display:inline-block}
.hero-resolution>span::after{position:absolute;content:"";height:2px;background:var(--red);left:0;right:0;bottom:0;transform-origin:left;animation:underline-in 1.2s .4s both}
.hero-place{position:absolute;bottom:69px;left:0}
.hero-actions{position:absolute;bottom:60px;right:0}
.section{position:relative;border-top:1px solid var(--rule);padding-top:27px}
.section-index{margin:0;font-weight:400;font-size:13px;text-transform:uppercase;letter-spacing:1.35px;line-height:1.45}
.section-index>span:first-child{display:block;font-size:12px;letter-spacing:1.6px}
.section-index .dash{margin-top:12px}
.method{padding-bottom:24px}
.method .section-index{position:absolute;left:0;top:24px}
.cycle{position:relative;padding:24px 9% 40px;min-height:274px}
.cycle-connections{position:absolute;inset:0;top:25px;width:100%;height:calc(100% - 20px);overflow:visible;fill:none;stroke:var(--red);stroke-width:1;stroke-linecap:round;stroke-linejoin:round;vector-effect:non-scaling-stroke}
.cycle-steps{position:relative;list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(4,1fr);gap:4.4%}
.step{aspect-ratio:1;display:flex;align-items:center;flex-direction:column;border:1px solid var(--red);border-radius:50%;background:var(--paper);padding:12% 8% 10%;text-align:center}
.step-number{font-size:16px;letter-spacing:1px;line-height:1}
.step h3{font-size:clamp(23px,2.5vw,42px);line-height:.91;font-weight:400;letter-spacing:-.035em;margin:10px 0 0;min-height:1.85em}
.step svg{width:66%;height:auto;max-height:76px;margin-top:-5px;fill:none;stroke:var(--ink);stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round;overflow:visible}
.cycle-caption{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);padding:0 18px;background:var(--paper);text-align:center;white-space:nowrap;margin:0;font-size:10px;letter-spacing:2.6px}
.applications{padding-bottom:37px}
.application-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin-top:-3px}
.application{padding:25px 17px 0;text-align:center;border-left:1px solid var(--hairline)}
.application:first-child{border-left:0}
.application h3{font-size:clamp(23px,2.25vw,36px);line-height:1.03;font-weight:400;letter-spacing:-.024em;margin:0;min-height:2.2em;display:flex;flex-direction:column;justify-content:center}
.application>svg{display:block;width:100%;height:auto;max-height:200px;margin:16px auto 9px;fill:none;stroke:var(--ink);stroke-width:1;stroke-linecap:round;stroke-linejoin:round}
.application svg text{fill:var(--ink);stroke:none;text-anchor:middle;font:9px var(--mono);letter-spacing:.5px;dominant-baseline:middle}
.application svg .serif-svg{font:18px var(--serif)}
.application svg .red{stroke:var(--red)}
.application svg .guide{stroke:var(--hairline);stroke-dasharray:3 3;stroke-width:.8}
.application-label{margin:7px 0 0;font-size:10px;letter-spacing:2px;line-height:1.8}
.application>.dash{margin:14px auto 13px}
.application-copy{font-family:system-ui,-apple-system,sans-serif;font-size:11px;line-height:1.55;font-weight:400;color:#65615b;margin:0 auto;max-width:24ch;text-wrap:pretty}
.contact{display:grid;grid-template-columns:12% 54% 27% 7%;padding:35px 0 35px;align-items:start}
.contact h2{font-size:clamp(44px,6.4vw,106px);font-weight:400;line-height:.89;letter-spacing:-.05em;margin:0;padding-right:26px}
.contact h2 span{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:8px}
.contact-action{border-left:1px solid var(--hairline);padding:12px 0 2px 19%;font-size:clamp(21px,2.2vw,35px);letter-spacing:-.03em;line-height:1.3;align-self:stretch}
.contact-action p{margin:0 0 6px}
.contact-action a{display:inline-block;overflow-wrap:anywhere}
.contact-action a:hover{text-decoration:underline;text-decoration-color:var(--red);text-underline-offset:6px}
.contact-arrow{display:block;color:var(--red);font-family:Georgia,serif;font-size:35px;margin-top:16px;transition:transform .25s}
.contact-action a:hover .contact-arrow{transform:translateX(8px)}
.contact-note{padding-top:8px;justify-self:end}
.footer{display:flex;gap:17px;align-items:center;border-top:1px solid var(--rule);min-height:60px;font-size:8px;letter-spacing:1.2px}
.footer .wordmark{font-family:var(--serif);font-size:24px;letter-spacing:-1px;text-transform:none}
.footer>span{border-left:1px solid var(--hairline);padding-left:17px;white-space:nowrap}
.footer p{margin-left:auto;font-size:8px;letter-spacing:1.3px}
.footer i{font-style:normal;color:#8c887f;margin:0 14px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.draw-line{stroke-dasharray:1500;stroke-dashoffset:0}
.js-motion .draw-line{stroke-dashoffset:1500}
.method.is-visible .draw-line{animation:draw-cycle 1.8s .15s ease-out forwards}
.js-motion .reveal{opacity:1;transform:translateY(8px);transition:transform .65s ease}
.js-motion .reveal.is-visible{opacity:1;transform:translateY(0)}
.step:nth-child(2),.application:nth-child(2){transition-delay:.09s}.step:nth-child(3),.application:nth-child(3){transition-delay:.18s}.step:nth-child(4),.application:nth-child(4){transition-delay:.27s}.application:nth-child(5){transition-delay:.36s}.application:nth-child(6){transition-delay:.45s}
.method.is-visible .move-icon{animation:move-gently 3.8s 2s ease-in-out 2}
@keyframes draw-cycle{to{stroke-dashoffset:0}}
@keyframes underline-in{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes move-gently{0%,100%{transform:translateX(0)}50%{transform:translateX(4px)}}
@media(min-width:1450px){.hero-description{top:46%}.cycle{min-height:330px}.step{padding-top:13%}.step svg{max-height:90px}.step-number{font-size:19px}.cycle-caption{bottom:9px}.application-copy{font-size:13px}.application-label{font-size:11px}}
@media(max-width:1150px){.masthead{min-height:66px;gap:18px}.wordmark{font-size:30px}.masthead-label,.location{padding-left:18px;font-size:9px}.masthead nav{gap:24px;font-size:9px}.hero{padding-top:52px;padding-bottom:50px}.hero-left{top:63px}.hero-right{top:50px}.hero-place{bottom:63px}.hero-actions{bottom:52px}.cycle{min-height:250px}.cycle-caption{bottom:9px}.application{padding-right:13px;padding-left:13px}.application-copy{font-size:10px}.application-label{font-size:9px;letter-spacing:1.5px}.contact-action{padding-left:17%}.footer p{font-size:7px}.footer i{margin:0 8px}}
@media(max-width:900px){.masthead{flex-wrap:wrap;column-gap:18px;padding-top:18px;padding-bottom:14px;row-gap:17px}.masthead nav{flex-basis:100%;justify-content:space-between;gap:20px;border-top:1px solid var(--hairline);padding-top:7px;margin:0}.masthead nav a{padding:5px 0}.hero h1{font-size:10.7vw;margin-left:11%}.hero-description{font-size:2.45vw;left:74%;top:42%}.hero-resolution{font-size:8.8vw;margin-left:15.5%;margin-top:37px}.hero-actions{display:none}.hero-place{bottom:52px}.hero-left,.hero-right{font-size:8px;letter-spacing:1px}.cycle{padding-left:5%;padding-right:5%;padding-top:35px;min-height:232px}.cycle-connections{top:28px}.method .section-index{position:static}.method{padding-top:20px}.cycle-caption{bottom:4px;font-size:9px}.step-number{font-size:13px}.step h3{font-size:2.9vw}.step{padding-top:14%}.step svg{max-height:66px}.application-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:13px;row-gap:30px}.application{padding:10px 20px 0}.application:nth-child(4){border-left:0}.application h3{font-size:31px}.application>svg{height:150px;max-width:165px}.application-label{font-size:10px}.application-copy{font-size:12px;max-width:23ch}.contact{grid-template-columns:11% 55% 34%}.contact-note{display:none}.contact h2{font-size:6.5vw;padding-right:20px}.contact-action{font-size:2.65vw;padding-left:13%;padding-top:3px}.contact-arrow{margin-top:10px;font-size:28px}.footer{flex-wrap:wrap;padding-top:17px;gap:12px}.footer p{flex-basis:100%;margin:0 0 14px;text-align:right}}
@media(max-width:600px){html{scroll-padding-top:16px}.page{padding-inline:22px}.masthead{padding-top:22px;gap:17px 15px;align-items:baseline}.wordmark{font-size:33px}.masthead-label{font-size:8px;letter-spacing:1.1px;padding-left:15px;white-space:normal;max-width:130px;line-height:1.6}.location{display:none}.masthead nav{padding-top:10px;font-size:8px;letter-spacing:1.3px;gap:10px}.hero{padding:36px 0 35px}.hero-left{position:static;margin-bottom:33px;font-size:8px;letter-spacing:1.4px}.hero-left br{display:none}.hero-left br::after{content:' '}.hero-left{word-spacing:6px}.hero-left .dash{display:inline-block;width:22px;vertical-align:middle;margin:0 0 3px 14px}.hero-right{display:none}.hero h1{margin:0;font-size:clamp(55px,14vw,84px);line-height:.86;letter-spacing:-.052em}.hero-description{position:static;margin:28px 0 0 26%;font-size:25px;line-height:1.1;max-width:16ch}.desktop-break{display:none}.hero-resolution{font-size:clamp(40px,10.5vw,61px);letter-spacing:-.053em;line-height:1;margin:30px 0 0;white-space:normal}.hero-resolution>span{padding-bottom:5px}.hero-resolution>span::after{height:1px}.hero-place{display:none}.section{padding-top:21px}.section-index{font-size:12px;letter-spacing:1.2px}.section-index>span:first-child{font-size:10px}.section-index .dash{margin-top:9px}.method{padding-bottom:31px}.cycle{padding:26px 0 31px;min-height:0}.cycle-connections{display:none}.cycle-steps{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px}.step{padding:13% 7% 8%;position:relative}.step-number{font-size:13px}.step h3{font-size:clamp(24px,7vw,36px);margin-top:9px;min-height:1.8em}.step svg{width:59%;max-height:69px;margin-top:-2px}.step:nth-child(1)::after,.step:nth-child(3)::after{content:'⟶';position:absolute;right:-18px;top:44%;color:var(--red);font-family:Georgia,serif;font-size:23px;width:21px;background:var(--paper)}.step:nth-child(2)::after{content:'↓';position:absolute;bottom:-26px;left:48%;color:var(--red);font-family:Georgia,serif;font-size:20px}.step:nth-child(4)::after{content:'↑';position:absolute;top:-27px;left:48%;color:var(--red);font-family:Georgia,serif;font-size:20px}.step:nth-child(3){grid-column:2;grid-row:2}.step:nth-child(4){grid-column:1;grid-row:2}.step:nth-child(3)::after{right:auto;left:-18px;transform:rotate(180deg)}.cycle-caption{bottom:-1px;font-size:8px;letter-spacing:1.6px;width:max-content;padding-inline:10px}.cycle::after{content:'';position:absolute;left:0;right:0;bottom:5px;border-top:1px solid var(--red);z-index:-1}.applications{padding-bottom:27px}.application-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:32px;margin-top:23px}.application{padding:0 13px}.application:nth-child(odd){border-left:0}.application:nth-child(even){border-left:1px solid var(--hairline)}.application h3{font-size:28px;line-height:1.04}.application>svg{height:143px;margin-top:12px;margin-bottom:9px}.application-label{font-size:8px;letter-spacing:1.2px}.application-copy{font-size:11px;line-height:1.55;color:#5b5751}.application>.dash{margin:11px auto}.contact{grid-template-columns:1fr;gap:27px;padding:23px 0 28px}.contact h2{font-size:clamp(43px,11.7vw,70px);line-height:.94;letter-spacing:-.045em;padding:0}.contact h2 span{text-underline-offset:5px;text-decoration-thickness:1px}.contact-action{margin:6px 0 0 25%;font-size:26px;padding:0 0 0 20px}.contact-action p{margin-bottom:3px}.contact-arrow{font-size:29px;margin-top:10px}.footer{padding:21px 0 13px;gap:12px 13px;line-height:1.5}.footer .wordmark{font-size:27px}.footer>span{font-size:7px;letter-spacing:.9px;padding-left:13px;max-width:105px;white-space:normal}.footer>span:last-of-type{display:none}.footer p{text-align:left;font-size:6px;letter-spacing:.65px;margin-bottom:0;padding-top:4px;white-space:normal}.footer i{margin:0 6px}.application:nth-child(n),.step:nth-child(n){transition-delay:0s}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.js-motion .reveal{opacity:1;transform:none}.draw-line,.js-motion .draw-line{stroke-dashoffset:0}.hero-resolution>span::after{transform:none}}
@media print{body{background:#fff}.page{max-width:none;padding:0}.masthead nav,.skip-link{display:none}.hero{padding-top:35px}.draw-line,.js-motion .draw-line{stroke-dashoffset:0}.js-motion .reveal{opacity:1;transform:none}.application-copy{font-size:10px}.contact,.application{break-inside:avoid}}
