/* Stuart Farrell Humphrey Photography — site styles */
@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,300;9..144,400;9..144,500&family=Archivo:wght@400;500;600&family=Archivo+Narrow:wght@400;500&display=swap');

:root{
  --night:#0a0e12;--slate:#12171d;--ice:#e9edf0;--frost:#aeb9c2;--steel:#5f6d78;
  --aurora:#6ea892;--ember:#c0392b;--line:rgba(233,237,240,0.14);--hair:rgba(233,237,240,0.28);
  --display:'Fraunces',Georgia,serif;--sans:'Archivo',system-ui,sans-serif;--narrow:'Archivo Narrow','Archivo',sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--night);color:var(--ice);font-family:var(--sans);line-height:1.6;-webkit-font-smoothing:antialiased;}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;}}

.frame{position:relative;overflow:hidden;background:var(--slate);}
.frame img{width:100%;height:100%;object-fit:cover;}
.frame .coord{position:absolute;top:10px;left:12px;font-family:var(--narrow);font-size:10px;letter-spacing:.18em;color:var(--ice);opacity:.75;z-index:2;text-shadow:0 1px 8px rgba(0,0,0,.7);}
.lat{font-family:var(--narrow);font-size:11px;letter-spacing:.34em;text-transform:uppercase;color:var(--aurora);}

header.nav{position:sticky;top:0;z-index:60;background:rgba(10,14,18,.72);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom:1px solid var(--line);}
.nav-in{max-width:1300px;margin:0 auto;padding:16px 34px;display:flex;align-items:center;justify-content:space-between;gap:20px;}
.mark{display:flex;flex-direction:column;gap:5px;}
.mark img{height:30px;width:auto;}
.mark i{font-style:normal;font-family:var(--narrow);font-size:9px;letter-spacing:.42em;text-transform:uppercase;color:var(--frost);}
.nav-links{display:flex;gap:32px;font-family:var(--narrow);font-size:12px;letter-spacing:.22em;text-transform:uppercase;}
.nav-links a{color:var(--frost);position:relative;padding-bottom:3px;transition:color .25s;}
.nav-links a::after{content:"";position:absolute;left:0;bottom:0;width:0;height:1px;background:var(--ice);transition:width .3s;}
.nav-links a:hover,.nav-links a[aria-current]{color:var(--ice);}
.nav-links a:hover::after,.nav-links a[aria-current]::after{width:100%;}
.nav-shop{font-family:var(--narrow);font-size:11px;letter-spacing:.24em;text-transform:uppercase;border:1px solid var(--hair);padding:9px 16px;color:var(--ice);transition:all .25s;white-space:nowrap;}
.nav-shop:hover{background:var(--ice);color:var(--night);}

.wrap{max-width:1300px;margin:0 auto;padding:0 34px;}
.narrow{max-width:760px;margin:0 auto;padding:0 34px;}
.cta{display:inline-flex;align-items:center;gap:12px;font-family:var(--narrow);font-size:12px;letter-spacing:.24em;text-transform:uppercase;padding:15px 30px;background:var(--ice);color:var(--night);font-weight:500;transition:transform .3s;cursor:pointer;border:none;}
.cta:hover{transform:translateY(-2px);}
.cta.ghost{background:transparent;border:1px solid var(--hair);color:var(--ice);}
.fade{opacity:0;transform:translateY(20px);animation:rise 1s cubic-bezier(.2,.7,.2,1) forwards;}
.d1{animation-delay:.05s;}.d2{animation-delay:.2s;}.d3{animation-delay:.35s;}.d4{animation-delay:.5s;}
@keyframes rise{to{opacity:1;transform:none;}}

/* ---------- home ---------- */
.hero{position:relative;}
.hero-frame{position:relative;height:92vh;min-height:560px;overflow:hidden;}
.hero-frame .frame{position:absolute;inset:0;}
.hero-veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,14,18,.25) 0%,rgba(10,14,18,.1) 40%,rgba(10,14,18,.88) 100%);}
.hero-horizon{position:absolute;left:0;right:0;top:52%;height:1px;background:var(--hair);}
.hero-lat{position:absolute;top:26px;right:34px;z-index:3;}
.hero-copy{position:absolute;left:0;right:0;bottom:0;padding:0 34px 64px;z-index:3;}
.hero-copy .in{max-width:1300px;margin:0 auto;}
.kicker{font-family:var(--narrow);font-size:12px;letter-spacing:.3em;text-transform:uppercase;color:var(--frost);margin-bottom:18px;}
.hero h1{font-family:var(--display);font-weight:300;font-size:clamp(48px,7.4vw,104px);line-height:.96;letter-spacing:-.01em;}
.hero h1 em{font-style:italic;}
.hero-sub{display:flex;justify-content:space-between;align-items:flex-end;gap:36px;margin-top:26px;flex-wrap:wrap;}
.hero-sub p{max-width:440px;color:var(--frost);font-size:17px;}

