
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');
:root{--bg:#0b0b0b;--surface:#121212;--surface-2:#161616;--text:#f4f4f4;--muted:#b8b8b8;--line:rgba(255,255,255,.12);--shadow:0 18px 48px rgba(0,0,0,.32);--radius:26px;--max:1160px}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:'Inter',system-ui,sans-serif;background:var(--bg);color:var(--text);line-height:1.55}
img,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}
.site-header{position:sticky;top:0;z-index:50;background:rgba(11,11,11,.86);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.nav{max-width:var(--max);margin:0 auto;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:18px}
.brand img{width:min(360px,52vw);height:auto}.nav-links{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.nav-links a{font-size:.92rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.nav-links a.active,.nav-links a:hover{color:var(--text)}
.container{max-width:var(--max);margin:0 auto;padding:34px 22px 76px}
.hero{min-height:calc(100vh - 69px);display:grid;place-items:center}.hero-inner{text-align:center;padding:36px 0 10px}
.hero-logo{width:min(920px,94vw);margin:0 auto 28px}.kicker{color:var(--muted);text-transform:uppercase;letter-spacing:.22em;font-size:.76rem;margin-bottom:16px}
.hero h1,.page-title{margin:0;font-size:clamp(2.1rem,7vw,5.2rem);line-height:.98;letter-spacing:-.03em;font-weight:800}.hero p,.lead{max-width:760px;margin:16px auto 0;color:var(--muted);font-size:1.03rem}
.work-grid{display:grid;grid-template-columns:1fr;gap:22px}.work-card{position:relative;overflow:hidden;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface-2);box-shadow:var(--shadow)}
.work-card img{width:100%;aspect-ratio:16/9;object-fit:cover}.work-card::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.74),rgba(0,0,0,.16),transparent 56%);pointer-events:none}
.work-card-copy{position:absolute;left:0;right:0;bottom:0;z-index:1;padding:18px 20px 20px}.work-card-title{font-size:1.18rem;font-weight:700}.work-card-sub{color:#d8d8d8;font-size:.94rem}
.back-link{display:inline-flex;gap:8px;align-items:center;color:var(--muted);margin-bottom:16px}
.project-shell{display:grid;gap:30px}.project-hero{display:grid;grid-template-columns:minmax(0,1.14fr) minmax(290px,.86fr);gap:28px;align-items:start}
.project-cover,.project-meta,.panel,.sidebar,.contact-card,.form-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.project-cover{overflow:hidden}.project-meta{padding:26px}.project-meta h1{margin:8px 0 14px;font-size:clamp(2rem,5vw,4rem);line-height:1}.project-meta p{margin:0 0 14px;color:#e7e7e7}
.meta-label{display:block;font-size:.78rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);margin-bottom:6px}
.media-sections{display:grid;gap:34px}.media-block{display:grid;grid-template-columns:minmax(320px,1.02fr) minmax(420px,.98fr);gap:28px;align-items:start;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}
.media-copy h2{margin:0 0 10px;font-size:clamp(1.35rem,3vw,1.95rem)}.media-copy p{margin:0;color:#dfdfdf}.media-side{width:100%}
.media-frame{overflow:hidden;border-radius:20px;border:1px solid var(--line);background:#111}




.media-grid-2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.media-grid-2 .media-frame img{width:100%;height:100%;object-fit:cover}
.cards-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}.cards-grid .media-frame{aspect-ratio:5/7}.cards-grid .media-frame img{width:100%;height:100%;object-fit:cover}
.about-layout,.contact-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(280px,.9fr);gap:28px;align-items:start}
.panel.copy-card,.sidebar,.contact-card,.form-card{padding:24px}.copy-card p{margin:0 0 18px;color:#e7e7e7}.sidebar h3{margin:0 0 16px;font-size:.92rem;letter-spacing:.16em;text-transform:uppercase}
.contact-list,form{display:grid;gap:16px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:14px}
input,textarea{width:100%;border:1px solid var(--line);border-radius:14px;background:#0d0d0d;color:var(--text);padding:14px 16px;font:inherit}textarea{min-height:160px;resize:vertical}
button{border:0;border-radius:999px;background:var(--text);color:#111;font-weight:700;padding:14px 18px;cursor:pointer}.form-note,.form-status{color:var(--muted);font-size:.95rem}
.site-footer{border-top:1px solid var(--line)}.footer-inner{max-width:var(--max);margin:0 auto;padding:20px 22px 30px;display:flex;justify-content:space-between;gap:12px 20px;flex-wrap:wrap;color:var(--muted)}
@media (max-width:980px){.hero{min-height:auto}.project-hero,.about-layout,.contact-grid,.media-block{grid-template-columns:1fr}}
@media (max-width:740px){.nav{flex-direction:column;align-items:flex-start;padding:14px 16px}.brand img{width:min(300px,74vw)}.nav-links{gap:14px}.container{padding:24px 16px 56px}.hero-inner{padding:24px 0 6px}.hero-logo{width:min(96vw,760px);margin-bottom:18px}.hero h1,.page-title{font-size:clamp(1.85rem,9vw,3rem)}.media-pair-example,.media-grid-2,.cards-grid,.two-col{grid-template-columns:1fr !important}.media-pair-example .media-frame.square,.media-pair-example .media-frame.wide,.cards-grid .media-frame{aspect-ratio:auto}.media-pair-example .media-frame.square img,.media-pair-example .media-frame.square video,.media-pair-example .media-frame.wide img,.media-pair-example .media-frame.wide video,.media-grid-2 .media-frame img,.cards-grid .media-frame img{width:100%;height:auto;object-fit:contain}.project-meta,.panel.copy-card,.sidebar,.contact-card,.form-card,.media-block{padding:18px}input,textarea,button{font-size:16px}}


/* Layout fix pass */
.project-hero{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);
  gap:28px;
  align-items:stretch;
}
.project-cover.header-cover{
  display:flex;
  align-items:stretch;
}
.project-cover.header-cover img{
  width:100%;
  aspect-ratio:1/1 !important;
  object-fit:contain !important;
  background:#111;
}
.project-meta{
  height:100%;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
}

.media-block{
  display:grid;
  grid-template-columns:minmax(320px,1.02fr) minmax(420px,.98fr);
  gap:28px;
  align-items:start;
}

.media-pair-example{
  display:grid;
  grid-template-columns:auto auto;
  gap:14px;
  align-items:start;
  justify-content:start;
}

.media-pair-example .media-frame{
  background:#111;
  overflow:hidden;
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
}

/* Use the height of the wider asset as the reference. Do not crop. */
.media-pair-example .media-frame.wide{
  width:min(100%, 640px);
}
.media-pair-example .media-frame.wide img,
.media-pair-example .media-frame.wide video{
  width:100%;
  height:auto !important;
  object-fit:contain !important;
  aspect-ratio:auto !important;
}

.media-pair-example .media-frame.square{
  height:100%;
}
.media-pair-example .media-frame.square img,
.media-pair-example .media-frame.square video{
  height:100%;
  width:auto !important;
  max-width:none;
  object-fit:contain !important;
  aspect-ratio:auto !important;
}

/* Generic frames elsewhere should not crop source artwork */
.media-frame img,
.media-frame video{
  object-fit:contain;
  background:#111;
}

/* Two-up galleries should also preserve full artwork */
.media-grid-2{
  align-items:start;
}
.media-grid-2 .media-frame{
  display:flex;
  align-items:flex-start;
  justify-content:flex-start;
}
.media-grid-2 .media-frame img{
  width:100%;
  height:auto !important;
  object-fit:contain !important;
}

/* Trading cards can fill their own frames */
.cards-grid .media-frame img{
  width:100%;
  height:100%;
  object-fit:contain !important;
  background:#111;
}

@media (max-width:980px){
  .project-hero,
  .media-block{
    grid-template-columns:1fr;
  }
  .project-meta{
    height:auto;
  }
}

@media (max-width:740px){
  .media-pair-example,
  .media-grid-2,
  .cards-grid{
    grid-template-columns:1fr !important;
  }
  .media-pair-example .media-frame.wide,
  .media-pair-example .media-frame.square{
    width:100% !important;
    height:auto !important;
  }
  .media-pair-example .media-frame.square img,
  .media-pair-example .media-frame.square video,
  .media-pair-example .media-frame.wide img,
  .media-pair-example .media-frame.wide video,
  .media-grid-2 .media-frame img,
  .cards-grid .media-frame img{
    width:100% !important;
    height:auto !important;
    max-width:100%;
    object-fit:contain !important;
  }
}


/* Final Wix-match override */
.media-pair-example{
  display:flex !important;
  gap:14px !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
}

.media-pair-example .media-frame{
  flex:0 0 auto !important;
  width:auto !important;
  height:340px !important;
  max-width:none !important;
  aspect-ratio:auto !important;
  display:flex !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  overflow:visible !important;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
}

.media-pair-example .media-frame img,
.media-pair-example .media-frame video{
  height:340px !important;
  width:auto !important;
  max-width:none !important;
  object-fit:contain !important;
  aspect-ratio:auto !important;
  background:transparent !important;
  border-radius:0 !important;
}

/* keep the text/media block balanced */
.media-block{
  align-items:start !important;
}

/* headers remain square and uncropped */
.project-cover.header-cover{
  display:flex !important;
  align-items:stretch !important;
}
.project-cover.header-cover img{
  width:100% !important;
  height:auto !important;
  aspect-ratio:1 / 1 !important;
  object-fit:contain !important;
  background:#111 !important;
}
.project-meta{
  min-height:0 !important;
  height:100% !important;
}

/* other non-paired artwork should never crop */
.media-grid-2 .media-frame,
.cards-grid .media-frame,
.project-cover,
.media-frame{
  overflow:hidden;
}
.media-grid-2 .media-frame img,
.cards-grid .media-frame img,
.media-frame > img:not(.ignore-fit),
.media-frame > video:not(.ignore-fit){
  object-fit:contain !important;
}

/* mobile: always stack full width */
@media (max-width:740px){
  .media-pair-example{
    display:grid !important;
    grid-template-columns:1fr !important;
  }
  .media-pair-example .media-frame{
    width:100% !important;
    height:auto !important;
  }
  .media-pair-example .media-frame img,
  .media-pair-example .media-frame video{
    width:100% !important;
    height:auto !important;
    max-width:100% !important;
  }
}


/* Direct flex-based pair fix */
.media-pair-example{
  display:flex !important;
  gap:14px !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  overflow:hidden !important;
}

.media-pair-example .media-frame{
  display:flex !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  width:auto !important;
  height:auto !important;
  max-width:none !important;
  aspect-ratio:auto !important;
  overflow:hidden !important;
  background:transparent !important;
  border:0 !important;
  border-radius:20px !important;
  box-shadow:none !important;
  flex:0 0 auto !important;
}

.media-pair-example img,
.media-pair-example video{
  height:100% !important;
  width:auto !important;
  max-width:none !important;
  object-fit:contain !important;
  aspect-ratio:auto !important;
  display:block !important;
  background:transparent !important;
}

/* let the first item establish height naturally */
.media-pair-example .media-frame:first-child img,
.media-pair-example .media-frame:first-child video{
  width:auto !important;
  height:auto !important;
  max-height:360px !important;
}

/* make the second item match the rendered height of the row */
.media-pair-example .media-frame:last-child{
  height:100% !important;
}
.media-pair-example .media-frame:last-child img,
.media-pair-example .media-frame:last-child video{
  max-height:360px !important;
  width:auto !important;
  height:auto !important;
}

/* do not crop headers */
.project-cover.header-cover img{
  aspect-ratio:1/1 !important;
  object-fit:contain !important;
  width:100% !important;
  height:auto !important;
  background:#111 !important;
}

@media (max-width:740px){
  .media-pair-example{
    display:flex !important;
    flex-direction:column !important;
    align-items:stretch !important;
  }
  .media-pair-example .media-frame{
    width:100% !important;
    height:auto !important;
  }
  .media-pair-example img,
  .media-pair-example video,
  .media-pair-example .media-frame:first-child img,
  .media-pair-example .media-frame:first-child video,
  .media-pair-example .media-frame:last-child img,
  .media-pair-example .media-frame:last-child video{
    width:100% !important;
    height:auto !important;
    max-width:100% !important;
    max-height:none !important;
    object-fit:contain !important;
  }
}


/* Overflow and rigid text-column fix */
.media-block{
  grid-template-columns:minmax(260px, .95fr) minmax(0, 1.05fr) !important;
  align-items:start !important;
}

.media-copy,
.media-side{
  min-width:0 !important;
}

.media-copy{
  max-width:100% !important;
}

.media-pair-example{
  display:flex !important;
  gap:14px !important;
  align-items:flex-start !important;
  justify-content:flex-start !important;
  min-width:0 !important;
  max-width:100% !important;
  overflow:hidden !important;
}

.media-pair-example .media-frame{
  flex:0 1 auto !important;
  min-width:0 !important;
  max-width:100% !important;
  overflow:hidden !important;
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}

/* Use one shared responsive height so assets stay together and fit the column */
.media-pair-example img,
.media-pair-example video{
  display:block !important;
  width:auto !important;
  height:clamp(180px, 20vw, 340px) !important;
  max-width:100% !important;
  object-fit:contain !important;
  aspect-ratio:auto !important;
  background:transparent !important;
}

/* Headers remain square, uncropped, with matching overview height */
.project-hero{
  align-items:stretch !important;
}
.project-cover.header-cover{
  display:flex !important;
  align-items:stretch !important;
}
.project-cover.header-cover img{
  width:100% !important;
  height:auto !important;
  aspect-ratio:1 / 1 !important;
  object-fit:contain !important;
  background:#111 !important;
}
.project-meta{
  height:100% !important;
  min-height:0 !important;
}

/* Mobile remains stacked and full-width */
@media (max-width:980px){
  .media-block{
    grid-template-columns:1fr !important;
  }
}

@media (max-width:740px){
  .media-pair-example{
    flex-direction:column !important;
    overflow:visible !important;
  }
  .media-pair-example .media-frame{
    width:100% !important;
    max-width:100% !important;
  }
  .media-pair-example img,
  .media-pair-example video{
    width:100% !important;
    height:auto !important;
    max-width:100% !important;
  }
}
