.ft-photo-site{--ft-ink:#28231f;--ft-muted:#675e56;--ft-line:#e9dfd3;--ft-surface:#eee5db;--ft-accent:#c34416;background:#faf7f2}
.ft-photo-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;align-items:start}
.ft-photo-card{border:1px solid var(--ft-line);border-radius:16px;background:#fff;overflow:hidden}
.ft-photo-card-image{display:flex;aspect-ratio:1.35;align-items:center;justify-content:center;background:var(--ft-surface);overflow:hidden}
.ft-photo-card-image img{width:100%;height:100%;object-fit:cover}
.ft-photo-card-body{padding:15px;overflow-wrap:anywhere}
.ft-photo-author{display:flex;gap:10px;align-items:center}
.ft-photo-author a{font-size:17px;font-weight:700;color:var(--ft-ink);line-height:1.4;min-width:0}
.ft-photo-avatar{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 36px;width:36px;height:36px;border-radius:50%;background:var(--ft-line);color:var(--ft-muted);overflow:hidden}
.ft-photo-avatar svg{width:50%;height:50%}
.ft-photo-avatar img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ft-photo-avatar img[hidden]{display:none}
.ft-photo-meta{font-size:13px;line-height:1.4;color:var(--ft-muted);margin:6px 0 0}
.ft-photo-card-caption{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;font-size:16px;line-height:22px;color:var(--ft-ink);margin:12px 0 0;white-space:pre-line}
.ft-photo-place,.ft-photo-hint{font-size:13px;color:var(--ft-muted)}
.ft-photo-detail{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:32px;align-items:start}
.ft-photo-frame{background:var(--ft-surface);border:1px solid var(--ft-line);border-radius:16px;overflow:hidden;display:flex;justify-content:center;align-items:center}
.ft-photo-frame img{max-width:100%;height:auto;max-height:850px;object-fit:contain}
.ft-photo-info{background:#fff;border:1px solid var(--ft-line);border-radius:16px;padding:24px;overflow-wrap:anywhere}
.ft-photo-info .ft-photo-avatar{width:44px;height:44px;flex-basis:44px}
.ft-photo-info .ft-photo-author a{font-size:20px;font-weight:600}
.ft-photo-caption{white-space:normal;font-size:16px;line-height:22px;margin-top:12px;color:var(--ft-ink)}
.ft-photo-meta .ft-photo-map{color:var(--ft-muted);text-decoration:underline;text-underline-offset:2px}
.ft-photo-meta .ft-photo-map:hover,.ft-photo-meta .ft-photo-map:focus-visible{color:var(--ft-accent)}
.ft-photo-share{display:block;font-size:13px;font-weight:600}
.ft-photo-share input{display:block;width:100%;min-width:0;margin-top:8px;padding:10px;border:1px solid var(--ft-line);border-radius:10px;font:inherit;background:var(--ft-surface);color:var(--ft-ink)}
@media(max-width:950px){.ft-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ft-photo-detail{gap:24px;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}
@media(max-width:650px){.ft-photo-grid,.ft-photo-detail{grid-template-columns:1fr}.ft-photo-grid{gap:16px}.ft-photo-info{padding:20px}}
