html,body{overscroll-behavior:none;touch-action:manipulation}
body{overflow:hidden}
.feed{overflow-y:auto;scroll-snap-type:y mandatory;overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch}
.feed-card{height:calc(100svh - 66px - env(safe-area-inset-top));min-height:0;overflow:hidden;scroll-snap-align:start;scroll-snap-stop:always;contain:layout paint}
.gallery-card{background:var(--paper)}
.gallery{height:100%;align-items:stretch;overflow-x:auto;overflow-y:hidden;scroll-snap-type:x mandatory;touch-action:pan-x pan-y}
.gallery-item{appearance:none;position:relative;flex:0 0 100%;width:100%;height:100%;min-height:0;padding:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));display:grid;place-items:center;border:0;background:transparent;scroll-snap-align:center;scroll-snap-stop:always;content-visibility:auto;contain-intrinsic-size:100vw calc(100svh - 66px)}
.gallery-item img{position:absolute;inset:8px max(8px,env(safe-area-inset-right)) calc(8px + env(safe-area-inset-bottom)) max(8px,env(safe-area-inset-left));display:block;width:auto;height:auto;max-width:calc(100% - 16px);max-height:calc(100% - 16px - env(safe-area-inset-bottom));margin:auto;border-radius:16px;background:#ebe8df;object-fit:contain;object-position:center;box-shadow:0 8px 28px rgba(55,45,30,.09);user-select:none;-webkit-user-drag:none}
.image-status{position:absolute;z-index:3;left:50%;top:50%;min-width:132px;padding:13px 15px;display:grid;justify-items:center;gap:9px;border:1px solid rgba(255,255,255,.8);border-radius:17px;background:rgba(255,255,255,.9);box-shadow:0 10px 30px rgba(49,39,24,.14);color:#625b52;font-size:12px;font-weight:750;pointer-events:none;transform:translate(-50%,-50%);transition:opacity .2s,transform .2s;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.image-status i{width:25px;height:25px;border:3px solid rgba(157,98,0,.16);border-top-color:var(--deep);border-radius:50%;animation:spin .72s linear infinite}
.image-ready>.image-status{opacity:0;transform:translate(-50%,-50%) scale(.94)}
.image-error>.image-status{pointer-events:auto;color:#7b3d24}
.image-error>.image-status i{animation:none;border-color:#c8663f;position:relative}
.image-error>.image-status i::after{content:'!';position:absolute;inset:0;display:grid;place-items:center;font-style:normal;font-size:15px;font-weight:900}
.viewer-scroll{position:relative}
.viewer-scroll .image-status{background:rgba(30,30,30,.74);border-color:rgba(255,255,255,.18);box-shadow:none;color:#fff}
.swipe-guide{position:absolute;z-index:8;left:50%;bottom:calc(52px + env(safe-area-inset-bottom));display:flex;align-items:center;gap:8px;padding:9px 13px;border:1px solid rgba(255,255,255,.78);border-radius:999px;background:rgba(41,33,22,.72);box-shadow:0 8px 24px rgba(30,24,17,.22);color:#fff;font-size:12px;font-weight:750;white-space:nowrap;pointer-events:none;opacity:0;transform:translateX(-50%)}
.feed-card.is-current .swipe-guide{animation:guide-in-out 4.2s ease both}
.swipe-guide i{font-style:normal;font-size:17px;animation:guide-arrow 1.1s ease-in-out infinite}
.swipe-guide.is-hidden{opacity:0!important;transition:opacity .2s}
@keyframes guide-in-out{0%,8%{opacity:0;transform:translate(-50%,8px)}18%,72%{opacity:1;transform:translate(-50%,0)}100%{opacity:0;transform:translate(-50%,-4px)}}
@keyframes guide-arrow{50%{transform:translateX(4px)}}
.gallery-pager{--progress:0%;position:absolute;z-index:7;left:50%;bottom:calc(17px + env(safe-area-inset-bottom));display:flex;align-items:center;justify-content:center;pointer-events:none;transform:translateX(-50%)}
.gallery-pager.dots{gap:6px;padding:6px 9px;border-radius:999px;background:rgba(41,33,22,.34);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.gallery-pager.dots i{width:5px;height:5px;border-radius:50%;background:rgba(255,255,255,.55);transition:width .2s,background .2s}
.gallery-pager.dots i.is-active{width:16px;border-radius:6px;background:#fff}
.gallery-pager.progress{gap:8px;padding:6px 9px;border-radius:999px;background:rgba(41,33,22,.5);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.gallery-pager.progress>span{width:min(30vw,110px);height:3px;overflow:hidden;border-radius:4px;background:rgba(255,255,255,.35)}
.gallery-pager.progress>span i{display:block;width:var(--progress);height:100%;border-radius:inherit;background:#fff;transition:width .18s ease-out}
.gallery-pager.progress b{min-width:38px;font-size:10px;line-height:1;font-variant-numeric:tabular-nums;text-align:right}
.post-copy{position:absolute;z-index:5;left:max(14px,env(safe-area-inset-left));right:84px;bottom:calc(12px + env(safe-area-inset-bottom));max-height:34%;padding:11px 13px;border:1px solid rgba(255,255,255,.7);border-radius:15px;background:rgba(255,255,255,.9);box-shadow:0 8px 26px rgba(49,39,24,.13);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);overflow:auto;pointer-events:auto}
.post-copy:empty{display:none}
.post-copy h2{margin:0 0 5px;font-size:17px}
.post-copy p{margin:0;color:#5b554c;font-size:14px;line-height:1.55;white-space:pre-wrap}
.video-card{height:calc(100svh - 66px - env(safe-area-inset-top));min-height:0;overflow:hidden}
.video-wrap{inset:0}
.video-wrap video{width:100%;height:100%;object-fit:contain}
.viewer-track{touch-action:pan-x pinch-zoom}
.viewer-slide{height:100%;padding:calc(62px + env(safe-area-inset-top)) 0 max(10px,env(safe-area-inset-bottom));display:grid;place-items:center;overflow:hidden}
.viewer-scroll{width:100%;height:100%;display:grid;place-items:center;overflow:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch;touch-action:pan-x pan-y pinch-zoom}
.viewer-slide img{display:block;width:100%;height:100%;min-height:0;max-width:none;object-fit:contain;object-position:center;background:#101010;touch-action:pan-x pan-y pinch-zoom}
.download-dialog{position:fixed;inset:0;z-index:220;display:grid;place-items:center;padding:22px;background:rgba(20,18,14,.52);opacity:0;visibility:hidden;transition:.2s}
.download-dialog.is-open{opacity:1;visibility:visible}
.download-card{width:min(100%,430px);padding:25px;border-radius:24px;background:#fff;box-shadow:var(--shadow);transform:translateY(12px);transition:.25s}
.download-dialog.is-open .download-card{transform:none}
.legal-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:#fff0cf;color:#885300;font-weight:900}
.download-card h2{margin:14px 0 8px;font-size:21px}
.download-card p{margin:0;color:#625b52;line-height:1.7;font-size:14px}
.download-card>div{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:20px}
.download-card button{height:45px;border-radius:13px;font-weight:800}
.dialog-secondary{border:1px solid var(--line);background:#fff}
.dialog-primary{border:0;background:var(--accent)}
@media(min-width:800px){.gallery-card{max-width:980px;margin:auto}.gallery-item{padding-inline:20px}.gallery-item img{max-width:920px}.post-copy{left:max(28px,calc((100vw - 920px)/2));right:max(100px,calc((100vw - 920px)/2 + 76px))}.video-card{max-width:980px;margin:auto}}
@media(prefers-reduced-motion:reduce){.feed-card.is-current .swipe-guide,.swipe-guide i{animation:none}.feed-card.is-current .swipe-guide{opacity:1}}
