body.tnyc-library-page { background: #fbf8f0; }
.tnyc-library-site { background: #fbf8f0; color: #191815; }
.tnyc-library-site .screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); border: 0; }

.tnyc-library-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 330px;
  gap: clamp(65px, 9vw, 145px);
  align-items: end;
  padding: 105px max(5vw, calc((100vw - 1320px) / 2));
  background:
    radial-gradient(circle at 11% 5%, rgba(215,173,54,.16), transparent 27%),
    #f2eadc;
}
.tnyc-library-hero h1 { max-width: 930px; margin: 0; font: 400 clamp(72px, 8.2vw, 126px)/.88 Georgia, serif; letter-spacing: -.065em; }
.tnyc-library-lede { max-width: 820px; margin: 35px 0 0; color: #554f47; font: 21px/1.68 Georgia, serif; }
.tnyc-library-hero aside { min-height: 310px; display: flex; flex-direction: column; justify-content: flex-end; padding: 34px; background: #191815; color: #f8f2e5; box-shadow: 15px 17px 0 rgba(96,73,38,.1); }
.tnyc-library-symbols .tnyc-library-hero aside { background: #253f3a; }
.tnyc-library-hero aside strong { color: #d7ad36; font: 400 92px/.8 Georgia, serif; letter-spacing: -.08em; }
.tnyc-library-hero aside span { margin-top: 20px; font: 700 9px/1.4 Arial, sans-serif; letter-spacing: .15em; text-transform: uppercase; }
.tnyc-library-hero aside p { margin: auto 0 0; padding-top: 38px; border-top: 1px solid rgba(255,255,255,.22); color: rgba(255,255,255,.56); font: 10px/1.65 Arial, sans-serif; letter-spacing: .07em; text-transform: uppercase; }

.tnyc-library-controls { padding: 55px max(5vw, calc((100vw - 1320px) / 2)); border-top: 1px solid rgba(25,24,21,.14); border-bottom: 1px solid rgba(25,24,21,.14); background: #e9e1d2; }
.tnyc-library-controls form { display: grid; grid-template-columns: minmax(0, 1fr) auto; max-width: 950px; }
.tnyc-library-controls input { min-width: 0; height: 66px; padding: 0 23px; border: 1px solid rgba(25,24,21,.28); border-radius: 0; background: #fbf8f0; color: #191815; font: 16px Arial, sans-serif; }
.tnyc-library-controls button { min-width: 210px; border: 0; border-radius: 0; background: #191815; color: #fff; font: 700 10px Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.tnyc-library-controls nav { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 28px; }
.tnyc-library-controls nav a { display: inline-flex; gap: 13px; align-items: center; padding: 10px 13px; border: 1px solid rgba(25,24,21,.22); background: rgba(255,255,255,.25); font: 700 9px Arial, sans-serif; letter-spacing: .08em; text-transform: uppercase; }
.tnyc-library-controls nav a span { min-width: 20px; height: 20px; display: grid; place-items: center; border-radius: 50%; background: #191815; color: #fff; font-size: 8px; }
.tnyc-library-controls nav a.is-empty { opacity: .42; pointer-events: none; }

.tnyc-library-sections { padding: 20px 0 95px; }
.tnyc-library-section { scroll-margin-top: 25px; padding: 95px max(5vw, calc((100vw - 1320px) / 2)) 10px; }
.tnyc-library-section > header { display: grid; grid-template-columns: minmax(0, 1fr) minmax(280px, .55fr); gap: 55px; align-items: end; margin-bottom: 42px; }
.tnyc-library-section > header > div > p { margin: 0 0 13px; color: #9e2f28; font: 700 9px/1.4 Arial, sans-serif; letter-spacing: .14em; text-transform: uppercase; }
.tnyc-library-section > header h2 { margin: 0; font: 400 clamp(48px, 5vw, 72px)/.98 Georgia, serif; letter-spacing: -.045em; }
.tnyc-library-section > header > p { max-width: 500px; margin: 0; color: #686057; font: 16px/1.65 Georgia, serif; }

.tnyc-library-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.tnyc-library-card { min-width: 0; display: flex; flex-direction: column; border: 1px solid rgba(25,24,21,.2); background: #f7f0e4; }
.tnyc-library-card-art { height: 300px; display: grid; place-items: center; overflow: hidden; border-bottom: 1px solid rgba(25,24,21,.16); background: #ddd3bf; }
.tnyc-library-card-art img { display: block; width: 78% !important; height: 78% !important; max-width: 78% !important; max-height: 78% !important; object-fit: contain !important; object-position: center center !important; margin: auto !important; transition: transform .25s ease; }
.tnyc-library-card:hover .tnyc-library-card-art img { transform: scale(1.035); }
.tnyc-library-card-gold .tnyc-library-card-art { background: #e2c65f; }
.tnyc-library-card-blue .tnyc-library-card-art { background: #b8ced0; }
.tnyc-library-card-fire .tnyc-library-card-art { background: #c25b40; }
.tnyc-library-card-rose .tnyc-library-card-art { background: #d9b3a2; }
.tnyc-library-card-sage .tnyc-library-card-art { background: #bac4aa; }
.tnyc-library-card-ochre .tnyc-library-card-art { background: #d8b66f; }
.tnyc-library-card-red .tnyc-library-card-art { background: #c98f7d; }
.tnyc-library-cards .tnyc-library-card-art { height: 350px; padding: 22px; box-sizing: border-box; }
.tnyc-library-cards .tnyc-library-card-art img { width: 100% !important; height: 100% !important; max-width: 100% !important; max-height: 100% !important; object-fit: contain !important; object-position: center !important; filter: drop-shadow(0 12px 12px rgba(25,24,21,.14)); }
.tnyc-library-card-copy { min-height: 285px; display: flex; flex-direction: column; padding: 27px; }
.tnyc-library-card-copy > p { margin: 0 0 15px; color: #766e63; font: 700 9px/1.4 Arial, sans-serif; letter-spacing: .12em; text-transform: uppercase; }
.tnyc-library-card-copy h3 { margin: 0; font: 400 31px/1.07 Georgia, serif; letter-spacing: -.03em; }
.tnyc-library-card-copy > span { display: block; margin-top: 18px; color: #625b52; font: 15px/1.58 Georgia, serif; }
.tnyc-library-read { display: flex; justify-content: space-between; gap: 15px; margin-top: auto; padding-top: 27px; color: #191815; font: 700 9px/1.4 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }
.tnyc-library-read b { font-size: 16px; font-weight: 400; }

.tnyc-library-signoff { display: grid; grid-template-columns: 125px minmax(0, 1fr) auto; gap: 45px; align-items: center; padding: 75px max(5vw, calc((100vw - 1320px) / 2)); background: #253f3a; color: #fff8ec; }
.tnyc-library-cards .tnyc-library-signoff { background: #191815; }
.tnyc-library-signoff img { width: 125px; height: 125px; object-fit: contain; }
.tnyc-library-signoff p { margin: 0 0 12px; color: #dfbd50; font: 700 9px/1.4 Arial, sans-serif; letter-spacing: .15em; text-transform: uppercase; }
.tnyc-library-signoff h2 { max-width: 710px; margin: 0; font: 400 clamp(36px, 4vw, 55px)/1.03 Georgia, serif; letter-spacing: -.04em; }
.tnyc-library-signoff > a { min-width: 240px; display: flex; justify-content: space-between; gap: 20px; padding: 18px 0; border-top: 1px solid rgba(255,255,255,.45); border-bottom: 1px solid rgba(255,255,255,.45); font: 700 9px/1.4 Arial, sans-serif; letter-spacing: .1em; text-transform: uppercase; }

@media (max-width: 980px) {
  .tnyc-library-hero { grid-template-columns: 1fr; }
  .tnyc-library-hero aside { width: min(100%, 430px); min-height: 255px; }
  .tnyc-library-section > header { grid-template-columns: 1fr; gap: 20px; }
  .tnyc-library-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .tnyc-library-signoff { grid-template-columns: 100px minmax(0, 1fr); }
  .tnyc-library-signoff img { width: 100px; height: 100px; }
  .tnyc-library-signoff > a { grid-column: 2; width: min(100%, 350px); }
}

@media (max-width: 680px) {
  .tnyc-library-hero { gap: 50px; padding: 72px 22px; }
  .tnyc-library-hero h1 { font-size: 62px; }
  .tnyc-library-lede { font-size: 18px; }
  .tnyc-library-hero aside { min-height: 225px; padding: 27px; }
  .tnyc-library-hero aside strong { font-size: 75px; }
  .tnyc-library-controls { padding: 42px 22px; }
  .tnyc-library-controls form { grid-template-columns: 1fr; }
  .tnyc-library-controls button { height: 55px; }
  .tnyc-library-section { padding: 75px 22px 5px; }
  .tnyc-library-grid { grid-template-columns: 1fr; }
  .tnyc-library-card-art,
  .tnyc-library-cards .tnyc-library-card-art { height: 310px; }
  .tnyc-library-card-copy { min-height: 0; }
  .tnyc-library-read { margin-top: 30px; }
  .tnyc-library-signoff { grid-template-columns: 72px 1fr; gap: 22px; padding: 58px 22px; }
  .tnyc-library-signoff img { width: 72px; height: 72px; }
  .tnyc-library-signoff > a { grid-column: 1 / -1; }
}

/* Full-card hub treatment: contain the complete artwork inside a padded frame. */
.tnyc-library-site.tnyc-library-cards .tnyc-library-card .tnyc-library-card-art {
  position: relative !important;
  display: block !important;
  padding: 0 !important;
  overflow: hidden !important;
}
.tnyc-library-site.tnyc-library-cards .tnyc-library-card .tnyc-library-card-art > img {
  position: absolute !important;
  inset: 22px !important;
  display: block !important;
  width: calc(100% - 44px) !important;
  height: calc(100% - 44px) !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  object-fit: contain !important;
  object-position: 50% 50% !important;
  transform: none !important;
}