.band{padding:110px 0;}
.band-head{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:44px;flex-wrap:wrap;}
.band-head h2{font-family:var(--display);font-weight:300;font-size:clamp(30px,4.4vw,54px);line-height:1.02;}
.band-head h2 em{font-style:italic;}
.band-head .meta{font-family:var(--narrow);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--steel);text-align:right;line-height:2;}
.feature{position:relative;height:78vh;min-height:460px;overflow:hidden;}
.feature .frame{position:absolute;inset:0;}
.feature-horizon{position:absolute;left:0;right:0;top:55%;height:1px;background:var(--hair);}
.feature-cap{position:absolute;left:34px;bottom:26px;z-index:2;text-shadow:0 1px 10px rgba(0,0,0,.7);}
.feature-cap .t{display:block;font-family:var(--display);font-style:italic;font-size:clamp(20px,2.6vw,30px);}
.feature-cap .p{font-family:var(--narrow);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--frost);}

.plates{display:grid;grid-template-columns:repeat(12,1fr);gap:6px;}
.plate{position:relative;overflow:hidden;}
.plate .frame{width:100%;height:100%;transition:transform 1.1s cubic-bezier(.2,.7,.2,1);}
.plate:hover .frame{transform:scale(1.05);}
.plate .tag{position:absolute;left:14px;bottom:12px;font-family:var(--narrow);font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--ice);text-shadow:0 1px 8px rgba(0,0,0,.75);z-index:2;}
.plate .num{position:absolute;right:14px;top:12px;font-family:var(--narrow);font-size:10px;letter-spacing:.2em;color:var(--ice);opacity:.75;z-index:2;text-shadow:0 1px 8px rgba(0,0,0,.7);}
.plate .price{position:absolute;right:14px;bottom:12px;font-family:var(--narrow);font-size:11px;letter-spacing:.16em;color:var(--aurora);z-index:2;text-shadow:0 1px 8px rgba(0,0,0,.7);}
.p-a{grid-column:span 7;height:520px;}
.p-b{grid-column:span 5;height:520px;}
.p-c,.p-d,.p-e{grid-column:span 4;height:340px;}
.s7{grid-column:span 7;}.s5{grid-column:span 5;}.s6{grid-column:span 6;}.s4{grid-column:span 4;}.s8{grid-column:span 8;}
.h-tall{height:600px;}.h-mid{height:440px;}.h-low{height:340px;}

.statement{padding:60px 0 120px;text-align:center;}
.statement blockquote{font-family:var(--display);font-weight:300;font-style:italic;font-size:clamp(28px,4.6vw,52px);line-height:1.15;max-width:900px;margin:26px auto 0;}
.statement .by{margin-top:36px;}

.drop{background:var(--slate);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:100px 0;}
.drop-in{display:grid;grid-template-columns:1.1fr 1fr;gap:60px;align-items:center;}
.drop h2{font-family:var(--display);font-weight:300;font-size:clamp(32px,4.6vw,58px);margin:18px 0 14px;}
.drop h2 em{font-style:italic;}
.drop p{color:var(--frost);max-width:480px;}
.drop .frame{height:460px;}
.live{display:inline-flex;align-items:center;gap:9px;font-family:var(--narrow);font-size:11px;letter-spacing:.28em;text-transform:uppercase;color:var(--ember);}
.live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--ember);animation:pulse 1.6s infinite;}
@keyframes pulse{0%,100%{opacity:1;}50%{opacity:.25;}}
.count{display:flex;gap:30px;margin:30px 0 34px;flex-wrap:wrap;}
.count .n{font-family:var(--display);font-weight:300;font-size:52px;line-height:1;font-variant-numeric:tabular-nums;}
.count .u{display:block;font-family:var(--narrow);font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--steel);margin-top:8px;}

