[hidden] { display: none !important; }

.screen-reader-text,
.hp-field {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

body.admin-bar .site-header { top: 32px; }
@media (max-width: 782px) {
  body.admin-bar .site-header { top: 46px; }
}

.menu-close-icon { display: none; }
.mobile-nav.is-open ~ .header-inner .menu-close-icon,
.site-header:has(.mobile-nav.is-open) .menu-open-icon { display: none; }
.site-header:has(.mobile-nav.is-open) .menu-close-icon { display: inline-flex; }
.custom-logo-link { display: inline-flex; align-items: center; }
.custom-logo { width: auto; max-height: 42px; }
.desktop-nav ul { display: flex; align-items: center; gap: 33px; width: 100%; margin: 0; padding: 0; list-style: none; }
.desktop-nav li { display: flex; align-items: center; margin: 0; }
.footer-main nav li { display: flex; align-items: center; margin: 0; }
.footer-main nav ul { display: flex; flex-wrap: wrap; align-items: center; gap: 28px; margin: 0; padding: 0; list-style: none; }

.js .reveal { opacity: 0; transform: translateY(25px); transition: opacity 0.7s cubic-bezier(0.22, 1, 0.36, 1), transform 0.7s cubic-bezier(0.22, 1, 0.36, 1); }
.js .reveal.is-visible { opacity: 1; transform: none; }

.forma-intro > svg { position: absolute; right: 25px; bottom: 28px; }
.faq-plus, .faq-minus { display: inline-flex; }
.faq-item .faq-minus, .faq-item.is-open .faq-plus { display: none; }
.faq-item.is-open .faq-minus { display: inline-flex; }

.project-preview-image { background: #242126; }
.browser-window.is-image { height: 100%; background: #111; }
.image-site { height: calc(100% - 24px); min-height: 220px; }
.image-site img, .image-fallback { width: 100%; height: 100%; min-height: 220px; object-fit: cover; }
.image-fallback { display: grid; place-items: center; color: #d7cbe4; font-family: "Instrument Serif", Georgia, serif; font-size: 32px; }

.editor-note { margin-top: 16px; color: #cbb6e8; font-size: 12px; }
.editor-note a { text-decoration: underline; text-underline-offset: 3px; }
.form-error { min-height: 1.2em; color: #e7b4b4; font-size: 12px; }
.inquiry-banner { position: fixed; z-index: 80; bottom: 18px; left: 50%; width: min(520px, calc(100% - 32px)); padding: 12px 16px; border: 1px solid #bda8ee; border-radius: 6px; color: #f3eaff; background: #21182e; transform: translateX(-50%); }
.inquiry-success[hidden], .inquiry-form-view[hidden] { display: none !important; }

.portfolio-single h1,
.content-page h1,
.work-section > .container > h1 { margin: 12px 0 18px; font-size: clamp(40px, 6vw, 68px); font-weight: 500; letter-spacing: -2px; line-height: 1.08; }
.portfolio-industry, .archive-intro { margin-bottom: 28px; color: #a79aad; }
.portfolio-back { margin-bottom: 22px; }
.portfolio-single .project-preview { max-width: 860px; margin: 28px 0 34px; aspect-ratio: 1.7; }
.portfolio-single-grid h2 { margin: 0 0 12px; font-size: 22px; font-weight: 500; }
.portfolio-single-grid p,
.entry-content,
.entry-card p,
.content-page > .container > p { color: #b7adbf; font-size: 15px; line-height: 1.8; }
.entry-content > * + * { margin-top: 1em; }
.entry-content a, .entry-card a { text-decoration: underline; text-underline-offset: 3px; }
.narrow { max-width: 820px; }
.entry-list { margin-top: 28px; }
.entry-card { padding: 22px 0; border-bottom: 1px solid #302c34; }
.entry-card h2 { margin-bottom: 8px; font-size: 24px; font-weight: 500; }
.posts-nav { margin-top: 28px; color: #cfc6d8; }
.posts-nav a, .posts-nav span { margin-right: 12px; }
.content-page .button { margin-top: 22px; }

@media (max-width: 820px) {
  .mobile-nav.is-open { display: block; }
  .footer-main nav ul { gap: 13px 22px; }
}

@media (prefers-reduced-motion: reduce) {
  .js .reveal { opacity: 1; transform: none; }
}
