:root{color-scheme:dark;--ink:#ece8de;--muted:#aaa89f;--line:#34352f;--page:#111310}*{box-sizing:border-box}body{margin:0;background:var(--page);color:var(--ink);font:14px/1.7 system-ui,-apple-system,sans-serif}a{color:inherit;text-decoration:none}button,input{font:inherit}a:focus-visible,button:focus-visible,input:focus-visible,summary:focus-visible{outline:2px solid #d7eb98;outline-offset:4px}[hidden]{display:none!important}.catalog>header{display:flex;justify-content:space-between;padding:28px 5%;border-bottom:1px solid var(--line);font:10px/1.5 ui-monospace,monospace;letter-spacing:.15em}.catalog>main{max-width:1600px;padding:0 5% 80px;margin:auto}.intro{padding:75px 0 50px}.intro>p:first-child{font:10px/1.6 ui-monospace,monospace;letter-spacing:.16em;color:#c5d89c}.intro h1{font-size:clamp(30px,5vw,62px);letter-spacing:-.05em;font-weight:400;line-height:1.4;margin:22px 0}.intro>div{color:#bbbdb3;font-size:13px;line-height:2}.total{margin:30px 0 0;font-size:11px;color:#c5d89c}.toolbar{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;border-top:1px solid var(--line);padding:20px 0 30px}.filters{display:flex;flex-wrap:wrap;gap:6px}.filters button{color:#b8bcae;background:transparent;border:1px solid transparent;border-radius:24px;padding:8px 12px;font-size:10px;cursor:pointer}.filters button.active{border-color:#84935e;color:#e6f2ca}.toolbar label{font-size:10px;color:var(--muted);white-space:nowrap}.toolbar input{width:170px;background:transparent;color:var(--ink);border:0;border-bottom:1px solid var(--line);padding:9px 8px;font-size:11px}.portrait-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px 22px}.portrait-card{min-width:0}.preview{aspect-ratio:1.6;background:#080a09;border:1px solid var(--line);overflow:hidden}.preview img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .4s}.portrait-card:hover img{transform:scale(1.025)}.placeholder{height:100%;display:flex;flex-direction:column;justify-content:center;padding:30px;background:radial-gradient(ellipse at 90% 0%,#293023 0%,transparent 65%)}.placeholder span{font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#a4af91}.placeholder strong{font-size:clamp(14px,1.7vw,24px);line-height:1.6;font-weight:400;overflow-wrap:anywhere;margin-top:12px}.caption{padding:16px 0}.caption small{font-size:9px;letter-spacing:.08em;color:#b2bc9d}.caption h2{font-size:16px;font-weight:400;margin:5px 0}.status{font-size:10px;color:#aaa89f}.status.generated{color:#c5d89c}.catalog>footer{border-top:1px solid var(--line);padding:30px 5%;font-size:11px;color:var(--muted)}.viewer{height:100svh;overflow:hidden;display:flex;flex-direction:column}.viewer-bar{position:relative;z-index:10;display:flex;align-items:center;justify-content:space-between;gap:15px;padding:10px 20px;background:#121410;border-bottom:1px solid var(--line);min-height:50px;font-size:10px}.viewer-bar>span{min-width:0;display:flex;gap:13px;align-items:center}.viewer-bar strong{font-weight:500;overflow-wrap:anywhere}.viewer-bar small{color:#c5d89c;font-size:9px;white-space:nowrap}.viewer-bar>a{white-space:nowrap}.viewer-bar summary{cursor:pointer;white-space:nowrap}.viewer-bar details>section{position:absolute;right:12px;top:50px;width:min(480px,calc(100vw - 24px));background:#181c15;border:1px solid #46503b;padding:22px;color:#d4ddc7;font-size:11px;overflow-wrap:anywhere}.viewer-bar section a{display:inline-block;margin:8px 18px 0 0;text-decoration:underline;color:#d7eb98}.viewer iframe{display:block;width:100%;border:0;flex:1;min-height:0;background:#090b11}.unavailable{margin:auto;padding:24px;text-align:center;max-width:620px;color:#afb8a0}.unavailable h1{font-size:25px;font-weight:400;color:var(--ink)}@media(max-width:900px){.toolbar{flex-direction:column}.portrait-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:500px){.catalog>header{padding:22px 5%;font-size:9px}.intro{padding:45px 0 35px}.intro>div{font-size:11px}.portrait-grid{gap:22px 14px}.preview{aspect-ratio:1.15}.placeholder{padding:17px}.placeholder strong{font-size:14px}.caption h2{font-size:12px;overflow-wrap:anywhere}.status{font-size:9px}.viewer-bar{padding:9px 10px;gap:9px;font-size:9px}.viewer-bar>span{gap:4px;flex-direction:column;align-items:flex-start}.viewer-bar strong{font-size:10px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}
