.photo-feed-page{touch-action:pan-y;width:min(980px,100%);margin:0 auto;padding:.55rem 1rem 3rem}.photo-feed-section,.photo-preview-card{background:#fffffff0;border:1px solid #0f172a1a;border-radius:8px;box-shadow:0 18px 42px #0f172a1a}.photo-feed-toolbar span,.photo-preview-head p,.photo-upload-head p{color:#0f766e;text-transform:uppercase;letter-spacing:.08em;align-items:center;gap:.4rem;margin:0;font-size:.72rem;font-weight:900;display:inline-flex}.photo-feed-toolbar h2,.photo-preview-head h2,.photo-upload-head h2{color:#101828;letter-spacing:0;margin:.18rem 0 0;font-size:clamp(1.4rem,2.2vw,2rem);font-weight:950;line-height:1.05}.photo-feed-status{color:#667085;margin:.3rem 0 0;font-size:.86rem;font-weight:750}.photo-toolbar-upload,.photo-like-button,.photo-empty-state button,.photo-upload-actions button,.photo-edit-panel button{color:#101828;white-space:nowrap;cursor:pointer;background:#fff;border:1px solid #0f172a1a;border-radius:8px;justify-content:center;align-items:center;gap:.45rem;min-height:2.45rem;padding:0 .85rem;font-size:.82rem;font-weight:950;text-decoration:none;display:inline-flex}.photo-toolbar-upload,.photo-upload-actions button,.photo-edit-panel button:last-child{color:#fff;background:#101828;border-color:#101828}.photo-toolbar-upload:disabled,.photo-like-button:disabled,.photo-empty-state button:disabled,.photo-upload-actions button:disabled,.photo-edit-panel button:disabled{cursor:not-allowed;opacity:.55}.photo-feed-section{padding-bottom:1rem}.photo-feed-toolbar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:1rem;padding:1rem;display:grid}.photo-feed-toolbar>div{min-width:0}.photo-preview-head{justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.photo-feed-status{min-height:1.3rem;padding:0 1rem .9rem}.photo-grid{gap:1.15rem;width:min(640px,100%);margin:0 auto;padding:0 1rem;display:grid}.photo-post{background:#fff;border:1px solid #0f172a1a;border-radius:8px;animation:.36s both photo-post-in;overflow:hidden;box-shadow:0 16px 38px #0f172a14}.photo-post-topline{justify-content:space-between;align-items:center;gap:.75rem;padding:.85rem .95rem;display:flex}.photo-post-author{grid-template-columns:auto minmax(0,1fr);align-items:center;gap:.65rem;min-width:0;display:grid}.photo-post-author>span{color:#0f766e;background:#ccfbf1;border-radius:999px;place-items:center;width:2.15rem;height:2.15rem;font-size:.82rem;font-weight:950;display:grid}.photo-post-author p{min-width:0;margin:0}.photo-post-author strong,.photo-post-author em{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.photo-post-author strong{color:#101828;font-size:.92rem;font-weight:950}.photo-post-author em{color:#667085;font-size:.76rem;font-style:normal;font-weight:700}.photo-owner-actions{align-items:center;gap:.35rem;display:inline-flex}.photo-owner-actions button,.photo-upload-head>button,.photo-detail-close,.photo-clear-button{color:#101828;cursor:pointer;background:#fff;border:1px solid #0f172a1a;border-radius:8px;place-items:center;width:2.25rem;height:2.25rem;display:grid}.photo-post-media{aspect-ratio:1/1.08;color:inherit;cursor:zoom-in;background:#0f172a;border:0;place-items:center;padding:0;text-decoration:none;display:grid;overflow:hidden}.photo-post-media img{object-fit:cover;width:100%;height:100%}.photo-post-body{gap:.7rem;padding:.85rem .95rem 1rem;display:grid}.photo-post-actions{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.photo-post-actions>a{color:#667085;font-size:.78rem;font-weight:850;text-decoration:none}.photo-like-button{width:fit-content;min-height:2.35rem}.photo-like-button.is-liked{color:#be123c;background:#fff1f2;border-color:#e11d483d}.photo-like-button.is-liked svg{fill:currentColor}.photo-post-caption{color:#344054;margin:0;font-size:.93rem;font-weight:650;line-height:1.5}.photo-post-caption strong{color:#101828;font-weight:950}.photo-edit-panel{gap:.65rem;display:grid}.photo-edit-panel textarea,.photo-upload-caption textarea{resize:vertical;color:#101828;width:100%;font:inherit;background:#fff;border:1px solid #0f172a24;border-radius:8px;outline:none;padding:.75rem;font-size:.92rem;line-height:1.5}.photo-edit-panel textarea:focus,.photo-upload-caption textarea:focus{border-color:#14b8a6c2;box-shadow:0 0 0 3px #14b8a629}.photo-edit-panel>div{justify-content:flex-end;gap:.55rem;display:flex}.photo-post-skeleton,.photo-empty-state{background:linear-gradient(90deg,#f2f4f7,#fff,#f2f4f7) 0 0/200% 100%;border:1px solid #0f172a1a;border-radius:8px;min-height:420px;animation:1.2s ease-in-out infinite photo-skeleton}.photo-empty-state{color:#667085;text-align:center;background:#fff;grid-column:1/-1;place-items:center;gap:.55rem;min-height:280px;animation:none;display:grid}.photo-empty-state strong{color:#101828;font-size:1.05rem;font-weight:950}.photo-empty-state span{max-width:20rem;font-size:.9rem;font-weight:700}.photo-load-more{color:#667085;justify-content:center;align-items:center;gap:.45rem;min-height:3.4rem;font-size:.82rem;font-weight:850;display:flex}.photo-upload-modal{z-index:80;place-items:center;padding:1rem;display:grid;position:fixed;inset:0}.photo-upload-backdrop{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#0f172a9e;position:absolute;inset:0}.photo-upload-sheet{z-index:1;background:#fff;border:1px solid #ffffff85;border-radius:8px;gap:.9rem;width:min(560px,100%);max-height:min(92vh,760px);padding:1rem;animation:.18s both photo-modal-in;display:grid;position:relative;overflow:auto;box-shadow:0 28px 70px #0f172a52}.photo-detail-modal{z-index:90;place-items:center;padding:clamp(.75rem,2vw,1.25rem);display:grid;position:fixed;inset:0}.photo-detail-backdrop{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);cursor:zoom-out;background:#0f172ab8;border:0;position:absolute;inset:0}.photo-detail-sheet{z-index:1;background:#fff;border:1px solid #ffffff6b;border-radius:8px;grid-template-columns:minmax(0,1.25fr) minmax(260px,.55fr);width:min(1120px,100%);max-height:min(92vh,820px);animation:.18s both photo-modal-in;display:grid;position:relative;overflow:hidden;box-shadow:0 30px 90px #0f172a61}.photo-detail-close{z-index:3;position:absolute;top:.85rem;right:.85rem;box-shadow:0 18px 42px #0f172a38}.photo-detail-image{background:#0f172a;place-items:center;min-height:min(76vh,760px);display:grid}.photo-detail-image img{object-fit:contain;width:100%;height:100%;max-height:min(92vh,820px)}.photo-detail-meta{align-content:start;gap:1rem;padding:1.1rem;display:grid}.photo-detail-like{color:#344054;background:#f8fafc;border:1px solid #0f172a1a;border-radius:999px;align-items:center;gap:.35rem;width:fit-content;padding:.4rem .65rem;font-size:.82rem;font-weight:900;display:inline-flex}.photo-detail-caption{color:#344054;white-space:pre-wrap;font-size:.94rem;font-weight:750;line-height:1.45}.photo-detail-loading{color:#475467;place-items:center;gap:.65rem;min-height:320px;padding:2rem;font-weight:900;display:grid}.photo-upload-head{justify-content:space-between;align-items:center;gap:1rem;display:flex}.photo-upload-dropzone{cursor:pointer;background:linear-gradient(135deg,#14b8a61a,#fb718514),#f8fafc;border:1px dashed #0f172a38;border-radius:8px;place-items:center;min-height:280px;display:grid;position:relative;overflow:hidden}.photo-upload-dropzone.has-preview{background:#0f172a;border-style:solid}.photo-upload-dropzone input{opacity:0;cursor:pointer;position:absolute;inset:0}.photo-upload-dropzone img{object-fit:contain;width:100%;height:100%}.photo-upload-dropzone>span{color:#475467;text-align:center;justify-items:center;gap:.45rem;display:grid}.photo-upload-dropzone strong{color:#101828;font-size:1rem;font-weight:950}.photo-upload-dropzone em{max-width:18rem;font-size:.82rem;font-style:normal;font-weight:700}.photo-clear-button{z-index:2;position:absolute;top:.75rem;right:.75rem;box-shadow:0 10px 30px #0f172a40}.photo-upload-meta{flex-wrap:wrap;gap:.5rem;display:flex}.photo-upload-meta span{color:#027a48;background:#ecfdf3;border-radius:999px;align-items:center;min-height:1.9rem;padding:0 .68rem;font-size:.74rem;font-weight:900;display:inline-flex}.photo-upload-meta span:nth-child(2){color:#b45309;background:#fff7ed}.photo-upload-meta span:nth-child(3){color:#1d4ed8;background:#eff6ff}.photo-upload-caption{gap:.4rem;display:grid}.photo-upload-caption>span{color:#344054;text-transform:uppercase;letter-spacing:.08em;font-size:.74rem;font-weight:950}.photo-upload-actions{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;display:grid}.photo-upload-actions p{color:#667085;min-height:1.35rem;margin:0;font-size:.84rem;font-weight:750}.photo-upload-signin{color:#667085;text-align:center;background:#f8fafc;border:1px solid #0f172a1a;border-radius:8px;justify-items:center;gap:.65rem;min-height:220px;padding:1rem;display:grid}.photo-upload-signin strong{color:#101828;font-size:1.05rem;font-weight:950}.photo-upload-signin a{color:#fff;background:#101828;border-radius:8px;align-items:center;min-height:2.4rem;padding:0 .9rem;font-size:.82rem;font-weight:950;text-decoration:none;display:inline-flex}.photo-preview-card{min-width:0;overflow:hidden}.photo-preview-card.is-mobile-home,.photo-preview-card.is-m-home{box-shadow:0 16px 36px #0f172a1f}.photo-preview-card.is-desktop-home{background:#ffffffe6}.photo-preview-card.is-desktop-home .photo-preview-head{padding:.72rem .82rem .5rem}.photo-preview-card.is-desktop-home .photo-preview-head h2{font-size:.98rem}.photo-preview-card.is-desktop-home .photo-preview-head a{width:2rem;height:2rem}.photo-preview-card.is-desktop-home .photo-preview-mosaic{gap:.38rem;padding:0 .82rem .82rem}.photo-preview-card.has-1,.photo-preview-card.has-2{align-self:start}.photo-preview-head{padding-bottom:.65rem}.photo-preview-head h2{font-size:1.15rem}.photo-preview-head a{color:#fff;background:#101828;border:1px solid #0f172a1a;border-radius:8px;place-items:center;width:2.35rem;height:2.35rem;display:grid}.photo-preview-mosaic{grid-template-columns:1.1fr .9fr .9fr;grid-auto-rows:minmax(92px,152px);gap:.45rem;padding:0 1rem 1rem;text-decoration:none;display:grid}.photo-preview-tile{min-width:0;min-height:92px;color:inherit;cursor:zoom-in;text-decoration:none;display:grid}.photo-preview-mosaic.has-1{grid-template-columns:1fr;grid-auto-rows:minmax(220px,330px)}.photo-preview-mosaic.has-2{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:minmax(190px,260px)}.photo-preview-mosaic.has-3{grid-template-columns:1.08fr .92fr;grid-auto-rows:minmax(112px,140px)}.photo-preview-card.is-desktop-home .photo-preview-mosaic.has-1{grid-auto-rows:clamp(150px,14vw,210px)}.photo-preview-card.is-desktop-home .photo-preview-mosaic.has-2{grid-auto-rows:clamp(132px,12vw,170px)}.photo-preview-card.is-desktop-home .photo-preview-mosaic.has-3{grid-auto-rows:clamp(82px,7vw,110px)}.photo-preview-card.is-m-home .photo-preview-mosaic.has-2,.photo-preview-card.is-mobile-home .photo-preview-mosaic.has-2{grid-auto-rows:minmax(150px,210px)}.photo-preview-mosaic figure,.photo-preview-mosaic span{background:#e5e7eb;border-radius:8px;min-width:0;min-height:92px;position:relative;overflow:hidden}.photo-preview-mosaic figure{height:100%;margin:0}.photo-preview-mosaic:not(.has-1):not(.has-2) .photo-preview-tile.is-featured{grid-row:span 2}.photo-preview-mosaic img{object-fit:cover;width:100%;height:100%;transition:transform .22s}.photo-preview-tile:hover img{transform:scale(1.03)}.photo-preview-mosaic figcaption{inset-inline:0;color:#fff;background:linear-gradient(#0000,#0f172ac7);justify-content:space-between;align-items:center;gap:.5rem;padding:1.35rem .55rem .5rem;font-size:.7rem;font-weight:900;display:flex;position:absolute;bottom:0}.photo-preview-mosaic figcaption span{text-overflow:ellipsis;white-space:nowrap;background:0 0;min-height:0;overflow:hidden}.photo-preview-mosaic figcaption em{align-items:center;gap:.2rem;font-style:normal;display:inline-flex}.photo-preview-mosaic.is-loading span{background:linear-gradient(90deg,#f2f4f7,#fff,#f2f4f7) 0 0/200% 100%;animation:1.2s ease-in-out infinite photo-skeleton}.photo-preview-mosaic.is-loading span:first-child{grid-row:span 2}.photo-preview-empty{color:#667085;justify-items:start;gap:.5rem;padding:0 1rem 1rem;display:grid}.photo-preview-empty strong{color:#344054;font-size:.9rem;font-weight:850}.photo-preview-empty a{color:#0f766e;font-size:.78rem;font-weight:950;text-decoration:none}@keyframes photo-skeleton{0%{background-position:0 0}to{background-position:-200% 0}}@keyframes photo-post-in{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes photo-modal-in{0%{opacity:0;transform:translateY(16px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (prefers-reduced-motion:reduce){.photo-post,.photo-upload-sheet,.photo-post-skeleton,.photo-preview-mosaic.is-loading span{animation:none}.photo-preview-mosaic img{transition:none}}@media (max-width:640px){.photo-feed-page{padding:.35rem .6rem 2.5rem}.photo-feed-toolbar{gap:.75rem}.photo-feed-toolbar h2{font-size:1.28rem}.photo-grid{gap:.85rem;padding:0 .75rem}.photo-post-media{aspect-ratio:1/1.12}.photo-post-skeleton{min-height:360px}.photo-upload-modal{align-items:end;padding:.65rem}.photo-detail-modal{align-items:stretch;padding:0}.photo-detail-sheet{width:100%;height:100dvh;min-height:100vh;max-height:none;box-shadow:none;border:0;border-radius:0;grid-template-columns:1fr;display:block;overflow:auto}.photo-detail-image{box-sizing:border-box;justify-content:center;align-items:flex-start;height:auto;min-height:0;padding-top:0;display:flex}.photo-detail-image img{width:auto;max-width:100%;height:auto;max-height:72vh;display:block}.photo-detail-close{top:calc(.72rem + env(safe-area-inset-top));right:calc(.72rem + env(safe-area-inset-right));background:#fffffff0}.photo-detail-meta{min-height:0;padding:1rem 1rem calc(1.35rem + env(safe-area-inset-bottom))}.photo-detail-backdrop{-webkit-backdrop-filter:none;backdrop-filter:none;background:#0f172a}.photo-upload-sheet{width:100%;max-height:calc(94vh - env(safe-area-inset-bottom));padding:.9rem}.photo-upload-dropzone{min-height:245px}.photo-upload-actions{grid-template-columns:1fr}.photo-upload-actions button{width:100%}.photo-preview-card.is-mobile-home,.photo-preview-card.is-m-home{overflow:visible}.photo-preview-card.is-mobile-home .photo-preview-mosaic,.photo-preview-card.is-m-home .photo-preview-mosaic{padding-inline:.42rem;gap:.38rem;width:calc(100% + min(1.16rem,5vw));margin-inline:calc(-1*min(.58rem,2.5vw));padding-bottom:.42rem}.photo-preview-mosaic{grid-auto-rows:minmax(84px,1fr)}}
