/* Real artifacts lead both the public archive and the home recommendations. */
.ps-page-heading { padding-top: 62px; padding-bottom: 24px; }
.ps-page-heading > p { margin: 0 0 18px; color: #8b7445; font-size: 12px; letter-spacing: .14em; }
.ps-page-heading h1 { margin: 0; font-size: clamp(29px, 3.7vw, 48px); line-height: 1.4; letter-spacing: -.04em; }
.ps-page-heading > div { margin-top: 20px; color: #6f675c; font-size: 15px; line-height: 1.9; }
.archive-card.ps-card { padding: 0; overflow: hidden; background: #fffaf2; }
.ps-preview { margin: 0; min-width: 0; }
.ps-preview-link { display: block; position: relative; overflow: hidden; height: 310px; background: #eee7db; text-decoration: none; color: inherit; }
.ps-preview-link > img { display: block; width: 100%; height: 100%; object-fit: cover; object-position: top; transition: transform .25s ease; }
.ps-preview-website .ps-preview-link > img { object-fit: contain; background: #f5efe2; }
.ps-preview-poster .ps-preview-link > img { height: auto; min-height: 100%; object-fit: cover; }
.ps-preview-open { position: absolute; right: 14px; bottom: 14px; background: #fffbf2; border: 1px solid #d8cbb6; color: #344e43; border-radius: 5px; padding: 8px 11px; font-size: 11px; font-weight: 600; box-shadow: 0 2px 8px #201d1710; }
.ps-preview figcaption { padding: 10px 18px; background: #f2ecdf; border-bottom: 1px solid #e3d8c6; color: #706553; font-size: 11px; line-height: 1.6; }
.ps-preview-link:focus-visible, .ps-loop a:focus-visible, .ps-action:focus-visible { outline: 3px solid #9d814c; outline-offset: -4px; }
.ps-preview-link:hover > img { transform: scale(1.015); }
.ps-card-copy { padding: 26px; }
.ps-card-copy > header { display: flex; align-items: center; flex-wrap: wrap; gap: 8px 15px; color: #7a705e; font-size: 11px; }
.ps-card-copy > header small { font-size: inherit; }
.ps-card-copy > header > span { color: #3d5b4c; background: #eaf0e7; border-radius: 4px; padding: 5px 8px; }
.ps-card .ps-card-copy > h3 { margin: 18px 0 0; font-size: 24px; line-height: 1.5; letter-spacing: -.03em; }
.ps-summary { margin: 12px 0 0; font-size: 15px; line-height: 1.9; color: #655d52; }
.ps-output { margin: 18px 0 22px; padding-top: 16px; border-top: 1px solid #e0d6c5; color: #655d52; font-size: 13px; line-height: 1.85; }
.ps-output strong { display: block; margin-bottom: 5px; color: #344e43; font-size: 12px; font-weight: 600; }
.ps-action { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 46px; padding: 11px 16px; border-radius: 5px; border: 1px solid #344e43; background: #344e43; color: #fffaf1; text-decoration: none; font-size: 13px; font-weight: 600; }
.ps-action:hover { background: #284437; }
.ps-card .project-dossier { margin-top: 18px; }
.ps-card .project-dossier > summary { min-height: 44px; padding: 13px 0 0; }
.ps-card .project-dossier > summary span { font-size: 13px; font-weight: 500; color: #655d52; }
.ps-card .project-dossier[open] > summary { padding-bottom: 13px; border-color: #e0d6c5; }
.ps-process ol { margin: 18px 0; padding-left: 20px; }
.ps-process li { color: #655d52; font-size: 13px; line-height: 1.85; margin-bottom: 10px; }
.ps-note { border-left: 2px solid #baa06b; margin: 18px 0 5px; padding-left: 12px; color: #7a705e; font-size: 12px; line-height: 1.85; }
.ps-document { margin: 22px; min-height: 310px; padding: 22px 26px; background: #fffdf8; border: 1px solid #ded5c6; box-shadow: 5px 6px 0 #ded5c66b; border-radius: 2px; color: #3c4239; }
.ps-doc-meta { display: flex; justify-content: space-between; gap: 10px; font-size: 10px; color: #8c784c; padding-bottom: 12px; border-bottom: 1px solid #e7dece; }
.ps-document h4 { margin: 18px 0 12px; font-size: 22px; font-weight: 500; letter-spacing: -.02em; }
.ps-document p { font-size: 14px; line-height: 1.9; margin: 10px 0; }
.ps-doc-next { margin-top: 18px; padding-top: 12px; border-top: 1px solid #e7dece; }
.ps-doc-next > span { font-size: 11px; color: #8c784c; }
.ps-doc-next p { font-size: 13px; }
.ps-revision { padding-top: 18px; }
.ps-revision section { margin: 14px 0; padding-left: 12px; border-left: 2px solid #d2c7b1; }
.ps-revision section:last-child { border-color: #688372; }
.ps-version { font-size: 10px; color: #8c784c; }
.ps-revision p { font-size: 13px; line-height: 1.75; margin: 5px 0; }
.ps-cue { margin-top: 16px; }
.ps-cue time { color: #567663; font-size: 10px; font-family: ui-monospace, monospace; }
.ps-cue p { margin-top: 3px; font-size: 13px; }
.ps-loop { margin: 0 0 22px; padding: 14px; border: 1px solid #ded5c6; border-radius: 6px; background: #f6f0e4; }
.ps-loop-title { display: flex; gap: 10px; align-items: center; justify-content: space-between; }
.ps-loop-title strong { font-size: 12px; line-height: 1.7; color: #344e43; font-weight: 600; }
.ps-loop-title > a { display: none; }
.ps-loop-body { display: grid; grid-template-columns: 110px 1fr; gap: 16px; margin-top: 12px; }
.ps-loop-image { min-width: 0; text-decoration: none; color: #344e43; }
.ps-loop-image img { width: 100%; height: 104px; object-fit: cover; object-position: top; border: 1px solid #d8cbb6; border-radius: 3px; }
.ps-loop-image > span { display: block; font-size: 9px; margin-top: 5px; }
.ps-loop ol { list-style: none; display: grid; grid-template-columns: 1fr; gap: 6px; margin: 0; padding: 0; align-content: start; }
.ps-loop li { color: #625b4f; font-size: 11px; line-height: 1.7; }
.ps-loop li > span { color: #9a7c43; font-size: 9px; margin-right: 10px; }
.ps-loop > p { margin: 9px 0 0; font-size: 10px; line-height: 1.7; color: #7a705e; }
.personal-home .ph-project { padding-top: 0; border-top: 0; }
.personal-home .ph-project > .ps-preview { margin-bottom: 18px; }
.personal-home .ps-preview-link { height: 210px; border-radius: 7px 7px 0 0; }
.personal-home .ps-preview figcaption { padding: 8px 10px; font-size: 9px; border-radius: 0 0 5px 5px; }
.personal-home .ph-project .ps-document { margin: 12px; padding: 15px; min-height: 230px; }
.personal-home .ph-project .ps-document h4 { font-size: 17px; margin: 12px 0 8px; }
.personal-home .ph-project .ps-document p { font-size: 11px; line-height: 1.8; margin-top: 8px; }
.personal-home .ph-project .ps-doc-meta { font-size: 8px; }
.personal-home .ph-project .ps-preview-open { font-size: 10px; right: 8px; bottom: 8px; padding: 6px 8px; }
.personal-home .ph-project > h3 { margin-top: 16px; }
.personal-home .ph-project > small { margin-top: 14px; margin-bottom: 14px; }
@media (min-width: 1500px) { .ps-preview-link { height: 350px; } }
@media (max-width: 700px) {
  .ps-page-heading { padding-top: 38px; padding-bottom: 0; }
  .ps-page-heading h1 { font-size: 29px; }
  .ps-page-heading > div { font-size: 13px; }
  .ps-card-copy { padding: 21px; }
  .ps-card .ps-card-copy > h3 { font-size: 22px; }
  .ps-preview-link { height: 255px; }
  .ps-summary { font-size: 14px; }
  .ps-document { margin: 14px; padding: 18px; }
  .ps-document h4 { font-size: 20px; }
  .ps-document p { font-size: 12px; }
  .ps-doc-meta { font-size: 9px; }
  .ps-revision section { margin: 10px 0; }
  .ps-revision p { font-size: 11px; line-height: 1.7; }
  .ps-loop-body { grid-template-columns: 90px 1fr; gap: 12px; }
  .ps-loop-image img { height: 94px; }
  .personal-home .ps-preview-link { height: 235px; }
}
@media (max-width: 350px) {
  .ps-preview-link { height: 230px; }
  .ps-card-copy { padding: 18px; }
  .ps-loop-body { grid-template-columns: 1fr; }
  .ps-loop-image { display: flex; align-items: center; gap: 12px; }
  .ps-loop-image img { width: 70px; height: 70px; }
  .ps-doc-meta span:last-child { display: none; }
}
@media (prefers-reduced-motion: reduce) { .ps-preview-link > img { transition: none; } }
.ps-page-heading { padding-top: 36px; padding-bottom: 0; }
.ps-page-heading + .archive-section .section-shell { padding-top: 28px; }
.ps-page-heading + .archive-section .public-list-heading { margin-bottom: 16px; }
.ps-page-heading + .archive-section .archive-grid { margin-top: 24px; }
@media (max-width: 700px) {
  .ps-page-heading { padding-top: 22px; }
  .ps-page-heading h1 { font-size: 28px; }
  .ps-page-heading > div { margin-top: 12px; }
  .ps-page-heading + .archive-section .section-shell { padding-top: 22px; }
  .ps-page-heading + .archive-section .public-list-heading { margin-bottom: 12px; }
  .ps-page-heading + .archive-section .public-list-heading p { font-size: 11px; }
  .ps-page-heading + .archive-section .filter-row { display: flex; flex-wrap: nowrap; gap: 7px; overflow-x: auto; padding: 2px 0 8px; scrollbar-width: thin; }
  .ps-page-heading + .archive-section .filter-row button { flex: 0 0 auto; padding: 9px 13px; min-height: 40px; font-size: 11px; }
  .ps-page-heading + .archive-section .archive-grid { margin-top: 16px; }
}
