@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=IBM+Plex+Mono:wght@400;500&family=Instrument+Serif:ital@0;1&display=swap');
:root {
  --black:#111211;
  --white:#eeede7;
  --silver:#b9bbb8;
  --muted:#9b9d99;
  --cobalt:#284cff;
  --line:#ffffff2b;
  --dark-line:#181b1b2e;
  --gutter:5.2vw;
  --sans:'DM Sans',Arial,sans-serif;
  --serif:'Instrument Serif',Georgia,serif;
  --mono:'IBM Plex Mono',monospace
}
* {
  box-sizing:border-box
}
html {
  scroll-behavior:smooth;
  scroll-padding-top:24px
}
body {
  margin:0;
  background:var(--black);
  color:var(--white);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased
}
body.viewer-open {
  overflow:hidden
}
::selection {
  background:var(--cobalt);
  color:#fff
}
a {
  color:inherit;
  text-decoration:none
}
button,input {
  font:inherit
}
button {
  cursor:pointer
}
button,a,input {
  -webkit-tap-highlight-color:transparent
}
button:focus-visible,a:focus-visible,input:focus-visible {
  outline:2px solid var(--cobalt);
  outline-offset:6px
}
button[hidden],[hidden] {
  display:none!important
}
img {
  max-width:100%;
  display:block
}
picture {
  display:block
}
h1,h2,h3,p,figure {
  margin:0
}
button {
  border-radius:0
}
em {
  font-family:var(--serif);
  font-weight:400
}
sup {
  font-family:var(--mono);
  font-size:9px;
  letter-spacing:0;
  vertical-align:super
}
.mono {
  font-family:var(--mono);
  font-size:10px;
  line-height:1.65;
  font-weight:400;
  letter-spacing:.035em
}
.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
}
.skip {
  position:fixed;
  top:-100px;
  left:20px;
  padding:15px 22px;
  background:var(--cobalt);
  color:#fff;
  z-index:100
}
.skip:focus {
  top:16px
}
.scroll-progress {
  position:fixed;
  left:0;
  top:0;
  width:100%;
  height:2px;
  background:var(--cobalt);
  z-index:80;
  transform:scaleX(0);
  transform-origin:left;
  pointer-events:none
}
.site-header {
  height:100px;
  margin:0 var(--gutter);
  display:flex;
  align-items:center;
  justify-content:space-between;
  border-bottom:1px solid var(--line)
}
.brand {
  display:flex;
  align-items:center;
  gap:12px;
  font-size:13px;
  font-weight:650;
  letter-spacing:.015em
}
.brand-symbol {
  width:36px;
  height:36px
}
.brand small {
  display:block;
  margin-top:4px;
  font:8px var(--mono);
  letter-spacing:.19em;
  color:var(--silver)
}
nav {
  display:flex;
  align-items:center;
  gap:44px;
  font-size:12px
}
nav a {
  position:relative;
  padding:10px 0
}
nav sup {
  margin-left:8px;
  color:var(--muted)
}
nav a:not(.nav-contact):after {
  content:'';
  position:absolute;
  left:0;
  bottom:4px;
  width:100%;
  height:1px;
  background:var(--white);
  transform:scaleX(0);
  transform-origin:left;
  transition:transform .3s
}
nav a:hover:after {
  transform:scaleX(1)
}
.nav-contact {
  display:flex;
  align-items:center;
  gap:32px;
  border:1px solid #737670;
  border-radius:30px;
  padding:11px 18px
}
.nav-contact span {
  font-size:18px;
  line-height:1
}
.nav-contact:hover {
  background:var(--white);
  color:var(--black)
}
.hero {
  padding:25px var(--gutter) 0;
  overflow:hidden;
  position:relative
}
.hero-index {
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--silver);
  font-size:9px
}
.hero-index>span:first-child {
  display:flex;
  align-items:center;
  gap:9px
}
.status-dot {
  width:5px;
  height:5px;
  border-radius:50%;
  background:#7692ff;
  box-shadow:0 0 12px #284cff80
}
.hero-name-row {
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin:22px 0 34px
}
.hero-name-row h1 {
  font-size:clamp(76px,10.8vw,180px);
  line-height:1.02;
  letter-spacing:-.075em;
  font-weight:500
}
.name-period {
  color:var(--cobalt)
}
.hero-name-row>p {
  margin-top:12px;
  max-width:220px;
  font-size:9px;
  color:var(--silver);
  text-align:right
}
.hero-composition {
  position:relative;
  min-height:540px;
  padding-top:17px
}
.hero-copy {
  position:relative;
  z-index:3;
  width:55%;
  pointer-events:none
}
.hero-copy>* {
  pointer-events:auto
}
.hero-copy h2 {
  font-size:clamp(64px,7.8vw,126px);
  font-weight:450;
  letter-spacing:-.065em;
  line-height:.94
}
.hero-copy h2 em {
  font-size:1.14em;
  letter-spacing:-.04em;
  color:#d3d5d0
}
.hero-copy>p {
  font-size:13px;
  line-height:1.7;
  color:var(--silver);
  margin-top:28px
}
.pill-link {
  display:inline-flex;
  align-items:center;
  gap:37px;
  padding:15px 20px;
  border:1px solid #83857e;
  border-radius:40px;
  font-size:11px;
  margin-top:25px;
  transition:background .25s,color .25s,border-color .25s
}
.pill-link span {
  font-size:20px;
  line-height:1
}
.pill-link:hover {
  background:var(--white);
  color:var(--black);
  border-color:var(--white)
}
.hero-photograph {
  position:absolute;
  right:4%;
  top:0;
  width:45%;
  max-width:570px
}
.hero-photograph picture {
  overflow:hidden;
  background:#272d22
}
.hero-photograph img {
  width:100%;
  height:auto;
  aspect-ratio:1;
  object-fit:contain
}
.hero-photograph figcaption {
  display:flex;
  justify-content:space-between;
  padding:15px 0;
  color:var(--silver);
  font-size:8px
}
.image-side-note {
  position:absolute;
  right:-30px;
  top:0;
  writing-mode:vertical-rl;
  font-size:8px;
  color:var(--muted)
}
.frame-corner {
  position:absolute;
  width:18px;
  height:18px;
  border-color:var(--white);
  opacity:.8;
  pointer-events:none
}
.corner-one {
  top:-7px;
  left:-7px;
  border-top:1px solid;
  border-left:1px solid
}
.corner-two {
  bottom:33px;
  right:-7px;
  border-bottom:1px solid;
  border-right:1px solid
}
.light-sculpture {
  position:absolute;
  width:310px;
  height:310px;
  left:37%;
  bottom:-16px;
  z-index:4;
  pointer-events:none;
  isolation:isolate
}
.light-sculpture canvas {
  width:100%;
  height:100%;
  position:absolute;
  inset:0
}
.sculpture-fallback {
  position:absolute;
  inset:36px;
  border-radius:50%;
  background:conic-gradient(from 15deg,#555a60,#e7e8e3 5%,#80868a 12%,#151922 23%,#8b9bde 31%,#eef2f4 34%,#3c424b 44%,#121312 49%,#a8adaf 57%,#fff 63%,#686c73 68%,#284cff 73%,#1c2029 83%,#d1d4d0 93%,#555a60);
  -webkit-mask:radial-gradient(transparent 54%,#000 55%,#000 66%,transparent 67%);
  mask:radial-gradient(transparent 54%,#000 55%,#000 66%,transparent 67%);
  transform:rotate(-28deg) scaleY(.63);
  filter:drop-shadow(0 8px 8px #0005)
}
.sculpture-fallback:after {
  content:'';
  position:absolute;
  inset:13px;
  border:1px solid #fff8;
  border-radius:50%
}
.has-canvas .sculpture-fallback {
  display:none
}
.sculpture-note {
  position:absolute;
  left:41%;
  bottom:6px;
  z-index:5;
  font-size:7px;
  line-height:1.8;
  letter-spacing:.03em;
  pointer-events:none
}
.sculpture-note>span:last-child {
  color:var(--muted)
}
.fine-cross {
  position:absolute;
  left:-22px;
  top:-6px;
  font-size:20px;
  color:var(--silver)
}
.hero-foot {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding:35px 0 28px;
  font-size:8px;
  color:var(--silver)
}
.hero-foot>span:first-child>span {
  margin-left:17px;
  font-size:16px
}
.hero-foot button {
  font:8px var(--mono);
  color:var(--silver);
  border:0;
  background:transparent;
  padding:8px
}
.hero-foot button span {
  margin-left:9px
}
.hero-foot button:hover {
  color:var(--white)
}
.section-light {
  color:var(--black);
  background:var(--white)
}
.work {
  padding:48px var(--gutter) 42px
}
.section-label {
  display:flex;
  justify-content:space-between;
  gap:20px;
  font-size:9px;
  padding-bottom:23px;
  border-bottom:1px solid var(--dark-line)
}
.work-heading {
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  padding:54px 0 46px;
  gap:25px
}
.work-heading h2 {
  font-size:clamp(60px,7vw,110px);
  font-weight:450;
  letter-spacing:-.065em;
  line-height:.97
}
.work-heading h2 em {
  font-size:1.15em;
  letter-spacing:-.045em
}
.work-heading>div {
  display:flex;
  gap:27px;
  align-items:flex-start;
  margin-bottom:8px
}
.work-heading p {
  font-size:12px;
  line-height:1.8;
  color:#61665e
}
.mini-aperture {
  color:var(--cobalt);
  font-size:47px;
  line-height:1
}
.gallery-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  border-top:1px solid var(--dark-line);
  padding:23px 0 42px
}
.filters {
  display:flex;
  gap:7px;
  flex-wrap:wrap
}
.filters button {
  font-size:11px;
  background:none;
  color:#585c55;
  border:1px solid #b5b8ae;
  border-radius:30px;
  padding:11px 21px;
  transition:color .25s,background .25s,border-color .25s;
  min-height:40px
}
.filters button sup {
  margin-left:10px;
  font-size:8px
}
.filters button.active {
  color:#fff;
  background:var(--cobalt);
  border-color:var(--cobalt)
}
.filters button:not(.active):hover {
  border-color:var(--black);
  color:var(--black)
}
.filter-count {
  font-size:8px;
  color:#666b62;
  white-space:nowrap
}
.gallery {
  display:grid;
  grid-template-columns:repeat(12,minmax(0,1fr));
  gap:0 28px;
  align-items:start;
  min-height:250px
}
.photo-card {
  background:none;
  border:0;
  padding:0;
  color:inherit;
  text-align:left;
  min-width:0;
  width:100%;
  display:block
}
.photo-events {
  grid-column:1/8
}
.photo-nature {
  grid-column:9/13;
  margin-top:160px
}
.photo-places {
  grid-column:2/7;
  margin-top:35px
}
.photo-wildlife {
  grid-column:8/13;
  margin-top:145px
}
.image-wrap {
  display:block;
  position:relative;
  overflow:hidden;
  background:#d9dacf
}
.image-wrap img {
  width:100%;
  height:auto;
  transition:transform 1.1s cubic-bezier(.2,.7,.2,1);
  transform:scale(1.001)
}
.image-wrap picture {
  width:100%
}
.image-number {
  position:absolute;
  top:15px;
  left:15px;
  color:#fff;
  text-shadow:0 1px 5px #000;
  font-size:9px
}
.expand {
  position:absolute;
  bottom:17px;
  right:17px;
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  background:var(--white);
  color:var(--black);
  border-radius:50%;
  font-size:23px;
  transition:background .3s,color .3s,transform .3s
}
.photo-card:hover .image-wrap img {
  transform:scale(1.035)
}
.photo-card:hover .expand,.photo-card:focus-visible .expand {
  background:var(--cobalt);
  color:white;
  transform:rotate(45deg)
}
.card-label {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  gap:10px;
  margin-top:17px
}
.card-label>span:first-child {
  min-width:0
}
.card-category {
  display:block;
  font-size:8px;
  color:#666c61;
  letter-spacing:.06em;
  margin-bottom:5px
}
.card-title {
  display:block;
  font-size:clamp(16px,1.6vw,24px);
  letter-spacing:-.04em;
  line-height:1.2
}
.card-note {
  font-size:7px;
  white-space:nowrap;
  color:#61665e
}
.photo-nature .card-note {
  display:none
}
.gallery-interlude {
  grid-column:1/-1;
  display:flex;
  align-items:center;
  gap:30px;
  margin:55px 0 5px;
  font-size:8px;
  color:#61665e
}
.interlude-line {
  height:1px;
  width:90px;
  background:#b5b8ae
}
.gallery.is-filtered .photo-card {
  grid-column:2/10;
  max-width:790px;
  margin:0 0 18px
}
.gallery.is-filtered .photo-card img {
  max-height:590px;
  object-fit:contain;
  background:#dedfd6
}
.gallery.is-filtered .gallery-interlude {
  display:none
}
.collection-end {
  display:flex;
  justify-content:space-between;
  align-items:center;
  border-top:1px solid var(--dark-line);
  margin-top:85px;
  padding-top:25px;
  font-size:8px;
  color:#61665e
}
.small-cross {
  font-size:22px;
  line-height:1;
  color:var(--black)
}
.no-script-note {
  font-size:13px;
  margin-bottom:30px
}
.about {
  padding:48px var(--gutter) 0;
  position:relative;
  overflow:hidden
}
.about .section-label {
  border-color:var(--line);
  color:var(--silver)
}
.about-grid {
  display:grid;
  grid-template-columns:1fr 1.2fr;
  gap:10%;
  padding:76px 0 90px;
  align-items:center
}
.optical-study {
  position:relative;
  aspect-ratio:1;
  max-width:440px;
  background:#181a20;
  overflow:hidden;
  display:grid;
  place-items:center;
  border:1px solid #333740
}
.optical-study:before {
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(125deg,transparent 40%,#7893ff1c 50%,transparent 60%);
  z-index:1
}
.optical-lines {
  width:88%;
  height:88%;
  background:repeating-radial-gradient(ellipse at center,transparent 0,transparent 5px,#bbc4e25c 5.5px,#bbc4e25c 6px,transparent 6.6px,transparent 11px);
  border-radius:50%;
  transform:rotate(-35deg) scaleX(.66);
  filter:drop-shadow(5px 0 0 #284cff70)
}
.optical-lines:after {
  content:'';
  position:absolute;
  inset:13%;
  border-radius:50%;
  background:var(--black);
  box-shadow:0 0 40px 10px #111211b3
}
.optical-center {
  position:absolute;
  z-index:2;
  font:14px var(--mono);
  letter-spacing:6px;
  color:#dedfda
}
.optical-coordinate {
  position:absolute;
  left:20px;
  bottom:18px;
  font-size:7px;
  color:var(--muted)
}
.optical-cross {
  position:absolute;
  right:18px;
  top:12px;
  font-size:23px;
  color:#8794ba
}
.about-kicker {
  font-size:8px;
  color:var(--muted);
  margin-bottom:22px
}
.about-content h2 {
  font-size:clamp(42px,4.7vw,76px);
  font-weight:450;
  line-height:1;
  letter-spacing:-.055em
}
.about-content h2 em {
  color:var(--silver);
  font-size:1.12em;
  line-height:1.04
}
.about-copy {
  max-width:370px;
  margin-top:35px
}
.about-copy p {
  font-size:12px;
  line-height:1.9;
  color:var(--silver);
  margin-bottom:16px
}
.text-link {
  display:inline-flex;
  gap:50px;
  align-items:center;
  padding:11px 0;
  border-bottom:1px solid #697aaf;
  font-size:12px;
  margin-top:4px
}
.text-link span {
  font-size:18px
}
.text-link:hover {
  color:#8da3ff
}
.artist-signoff {
  display:flex;
  justify-content:space-between;
  align-items:flex-end;
  border-top:1px solid var(--line);
  padding:30px 0 39px
}
.artist-signoff>span:first-child {
  font-size:clamp(30px,3.8vw,58px);
  letter-spacing:-.05em;
  line-height:1.05
}
.artist-signoff em {
  color:var(--silver);
  font-size:1.15em
}
.artist-signoff>.mono {
  color:var(--muted);
  text-align:right;
  font-size:8px
}
.contact {
  padding:48px var(--gutter) 80px
}
.contact-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:46px 0 60px;
  gap:30px
}
.contact-heading h2 {
  font-size:clamp(66px,9.5vw,155px);
  font-weight:450;
  line-height:.91;
  letter-spacing:-.07em
}
.contact-heading h2 em {
  font-size:1.14em;
  letter-spacing:-.04em
}
.contact-orbit {
  border:1px solid #b8bcb0;
  border-radius:50%;
  display:grid;
  place-items:center;
  width:170px;
  height:170px;
  flex-shrink:0;
  margin-right:4%;
  position:relative
}
.contact-orbit:before {
  content:'';
  position:absolute;
  inset:12px;
  background:var(--cobalt);
  border-radius:50%;
  transition:transform .35s
}
.contact-orbit>span {
  position:relative;
  z-index:1;
  color:white;
  font-size:80px;
  font-weight:400;
  line-height:1;
  transition:transform .35s
}
.contact-orbit:hover:before {
  transform:scale(1.08)
}
.contact-orbit:hover>span {
  transform:translate(5px,-5px)
}
.contact-grid {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:14%;
  border-top:1px solid var(--dark-line);
  padding-top:43px
}
.contact-details>p {
  font-size:23px;
  letter-spacing:-.035em;
  line-height:1.4;
  margin-bottom:46px
}
.contact-link {
  display:inline-flex;
  align-items:center;
  gap:60px;
  font-size:16px;
  letter-spacing:-.02em;
  border-bottom:1px solid var(--black);
  padding-bottom:11px
}
.contact-link span {
  font-size:24px
}
.contact-link:hover {
  color:var(--cobalt);
  border-color:var(--cobalt)
}
.phone {
  display:block;
  font-size:12px;
  margin-top:20px;
  color:#62685d;
  width:fit-content
}
.socials {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:23px;
  margin-top:65px;
  font-size:11px
}
.socials>.mono {
  font-size:8px;
  color:#61665e
}
.socials a {
  border-bottom:1px solid #b5b8ae;
  padding-bottom:4px
}
.socials a:hover {
  color:var(--cobalt)
}
.form-heading {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin-bottom:34px
}
.form-heading h3 {
  font-size:17px;
  font-weight:500;
  letter-spacing:-.03em
}
.form-heading .mono {
  font-size:7px;
  color:#6b7163
}
form label {
  display:block;
  font-size:11px;
  font-weight:500;
  margin-bottom:26px
}
.field-number {
  color:#61665e;
  margin-right:10px;
  font-size:8px
}
input {
  display:block;
  width:100%;
  border:0;
  border-bottom:1px solid #aeb3a5;
  border-radius:0;
  background:transparent;
  color:var(--black);
  padding:15px 0 12px;
  font-size:14px;
  transition:border-color .2s
}
input::placeholder {
  color:#61665e;
  opacity:1
}
input:focus {
  border-bottom-color:var(--cobalt);
  outline-offset:3px
}
.recaptcha-wrap {
  max-width:100%;
  min-height:78px
}
.form-status {
  font-size:10px;
  line-height:1.6;
  color:#5d6557;
  margin:14px 0 18px
}
.form-status a {
  text-decoration:underline
}
.form-status.is-error {
  color:#a82725
}
.submit {
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:56px;
  width:100%;
  background:var(--cobalt);
  color:#fff;
  border:0;
  padding:15px 20px;
  font-size:12px;
  transition:background .25s
}
.submit>span:last-child {
  font-size:23px;
  line-height:1;
  transition:transform .25s
}
.submit:hover {
  background:#1838dc
}
.submit:hover>span:last-child {
  transform:translate(3px,-3px)
}
.submit:active {
  transform:translateY(1px)
}
.site-footer {
  padding:35px var(--gutter) 25px;
  overflow:hidden
}
.footer-name {
  display:block;
  width:fit-content;
  font-size:clamp(70px,14.6vw,240px);
  letter-spacing:-.08em;
  line-height:1.05;
  font-weight:500;
  margin-left:-.008em
}
.footer-name>span {
  color:var(--cobalt)
}
.footer-bottom {
  display:flex;
  justify-content:space-between;
  gap:25px;
  border-top:1px solid var(--line);
  padding-top:25px;
  margin-top:27px;
  color:var(--muted);
  font-size:8px
}
.footer-bottom a {
  color:var(--white)
}
.footer-bottom a span {
  margin-left:20px
}
.footer-bottom a:hover {
  color:#a4b5ff
}
#viewer {
  position:fixed;
  inset:0;
  max-width:none;
  max-height:none;
  width:100%;
  height:100%;
  height:100dvh;
  padding:25px 3.5vw 22px;
  margin:0;
  border:0;
  color:var(--white);
  background:#111211;
  overflow:hidden
}
#viewer::backdrop {
  background:#111211
}
#viewer[open] {
  display:flex;
  flex-direction:column
}
.viewer-top {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:15px;
  padding-bottom:20px;
  border-bottom:1px solid var(--line);
  font-size:8px
}
.viewer-top button {
  background:none;
  border:0;
  color:var(--white);
  font:9px var(--mono);
  display:flex;
  align-items:center;
  gap:20px;
  padding:8px
}
.viewer-top button span {
  font:30px var(--sans);
  line-height:.6
}
#viewer-stage {
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex:1;
  gap:25px;
  min-height:0;
  padding:25px 0;
  touch-action:pan-y
}
#viewer-stage figure {
  display:flex;
  align-items:center;
  justify-content:center;
  flex-direction:column;
  min-width:0;
  min-height:0;
  align-self:stretch;
  flex:1
}
#view-image {
  max-width:100%;
  width:auto;
  height:auto;
  max-height:calc(100dvh - 215px);
  object-fit:contain;
  transition:opacity .2s
}
#viewer-stage.is-loading #view-image {
  opacity:.35
}
#view-caption {
  text-align:center;
  font-size:18px;
  letter-spacing:-.025em;
  padding-top:18px
}
.viewer-arrow {
  border:1px solid #697064;
  display:grid;
  place-items:center;
  width:48px;
  height:48px;
  background:none;
  color:var(--white);
  border-radius:50%;
  font-size:23px;
  flex-shrink:0
}
.viewer-arrow:hover {
  background:var(--white);
  color:var(--black)
}
.viewer-arrow:disabled {
  opacity:.25;
  cursor:default
}
.viewer-bottom {
  display:flex;
  justify-content:space-between;
  gap:15px;
  padding-top:18px;
  border-top:1px solid var(--line);
  font-size:9px;
  color:var(--silver)
}
.viewer-hint {
  font-size:8px;
  color:var(--muted)
}
.viewer-hint>span {
  padding:0 10px
}
.viewer-status {
  font:11px var(--mono);
  color:var(--silver);
  text-align:center;
  line-height:1.6
}
.viewer-status:not(:empty) {
  padding-top:15px
}
[data-reveal].reveal-ready {
  transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)
}
[data-reveal].reveal-ready:not(.is-visible) {
  opacity:0;
  transform:translateY(22px)
}
@keyframes entrance {
  from {
    opacity:0;
    transform:translateY(16px)
  }
  to {
    opacity:1;
    transform:translateY(0)
  }
}
.hero-name-row {
  animation:entrance .8s both
}
.hero-copy {
  animation:entrance .9s .1s both
}
.hero-photograph {
  animation:entrance 1.1s .15s both
}
@media(min-width:1700px) {
  :root {
    --gutter:max(5.2vw,calc((100vw - 1560px)/2))
  }
  .hero-composition {
    min-height:630px
  }
  .hero-photograph {
    right:7%
  }
  .hero-name-row h1 {
    font-size:180px
  }
  .hero-copy h2 {
    font-size:126px
  }
  .light-sculpture {
    bottom:35px
  }
  .sculpture-note {
    bottom:52px
  }
}
@media(max-width:1100px) {
  nav {
    gap:25px
  }
  .hero-composition {
    min-height:480px
  }
  .hero-copy h2 {
    font-size:8.2vw
  }
  .hero-copy>p {
    font-size:12px
  }
  .hero-photograph {
    width:48%;
    right:3%
  }
  .light-sculpture {
    width:250px;
    height:250px;
    left:35%;
    bottom:14px
  }
  .sculpture-note {
    left:38%;
    bottom:30px
  }
  .hero-name-row>p {
    font-size:8px
  }
  .card-note {
    display:none
  }
  .photo-nature {
    grid-column:9/13;
    margin-top:125px
  }
  .gallery {
    column-gap:22px
  }
  .work-heading>div {
    gap:18px
  }
  .about-grid {
    gap:7%
  }
  .contact-grid {
    gap:9%
  }
  .contact-orbit {
    width:140px;
    height:140px
  }
  .contact-orbit>span {
    font-size:65px
  }
  .form-heading .mono {
    font-size:6px
  }
}
@media(max-width:800px) {
  :root {
    --gutter:6vw
  }
  .site-header {
    height:83px
  }
  .brand {
    font-size:11px;
    gap:8px
  }
  .brand-symbol {
    width:29px;
    height:29px
  }
  .brand small {
    font-size:6px
  }
  nav {
    gap:20px;
    font-size:10px
  }
  nav sup {
    display:none
  }
  .nav-contact {
    gap:18px;
    padding:10px 13px
  }
  .hero-index {
    font-size:7px
  }
  .hero-index>span:last-child {
    font-size:6px
  }
  .hero-name-row {
    margin-top:24px;
    margin-bottom:29px
  }
  .hero-name-row h1 {
    font-size:12.7vw
  }
  .hero-name-row>p {
    font-size:6px;
    max-width:150px
  }
  .hero-composition {
    min-height:430px;
    padding-top:3px
  }
  .hero-copy h2 {
    font-size:9vw
  }
  .hero-copy>p {
    font-size:11px;
    margin-top:22px
  }
  .hero-photograph {
    top:25px;
    right:3%;
    width:48%
  }
  .hero-photograph figcaption {
    font-size:6px;
    gap:10px
  }
  .image-side-note {
    right:-22px;
    font-size:6px
  }
  .light-sculpture {
    width:215px;
    height:215px;
    left:34%;
    bottom:24px
  }
  .sculpture-note {
    left:35%;
    bottom:36px;
    font-size:6px
  }
  .pill-link {
    font-size:10px;
    padding:13px 17px;
    gap:22px;
    margin-top:23px
  }
  .hero-foot {
    padding:16px 0 25px;
    font-size:6px
  }
  .hero-foot button {
    font-size:6px
  }
  .work {
    padding-top:32px
  }
  .section-label {
    font-size:7px;
    padding-bottom:19px
  }
  .work-heading {
    padding:38px 0 33px
  }
  .work-heading h2 {
    font-size:8.4vw
  }
  .work-heading>div {
    display:block
  }
  .work-heading p {
    font-size:10px;
    line-height:1.8
  }
  .mini-aperture {
    display:block;
    font-size:35px;
    margin-bottom:15px
  }
  .filters button {
    padding:9px 15px;
    font-size:10px
  }
  .filter-count {
    display:none
  }
  .gallery-toolbar {
    padding-bottom:32px
  }
  .gallery {
    column-gap:18px
  }
  .photo-events {
    grid-column:1/9
  }
  .photo-nature {
    grid-column:9/13;
    margin-top:135px
  }
  .photo-places {
    grid-column:1/7
  }
  .photo-wildlife {
    grid-column:8/13;
    margin-top:115px
  }
  .card-label {
    margin-top:12px
  }
  .card-category {
    font-size:6px
  }
  .card-title {
    font-size:17px
  }
  .photo-nature .card-title {
    font-size:15px
  }
  .expand {
    width:35px;
    height:35px;
    right:12px;
    bottom:12px;
    font-size:20px
  }
  .gallery-interlude {
    margin:40px 0 0;
    font-size:6px;
    gap:20px
  }
  .collection-end {
    margin-top:55px;
    font-size:6px
  }
  .about {
    padding-top:33px
  }
  .about-grid {
    padding:48px 0 55px;
    gap:7%;
    grid-template-columns:.85fr 1.15fr
  }
  .about-content h2 {
    font-size:5.6vw
  }
  .about-kicker {
    font-size:6px;
    margin-bottom:18px
  }
  .about-copy {
    margin-top:25px
  }
  .about-copy p {
    font-size:11px
  }
  .text-link {
    font-size:11px;
    gap:25px
  }
  .optical-coordinate {
    font-size:5px;
    left:12px;
    bottom:12px
  }
  .optical-lines {
    background:repeating-radial-gradient(ellipse at center,transparent 0,transparent 3px,#bbc4e25c 3.5px,#bbc4e25c 4px,transparent 4.6px,transparent 8px)
  }
  .artist-signoff>.mono {
    font-size:6px
  }
  .contact {
    padding-top:33px;
    padding-bottom:55px
  }
  .contact-heading {
    padding:40px 0 45px
  }
  .contact-heading h2 {
    font-size:11vw
  }
  .contact-orbit {
    width:110px;
    height:110px;
    margin-right:1%
  }
  .contact-orbit:before {
    inset:8px
  }
  .contact-orbit>span {
    font-size:55px
  }
  .contact-grid {
    gap:8%
  }
  .contact-details>p {
    font-size:19px
  }
  .contact-link {
    font-size:13px;
    gap:30px
  }
  .socials {
    margin-top:45px;
    gap:15px;
    font-size:10px
  }
  .socials>.mono {
    width:100%
  }
  .form-heading {
    display:block;
    margin-bottom:27px
  }
  .form-heading .mono {
    display:block;
    margin-top:8px;
    font-size:6px
  }
  .form-heading h3 {
    font-size:16px
  }
  .form-status {
    font-size:9px
  }
  .footer-bottom {
    font-size:6px
  }
  .site-footer {
    padding-top:27px
  }
  .footer-name {
    font-size:15vw
  }
}
@media(max-width:600px) {
  :root {
    --gutter:6vw
  }
  html {
    scroll-padding-top:15px
  }
  .site-header {
    height:78px
  }
  nav {
    gap:17px;
    font-size:10px
  }
  .brand-symbol {
    width:28px;
    height:28px
  }
  .brand span {
    font-size:10px
  }
  .brand small {
    font-size:6px
  }
  nav>a:nth-child(2) {
    display:none
  }
  .nav-contact {
    padding:8px 12px;
    gap:14px
  }
  .hero {
    padding-top:19px
  }
  .hero-index>span:last-child {
    display:none
  }
  .hero-name-row {
    margin:25px 0 28px;
    display:block
  }
  .hero-name-row h1 {
    font-size:20.6vw;
    letter-spacing:-.08em;
    line-height:1.04;
    white-space:nowrap
  }
  .hero-name-row>p {
    display:none
  }
  .hero-composition {
    padding:0;
    min-height:0;
    display:flex;
    flex-direction:column
  }
  .hero-copy {
    width:100%;
    position:relative;
    z-index:3
  }
  .hero-copy h2 {
    font-size:16.6vw;
    line-height:.95;
    letter-spacing:-.065em
  }
  .hero-copy h2 br:nth-of-type(2) {
    display:none
  }
  .hero-copy h2 em {
    font-size:1.12em
  }
  .hero-copy>p {
    font-size:12px;
    margin-top:21px
  }
  .pill-link {
    margin-top:22px;
    font-size:11px;
    gap:45px;
    padding:14px 19px
  }
  .hero-photograph {
    position:relative;
    top:auto;
    right:auto;
    align-self:flex-end;
    width:79%;
    max-width:none;
    margin:38px 4% 0 0
  }
  .hero-photograph figcaption {
    font-size:6px;
    padding:13px 0
  }
  .image-side-note {
    right:-20px;
    font-size:6px
  }
  .corner-two {
    bottom:29px
  }
  .light-sculpture {
    width:180px;
    height:180px;
    left:-5%;
    bottom:1px
  }
  .sculpture-note {
    left:0;
    bottom:11px;
    font-size:5px
  }
  .fine-cross {
    display:none
  }
  .hero-foot {
    padding-top:22px;
    padding-bottom:24px;
    font-size:6px;
    align-items:center
  }
  .hero-foot>span:last-child {
    display:none
  }
  .hero-foot button {
    font-size:6px
  }
  .hero-foot>span:first-child>span {
    font-size:13px;
    margin-left:8px
  }
  .section-label {
    font-size:6px;
    letter-spacing:.025em;
    gap:10px;
    padding-bottom:17px
  }
  .section-label>span:last-child {
    text-align:right
  }
  .work {
    padding-top:28px;
    padding-bottom:28px
  }
  .work-heading {
    display:block;
    padding-top:32px;
    padding-bottom:30px
  }
  .work-heading h2 {
    font-size:15vw
  }
  .work-heading>div {
    margin-top:28px;
    display:flex;
    gap:23px;
    align-items:center
  }
  .work-heading p {
    font-size:11px
  }
  .mini-aperture {
    font-size:39px;
    margin:0
  }
  .gallery-toolbar {
    padding:19px 0 27px
  }
  .filters {
    gap:6px;
    flex-wrap:wrap
  }
  .filters button {
    font-size:10px;
    padding:9px 13px;
    min-height:38px
  }
  .filters button sup {
    font-size:6px;
    margin-left:5px
  }
  .gallery {
    grid-template-columns:repeat(12,minmax(0,1fr));
    column-gap:0;
    row-gap:35px
  }
  .photo-events {
    grid-column:1/-1
  }
  .photo-nature {
    grid-column:3/-1;
    margin:0
  }
  .photo-places {
    grid-column:1/-1;
    margin:0
  }
  .photo-wildlife {
    grid-column:2/12;
    margin:0
  }
  .gallery-interlude {
    margin:0;
    gap:15px;
    font-size:5px;
    row-gap:0
  }
  .interlude-line {
    width:35px
  }
  .card-label {
    margin-top:13px
  }
  .card-title {
    font-size:21px
  }
  .photo-nature .card-title {
    font-size:20px
  }
  .card-category {
    font-size:6px;
    margin-bottom:6px
  }
  .card-note {
    display:block;
    font-size:5px
  }
  .photo-wildlife .card-note {
    display:none
  }
  .image-number {
    font-size:8px;
    left:13px;
    top:12px
  }
  .expand {
    width:39px;
    height:39px
  }
  .gallery.is-filtered .photo-card {
    grid-column:1/-1;
    margin:0
  }
  .gallery.is-filtered .photo-card img {
    max-height:none
  }
  .collection-end {
    margin-top:41px;
    padding-top:20px;
    font-size:5px
  }
  .small-cross {
    font-size:18px
  }
  .about {
    padding-top:28px
  }
  .about-grid {
    display:flex;
    flex-direction:column;
    align-items:stretch;
    gap:37px;
    padding:36px 0 40px
  }
  .optical-study {
    width:66%;
    align-self:center;
    max-width:300px
  }
  .optical-coordinate {
    font-size:5px
  }
  .optical-center {
    font-size:11px;
    letter-spacing:4px
  }
  .about-content {
    padding:0 2%
  }
  .about-kicker {
    font-size:7px;
    margin-bottom:19px
  }
  .about-content h2 {
    font-size:12vw
  }
  .about-content h2 br:nth-of-type(2) {
    display:none
  }
  .about-content h2 em {
    font-size:1.1em
  }
  .about-copy {
    max-width:100%;
    margin-top:28px;
    padding-left:13%
  }
  .about-copy p {
    font-size:12px;
    line-height:1.9
  }
  .text-link {
    font-size:12px;
    gap:50px
  }
  .artist-signoff {
    padding:27px 0 30px;
    gap:20px
  }
  .artist-signoff>span:first-child {
    font-size:32px
  }
  .artist-signoff>.mono {
    font-size:5px
  }
  .contact {
    padding-top:28px;
    padding-bottom:43px
  }
  .contact-heading {
    padding:34px 0 36px;
    position:relative;
    gap:0
  }
  .contact-heading h2 {
    font-size:15.2vw
  }
  .contact-orbit {
    width:67px;
    height:67px;
    position:absolute;
    right:0;
    top:43px;
    margin:0
  }
  .contact-orbit:before {
    inset:5px
  }
  .contact-orbit>span {
    font-size:35px
  }
  .contact-grid {
    display:block;
    padding-top:29px
  }
  .contact-details>p {
    font-size:20px;
    margin-bottom:28px
  }
  .contact-link {
    font-size:15px;
    gap:65px
  }
  .phone {
    font-size:11px;
    margin-top:17px
  }
  .socials {
    margin-top:30px;
    gap:20px;
    font-size:11px
  }
  .socials>.mono {
    width:auto;
    font-size:6px
  }
  .contact form {
    margin-top:43px;
    border-top:1px solid var(--dark-line);
    padding-top:29px
  }
  .form-heading {
    display:flex;
    margin-bottom:29px;
    align-items:center
  }
  .form-heading h3 {
    font-size:18px
  }
  .form-heading .mono {
    font-size:6px;
    margin:0
  }
  .contact label {
    font-size:11px;
    margin-bottom:26px
  }
  input {
    font-size:15px;
    padding-top:16px
  }
  .form-status {
    font-size:10px
  }
  .submit {
    min-height:57px
  }
  .footer-name {
    font-size:20.2vw
  }
  .footer-bottom {
    margin-top:23px;
    padding-top:19px;
    font-size:5px;
    flex-wrap:wrap;
    gap:20px
  }
  .footer-bottom>span:nth-child(2) {
    display:none
  }
  .footer-bottom a {
    margin-left:auto
  }
  .site-footer {
    padding:26px var(--gutter) 23px
  }
  #viewer {
    padding:18px 5vw 20px
  }
  .viewer-top {
    font-size:6px;
    padding-bottom:16px
  }
  .viewer-top button {
    font-size:7px;
    gap:12px;
    padding:8px 0 8px 8px
  }
  #viewer-stage {
    position:relative;
    gap:0;
    padding:16px 0 65px
  }
  #viewer-stage figure {
    justify-content:center
  }
  #view-image {
    max-height:calc(100dvh - 270px);
    width:auto;
    max-width:100%
  }
  #view-caption {
    font-size:18px;
    padding-top:17px
  }
  .viewer-arrow {
    position:absolute;
    bottom:10px;
    width:44px;
    height:44px;
    font-size:22px
  }
  #previous {
    left:calc(50% - 57px)
  }
  #next {
    right:calc(50% - 57px)
  }
  .viewer-bottom {
    font-size:8px;
    padding-top:16px
  }
  .viewer-hint {
    display:none
  }
  .viewer-status {
    font-size:9px
  }
}
@media(max-width:350px) {
  .filters {
    gap:5px
  }
  .filters button {
    padding:9px 11px;
    font-size:9px
  }
  .recaptcha-wrap {
    transform:scale(.87);
    transform-origin:left top;
    margin-bottom:-10px
  }
  .hero-name-row h1 {
    font-size:20vw
  }
  .contact-orbit {
    width:55px;
    height:55px
  }
  .form-heading .mono {
    font-size:5px
  }
  nav {
    gap:12px
  }
  .card-note {
    display:none
  }
}
@media(hover:none) {
  .photo-card:hover .image-wrap img {
    transform:none
  }
  .photo-card:hover .expand {
    transform:none
  }
}
.viewer-status:not(.is-error) {
  position:absolute;
  width:1px;
  height:1px;
  margin:-1px;
  padding:0;
  overflow:hidden;
  clip:rect(0,0,0,0);
  white-space:nowrap
}
@media(max-width:350px) {
  .recaptcha-wrap {
    width:100%;
    max-width:100%;
    transform:none;
    min-height:68px;
    margin-bottom:0;
  }
  .recaptcha-wrap > .g-recaptcha {
    width:304px;
    transform:scale(.87);
    transform-origin:left top;
  }
}
.viewer-bottom #view-category {
  text-transform:uppercase
}
.hero-foot button [data-motion-label] {
  margin-left:0
}
.recaptcha-wrap {
  overflow:hidden
}
.submit:disabled {
  cursor:wait;
  opacity:.65
}
@media(min-width:1101px) {
  .site-header {
    height:84px
  }
  .hero-name-row {
    margin:18px 0 27px
  }
  .hero-name-row h1 {
    font-size:clamp(110px,9.5vw,160px)
  }
  .hero-composition {
    min-height:510px
  }
  .hero-copy h2 {
    font-size:clamp(76px,6.8vw,108px)
  }
  .hero-photograph {
    max-width:480px
  }
  .hero-copy>p {
    margin-top:24px
  }
  .light-sculpture {
    bottom:-4px
  }
  .sculpture-note {
    bottom:12px
  }
  .hero-foot {
    padding-top:26px;
    padding-bottom:24px
  }
}
@media(min-width:601px) and (max-width:800px) {
  .contact-grid {
    grid-template-columns:1fr;
    gap:45px
  }
  .contact-details {
    display:grid;
    grid-template-columns:1fr 1fr;
    column-gap:30px
  }
  .contact-details>p {
    grid-row:1/4
  }
  .contact-link {
    align-self:start;
    justify-self:start
  }
  .contact-details .phone {
    margin-top:10px
  }
  .contact-details .socials {
    grid-column:2;
    margin-top:25px
  }
  .contact form {
    max-width:100%;
    border-top:1px solid var(--dark-line);
    padding-top:30px
  }
  .form-heading {
    display:flex;
    align-items:center
  }
  .form-heading .mono {
    font-size:8px;
    margin-top:0
  }
}
@media(max-width:600px) {
  .hero-index,.hero-foot,.hero-foot button,.section-label,.card-category,.artist-signoff>.mono,.form-heading .mono,.footer-bottom {
    font-size:8px
  }
  .hero-photograph figcaption {
    font-size:7px
  }
  .card-note {
    display:none
  }
  .about-kicker {
    font-size:8px
  }
  .gallery-interlude {
    font-size:7px;
    gap:12px
  }
  .interlude-line {
    width:20px
  }
  .collection-end {
    font-size:7px
  }
  .socials>.mono {
    font-size:8px
  }
  .optical-coordinate {
    font-size:7px
  }
  .sculpture-note {
    font-size:6px
  }
  .contact-details .socials {
    gap:17px
  }
  .viewer-top {
    font-size:7px
  }
  .viewer-top button {
    font-size:8px
  }
}
@media(prefers-reduced-motion:reduce) {
  html {
    scroll-behavior:auto
  }
  *,*::before,*::after {
    animation:none!important;
    transition:none!important
  }
  [data-reveal].reveal-ready:not(.is-visible) {
    opacity:1;
    transform:none
  }
  .hero-copy,.hero-name-row,.hero-photograph {
    opacity:1;
    transform:none
  }
}
