/* Final editorial polish. Load after brand.css, integration.css and motion.css. */
.mineral-site {
  --polish-gap: clamp(1.125rem, 2vw, 1.75rem);
  --polish-card-pad: clamp(1.5rem, 2.5vw, 2.25rem);
  --polish-ease: cubic-bezier(.22, .6, .22, 1);
}

/* Keep a common rhythm without changing the dense tables in release bodies. */
.mineral-site :is(.project-grid, .investor-grid, .resource-grid) { gap: var(--polish-gap); }
.mineral-site .resource-card { padding: var(--polish-card-pad); }
.mineral-site :is(.contact-form, .subscribe-form) { gap: var(--polish-gap); }
.mineral-site .form-row { gap: var(--polish-gap); }
.mineral-site .news-controls { gap: var(--polish-gap); }
.mineral-site .news-row { padding-block: clamp(1.5rem, 2.4vw, 2rem); }
.mineral-site .article-tools { gap: var(--polish-gap); }
.mineral-site .media-grid a img { transition: filter .28s var(--polish-ease); }

/* News headings are uppercase throughout the archive, release, and field feed. */
.mineral-site .news-info :is(h2, h3),
.mineral-site .article-title,
.mineral-site .ftf-post-title,
.mineral-site .ftf-post-title a { text-transform: uppercase; }
.mineral-site .news-info :is(h2, h3),
.mineral-site .ftf-post-title { letter-spacing:-.02em; line-height:1.14; text-wrap:balance; }
.mineral-site .article-title { letter-spacing:-.04em; line-height:1.04; }
.mineral-site .release-body :is(p, li, a) { overflow-wrap:anywhere; }

/* Qualifications and legal text read as clearly distinct editorial notes. */
.mineral-site :is(.fineprint:not([data-news-count]), .disclaimer-copy, .release-disclaimer),
.mineral-site :is(.disclaimer, .disclaimer-copy, .release-disclaimer, .legal-content) :is(p, li, blockquote),
.mineral-site .source-notice :is(p, strong) { font-style: italic; }
.mineral-site .image-credit { font-style:italic; }
.mineral-site .release-disclaimer :is(p, h2, h3, h4, span, strong, a) { font-style:italic !important; }

/* A broad transition foundation reaches native controls and all ordinary links. */
.mineral-site :where(a[href], button:not(:disabled), summary,
  input[type='submit']:not(:disabled), input[type='button']:not(:disabled)) {
  transition: color .24s var(--polish-ease), background-color .24s var(--polish-ease),
    border-color .24s var(--polish-ease), box-shadow .24s var(--polish-ease),
    opacity .24s var(--polish-ease), text-decoration-color .24s var(--polish-ease),
    transform .24s var(--polish-ease);
}
.mineral-site :is(.btn, .text-link, .hero-secondary, .news-row, .resource-card,
  .project-card, .brand, .media-grid a, .ftf-post-title a) .arrow,
.mineral-site .hero-secondary span[aria-hidden='true'],
.mineral-site .project-card .circle-arrow,
.mineral-site .disclosure-toggle::after,
.mineral-site .brand-logo {
  transition: color .28s var(--polish-ease), background-color .28s var(--polish-ease),
    opacity .28s var(--polish-ease), transform .28s var(--polish-ease);
}