.cols{display:grid;grid-template-columns:repeat(2,1fr);gap:6px;}
.col{position:relative;height:480px;overflow:hidden;display:block;}
.col .frame{position:absolute;inset:0;transition:transform 1.1s cubic-bezier(.2,.7,.2,1);}
.col:hover .frame{transform:scale(1.05);}
.col .veil{position:absolute;inset:0;z-index:2;background:linear-gradient(180deg,rgba(10,14,18,.05),rgba(10,14,18,.85));padding:28px;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;}
.col h3{font-family:var(--display);font-weight:300;font-size:30px;}
.col .go{font-family:var(--narrow);font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--frost);}

/* ---------- portfolio ---------- */
.page-head{padding:90px 0 60px;border-bottom:1px solid var(--line);}
.page-head .lat{margin-bottom:20px;display:block;}
.page-head h1{font-family:var(--display);font-weight:300;font-size:clamp(44px,7vw,92px);line-height:.98;letter-spacing:-.01em;}
.page-head h1 em{font-style:italic;}
.page-head .intro{display:flex;justify-content:space-between;gap:40px;margin-top:30px;flex-wrap:wrap;}
.page-head .intro p{max-width:480px;color:var(--frost);font-size:17px;}
.page-head .intro .filters{display:flex;gap:20px;align-items:flex-end;font-family:var(--narrow);font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--steel);flex-wrap:wrap;}
.page-head .intro .filters a{color:var(--frost);padding-bottom:4px;border-bottom:1px solid transparent;}
.page-head .intro .filters a[aria-current]{color:var(--ice);border-color:var(--hair);}
.archive{padding:70px 0 40px;}
.rowline{display:flex;align-items:center;gap:20px;padding:30px 0;color:var(--steel);font-family:var(--narrow);font-size:11px;letter-spacing:.24em;text-transform:uppercase;}
.rowline::before,.rowline::after{content:"";height:1px;background:var(--line);flex:1;}
.closer{padding:100px 0 130px;text-align:center;}
.closer h2{font-family:var(--display);font-weight:300;font-style:italic;font-size:clamp(26px,4vw,46px);margin-bottom:28px;}

/* ---------- collection ---------- */
.col-hero{position:relative;height:82vh;min-height:540px;overflow:hidden;}
.col-hero .frame{position:absolute;inset:0;}
.col-hero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,14,18,.2),rgba(10,14,18,.85));}
.col-hero .horizon{position:absolute;left:0;right:0;top:55%;height:1px;background:var(--hair);}
.col-hero .in{position:absolute;left:0;right:0;bottom:0;padding:0 34px 60px;z-index:3;}
.col-hero .in .w{max-width:1300px;margin:0 auto;}
.crumb{font-family:var(--narrow);font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--frost);margin-bottom:20px;}
.crumb a{color:var(--frost);}
.col-hero h1{font-family:var(--display);font-weight:300;font-size:clamp(46px,8vw,110px);line-height:.95;letter-spacing:-.01em;}
.col-hero h1 em{font-style:italic;}
.col-hero .sub{display:flex;gap:40px;margin-top:26px;flex-wrap:wrap;align-items:flex-end;}
.col-hero .sub p{max-width:460px;color:var(--frost);font-size:17px;}
.col-hero .sub .facts{font-family:var(--narrow);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--steel);line-height:2;}
.story{padding:110px 0;}
.row{display:grid;grid-template-columns:1fr 1fr;gap:50px;align-items:center;margin-bottom:100px;}
.row:last-child{margin-bottom:0;}
.row.flip .txt{order:2;}
.row .frame{height:560px;}
.row .txt .lat{margin-bottom:16px;display:block;}
.row .txt h3{font-family:var(--display);font-weight:300;font-size:clamp(26px,3.2vw,40px);line-height:1.05;margin-bottom:16px;}
.row .txt h3 em{font-style:italic;}
.row .txt p{color:var(--frost);margin-bottom:14px;max-width:440px;}
.row .txt .price{font-family:var(--narrow);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--aurora);margin-top:10px;display:block;}
.bleed{position:relative;height:70vh;min-height:440px;overflow:hidden;}
.bleed .frame{position:absolute;inset:0;}
.bleed .cap{position:absolute;left:34px;bottom:26px;font-family:var(--display);font-style:italic;font-size:clamp(22px,3vw,36px);z-index:2;text-shadow:0 1px 10px rgba(0,0,0,.7);}
.bleed .horizon{position:absolute;left:0;right:0;top:50%;height:1px;background:var(--hair);}
.buy{background:var(--slate);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:100px 0;text-align:center;}
.buy h2{font-family:var(--display);font-weight:300;font-size:clamp(30px,4.4vw,54px);margin-bottom:16px;}
.buy h2 em{font-style:italic;}
.buy p{color:var(--frost);max-width:480px;margin:0 auto 30px;}

