@font-face {
font-family: "IBM Plex SC";
src: url("IBMPlexSans_SemiCondensed-Thin.ttf") format("truetype");
font-weight: 100;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IBM Plex SC";
src: url("IBMPlexSans_SemiCondensed-ThinItalic.ttf") format("truetype");
font-weight: 100;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: "IBM Plex SC";
src: url("IBMPlexSans_SemiCondensed-ExtraLight.ttf") format("truetype");
font-weight: 200;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IBM Plex SC";
src: url("IBMPlexSans_SemiCondensed-ExtraLightItalic.ttf") format("truetype");
font-weight: 200;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: "IBM Plex SC";
src: url("IBMPlexSans_SemiCondensed-Light.ttf") format("truetype");
font-weight: 300;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IBM Plex SC";
src: url("IBMPlexSans_SemiCondensed-LightItalic.ttf") format("truetype");
font-weight: 300;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: "IBM Plex SC";
src: url("IBMPlexSans_SemiCondensed-Regular.ttf") format("truetype");
font-weight: 400;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IBM Plex SC";
src: url("IBMPlexSans_SemiCondensed-Italic.ttf") format("truetype");
font-weight: 400;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: "IBM Plex SC";
src: url("IBMPlexSans_SemiCondensed-Medium.ttf") format("truetype");
font-weight: 500;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IBM Plex SC";
src: url("IBMPlexSans_SemiCondensed-MediumItalic.ttf") format("truetype");
font-weight: 500;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: "IBM Plex SC";
src: url("IBMPlexSans_SemiCondensed-SemiBold.ttf") format("truetype");
font-weight: 600;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IBM Plex SC";
src: url("IBMPlexSans_SemiCondensed-SemiBoldItalic.ttf") format("truetype");
font-weight: 600;
font-style: italic;
font-display: swap;
}
@font-face {
font-family: "IBM Plex SC";
src: url("IBMPlexSans_SemiCondensed-Bold.ttf") format("truetype");
font-weight: 700;
font-style: normal;
font-display: swap;
}
@font-face {
font-family: "IBM Plex SC";
src: url("IBMPlexSans_SemiCondensed-BoldItalic.ttf") format("truetype");
font-weight: 700;
font-style: italic;
font-display: swap;
}
:root {
--bg: #050505;
--fg: #f5f3ef;
--muted: #858585;
--line: rgba(255, 255, 255, .22);
--soft-line: rgba(255, 255, 255, .10);
--accent: #651A18;
--warm: #A8A390;
--brown: #433528;
--green: #404533;
--page-pad: clamp(24px, 4.6vw, 68px);
}
* {
box-sizing: border-box;
}
html {
scroll-behavior: smooth;
background: var(--bg);
}
body {
margin: 0;
background: var(--bg);
color: var(--fg);
font-family: "IBM Plex SC", Arial, sans-serif;
font-weight: 400;
letter-spacing: .01em;
}
body.is-locked .private-area {
display: none;
}
a {
color: inherit;
text-decoration: none;
}
button,
input {
font: inherit;
color: inherit;
}
.page {
position: relative;
min-height: 100svh;
padding: 32px var(--page-pad);
overflow: hidden;
border-bottom: 1px solid var(--soft-line);
}
.eyebrow,
.section-kicker {
margin: 0 0 10px;
font-size: 10px;
letter-spacing: .18em;
text-transform: uppercase;
color: rgba(255, 255, 255, .62);
}
h1,
h2,
h3,
p {
margin-top: 0;
}
h2 {
font-size: clamp(30px, 4vw, 54px);
font-weight: 400;
line-height: .95;
margin-bottom: 0;
}
h2 em {
font-style: italic;
color: var(--warm);
}
.page-hero {
min-height: 100svh;
display: flex;
align-items: flex-end;
padding-top: 96px;
}
.hero-video,
.hero-overlay {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}
.hero-video {
object-fit: cover;
z-index: 0;
}
.hero-overlay {
z-index: 1;
background: linear-gradient(180deg, rgba(0, 0, 0, .46), rgba(0, 0, 0, .14) 35%, rgba(0, 0, 0, .68)), linear-gradient(90deg, rgba(0, 0, 0, .25), transparent 60%);
}
.nav {
position: fixed;
z-index: 99999;
top: 0;
left: 0;
width: 100%;
padding: 8px var(--page-pad);
display: flex;
justify-content: space-between;
align-items: center;
border-bottom: 1px solid rgba(255, 255, 255, .15);
background: rgba(5, 5, 5, 0.92);
transition: transform 0.4s cubic-bezier(0.2, 0.7, 0.2, 1);
}
.nav.nav-hidden {
transform: translateY(-100%);
}
.nav-left-container {
display: flex;
align-items: center;
gap: 20px;
}
.brand-combined-left img{
height: 75px;
width: auto;
display: block;
object-fit: contain;
}
.brand-logo-right img {
height: 55px;
width: auto;
display: block;
object-fit: contain;
}
.nav-horizontal-line {
width: 32px;
height: 1px;
background-color: rgba(255, 255, 255, 0.45);
display: block;
}
.nav-title-text {
font-size: 11px;
font-weight: 600;
letter-spacing: 0.14em;
color: #ffffff;
text-transform: uppercase;
white-space: nowrap;
}
.nav-right-container {
display: flex;
align-items: center;
gap: 40px;
}
.nav-links {
display: flex;
align-items: center;
gap: 35px;
}
.nav-links a {
font-size: 11px;
letter-spacing: .15em;
opacity: .88;
transition: opacity .2s, transform .2s;
}
.nav-links a:hover {
opacity: 1;
transform: translateY(-1px);
}
.nav-mobile-trigger-group {
display: flex;
align-items: center;
gap: 20px;
}
.hamburger-menu {
display: none;
flex-direction: column;
justify-content: space-between;
width: 26px;
height: 18px;
background: transparent;
border: none;
cursor: pointer;
padding: 0;
z-index: 100001;
}
.hamburger-menu span {
width: 100%;
height: 2px;
background-color: var(--fg);
transition: all 0.3s ease;
}
.hamburger-menu.active span:nth-child(1) {
transform: translateY(8px) rotate(45deg);
}
.hamburger-menu.active span:nth-child(2) {
opacity: 0;
}
.hamburger-menu.active span:nth-child(3) {
transform: translateY(-8px) rotate(-45deg);
}
.login-box {
display: flex;
align-items: center;
gap: 5px;
}
.bran-logo {
height: 70px;
width: auto;
}
.brand {
display: inline-flex;
align-items: center;
gap: 9px;
font-size: 9px;
letter-spacing: .13em;
white-space: nowrap;
}
.brand img {
width: auto;
height: 80px;
}
.brand i {
width: 28px;
height: 1px;
background: rgba(255, 255, 255, .45);
}
.brand strong {
font-size: 10px;
font-weight: 600;
}
.hero-copy {
position: relative;
z-index: 2;
max-width: 760px;
padding-bottom: 10vh;
}
.hero-copy h1 {
font-size: clamp(58px, 9vw, 130px);
line-height: .88;
font-weight: 400;
letter-spacing: -.045em;
margin: 0 0 18px;
}
.hero-rule {
height: 1px;
background: var(--line);
margin-bottom: 13px;
}
.intro {
max-width: 540px;
font-size: 13px;
line-height: 1.38;
margin-bottom: 8px;
}
.intro.muted {
color: rgba(255, 255, 255, .42);
}
.discover {
position: absolute;
z-index: 3;
right: var(--page-pad);
bottom: 65px;
font-size: 9px;
letter-spacing: .2em;
color: rgba(255, 255, 255, .55);
}
.discover span {
font-size: 18px;
margin-left: 7px;
}
.works-section {
padding-top: 72px;
padding-bottom: 0;
}
.section-top {
display: flex;
align-items: flex-end;
justify-content: space-between;
gap: 30px;
padding-bottom: 18px;
border-bottom: 1px solid var(--line);
}
.filters {
display: flex;
flex-wrap: wrap;
justify-content: flex-end;
gap: 8px;
}
.filter,
.outline-button {
background: transparent;
border: 1px solid rgba(255, 255, 255, .38);
border-radius: 999px;
min-height: 30px;
padding: 0 22px;
cursor: pointer;
font-size: 9px;
letter-spacing: .13em;
transition: background .2s, color .2s, border .2s;
}
.filter:hover,
.filter.active {
background: var(--fg);
color: #050505;
border-color: var(--fg);
}
.works-grid {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 28px 20px;
padding-top: 18px;
}
.work-card {
cursor: pointer;
min-width: 0;
}
.work-media {
position: relative;
aspect-ratio: 16 / 9;
overflow: hidden;
background: #171717;
}
.work-media img {
width: 100%;
height: 100%;
display: block;
object-fit: cover;
object-position: center 25%;
transition: transform .55s cubic-bezier(.2, .7, .2, 1), filter .35s;
}
@media (hover: hover) {
.work-card:hover img {
transform: scale(1.025);
filter: brightness(.78);
}
}
.play-mark {
position: absolute;
right: 12px;
bottom: 12px;
width: 34px;
height: 34px;
border: 1px solid rgba(255, 255, 255, .55);
border-radius: 50%;
display: grid;
place-items: center;
font-size: 13px;
opacity: 0;
transform: translateY(4px);
transition: .25s;
}
.work-card:hover .play-mark {
opacity: 1;
transform: translateY(0);
}
.work-meta {
display: flex;
justify-content: space-between;
gap: 15px;
align-items: baseline;
padding-top: 7px;
}
.work-meta h3 {
font-size: 18px;
font-weight: 400;
margin: 0;
}
.work-meta span {
font-size: 8px;
text-transform: uppercase;
letter-spacing: .11em;
color: rgba(255, 255, 255, .65);
text-align: right;
}
.show-more-wrap {
display: flex;
justify-content: center;
padding: 34px 0 48px;
}
.outline-button {
min-width: 108px;
padding-inline: 26px;
font-size: 8px;
}
.outline-button:hover {
background: #fff;
color: #000;
}
.mini-footer {
border-top: 1px solid var(--line);
padding: 30px 0 55px;
}
.mini-footer h3 {
font-size: 12px;
margin-bottom: 8px;
}
.mini-footer p {
max-width: 560px;
font-size: 10px;
line-height: 1.45;
color: rgba(255, 255, 255, .72);
}
.email-link {
display: block;
border-bottom: 1px solid var(--line);
padding: 10px 0 12px;
font-size: 17px;
margin-top: 22px;
}
.footer-line {
display: grid;
grid-template-columns: 1fr 1fr 1.3fr 1fr;
gap: 20px;
padding-top: 14px;
font-size: 8px;
letter-spacing: .08em;
color: rgba(255, 255, 255, .54);
}
.footer-line .social-icons {
display: flex;
align-items: center;
gap: 14px;
flex-wrap: wrap;
}
.footer-line .social-icons a,
.footer-line > span > a {
display: inline-block;
font-size: 8px;
letter-spacing: .1em;
text-decoration: none;
border-bottom: 1px solid transparent;
opacity: .8;
transition: opacity .2s, border-color .2s;
}
.footer-line .social-icons a:hover,
.footer-line > span > a:hover {
opacity: 1;
border-color: currentColor;
}
.detail-page {
padding-top: 32px;
}
.detail-header,
.detail-title-row {
display: flex;
justify-content: space-between;
align-items: center;
gap: 20px;
}
.detail-header {
color: rgba(255, 255, 255, .55);
font-size: 9px;
letter-spacing: .15em;
margin-bottom: 16px;
}
.back-button {
border: 0;
background: transparent;
padding: 0;
cursor: pointer;
color: inherit;
letter-spacing: inherit;
}
.detail-title-row {
margin-bottom: 10px;
}
.detail-title-row h2 {
font-size: clamp(34px, 5vw, 58px);
}
.detail-title-row>span {
color: rgba(255, 255, 255, .55);
font-size: 9px;
letter-spacing: .13em;
}
.detail-hero,
.photo-feature {
width: 100%;
background: #111;
overflow: hidden;
}
.detail-hero video,
.photo-feature img {
display: block;
width: 100%;
max-height: 68svh;
object-fit: cover;
}
.detail-description {
max-width: 980px;
font-size: 10px;
line-height: 1.5;
color: rgba(255, 255, 255, .65);
text-transform: uppercase;
letter-spacing: .04em;
margin: 13px 0 16px;
}
.credits h3 {
font-size: 18px;
font-weight: 400;
border-bottom: 1px solid var(--line);
padding-bottom: 8px;
margin-bottom: 0;
}
.credits-grid {
display: grid;
grid-template-columns: repeat(3, 1fr);
gap: 24px;
padding-top: 10px;
}
.credits-grid small {
display: block;
color: rgba(255, 255, 255, .4);
font-size: 8px;
margin-bottom: 5px;
}
.credits-grid strong {
display: block;
font-size: 9px;
font-weight: 500;
letter-spacing: .09em;
}
.behind-grid {
display: grid;
grid-template-columns: 2fr 1fr 1fr;
grid-auto-rows: 120px;
gap: 5px;
margin-top: 10px;
}
.behind-grid img {
width: 100%;
height: 100%;
object-fit: cover;
}
.behind-grid img:first-child {
grid-row: span 2;
}
.private-area {
background: #050505;
}
.private-page {
min-height: 100svh;
}
.private-topbar {
position: absolute;
top: 18px;
left: var(--page-pad);
right: var(--page-pad);
display: flex;
justify-content: space-between;
font-size: 9px;
letter-spacing: .13em;
color: rgba(255, 255, 255, .55);
z-index: 3;
}
.logout-button {
border: 0;
background: transparent;
cursor: pointer;
color: inherit;
letter-spacing: inherit;
}
.welcome-page {
display: grid;
place-items: center;
background: linear-gradient(rgba(0, 0, 0, .55), rgba(0, 0, 0, .55)), url("thumbail-a.png") center/cover;
}
.welcome-content {
text-align: center;
}
.envelope {
width: min(390px, 75vw);
margin: 18px auto;
}
.envelope-paper {
position: relative;
z-index: 2;
width: 55%;
margin: 0 auto -35px;
min-height: 150px;
background: #f4f1e9;
color: #6b201d;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
transform: translateY(5px);
}
.envelope-paper small {
font-size: 7px;
color: #444;
}
.envelope-paper strong {
font-family: "IBM Plex SC", Arial, sans-serif;
font-size: 42px;
font-weight: 400;
line-height: .9;
}
.envelope-paper span {
margin-top: 10px;
font-size: 12px;
}
.envelope-paper em {
font-size: 7px;
margin-top: 5px;
color: #555;
}
.envelope-body {
height: 180px;
display: grid;
place-items: center;
background: #651A18;
color: #fff;
font-family: "IBM Plex SC", Arial, sans-serif;
font-size: 36px;
clip-path: polygon(0 0, 50% 38%, 100% 0, 100% 100%, 0 100%);
padding-top: 50px;
}
.tap-note {
font-size: 10px;
font-family: "IBM Plex SC", Arial, sans-serif;
color: rgba(255, 255, 255, .7);
}
.collage-page {
background: #eee9df;
color: #332d26;
}
.collage-grid {
width: min(100%, 1150px);
height: calc(100svh - 90px);
margin: 50px auto 0;
display: grid;
grid-template-columns: 1.4fr .8fr;
grid-template-rows: 1fr .8fr;
gap: 9px;
}
.collage-card {
overflow: hidden;
background: #c8c0b2;
}
.collage-card img {
width: 100%;
height: 100%;
object-fit: cover;
display: block;
}
.collage-card.large {
grid-row: span 2;
}
.collage-card.wide,
.collage-card.strip {
grid-column: 2;
}
.rain-page {
padding: 0;
display: grid;
place-items: center;
}
.rain-bg {
position: absolute;
inset: 0;
width: 100%;
height: 100%;
object-fit: cover;
filter: brightness(.6) saturate(.8);
}
.rain-overlay {
position: absolute;
inset: 0;
background: rgba(15, 8, 7, .22);
}
.rain-title {
position: relative;
z-index: 2;
display: flex;
align-items: center;
justify-content: center;
font-family: "IBM Plex SC", Arial, sans-serif;
color: #c00000;
font-size: clamp(70px, 14vw, 210px);
line-height: .7;
letter-spacing: -.07em;
}
.rain-title img {
width: .8em;
height: .8em;
object-fit: contain;
margin: 0 -.03em;
filter: brightness(0) invert(1);
}
.rain-title em {
position: absolute;
top: 100%;
left: 50%;
transform: translateX(-50%);
font-size: clamp(20px, 3vw, 45px);
white-space: nowrap;
letter-spacing: -.02em;
}
.final-collage-page {
background: #e9e9e6;
color: #333;
}
.final-masonry {
width: min(100%, 1200px);
margin: 70px auto 0;
columns: 3 260px;
column-gap: 12px;
}
.final-masonry img {
width: 100%;
display: block;
margin: 0 0 12px;
break-inside: avoid;
object-fit: cover;
}
.work-card.is-hidden {
display: none !important;
}
@media (max-width: 990px) {
.hamburger-menu {
display: flex;
}
.nav-links {
position: fixed;
top: 0;
right: -100%;
width: 75%;
height: 100vh;
height: 100dvh;
background-color: rgba(5, 5, 5, 0.98);
border-left: 1px solid var(--soft-line);
flex-direction: column;
justify-content: center;
gap: 40px !important;
transition: right 0.4s cubic-bezier(0.2, 0.7, 0.2, 1);
z-index: 100000;
}
.nav-links.menu-open {
right: 0;
}
.nav-links a {
font-size: 15px !important;
letter-spacing: .2em;
}
.brand-combined-left img{
height: 47px;
}
.brand-logo-right img {
height: 37px;
}
}
@media (max-width: 800px) {
:root {
--page-pad: 18px;
}
.nav {
align-items: flex-start;
}
.brand span,
.brand i,
.brand strong {
display: none;
}
.nav-links {
gap: 14px;
}
.nav-links a {
font-size: 8px;
}
.nav-left-container {
gap: 10px;
}
.nav-horizontal-line {
width: 16px;
}
.nav-title-text {
font-size: 7px;
letter-spacing: .08em;
}
.hero-copy {
padding-bottom: 9vh;
}
.hero-copy h1 {
font-size: clamp(52px, 15vw, 90px);
}
.intro {
font-size: 11px;
}
.section-top {
align-items: flex-start;
flex-direction: column;
}
.filters {
justify-content: flex-start;
}
.filter {
padding: 0 11px;
min-height: 26px;
font-size: 7px;
}
.works-grid {
gap: 22px 8px;
}
.work-meta {
display: block;
}
.work-meta h3 {
font-size: 13px;
margin-bottom: 3px;
}
.work-meta span {
font-size: 6px;
}
.footer-line {
grid-template-columns: 1fr 1fr;
}
.detail-title-row {
align-items: flex-start;
flex-direction: column;
gap: 5px;
}
.detail-title-row>span {
font-size: 7px;
}
.detail-hero video,
.photo-feature img {
max-height: 54svh;
}
.credits-grid {
grid-template-columns: 1fr 1fr;
}
.behind-grid {
grid-template-columns: 1.5fr 1fr;
}
.collage-grid {
height: 70svh;
}
.rain-title {
font-size: clamp(46px, 13vw, 100px);
}
.rain-title em {
font-size: 15px;
}
}
@media (max-width: 430px) {
.works-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.work-media {
aspect-ratio: 16 / 10;
}
.work-meta h3 {
font-size: 11px;
}
.work-meta span {
font-size: 5.5px;
}
.play-mark {
width: 25px;
height: 25px;
font-size: 10px;
}
}
