.portrait-modes{display:flex;gap:28px;border-bottom:1px solid var(--border);margin-bottom:28px}.portrait-modes button{border:0;border-bottom:2px solid transparent;background:transparent;color:var(--muted);padding:0 2px 13px;font-size:15px}.portrait-modes button.is-active{color:#242424;border-bottom-color:#242424;font-weight:600}.portrait-modes button:hover{color:#111}.generator-section{outline:none;scroll-margin-top:16px}.generator-heading{margin-bottom:24px}.generator-heading h2{font-size:20px;font-weight:600}.generator-heading p{margin-top:6px;font-size:14px;color:var(--muted)}.generator-layout{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1fr);align-items:start;gap:64px;max-width:980px}.generator-form fieldset{border:0;margin:0;padding:0;min-width:0}.generator-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 16px}.generator-fields label{font-size:13px;color:#333}.generator-fields .full-width{grid-column:1 / -1}.field-hint{color:var(--muted);font-size:12px;margin-left:5px}.generator-fields input,.generator-fields select{display:block;margin-top:7px;width:100%;min-width:0;height:44px;border:1px solid #bcbcbc;border-radius:4px;background:#fff;color:#242424;padding:10px 12px;font:inherit;font-size:14px}.generator-fields input:focus-visible{outline:2px solid #305db0;outline-offset:3px}.generator-fields :disabled{opacity:.6}.generator-note{font-size:12px;color:var(--muted);line-height:1.7;margin-top:14px}.generate-submit{width:100%;margin-top:24px;min-height:46px}.generator-notice{font-size:13px;padding:14px;border:1px solid var(--border);border-radius:4px;margin-top:20px}.text-button{border:0;background:none;text-decoration:underline;text-underline-offset:3px;padding:8px 0 0;font-size:13px}.generated-image{position:relative;aspect-ratio:1;border:1px solid var(--border);border-radius:4px;overflow:hidden;background:#f6f6f4}.generated-image>img{display:block;width:100%;height:100%;object-fit:contain}.generator-placeholder{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:28px;color:var(--muted)}.generator-placeholder h3{color:#444;font-size:16px;font-weight:500;margin:16px 0 7px}.generator-placeholder p{font-size:13px;max-width:250px}.generation-progress{position:absolute;top:0;right:0;bottom:0;left:0;background:#f6f6f4;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;font-size:14px}.generated-caption{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-top:16px}.generated-caption strong{font-size:14px;font-weight:500}.generated-caption p,.generated-caption span{font-size:12px;color:var(--muted);margin-top:3px}.generated-caption .secondary-button{white-space:nowrap}@media(max-width:800px){.generator-layout{gap:28px;grid-template-columns:minmax(240px,1fr) minmax(0,1fr)}.generated-caption{flex-direction:column}}@media(max-width:600px){.generator-layout{grid-template-columns:minmax(0,1fr);gap:28px}.generator-fields input,.generator-fields select{font-size:16px}.generated-caption{flex-direction:row}}.tag-page{padding-bottom:64px}.tag-back{display:inline-flex;align-items:center;gap:7px;text-decoration:none;font-size:14px}.tag-back:hover{text-decoration:underline}.tag-intro{padding:35px 0 28px}.tag-intro h1{font-size:30px;line-height:1.25;letter-spacing:-.7px;font-weight:600}.tag-intro p{max-width:690px;margin-top:11px;font-size:14px;line-height:1.7;color:var(--muted)}.tag-workspace{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:36px;align-items:start}.tag-list-controls{display:grid;grid-template-columns:165px minmax(0,1fr);gap:14px;border-top:1px solid var(--border);padding-top:18px}.tag-page label{display:flex;flex-direction:column;gap:7px;font-size:13px;font-weight:500}.tag-page select,.tag-page input{width:100%;min-width:0;height:42px;padding:8px 10px;border:1px solid #cfcfcf;border-radius:4px;background:#fff;color:#242424;font:inherit;font-size:14px;font-weight:400}.tag-page input:focus-visible{outline:2px solid #305db0;outline-offset:3px}.tag-list-count{margin:15px 0;color:var(--muted);font-size:12px}.tag-face-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.tag-face{position:relative;min-width:0;padding:4px;border:1px solid transparent;border-radius:3px;background:transparent;text-align:left}.tag-face:hover{border-color:#bbb}.tag-face.is-selected{border-color:#242424;box-shadow:0 0 0 1px #242424}.tag-thumbnail{display:grid;place-items:center;aspect-ratio:1;overflow:hidden;background:#f5f5f3}.tag-thumbnail img{display:block;width:100%;height:100%;object-fit:cover}.tag-face-id{display:block;overflow:hidden;padding-top:7px;color:var(--muted);font-size:10px;white-space:nowrap;text-overflow:ellipsis}.tag-face-complete{position:absolute;top:8px;right:8px;padding:2px;box-sizing:content-box;border-radius:50%;background:#fff}.tag-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:22px}.tag-pagination span{color:var(--muted);font-size:12px}.tag-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:8px 14px;border:1px solid #cfcfcf;border-radius:4px;background:#fff;color:#242424;font-size:13px;font-weight:500;line-height:1.5}.tag-button:not(:disabled):hover{background:#f5f5f3}.tag-button.tag-primary{border-color:#242424;background:#242424;color:#fff}.tag-button.tag-primary:not(:disabled):hover{background:#444}.tag-editor{position:sticky;top:20px;padding:18px;border:1px solid var(--border);border-radius:5px}.tag-photo{display:grid;place-items:center;min-height:240px;padding:12px;background:#f5f5f3}.tag-photo img{display:block;max-width:100%;height:auto}.tag-photo-details{display:flex;flex-direction:column;gap:4px;margin:14px 0 18px}.tag-photo-details h2{overflow-wrap:anywhere;font-size:13px;font-weight:500}.tag-photo-details span{color:var(--muted);font-size:12px}.tag-fields{display:grid;gap:14px;margin:0;padding:0;border:0}.tag-label-source{min-height:20px;margin:13px 0;color:var(--muted);font-size:12px}.tag-save-actions{display:flex;flex-wrap:wrap;gap:10px}.tag-save-actions .tag-button{flex:1;white-space:nowrap}.tag-face-navigation{display:flex;justify-content:space-between;gap:8px;margin-top:15px}.tag-text-button{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:4px 0;border:0;background:transparent;color:#444;font-size:12px}.tag-text-button:not(:disabled):hover{text-decoration:underline}.tag-reset{margin-top:8px;color:var(--muted)}.tag-feedback{min-height:22px;margin-top:10px;font-size:12px}.tag-error,.tag-load-error{color:#922c24}.tag-readonly,.tag-discard{padding:13px 15px;border:1px solid #d5d0bf;border-radius:4px;background:#faf9f4;font-size:13px;line-height:1.6}.tag-readonly{margin-bottom:24px}.tag-discard{margin-bottom:18px}.tag-discard>div{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.tag-empty,.tag-editor-empty{padding:50px 15px;text-align:center;color:var(--muted);font-size:14px}.tag-loading{display:flex;align-items:center;gap:8px;padding:40px 0;color:var(--muted);font-size:14px}.tag-load-error .tag-button{margin-top:14px}.tag-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.tag-spin{animation:tag-spin 1s linear infinite}@keyframes tag-spin{to{transform:rotate(360deg)}}@media(max-width:960px){.tag-workspace{grid-template-columns:minmax(0,1fr) 340px;gap:22px}.tag-face-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tag-list-controls{grid-template-columns:1fr;gap:10px}}@media(max-width:720px){.tag-page{padding-left:18px;padding-right:18px}.tag-intro{padding-top:28px}.tag-workspace{display:flex;flex-direction:column;gap:28px}.tag-editor{position:static;order:-1;width:100%}.tag-library{width:100%}.tag-photo{min-height:200px}.tag-face-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.tag-list-controls{grid-template-columns:1fr 1fr}}@media(max-width:390px){.tag-face-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.tag-site-header{gap:12px;padding-left:18px;padding-right:18px}.tag-back{font-size:12px}.tag-save-actions{flex-direction:column}}@media(prefers-reduced-motion:reduce){.tag-spin{animation:none}}:root{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#242424;background:#fff;font-synthesis:none;line-height:1.5;--muted: #626262;--border: #dedede}*{box-sizing:border-box}body,h1,h2,h3,p{margin:0}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer;color:inherit}button:disabled{cursor:default;opacity:.45}a{color:inherit}button,a{touch-action:manipulation}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:2px solid #305db0;outline-offset:3px}svg{flex-shrink:0}.skip-link{position:absolute;left:16px;top:-60px;z-index:50;padding:10px 16px;background:#fff;border:1px solid #222}.skip-link:focus{top:10px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.site-header,main,footer{max-width:1168px;margin:0 auto;padding-left:24px;padding-right:24px}.site-header{height:76px;display:flex;align-items:center;justify-content:space-between;gap:24px;border-bottom:1px solid var(--border)}.library-loading{display:flex;align-items:center;gap:10px;color:var(--muted);font-size:14px;margin-bottom:20px}.gallery-section,.generator-section{margin-bottom:48px}.wordmark{display:inline-flex;align-items:center;gap:9px;font-size:23px;font-weight:650;letter-spacing:-.6px;text-decoration:none;white-space:nowrap}.wordmark:before{content:"";width:27px;height:27px;flex:0 0 27px;background:url(/favicon.svg) center / contain no-repeat}.site-header nav{display:flex;align-items:center;gap:24px}.nav-link{border:0;background:none;text-decoration:none;padding:9px 0;font-size:14px;color:var(--muted)}.nav-link.active{color:#222;box-shadow:0 1px #222}.nav-link:hover{color:#111}.saved-count{color:var(--muted);margin-left:4px;font-size:12px}.intro{padding:40px 0 34px}.intro h1{font-size:clamp(29px,4vw,38px);line-height:1.2;font-weight:600;letter-spacing:-1px}.intro p{font-size:15px;color:var(--muted);line-height:1.7;margin-top:13px;max-width:680px}.gallery-section{scroll-margin-top:16px;outline:none}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:20px}.section-heading h2{font-size:18px;font-weight:600}.manage-tags-link{font-size:13px;color:var(--muted);text-underline-offset:3px}.filter-toolbar{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;padding:18px 0;border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.filter-toolbar label{display:flex;flex-direction:column;gap:6px;font-size:12px;color:var(--muted)}.filter-toolbar select{color:#333;background:#fff;border:1px solid #bcbcbc;border-radius:4px;min-width:158px;padding:10px 28px 10px 10px;font-size:14px;height:42px}.primary-button,.secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:9px;border:1px solid #252525;border-radius:4px;padding:10px 16px;min-height:42px;font-size:14px;font-weight:500;background:#252525;color:#fff}.primary-button:hover:not(:disabled){background:#444}.secondary-button{border-color:#bcbcbc;background:#fff;color:#333}.secondary-button:hover:not(:disabled){background:#f4f4f4}.shuffle-button{margin-left:auto;white-space:nowrap}.results-line{min-height:36px;display:flex;align-items:center;justify-content:flex-end;color:var(--muted);font-size:13px}.native-image .portrait-open{display:grid;place-items:center}.native-image .portrait-open img{width:128px;height:128px;max-width:100%;object-fit:contain}.preview-image.native-preview{display:grid;place-items:center;min-height:270px}.preview-image.native-preview>img{width:128px;height:128px;object-fit:contain}.clear-filters{background:none;border:0;text-decoration:underline;text-underline-offset:3px;padding:6px 0;font-size:13px}.portrait-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 20px}.portrait-card{min-width:0}.portrait-image-wrap{position:relative;aspect-ratio:1;overflow:hidden;border-radius:4px;background:#f1f1f1}.portrait-open{display:block;width:100%;height:100%;padding:0;border:0;background:none}.portrait-open img{width:100%;height:100%;object-fit:cover;display:block}.favorite-button{position:absolute;top:10px;right:10px;height:34px;width:34px;display:flex;align-items:center;justify-content:center;border:1px solid #d9d9d9;border-radius:4px;background:#fff;color:#555}.favorite-button:hover{background:#f4f4f4}.favorite-button.is-saved{color:#9d3535;border-color:#e2c8c8}.portrait-caption{display:flex;align-items:center;justify-content:space-between;gap:6px;padding-top:11px}.portrait-caption>div{display:flex;flex-direction:column;gap:3px}.portrait-number{font-size:14px;font-weight:500}.portrait-detail{font-size:12px;color:var(--muted)}.card-download{display:flex;align-items:center;justify-content:center;width:34px;height:36px;border:0;border-radius:4px;background:transparent;color:#4d4d4d}.card-download:hover{background:#f0f0f0}.image-failed{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;color:var(--muted);font-size:13px;height:100%;min-height:180px;padding:20px}.gallery-bottom{display:flex;justify-content:flex-end;align-items:center;gap:20px;margin-top:26px;color:var(--muted);font-size:12px}.gallery-bottom button{flex-shrink:0}.empty-state{text-align:center;padding:65px 20px;border:1px solid var(--border);border-radius:4px;display:flex;flex-direction:column;align-items:center;color:var(--muted)}.empty-state h3{font-size:19px;font-weight:500;color:#333;margin:16px 0 8px}.empty-state p{font-size:14px;margin-bottom:24px}.skeleton-card div{aspect-ratio:1;border-radius:4px;background:#f0f0f0}.skeleton-card span{display:block;width:60%;height:18px;background:#f0f0f0;margin-top:12px}.faq-section{max-width:760px;margin:58px 0 48px}.faq-section h2{font-size:21px;font-weight:600;margin-bottom:20px;letter-spacing:-.3px}.faq-section details{border-top:1px solid var(--border)}.faq-section details:last-of-type{border-bottom:1px solid var(--border)}.faq-section summary{padding:17px 0;font-size:14px;font-weight:500;cursor:pointer}.faq-section details p{color:var(--muted);font-size:14px;line-height:1.8;padding:0 18px 20px 0}.faq-links{font-size:13px;color:var(--muted);margin-top:20px}.faq-links a{text-underline-offset:3px}footer{border-top:1px solid var(--border);padding-top:24px;padding-bottom:28px;display:flex;align-items:center;justify-content:flex-end;gap:20px;color:var(--muted);font-size:12px}footer nav{display:flex;gap:22px}footer a{text-decoration:none}footer a:hover{text-decoration:underline}dialog{padding:0;border:1px solid #ddd;border-radius:6px;background:#fff;color:#262626;max-height:calc(100dvh - 40px);box-shadow:0 16px 60px #0003}dialog::backdrop{background:#0008}.portrait-dialog{width:min(880px,calc(100% - 40px))}.preview-layout{position:relative;display:grid;grid-template-columns:1.1fr 1fr}.dialog-close{position:absolute;right:12px;top:12px;width:34px;height:34px;border:1px solid #ddd;border-radius:4px;background:#fff;color:#555;display:flex;align-items:center;justify-content:center;z-index:2}.dialog-close:hover{background:#f1f1f1}.preview-image{position:relative;background:#f3f3f3}.preview-image>img{width:100%;height:100%;object-fit:cover;display:block;max-height:640px}.preview-navigation{position:absolute;bottom:16px;left:16px;right:16px;display:flex;justify-content:space-between}.preview-navigation button{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid #ddd;border-radius:4px;background:#fff;color:#333}.preview-info{padding:43px 30px 26px}.preview-info h2{font-size:25px;letter-spacing:-.5px;font-weight:600;margin-bottom:5px}.preview-info>p{font-size:13px;color:var(--muted);line-height:1.7}.portrait-properties{margin:23px 0;font-size:13px}.portrait-properties div{display:flex;justify-content:space-between;gap:14px;margin:8px 0}.portrait-properties dt{color:var(--muted)}.portrait-properties dd{margin:0}.preview-info .preview-edit-link{margin:-8px 0 20px;text-underline-offset:3px}.download-options h3{font-size:14px;font-weight:600;margin-bottom:10px}.download-option{border:1px solid #bcbcbc;background:#fff;color:#333;border-radius:4px;width:100%;padding:11px 14px;display:flex;align-items:center;justify-content:space-between;text-align:left;margin-bottom:10px}.download-option.hd-download{background:#252525;border-color:#252525;color:#fff}.download-option:hover:not(:disabled){outline:1px solid #777}.download-option>span{display:flex;flex-direction:column;gap:3px}.download-option strong{font-size:14px;font-weight:500}.download-option small{font-size:12px}.download-note{font-size:12px;color:var(--muted);margin-top:10px}.save-preview{width:100%;display:flex;align-items:center;justify-content:center;gap:8px;background:none;border:1px solid #bcbcbc;border-radius:4px;font-size:13px;padding:12px;margin:21px 0 16px}.save-preview:hover{background:#f5f5f5}.save-preview.is-saved{color:#9d3535}.preview-info .preview-disclosure{font-size:12px}.preview-disclosure a{text-underline-offset:2px}.error-message{color:#a22e21;font-size:13px;margin-top:12px}.toast{position:fixed;left:50%;bottom:24px;transform:translate(-50%);background:#252525;color:#fff;padding:12px 18px;font-size:13px;display:none;align-items:center;gap:9px;border-radius:4px;z-index:30;max-width:calc(100vw - 32px);white-space:nowrap}.toast.visible{display:flex}.spin{animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:900px){.filter-toolbar{gap:10px}.filter-toolbar select{min-width:130px;font-size:13px}.shuffle-button{padding:10px 12px;font-size:13px}.portrait-grid{gap:24px 15px}.portrait-detail{font-size:11px}}@media(max-width:680px){.site-header,main,footer{padding-left:18px;padding-right:18px}.site-header{height:66px}.wordmark{font-size:21px}.site-header nav{gap:18px}.nav-link{font-size:13px}.intro{padding:30px 0 27px}.intro h1{font-size:29px;letter-spacing:-.7px}.intro p{font-size:14px;margin-top:12px}.desktop-break{display:none}.section-heading{align-items:center;gap:4px;margin-bottom:16px}.section-heading h2{font-size:17px}.section-heading>span{font-size:12px}.filter-toolbar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px;padding:16px 0}.filter-toolbar label{min-width:0}.filter-toolbar label:last-of-type{grid-column:1 / -1}.filter-toolbar .shuffle-button{grid-column:1 / -1}.filter-toolbar select{width:100%;min-width:0;font-size:14px}.shuffle-button{margin:0;padding:10px;font-size:13px}.shuffle-button svg{width:15px}.results-line{min-height:30px;font-size:12px}.portrait-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:23px 13px}.favorite-button{width:32px;height:32px;top:8px;right:8px}.portrait-caption{align-items:flex-start;gap:2px}.portrait-number{font-size:13px}.portrait-detail{font-size:11px}.card-download{width:27px;height:32px;padding:4px}.gallery-bottom{align-items:flex-start;font-size:11px;gap:12px;margin-top:23px}.gallery-bottom .secondary-button{min-height:38px;font-size:12px;padding:8px 10px;gap:5px}.gallery-bottom>span{text-align:right}.faq-section{margin:42px 0 35px}.faq-section h2{font-size:19px}.faq-section summary{font-size:14px;line-height:1.6}footer{flex-direction:column;align-items:flex-start;gap:13px;font-size:12px}.portrait-dialog{width:min(440px,calc(100% - 24px));max-height:calc(100dvh - 24px)}.preview-layout{grid-template-columns:1fr}.preview-image{aspect-ratio:1}.preview-image>img{height:100%;max-height:none}.preview-info{padding:24px}.preview-info h2{font-size:23px}.toast{font-size:12px;white-space:normal;min-width:230px;justify-content:center;bottom:16px}}@media(max-width:560px){.site-header{height:auto;min-height:66px;flex-direction:column;align-items:flex-start;gap:10px;padding-top:17px;padding-bottom:12px}.site-header nav{gap:24px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