/* ---------- about ---------- */
.about-hero{display:grid;grid-template-columns:1fr 1fr;gap:0;min-height:80vh;}
.about-hero .portrait{position:relative;overflow:hidden;}
.about-hero .portrait .frame{position:absolute;inset:0;}
.about-hero .portrait .horizon{position:absolute;left:0;right:0;top:60%;height:1px;background:var(--hair);z-index:2;}
.about-hero .copy{display:flex;flex-direction:column;justify-content:center;padding:80px 60px;}
.about-hero .copy .lat{margin-bottom:22px;}
.about-hero .copy h1{font-family:var(--display);font-weight:300;font-size:clamp(40px,5.5vw,78px);line-height:.98;letter-spacing:-.01em;margin-bottom:24px;}
.about-hero .copy h1 em{font-style:italic;}
.about-hero .copy p{color:var(--frost);font-size:18px;max-width:460px;}
.prose{padding:120px 0;}
.prose .lead{font-family:var(--display);font-weight:300;font-size:clamp(24px,3.4vw,38px);line-height:1.3;letter-spacing:-.01em;margin-bottom:40px;}
.prose .lead em{font-style:italic;}
.prose p{color:var(--frost);font-size:18px;margin-bottom:24px;}
.prose p b{color:var(--ice);font-weight:500;}
.marks{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;padding-bottom:120px;}
.marks .m{background:var(--slate);border:1px solid var(--line);padding:38px 30px;}
.marks .m .lat{margin-bottom:16px;display:block;}
.marks .m h3{font-family:var(--display);font-weight:300;font-size:26px;margin-bottom:10px;}
.marks .m p{color:var(--frost);font-size:15px;}
.signoff{text-align:center;padding:0 0 130px;}
.signoff .sig{font-family:var(--display);font-style:italic;font-size:34px;margin-bottom:30px;}

