/* CMS adjustments; keep design rules away from the panel appended to body. */
#ac_panel { z-index: 1000; max-width: calc(100vw - 1rem); max-height: calc(100dvh - 1rem); overflow: auto; }
.portfolio-site .portfolio-editor { margin-block: 1rem; font: 1rem/1.7 var(--font); letter-spacing: normal; text-transform: none; }
.portfolio-site .portfolio-editor form { display: block; }
.portfolio-site .portfolio-editor input:not([type="hidden"]), .portfolio-site .portfolio-editor textarea { max-width: 100%; padding: .5rem; }
.portfolio-site .portfolio-editor input[type="text"], .portfolio-site .portfolio-editor textarea { width: 100%; }
.portfolio-site .portfolio-editor textarea { min-height: 8rem; }
.portfolio-site .portfolio-editor img:not([src]) { display: none; }
.portfolio-site .portfolio-fields { width: min(var(--container), calc(100% - var(--gutter) * 2)); margin: 1rem auto; padding: 1rem; border: 1px solid var(--color-border); }
.portfolio-site .portfolio-fields summary { cursor: pointer; }
.portfolio-site .card-summary { font-size: .875rem; }
.portfolio-site .project-copy h3 a, .portfolio-site .library-title h3 a { color: inherit; text-decoration: none; }
.portfolio-site .project-copy h3 a:hover, .portfolio-site .library-title h3 a:hover { color: var(--color-accent); }
.portfolio-site .empty-state { padding: 2rem 0; }
.portfolio-site .without-image, .portfolio-site .without-index { grid-template-columns: 1fr; }
.portfolio-site .prose img, .portfolio-site .prose iframe, .portfolio-site .prose video { max-width: 100%; }
.portfolio-site .prose { min-width: 0; overflow-wrap: anywhere; }
.portfolio-site .prose table { display: block; overflow-x: auto; max-width: 100%; }
.portfolio-site .prose .table-scroll table { display: table; }
.portfolio-site .prose pre { max-width: 100%; overflow-x: auto; }
.portfolio-site .project-visual img { height: auto; }
.portfolio-site .portrait-placeholder img { width: 100%; height: 100%; object-fit: cover; }
.portfolio-site .portfolio-login { border: 0; padding: 0; background: none; color: var(--color-muted); font-size: .6875rem; }
.portfolio-site .portfolio-honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.portfolio-site .contact-feedback { margin: 1rem 0; padding: 1rem; color: #8b2020; background: #fff0f0; border: 1px solid #edbcbc; border-radius: var(--radius-sm); }
.portfolio-site .contact-feedback.success { color: #235d46; background: #eff9f3; border-color: #bddfcb; }
.portfolio-site .nav-links > li { position: relative; }
.portfolio-site .nav-submenu { list-style: none; padding: .75rem; margin: 0; background: var(--color-surface); border: 1px solid var(--color-border); border-radius: var(--radius-sm); }
.portfolio-site .nav-submenu a { display: block; padding: .35rem; white-space: normal; }
.portfolio-site .nav-submenu .nav-submenu { border: 0; padding-left: .75rem; }
.portfolio-site .nav-links > .active > a { color: var(--color-accent); }
.portfolio-site .availability { flex-wrap: wrap; }
.portfolio-site .hero h1 { white-space: pre-line; }
.portfolio-site .page-heading h1 { white-space: pre-line; }
.portfolio-site .site-nav { max-width: 100%; }
.portfolio-site .nav-links { flex-wrap: wrap; }
.portfolio-site .messages-error, .portfolio-site .messages-ok { background-image: none; }
@media (min-width: 800px) {
  .portfolio-site .nav-links > li > .nav-submenu { display: none; position: absolute; top: 100%; right: 0; min-width: 190px; z-index: 10; }
  .portfolio-site .nav-links > li:hover > .nav-submenu, .portfolio-site .nav-links > li:focus-within > .nav-submenu { display: block; }
}
