/* Shared sizing rules for every managed page and post. */
html { scroll-padding-top: 90px; }
body { overflow-wrap: anywhere; }
#portfolio .container-fluid:not(.projects-app .container-fluid),
#site-managed-content .site-managed-section {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 20px;
}
#portfolio .container-fluid::before, #portfolio .container-fluid::after,
#site-managed-content .row::before, #site-managed-content .row::after { display: none; }
#portfolio .container-fluid > [class*="col-"],
#site-managed-content .site-managed-section > [class*="col-"] { width: auto; min-width: 0; float: none; padding: 0; }
#portfolio .container-fluid > .site-managed-section,
#site-managed-content .site-managed-section > .col-md-12 { grid-column: 1 / -1; }
.portfolio-item, .project-card, .project-card-copy, .projects-section-title, .admin-field { min-width: 0; max-width: 100%; }
.portfolio-item .thumb { height: auto; min-height: 0; }
.portfolio-item .image, .project-card .project-card-image { width: 100%; aspect-ratio: 16 / 10; flex: none; }
.portfolio-item .image img { position: absolute; inset: 0; width: 100%; height: 100%; }
.portfolio-item .hover-content h1 { font-size: clamp(24px, 2.5vw, 30px); }
.portfolio-item .hover-content p.post-body { white-space: pre-wrap; text-transform: none; overflow-wrap: anywhere; font-size: 14px; line-height: 1.75; }
.post-details { display: inline-block; background: transparent; border: 1px solid #28723a; color: #70ff91; padding: 10px 14px; margin: 14px 0 0; min-height: 44px; font: inherit; }
.project-card > .post-details { margin: auto 14px 14px; }
.projects-page .project-card-copy h4 { white-space: normal; overflow-wrap: anywhere; line-height: 1.15; }
.project-actions { flex-wrap: wrap; }
.projects-chrome h1, .projects-section-title h3, .project-modal-body h2 { overflow-wrap: anywhere; min-width: 0; }
.project-modal { max-height: 90dvh; }
.project-modal-bar button { min-width: 44px; min-height: 44px; }
:focus-visible { outline: 2px solid #adffbf !important; outline-offset: 4px; }
.admin-is-open { overflow: hidden; }
.admin-panel { overscroll-behavior: contain; }
.admin-panel .admin-section-heading { flex-wrap: wrap; }
.admin-panel input, .admin-panel textarea, .admin-panel select { width: 100%; min-width: 0; font-size: 16px; }
.admin-panel input[type=checkbox] { width: 20px; height: 20px; }
.admin-panel summary { cursor: pointer; padding: 8px 0; font-size: 16px; color: #93ffab; }
.post-editor[open] summary { margin-bottom: 20px; }
.admin-publish { position: sticky; bottom: -24px; padding: 16px 0; background: #101510; border-top: 1px solid #28723a; z-index: 2; }
.admin-button { min-height: 44px; }
.admin-button:disabled { opacity: .5; cursor: wait; }
.admin-preview { max-width: 420px; margin: 16px auto; }
.admin-preview > .col-md-4 { width: 100%; float: none; padding: 0; }
.admin-preview::after { content: ''; display: block; clear: both; }
.admin-preview .portfolio-item h1 { color: #70ff91; font-size: 28px; }
.motion-toggle { background: #0a170d; border: 1px solid #28723a; color: #70ff91; min-height: 44px; padding: 8px 12px; margin: 12px 6px; font: inherit; }
.signal-enter { animation: signal-enter .55s ease-out both; }
@keyframes signal-enter { from { opacity: .25; transform: translateY(16px); } to { opacity: 1; transform: none; } }
@media (max-width: 991px) {
  #portfolio .container-fluid:not(.projects-app .container-fluid), #site-managed-content .site-managed-section { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
  #portfolio .container-fluid:not(.projects-app .container-fluid), #site-managed-content .site-managed-section { grid-template-columns: minmax(0, 1fr); }
  #portfolio:not(.projects-app) { padding: 24px 16px; }
  #site-managed-content { padding: 24px 0; }
  #site-managed-content .site-managed-section { margin: 0; padding: 16px 0; }
  nav .logo { max-width: calc(100% - 110px); }
  nav .admin-inline-status { display: none; }
  nav .admin-toggle-button { margin-left: 6px; padding: 6px; font-size: 10px; }
  #video-container .inner h1 { font-size: clamp(36px, 10vw, 60px); }
  .projects-intro { padding: 22px 16px 18px; }
  .projects-intro-bar { margin-left: -16px; margin-right: -16px; }
  .admin-panel { padding: 14px; }
  .admin-card { padding: 12px; }
  .admin-publish { bottom: -14px; }
}
/* Motion is optional; static content always remains visible. */
html.motion-off *, html.motion-off *::before, html.motion-off *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
html.motion-off .portfolio-item .thumb, html.motion-off .portfolio-item img, html.motion-off .project-card { transform: none !important; }
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .portfolio-item .thumb, .portfolio-item img, .project-card { transform: none !important; }
}
iframe, img { max-width: 100%; }
.admin-entry { margin-left: 8px; }
/* Ensure the editor stays above hero content and decorative CRT layers. */
.admin-panel-backdrop { z-index: 210000; }
.project-modal-backdrop { z-index: 205000; }
