.photo-tools{display:flex;align-items:center;gap:14px;margin:8px 0 12px;color:var(--muted,#777);font-size:12px}.photo-tools #photo-add{display:inline-flex;gap:7px;align-items:center;cursor:pointer;min-height:40px;padding:4px 0;color:inherit}.photo-tools svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.35}.photo-tools[aria-busy=true] #photo-add{pointer-events:none;opacity:.5}.entry-media{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-width:600px;margin:18px 0 8px}.entry-media[hidden]{display:none}.entry-media[data-media-list]:not([data-media-list*=',']){grid-template-columns:minmax(0,320px)}.photo-tile{position:relative;min-width:0}.photo-open{display:block;position:relative;width:100%;padding:0;aspect-ratio:1;border:0;background:rgba(90,90,80,.055);overflow:hidden;border-radius:8px;box-shadow:0 0 0 .5px var(--hair);cursor:zoom-in}.photo-open img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .2s}.photo-open.is-loaded img{opacity:1}.photo-loading{position:absolute;inset:0;display:grid;place-content:center;font-size:12px;color:var(--muted,#777)}.photo-open.is-loaded .photo-loading{display:none}.live-badge{position:absolute;left:8px;bottom:8px;padding:3px 5px;font-size:9px;letter-spacing:.08em;background:#0007;color:#fff;border-radius:3px}.photo-remove{position:absolute;right:5px;top:5px;width:28px;height:28px;min-width:0;min-height:0;padding:0;display:grid;place-items:center;background:#fffE;color:#222;border:0;border-radius:50%;font-size:18px;line-height:1;box-shadow:0 1px 5px #0002}.photo-remove::before{content:"";position:absolute;inset:-8px;border-radius:50%}.draft-media{max-width:400px;margin-top:8px}.draft-media[data-media-list]:not([data-media-list*=',']){grid-template-columns:120px}.entry-media[data-media-list]:not([data-media-list*=',']) .photo-open{aspect-ratio:clamp(.75,var(--photo-ratio,1),1.5)}
.entry-media[data-media-list]:not([data-media-list*=',']) .photo-open img{object-position:center top}
.photo-viewer{position:fixed;width:min(calc(100vw - 32px),1100px);max-width:1100px;height:min(calc(100dvh - 32px),960px);max-height:calc(100dvh - 32px);padding:0;margin:auto;border-radius:16px;background:var(--paper,#fff);border:0;overflow:hidden}
.photo-viewer[open]{display:flex;flex-direction:column;gap:0}
.photo-viewer::backdrop{background:#151b2880}
.photo-viewer-bar{position:absolute;z-index:3;top:8px;right:8px}
#photo-viewer-title{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#photo-viewer-title:focus{outline:none}
.photo-icon{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;min-height:44px;padding:10px;border:0;border-radius:50%;background:transparent;color:var(--ink);cursor:pointer}
.photo-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.photo-icon:focus-visible{outline:2px solid var(--sky,#2f62ff);outline-offset:-3px}
.photo-viewer-bar .photo-icon{background:#ffffffe8;backdrop-filter:blur(8px)}
.photo-stage{position:relative;flex:1;min-height:0;overflow:hidden;background:transparent;touch-action:none;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none;cursor:zoom-in}
.photo-stage.is-zoomed{cursor:grab}.photo-stage.is-zoomed:active{cursor:grabbing}
.photo-stage img{position:absolute;left:50%;top:50%;max-width:none;max-height:none;min-width:0;object-fit:contain;transform:translate(-50%,-50%);transform-origin:center;pointer-events:none;box-shadow:0 0 0 .5px var(--hair),0 2px 8px #0d153008}
.photo-stage video{display:block;width:100%;height:100%;object-fit:contain}
.photo-viewer [hidden]{display:none}
.photo-zoom-tools,.photo-motion-tools{display:flex;align-items:center;gap:0}
.photo-motion-tools:empty{display:none}
.photo-viewer-actions{display:flex;flex:none;justify-content:space-between;align-items:center;min-height:56px;padding:4px;gap:0}
.photo-viewer-actions:has(.photo-motion-tools>button:not([hidden])) .photo-zoom-tools{margin:auto}
.photo-motion-tools:not(:has(button:not([hidden]))){width:44px}
.photo-status{position:absolute;z-index:2;left:50%;bottom:68px;transform:translateX(-50%);max-width:calc(100% - 32px);margin:0;padding:6px 10px;background:#fffffff0;border-radius:8px;font-size:12px;text-align:center;pointer-events:none}
.photo-status:empty{display:none}
#photo-play[aria-pressed=false] .pause-icon,#photo-play[aria-pressed=true] .play-icon,#photo-sound[aria-pressed=false] .sound-wave,#photo-sound[aria-pressed=true] .sound-off{display:none}
.history-item .entry-media{max-width:360px}.reader-neighbor .entry-media{max-width:360px}.conflict-copy .entry-media{grid-template-columns:repeat(3,minmax(0,1fr))}@media(max-width:759px){.entry-media{gap:5px}.photo-viewer{inset:0;width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0}.photo-viewer-bar{top:calc(4px + env(safe-area-inset-top,0px));right:calc(4px + env(safe-area-inset-right,0px))}.photo-viewer-actions{padding:4px max(4px,env(safe-area-inset-right,0px)) calc(4px + env(safe-area-inset-bottom,0px)) max(4px,env(safe-area-inset-left,0px))}.photo-status{bottom:calc(68px + env(safe-area-inset-bottom,0px))}.photo-tools{margin-bottom:8px}.photo-remove{width:28px;height:28px}}
@media(prefers-reduced-motion:reduce){.photo-open img{transition:none}}

#photo-fit[data-target=width] .fit-whole,#photo-fit:not([data-target=width]) .fit-width{display:none}