@media (hover: hover) {
  .mineral-site .brand:hover .brand-logo { opacity: .72; }
  .mineral-site .desktop-nav :is(a, button):not(:disabled):hover {
    color: var(--accent-action);
    box-shadow: inset 0 -2px 0 var(--accent);
  }
  .mineral-site .dropdown a:hover,
  .mineral-site .mobile-menu a:hover { color: var(--accent-action); background: var(--paper); }
  .mineral-site .mobile-menu a:hover { border-bottom-color: var(--accent); }
  .mineral-site :is(.menu-toggle, .menu-close):not(:disabled):hover {
    color: var(--accent-action);
    background: var(--paper);
  }
  .mineral-site .text-link:hover { gap: 16px; border-bottom-color: var(--accent-action); }
  .mineral-site :is(.text-link, .btn, .news-row, .resource-card):hover .arrow,
  .mineral-site .hero-secondary:hover span[aria-hidden='true'] { transform: translate(3px, -3px); }
  .mineral-site .hero-secondary:hover { color: #fff; border-bottom-color: var(--accent); }
  .mineral-site .project-card:hover .circle-arrow { background: var(--accent); transform: translate(3px, -3px); }
  .mineral-site a.news-row:hover { box-shadow: inset 4px 0 0 var(--accent); }
  .mineral-site .resource-card:hover { background: #fff; box-shadow: 0 12px 32px rgba(23, 32, 32, .08); }
  .mineral-site .project-nav-toggle:not(:disabled):hover,
  .mineral-site .disclosure-toggle:not(:disabled):hover,
  .mineral-site .print-button:not(:disabled):hover { color: var(--accent-action); }
  .mineral-site .disclosure-toggle:not(:disabled):hover::after { transform: scale(1.18); }
  .mineral-site .media-grid a:hover img { filter: brightness(.94); }
  .mineral-site :is(.ftf-share-btn, .ftf-share-option, .ftf-share-close,
    .ftf-carousel-btn, .ftf-project-filter):not(:disabled):hover {
    color: var(--accent-action);
    border-color: var(--accent);
    background: var(--paper);
  }
  .mineral-site :is(.ftf-post-title a, .prose a, .legal-content a):hover {
    color: var(--accent-action);
    text-decoration-color: var(--accent);
  }
  .mineral-site .subpop-x:not(:disabled):hover { color: #fff; background: var(--ink); }
  .mineral-site .checkbox-row:not(:has(input:disabled)):hover { color: var(--accent-action); }
}

/* Fields retain their native affordances, with a visible nonmoving response. */
.mineral-site :is(input:not([type='hidden']):not([type='checkbox']), select, textarea) {
  transition: border-color .24s var(--polish-ease), background-color .24s var(--polish-ease),
    box-shadow .24s var(--polish-ease);
}
.mineral-site :is(input:not([type='hidden']):not([type='checkbox']), select, textarea):not(:disabled):hover {
  border-color: var(--accent-action);
  box-shadow: inset 0 0 0 1px var(--accent-action);
}
.mineral-site :is(input:not([type='hidden']):not([type='checkbox']), select, textarea):focus {
  border-color: var(--accent-action);
}
.mineral-site input[type='checkbox'] { transition: box-shadow .24s var(--polish-ease); }
.mineral-site input[type='checkbox']:not(:disabled):hover { box-shadow: 0 0 0 4px rgba(238, 71, 18, .16); }
.mineral-site .checkbox-row { transition: color .24s var(--polish-ease); }
.mineral-site :is(.menu-toggle, .menu-close)::before,
.mineral-site .nav-group > button::after { transition: color .24s var(--polish-ease), transform .24s var(--polish-ease); }
.mineral-site .nav-group > button[aria-expanded='true']::after { transform: rotate(180deg); }
.mineral-site .unsubscribe-form button:hover { color:var(--accent-action); border-bottom-color:var(--ink); }
.mineral-site :is(.footer-grid, .footer-bottom) a { transition:color .24s var(--polish-ease), text-decoration-color .24s var(--polish-ease); text-decoration:underline; text-decoration-color:transparent; text-underline-offset:5px; }
.mineral-site :is(.footer-grid, .footer-bottom) a:hover { text-decoration-color:var(--accent); }
.mineral-site .footer-grid a.brand { text-decoration:none; }

/* The signup dialog needs editorial scale, while fitting short viewports. */
.mineral-site .subpop,
.mineral-site .subresponse { padding: clamp(.75rem, 2.5vw, 2rem); }
.mineral-site .subpop-item {
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  width: min(100%, 72rem);
  max-height: calc(100dvh - 2 * clamp(.75rem, 2.5vw, 2rem));
  overflow-y: auto;
  overscroll-behavior: contain;
}
.mineral-site .subpop-text { padding: clamp(2rem, 4vw, 4.5rem); }
.mineral-site .subpop-text h3 { max-width: 14ch; font-size: clamp(2.25rem, 4vw, 4rem); }
.mineral-site .subpop-text > p:not(.eyebrow) { max-width: 44ch; }
.mineral-site .subpop-text form { display: grid; gap: .75rem; max-width: 32rem; }
.mineral-site .subpop-text input[type='email'] { margin-bottom: 0; min-height: 3.25rem; }
.mineral-site .subpop-text .btn { justify-self: start; min-width: 11rem; }
.mineral-site .subpop-text form + .fineprint { margin:16px 0 24px; font:italic 13px/1.6 var(--font-body); letter-spacing:0; text-transform:none; }
.mineral-site .subpop-image { min-height: 16rem; align-self: stretch; }
.mineral-site .subpopclose.text-link {
  display: inline-flex;
  width: fit-content;
  min-height: 2.75rem;
  padding: 0;
  border: 0;
  border-bottom: 2px solid var(--accent);
  border-radius: 0;
  background: transparent;
  color: var(--ink);
  text-align: left;
  font: 600 .9rem/1.3 var(--font-body);
}
.mineral-site .subpopclose.text-link:hover { color: var(--accent-action); border-bottom-color: var(--accent-action); }
.mineral-site .subpop-x { z-index: 1; width:44px; height:44px; }

@media (max-width: 48rem) {
  .mineral-site .subpop-item { grid-template-columns: minmax(0, 1fr); }
  .mineral-site .subpop-image { min-height: clamp(7rem, 22vh, 11rem); order: -1; }
  .mineral-site .subpop-text { padding: clamp(1.5rem, 5vw, 2.5rem); }
  .mineral-site .subpop-text h3 { font-size: clamp(2rem, 8vw, 3.25rem); }
}

@media (prefers-reduced-motion: reduce) {
  .mineral-site :is(a, button, input, select, textarea, summary),
  .mineral-site :is(a, button, input, select, textarea, summary)::before,
  .mineral-site :is(a, button, input, select, textarea, summary)::after,
  .mineral-site :is(.brand-logo, .project-card-image, .circle-arrow, .arrow,
    .hero-secondary span[aria-hidden='true'], .media-grid img) {
    transition: none !important;
    animation: none !important;
  }
  .mineral-site .btn:hover,
  .mineral-site .project-card:hover .project-card-image,
  .mineral-site .project-card:hover .circle-arrow,
  .mineral-site :is(.text-link, .btn, .news-row, .resource-card):hover .arrow,
  .mineral-site .hero-secondary:hover span[aria-hidden='true'],
  .mineral-site .disclosure-toggle:hover::after { transform: none !important; }
}
