/* Archify dark: charcoal canvas, layered surfaces, original red accents. */
:root[data-theme="dark"] .contact-logo--light {
  display: none;
}
:root[data-theme="dark"] .contact-logo--dark {
  display: block;
}
:root[data-theme="dark"] {
  color-scheme: dark;
  --paper: #000;
  --ink: #f3f3f5;
  --card-surface: #111;
  --theme-muted: #b1b2bc;
  --theme-border: #ffffff1c;
  --theme-field: #080808;
}
body,
.site-ambient-bg {
  background: var(--paper);
  color: var(--ink);
}
html {
  scrollbar-color: #555862 var(--paper);
}
::selection {
  background: #c82837;
  color: #fff;
}
.architecture-map__paths {
  opacity: 0.8;
}
#architecture-ink stop {
  stop-color: #b2b5c0;
}
.architecture-map__nodes {
  fill: var(--paper);
  stroke: #b2b5c0;
}
.architecture-map__signals {
  stroke: #ef5363;
  opacity: 0.35;
}
.studio {
  --studio-ink: var(--ink);
}
.studio,
.process,
.work-showcase,
.faqs,
.contact,
.testimonials {
  color: var(--ink);
}
.studio-heading,
.process-title,
.work-showcase-title,
.faqs-title,
.contact-title,
.process-card__title,
.work-stack-item__title,
.faq-item__question,
.contact-form__title,
.contact-form__success h3 {
  color: var(--ink);
}
.studio-lead,
.studio-ceo__text,
.studio-collective__intro > p,
.studio-founder blockquote > p,
.studio-founder__identity > span,
.studio-portrait__caption,
.process-intro,
.process-card__desc,
.process-card__list li,
.work-showcase-intro,
.work-stack-item__desc,
.work-stack-item__index,
.faq-item__answer,
.contact-steps p,
.contact-form__intro,
.contact-form__required,
.contact-label__optional,
.contact-field-hint,
.contact-form__success p,
.tech-stack__intro,
.project-dialog [data-project-description] {
  color: var(--theme-muted);
}
.studio-founder,
.studio-founder__email,
.studio-colour-control,
.project-open,
.project-dialog__cta,
.process-card__list,
.contact-form__actions {
  border-color: var(--theme-border);
}
.studio-colour-control,
.studio-founder__email,
.project-open {
  color: var(--ink);
}
.studio-portrait__depth::before {
  background: #202020;
}
.studio-portrait__depth.is-colour::before {
  background: #3b2027;
}
:root[data-theme="dark"] .service-item,
:root[data-theme="dark"] .faq-item {
  background: var(--card-surface);
}
.process-card,
.faq-item,
.work-stack-item,
.contact-form,
.project-dialog {
  background: var(--card-surface);
  border: 1px solid var(--theme-border);
  box-shadow: 0 12px 35px #00000020;
}
.process-card::after {
  box-shadow: 0 0 0 4px var(--card-surface);
}
.process-card__num {
  -webkit-text-stroke-color: #797d89;
}
.process-card__icon,
.faq-item__icon,
.project-dialog__close,
.to-top {
  color: var(--ink);
  background: #1c1c1c;
  border-color: #ffffff40;
}
.process-path__line {
  stroke: #a8abb5;
}
.work-stack--pin .work-stack-item__title {
  -webkit-text-stroke-color: var(--card-surface);
}
.work-stack-item__tags li,
.project-dialog [data-project-tags] li {
  color: #c3c5ce;
  background: #1c1c1c;
  border-color: var(--theme-border);
}
.work-stack-item__media,
.project-dialog figure {
  background: #1c1c1c;
}
.faq-item__trigger {
  color: var(--ink);
}
.faq-item__trigger[aria-expanded="true"] .faq-item__question {
  color: var(--accent);
}
.contact-form__title span,
.contact-steps h3,
.studio-founder__label,
.contact-form__required > span,
.contact-field-error,
.contact-form__error {
  color: #ff7180;
}
.contact-label,
.contact-phone__code {
  color: #e0e1e6;
}
:root[data-theme="dark"] .contact-phone__code[aria-expanded="true"],
:root[data-theme="dark"] .contact-phone__code:focus-visible {
  background: #1c1c1c;
  color: #fff;
}
.contact-control input,
.contact-control textarea,
.contact-select__trigger,
.contact-control--phone,
.contact-phone__panel,
.contact-select__menu {
  background: var(--theme-field);
  border-color: #383b46;
  color: var(--ink);
}
.contact-control--phone input {
  background: transparent;
}
.contact-control input::placeholder,
.contact-control textarea::placeholder,
.contact-select__trigger,
.contact-phone__search,
.contact-phone__menu li span:last-child,
.contact-phone__empty {
  color: var(--theme-muted);
}
.contact-control input:focus,
.contact-control textarea:focus,
.contact-select__trigger:focus-visible,
.contact-select.is-open .contact-select__trigger,
.contact-control--phone:focus-within {
  background: #181818;
  border-color: #ef5363;
  box-shadow: 0 0 0 3px #ef536320;
}
.contact-control--phone input:focus {
  background: transparent;
  box-shadow: none;
}
.contact-control.is-invalid input,
.contact-control.is-invalid textarea,
.contact-control.is-invalid .contact-select__trigger,
.contact-control.is-invalid .contact-control--phone {
  background: #27151c;
  border-color: #ff7180;
}
.contact-select__trigger::after,
.contact-phone__code::after {
  border-color: var(--theme-muted);
}
.contact-phone__search {
  border-color: var(--theme-border);
}
.contact-phone__search input {
  background: transparent;
  color: var(--ink);
}
.contact-phone__search input::placeholder {
  color: var(--theme-muted);
}
.contact-select__menu li,
.contact-phone__menu li {
  color: var(--ink);
}
.contact-select__menu li[aria-selected="true"]:not(:hover):not(.is-active),
.contact-phone__menu li[aria-selected="true"]:not(:hover):not(.is-active),
.contact-phone__menu
  li[aria-selected="true"]:not(:hover):not(.is-active)
  span:last-child {
  color: #ff8b97;
  background: #c8283726;
}
.contact-form__success-icon {
  background: #c8283726;
  color: #ff7180;
}
.btn-solid,
.connect-cta,
.service-item__cta {
  color: #101012;
}
.project-dialog__close:hover,
.to-top:hover {
  background: var(--accent);
  color: #fff;
}
.faq-item__trigger[aria-expanded="true"] .faq-item__icon,
.faq-item__trigger:focus-visible .faq-item__icon {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
}
@media (hover: hover) and (pointer: fine) {
  :root[data-theme="dark"] .contact-phone__code:hover {
    background: #1c1c1c;
    color: #fff;
  }
  :root[data-theme="dark"] .faq-item__trigger:hover {
    background: #1c1c1c;
  }
  .btn:hover,
  .connect-cta:hover,
  .service-item__cta:hover {
    color: #fff;
  }
  .faq-item__trigger:hover .faq-item__icon,
  .process-card:hover .process-card__icon {
    background: var(--accent);
    color: #fff;
    border-color: var(--accent);
  }
  .contact-control input:hover,
  .contact-control textarea:hover,
  .contact-control--phone:hover,
  .contact-select__trigger:hover {
    border-color: #777c8b;
  }
  .contact-select__menu li:hover,
  .contact-select__menu li.is-active,
  .contact-phone__menu li:hover,
  .contact-phone__menu li.is-active {
    color: #fff;
  }
}
@media (max-width: 639px) {
  .architecture-map__signals {
    opacity: 0.25;
  }
}

.site-footer {
  background: #000;
}
.faq-item__answer {
  margin-top: 10px;
}