/* ---------- prints ---------- */
.drop-hero{position:relative;overflow:hidden;border-bottom:1px solid var(--line);}
.drop-hero .frame{position:absolute;inset:0;}
.drop-hero .veil{position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,14,18,.35),rgba(10,14,18,.9));}
.drop-hero .in{position:relative;padding:110px 0 90px;text-align:center;z-index:2;}
.drop-hero h1{font-family:var(--display);font-weight:300;font-size:clamp(44px,7vw,96px);line-height:.98;letter-spacing:-.01em;}
.drop-hero h1 em{font-style:italic;}
.drop-hero .lede{color:var(--frost);max-width:520px;margin:22px auto 30px;font-size:18px;}
.drop-hero .count{justify-content:center;margin:34px 0 38px;}
.options{padding:120px 0 100px;}
.options-head{text-align:center;margin-bottom:60px;}
.options-head .lat{margin-bottom:16px;display:block;}
.options-head h2{font-family:var(--display);font-weight:300;font-size:clamp(30px,4.4vw,56px);}
.options-head h2 em{font-style:italic;}
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;}
.tier{background:var(--slate);border:1px solid var(--line);padding:44px 34px;display:flex;flex-direction:column;position:relative;transition:border-color .3s,transform .3s;}
.tier:hover{border-color:var(--hair);transform:translateY(-4px);}
.tier .idx{font-family:var(--narrow);font-size:11px;letter-spacing:.24em;color:var(--steel);margin-bottom:22px;}
.tier h3{font-family:var(--display);font-weight:300;font-size:30px;margin-bottom:14px;}
.tier p{color:var(--frost);font-size:15px;margin-bottom:22px;flex:1;}
.tier .from{font-family:var(--narrow);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--aurora);margin-bottom:24px;}
.tier .from b{font-family:var(--display);font-size:34px;letter-spacing:0;color:var(--ice);display:block;margin-top:6px;font-weight:300;}
.tier.feature-tier{background:linear-gradient(180deg,rgba(110,168,146,.08),var(--slate));border-color:rgba(110,168,146,.3);height:auto;min-height:0;}
.how{background:var(--slate);border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:110px 0;}
.how-head{margin-bottom:54px;}
.how-head .lat{margin-bottom:16px;display:block;}
.how-head h2{font-family:var(--display);font-weight:300;font-size:clamp(28px,4vw,48px);}
.how-head h2 em{font-style:italic;}
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:30px;}
.step{border-top:1px solid var(--hair);padding-top:20px;}
.step .no{font-family:var(--narrow);font-size:12px;letter-spacing:.2em;color:var(--aurora);margin-bottom:14px;}
.step h4{font-family:var(--display);font-weight:400;font-size:21px;margin-bottom:10px;}
.step p{color:var(--frost);font-size:14px;}
.capture{padding:120px 0;text-align:center;}
.capture .lat{margin-bottom:16px;display:block;}
.capture h2{font-family:var(--display);font-weight:300;font-size:clamp(30px,4.4vw,54px);margin-bottom:16px;}
.capture h2 em{font-style:italic;}
.capture p{color:var(--frost);max-width:500px;margin:0 auto 32px;font-size:17px;}
.form-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;max-width:520px;margin:0 auto 16px;}
.form-row input{flex:1 1 260px;max-width:320px;padding:16px 18px;background:transparent;border:1px solid var(--hair);color:var(--ice);font-size:15px;font-family:var(--sans);}
.form-row input::placeholder{color:var(--steel);}
.form-row button{padding:16px 30px;background:var(--aurora);color:var(--night);border:none;font-family:var(--narrow);font-size:12px;letter-spacing:.18em;text-transform:uppercase;font-weight:600;cursor:pointer;}
.fine{font-family:var(--narrow);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--steel);}
.form-note{display:none;margin-top:14px;color:var(--aurora);font-family:var(--narrow);font-size:12px;letter-spacing:.14em;text-transform:uppercase;}

/* ---------- footer ---------- */
footer.site{padding:70px 0 44px;border-top:1px solid var(--line);}
.foot-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:44px;margin-bottom:50px;}
.foot-grid h4{font-family:var(--narrow);font-size:11px;letter-spacing:.26em;text-transform:uppercase;color:var(--steel);margin-bottom:16px;}
.foot-grid a{display:block;color:var(--frost);font-size:15px;margin-bottom:10px;transition:color .25s;}
.foot-grid a:hover{color:var(--ice);}
.foot-brand p{color:var(--frost);font-size:15px;max-width:340px;margin-top:16px;}
.foot-base{display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-family:var(--narrow);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--steel);border-top:1px solid var(--line);padding-top:26px;}
.foot-links{display:flex;gap:26px;flex-wrap:wrap;}
.foot-links a{color:var(--frost);}

/* ---------- responsive ---------- */
@media(max-width:960px){
  .nav-links{display:none;}
  .mark img{height:24px;}
  .hero-sub{flex-direction:column;align-items:flex-start;}
  .drop-in{grid-template-columns:1fr;}
  .cols{grid-template-columns:1fr;}
  .col{height:380px;}
  .p-a,.p-b,.p-c,.p-d,.p-e,.s7,.s5,.s6,.s4,.s8{grid-column:span 12;}
  .p-a,.p-b{height:420px;}
  .h-tall,.h-mid,.h-low{height:360px;}
  .row{grid-template-columns:1fr;gap:28px;margin-bottom:64px;}
  .row.flip .txt{order:0;}
  .row .frame{height:380px;}
  .about-hero{grid-template-columns:1fr;}
  .about-hero .portrait{height:60vh;}
  .about-hero .copy{padding:60px 34px;}
  .marks{grid-template-columns:1fr;}
  .tiers{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr 1fr;gap:24px;}
  .foot-grid{grid-template-columns:1fr;gap:30px;}
}
@media(max-width:560px){
  .steps{grid-template-columns:1fr;}
  .count{gap:18px;}
  .count .n{font-size:40px;}
  .wrap,.narrow{padding:0 22px;}
  .hero-copy{padding:0 22px 48px;}
}
