.collection-header { display:flex; align-items:center; justify-content:space-between; gap:24px; padding-block:26px; border-bottom:1px solid var(--line); }
.collection-brand { font:36px var(--font-display); white-space:nowrap; }
.collection-brand span { color:var(--accent); padding:0 5px; }
.collection-header nav { display:flex; gap:28px; font-size:12px; }
.collection-header a:hover, .collection-back:hover { color:var(--accent); }
.collection-main { padding-block:70px; min-height:65vh; }
.collection-intro { max-width:590px; margin:24px 0 36px; color:var(--text-soft); }
.folder-tabs { display:flex; flex-wrap:wrap; gap:10px; margin-bottom:34px; }
.folder-tab { border:1px solid var(--line); border-radius:40px; padding:10px 22px; font-size:13px; transition:background .25s, color .25s; }
.folder-tab:hover, .folder-tab[aria-current="page"] { background:var(--accent); color:var(--bg); }
.folder-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:24px; }
.folder-card { display:block; min-width:0; }
.folder-cover { aspect-ratio:3/4; overflow:hidden; background:var(--bg-card); position:relative; }
.folder-cover img { width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease-out); }
.folder-card:hover img { transform:scale(1.035); }
.folder-cover--empty { display:grid; place-items:center; color:var(--text-dim); }
.folder-cover--empty svg { width:64px; height:64px; stroke:currentColor; fill:none; stroke-width:1; }
.folder-caption { display:flex; justify-content:space-between; gap:16px; align-items:center; padding-block:16px; }
.folder-caption h2 { font:32px var(--font-display); }
.folder-caption span { font-size:12px; color:var(--text-dim); }
.collection-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:22px; align-items:start; }
.collection-photo { display:block; width:100%; margin-bottom:22px; break-inside:avoid; overflow:hidden; background:var(--bg-card); }
.collection-photo img { width:100%; height:auto; }
.collection-photo:focus-visible, .folder-card:focus-visible { outline:2px solid var(--accent); outline-offset:5px; }
.collection-empty { padding:50px 0; color:var(--text-soft); }
.collection-more { display:block; margin:32px auto 12px; }
.portfolio-page [hidden] { display:none !important; }
.collection-hint { text-align:center; color:var(--text-dim); font-size:12px; }
.collection-back { display:inline-block; margin-top:28px; font-size:13px; }
.collection-footer { display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px; border-top:1px solid var(--line); padding-block:30px; font-size:12px; color:var(--text-soft); }
.collection-footer a:last-child { color:var(--text-dim); font-size:10px; }
.collection-viewer { position:fixed; inset:0; width:100%; max-width:none; height:100%; max-height:none; background:rgba(5,13,9,.97); border:0; padding:65px 65px 55px; color:var(--text); }
.collection-viewer[open] { display:flex; align-items:center; justify-content:center; }
.collection-viewer::backdrop { background:#050d09; }
.collection-viewer img { max-height:100%; max-width:100%; width:auto; height:auto; object-fit:contain; }
.collection-viewer button { position:absolute; padding:12px; font-size:30px; z-index:1; }
.viewer-close { top:8px; right:12px; }
.viewer-prev { left:4px; top:45%; }
.viewer-next { right:4px; top:45%; }
.viewer-count { position:absolute; bottom:16px; left:0; right:0; text-align:center; font-size:12px; }
@media (max-width:900px) { .folder-grid { gap:16px; } .collection-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } .folder-caption { display:block; } }
@media (max-width:640px) {
  .collection-header { gap:12px; padding-block:18px; } .collection-brand { font-size:28px; } .collection-header nav { gap:16px; font-size:11px; }
  .collection-main { padding-block:42px; } .folder-grid { grid-template-columns:1fr; gap:26px; } .folder-cover { aspect-ratio:4/5; }
  .folder-caption { display:flex; } .collection-grid { grid-template-columns:1fr; } .collection-viewer { padding:60px 36px; }
  .folder-tab { padding:9px 15px; } .collection-intro { font-size:14px; }
}
@media (prefers-reduced-motion:reduce) { .folder-cover img, .folder-tab { transition:none; } }
.portfolio-page { padding-bottom:0; }
