@font-face{font-family:'Geist Mono';font-style:normal;font-weight:300 500;font-display:swap;
  src:url(assets/fonts/f5.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Geist Mono';font-style:normal;font-weight:300 500;font-display:swap;
  src:url(assets/fonts/f4.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+1E00-1E9F,U+2020,U+20A0-20AB,U+2113,U+A720-A7FF;}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;
  src:url(assets/fonts/f9.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Instrument Serif';font-style:normal;font-weight:400;font-display:swap;
  src:url(assets/fonts/f8.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+1E00-1E9F,U+2020,U+20A0-20AB,U+2113,U+A720-A7FF;}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;
  src:url(assets/fonts/f7.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'Instrument Serif';font-style:italic;font-weight:400;font-display:swap;
  src:url(assets/fonts/f6.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+1E00-1E9F,U+2020,U+20A0-20AB,U+2113,U+A720-A7FF;}

:root{
  --cream:#f4f2ee;
  --ink:#15120f;
  --taupe:#a38d85;
  --taupe-ink:#57433c;
  --blue:#dfe2ec;
  --blue-ink:#939cb0;
  --scrim:#a08375;
  --scrim-ink:#4d3b33;
  --pad:64px;
  --ease:cubic-bezier(.22,.7,.2,1);
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;background:var(--cream);color:var(--ink);
  font-family:'Geist Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  -webkit-font-smoothing:antialiased;overflow-x:hidden;
}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;padding:0;cursor:pointer}
ul{list-style:none;margin:0;padding:0}
h1,h2,p,figure{margin:0}

.mono{font-family:'Geist Mono',ui-monospace,monospace;font-weight:400;font-size:12px;line-height:1.72;letter-spacing:.04em}
.display{font-family:'Instrument Serif',Georgia,serif;font-weight:400;letter-spacing:0;line-height:1.05}

.mark{
  display:block;width:145px;height:62px;background-color:currentColor;
  -webkit-mask:url(assets/wordmark-halden.png) no-repeat center/contain;
          mask:url(assets/wordmark-halden.png) no-repeat center/contain;
}

.loader{
  position:fixed;inset:0;z-index:120;background:var(--cream);
  display:flex;align-items:center;justify-content:center;
  transition:opacity .55s ease;
}
.loader-mark{position:relative;color:var(--ink)}
.loader-mark-wipe{
  display:block;width:240px;height:104px;background-color:currentColor;
  -webkit-mask:url(assets/wordmark-halden.png) no-repeat center/contain;
          mask:url(assets/wordmark-halden.png) no-repeat center/contain;
  clip-path:inset(0 100% 0 0);
}
.is-drawing .loader-mark-wipe{
  clip-path:inset(0 0 0 0);
  transition:clip-path .75s cubic-bezier(.5,.05,.35,1);
}
.is-loaded .loader{opacity:0;pointer-events:none}

.hdr{
  position:fixed;top:0;left:0;right:0;z-index:90;
  display:flex;align-items:center;justify-content:space-between;
  padding:51px 48px 0;color:#fff;
  transition:color .45s ease;
}
.hdr.on-light{color:var(--ink)}
.hdr-logo{position:absolute;left:50%;top:36px;transform:translateX(-50%);transition:opacity .35s ease}
.hdr.on-light .hdr-logo{opacity:0;pointer-events:none}
.hdr-logo .mark{width:145px;height:62px}
.hdr-cta{position:relative;padding-bottom:9px;letter-spacing:.015em}
.hdr-cta::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;opacity:.75}
.hdr-menu{letter-spacing:.04em;font-size:13px}
body.menu-open .hdr{opacity:0;pointer-events:none}

.link-roll .roll{display:inline-block;overflow:hidden;position:relative;vertical-align:top}
.link-roll .roll-b{position:absolute;left:0;top:0;white-space:pre}
.link-roll .roll i{display:inline-block;font-style:inherit;will-change:transform;
  transition:transform .4s var(--ease);transition-delay:calc(var(--i) * 18ms)}
.link-roll .roll-b i{transform:translateY(105%)}
.link-roll:hover .roll-a i{transform:translateY(-105%)}
.link-roll:hover .roll-b i{transform:translateY(0)}

.words w{display:inline-block;opacity:0;transform:translateY(.5em);
  transition:opacity .7s ease,transform .7s var(--ease);transition-delay:calc(var(--i) * 26ms)}
.words.in w{opacity:1;transform:none}
.reveal-img{overflow:hidden}
.reveal-img img{transform:scale(1.08);opacity:0;transition:transform 1.2s var(--ease),opacity .9s ease}
.reveal-img.in img{transform:none;opacity:1}

.hero{position:relative;height:100vh;min-height:620px;overflow:hidden;background:#1a1512}
.hero-photo{position:absolute;inset:0;display:flex;align-items:center;justify-content:center}
.hero-photo img{width:100%;height:100%;object-fit:cover;object-position:center 42%}
.hero-photo{clip-path:inset(50% 23.2% 50% 23.2%);}
.is-loaded .hero-photo{clip-path:inset(0 0 0 0);transition:clip-path .55s cubic-bezier(.4,.05,.2,1)}
.hero-inner{
  position:relative;z-index:2;height:100%;color:#fff;
  display:grid;grid-template-columns:1fr auto 1fr;align-items:start;
  gap:40px;padding:370px 195px 0;
}
.hero-note{max-width:245px;text-transform:uppercase;font-size:13.5px}
.hero-note-r{justify-self:end;text-align:right}
.hero-center{text-align:center;justify-self:center;margin-top:-52px}
.hero h1{font-size:64px;line-height:1.06;text-transform:uppercase}
.ul-link{position:relative;display:inline-block;padding-bottom:9px;margin-top:32px;text-transform:uppercase}
.hero .ul-link{opacity:0;transition:opacity .7s ease}
body.hero-in .hero .ul-link{opacity:1}
.ul-link::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;opacity:.8}

.stage{
  min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;
  padding:120px var(--pad) 49px;text-align:center;
}
.stage-taupe{background:var(--taupe);color:var(--taupe-ink)}
.stage-blue{background:var(--blue);color:var(--blue-ink)}
.stage-title{font-size:52px;line-height:1.1;text-transform:uppercase;max-width:560px}
.stage-photo{margin:36px 0 0;width:230px}
.stage-photo img{width:100%;height:320px;object-fit:cover}
.stage-copy{margin-top:48px;max-width:612px;text-transform:uppercase;line-height:1.65;font-size:13.5px}
.stage-copy p + p{margin-top:1.72em}

.proc{padding:164px var(--pad) 271px}
.proc-head{display:flex;gap:44px;align-items:flex-start;padding-left:25.1%}
.proc-name{font-style:italic;font-size:34px;text-transform:uppercase;white-space:nowrap;padding-top:4px}
.proc-title{font-size:33px;line-height:1.21;text-transform:uppercase;max-width:456px}
.proc-grid{display:grid;grid-template-columns:45% 11.1% 26.7% 1fr;gap:0;margin-top:277px}
.proc-left{grid-column:1;grid-row:1;margin-top:244px}
.proc-right{grid-column:3;grid-row:1}
.proc-right figure img{width:100%;aspect-ratio:350/488;height:auto;object-fit:cover}
.proc-list{margin-top:32px;text-transform:uppercase;font-size:12px;line-height:1.62;width:390px}
.proc-left figure img{width:100%;aspect-ratio:590/741;height:auto;object-fit:cover}
.proc-copy{margin-top:34px;text-transform:uppercase}
.proc-left .ul-link{margin-top:26px}

.blog{padding:70px 0 114px 20%;overflow:hidden}
.blog-head{display:flex;gap:74px;align-items:flex-start;padding-right:var(--pad)}
.blog-eyebrow{text-transform:uppercase;padding-top:30px;width:180px;flex:none}
.blog-title{font-size:48px;line-height:1.35;text-transform:uppercase}
.rail{margin-top:40px;overflow:hidden}
.rail-track{display:flex;gap:16px;width:max-content;will-change:transform}
.card{position:relative;width:400px;flex:none;overflow:hidden;display:block;background:#ded9d3}
.card > img{width:100%;height:518px;object-fit:cover}
.card-scrim{
  position:absolute;inset:0;background:var(--scrim);color:var(--scrim-ink);
  display:flex;flex-direction:column;justify-content:space-between;
  padding:56px 34px 34px;text-align:center;opacity:.52;transition:opacity .45s ease;
}
.rail:hover .card-scrim{opacity:0}
.rail:hover .card:hover .card-scrim{opacity:1}
.card-title{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-size:26px;line-height:1.22;text-transform:uppercase}
.card-foot .mono{font-size:13px;line-height:1.68}
.card-more{display:inline-block;margin-top:26px;padding-bottom:6px;position:relative;text-transform:uppercase;font-size:12px;letter-spacing:.06em}
.card-more::after{content:'';position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor}
.rail-arrows{display:flex;gap:16px;margin-top:30px}
.rail-arrows button{padding:8px 0;transition:opacity .3s ease}
.rail-arrows button:hover{opacity:.45}

.ftr{padding:96px var(--pad) 17px;border-top:1px solid rgba(21,18,15,.16)}
.ftr-top{display:grid;grid-template-columns:44.6% 20.1% 20.1% 1fr}
.ftr-lede{text-transform:uppercase;max-width:400px;font-size:13px}
.ftr-nav{grid-column:3}
.ftr-social{grid-column:4}
.ftr-nav li,.ftr-social li{margin-bottom:3px}
.ftr-mid{display:grid;grid-template-columns:44.6% 20.1% 20.1% 1fr;margin-top:86px}
.ftr-contact{grid-column:2}
.ftr-coord{grid-column:3}
.ftr-book{grid-column:4}
.ftr-sign{margin-top:-51px}
.ftr-sign .mark{width:318px;height:137px}
.ftr-legal{display:grid;grid-template-columns:repeat(4,1fr);margin-top:78px}
.ftr-legal span{border:1px solid rgba(21,18,15,.35);padding:5px 8px;text-align:center;font-size:10.5px;letter-spacing:0;margin-left:-1px}
.ftr-legal span:first-child{margin-left:0}

.overlay{
  position:fixed;inset:0;z-index:100;background:var(--blue);color:var(--ink);
  padding:44px var(--pad) 60px;opacity:0;pointer-events:none;
  transition:opacity .5s ease,background-color .6s ease;
}
body.menu-open .overlay{opacity:1;pointer-events:auto}
.overlay-head{display:flex;align-items:center;justify-content:space-between}
.overlay-head .hdr-logo .mark{margin-top:-14px}
.overlay-nav{margin-top:86px;display:flex;flex-direction:column;gap:13px;align-items:flex-start}
.overlay-nav a{
  font-family:'Instrument Serif',Georgia,serif;font-size:88px;line-height:1.16;
  transition:color .4s ease;
}
.overlay-nav a:hover{color:rgba(21,18,15,.34)}
.overlay-side{position:absolute;right:85px;top:410px;width:250px}
.overlay-side .mono{font-size:14.5px}
.overlay-side a{position:relative}
.overlay-side a::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor}
.overlay-side li{margin-bottom:8px}
.overlay-shot{margin-top:46px;width:230px;height:300px;overflow:hidden}
.overlay-shot img{width:100%;height:100%;object-fit:cover;transition:opacity .35s ease}

.totop{
  position:fixed;right:26px;bottom:26px;z-index:95;width:50px;height:50px;border-radius:50%;
  border:1px solid rgba(21,18,15,.45);display:flex;align-items:center;justify-content:center;
  color:rgba(21,18,15,.75);background:transparent;transition:background-color .3s ease,color .3s ease;
  mix-blend-mode:difference;opacity:.8;
}
.totop:hover{background:rgba(255,255,255,.14)}

@media (max-width:1100px){
  :root{--pad:32px}
  .hdr{padding:44px 36px 0}
  .hdr-logo .mark{width:120px;height:51px}
  .hero-inner{display:flex;justify-content:center;align-items:flex-start;padding:254px 32px 0}
  .hero-note{display:none}
  .stage{padding:120px var(--pad) 60px}
  .stage-title{font-size:52px;max-width:600px}
  .proc{padding:120px var(--pad) 150px}
  .proc-head{padding-left:0;gap:47px}
  .proc-name{font-size:33px}
  .proc-title{font-size:33px;max-width:670px}
  .proc-grid{grid-template-columns:44.2% 12.7% 43.1%;margin-top:35px}
  .proc-left{margin-top:335px}
  .proc-list{width:auto}
  .blog{padding:70px 0 90px 64px}
  .blog-head{gap:116px}
  .blog-eyebrow{width:150px;padding-top:22px}
  .rail{margin-top:60px}
  .card{width:300px}
  .card > img{height:246px}
  .card-scrim{position:static;opacity:1;padding:34px 24px 38px;min-height:150px;justify-content:center}
  .rail:hover .card-scrim{opacity:1}
  .card-title{font-size:21px}
  .card-foot{display:none}
  .ftr{padding:82px var(--pad) 16px}
  .ftr-top,.ftr-mid,.ftr-sign{display:none}
  .ftr-legal{grid-template-columns:1fr 1fr;margin-top:0;gap:12px 13px}
  .ftr-legal span{margin-left:0;padding:4px 8px}
  .overlay-nav a{font-size:54px}
  .overlay-side{top:340px;width:200px}
}

@media (max-width:760px){
  :root{--pad:20px}
  .hdr{padding:34px 20px 0;align-items:flex-start}
  .hdr-cta{display:none}
  .hdr-logo{position:static;transform:none;order:-1}
  .hdr.on-light .hdr-logo{opacity:1;pointer-events:auto}
  .hdr-logo .mark{width:110px;height:47px;margin-top:-8px}
  .hdr-menu{margin-top:8px}
  .hero{height:auto;min-height:0;padding-bottom:0}
  .hero-photo{position:relative;height:94vh}
  .hero-inner{position:absolute;inset:0;display:block;padding:228px 20px 0;text-align:center}
  .hero-note{display:none}
  .hero-center{margin-top:0}
  .hero h1{font-size:45px;line-height:1.30}
  .ul-link{margin-top:12px;font-size:12px}
  .stage{min-height:0;padding:96px 20px 84px}
  .stage-title{font-size:38px;line-height:1.12;max-width:300px}
  .stage-title br,.blog-title br{display:none}
  .stage-photo{margin-top:54px;width:230px}
  .stage-copy{margin-top:46px;font-size:13.5px;max-width:311px}
  .proc{padding:96px 20px 90px}
  .proc-head{flex-direction:column;gap:22px}
  .proc-name{font-size:33px}
  .proc-title{font-size:33px;line-height:1.22;max-width:320px}
  .proc-grid{display:block;margin-top:54px}
  .proc-right,.proc-left{margin-top:0}
  .proc-right figure img{height:430px}
  .proc-left figure img{height:470px}
  .proc-left{margin-top:34px}
  .proc-list{margin-top:34px;font-size:12px;width:auto}
  .blog{padding:70px 0 40px 20px}
  .blog-head{display:block;padding-right:20px}
  .blog-eyebrow{width:auto;font-size:12px}
  .blog-title{font-size:30px;margin-top:14px}
  .rail{margin-top:34px}
  .card{width:228px}
  .card > img{height:244px}
  .card-scrim{position:static;opacity:1;background:var(--scrim);padding:26px 18px 30px;min-height:124px;justify-content:center}
  .rail:hover .card-scrim{opacity:1}
  .card-title{font-size:17px}
  .card-foot{display:none}
  .ftr{padding:0 20px 26px;border-top:0}
  .ftr-top,.ftr-mid,.ftr-sign{display:none}
  .ftr-legal{grid-template-columns:1fr;margin-top:30px;gap:11px}
  .ftr-legal span{margin-left:0;font-size:9px;padding:7px 6px}
  .overlay{padding:34px 20px}
  .overlay-nav{margin-top:56px}
  .overlay-nav a{font-size:38px}
  .overlay-side{position:static;width:auto;margin-top:54px}
  .overlay-shot{height:210px;max-width:230px}
  .totop{right:16px;bottom:16px;width:42px;height:42px}
}

@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition-duration:.01ms!important}
  .words w{opacity:1;transform:none}
  .reveal-img img{opacity:1;transform:none}
}
