/* The same entry is a quiet stack in both project and category readers. */
.index-grid{gap:36px 30px;padding:12px 10px 12px 0}
.index-cover{position:relative;background:#fff;border:1px solid #b9bbb7;aspect-ratio:1.85;height:auto;box-shadow:0 6px 18px #2024200c;transition:transform .25s,box-shadow .25s}
.index-cover img{object-fit:cover;aspect-ratio:1.85}
.index-item.is-group-stack .index-cover{box-shadow:4px -5px 0 -1px #fff,4px -5px 0 0 #bfc1bd,8px -10px 0 -1px #fff,8px -10px 0 0 #d2d3d0,2px 10px 20px #2024200d}
.index-item:hover .index-cover{transform:translateY(-3px)}
.index-group-count{position:absolute;bottom:8px;right:8px;background:#fffffff0;border:1px solid #d7d8d5;padding:5px 7px;font-size:8px;letter-spacing:.08em;color:#4d514b}
.index-item h2{margin-top:16px}
.project-slide{display:grid;grid-template-rows:minmax(0,1fr) 42px;padding:0 0 3px}
.project-image-frame{padding:12px 16px 14px 0;overflow:hidden;align-items:flex-start;min-height:0;touch-action:pan-y}
.project-image-frame img,.project-image-frame video{width:auto;height:auto;max-width:100%;max-height:100%;flex:none;object-fit:contain}
.project-slide.is-group-stack .project-image-frame img,.project-slide.is-group-stack .project-image-frame video{border:1px solid #c1c3be;box-shadow:4px -5px 0 -1px #fff,4px -5px 0 0 #c1c3be,8px -10px 0 -1px #fff,8px -10px 0 0 #d3d4cf,2px 6px 15px #2024200c}
.group-member-nav{display:flex;align-items:center;justify-content:center;gap:18px;flex:none;font-size:10px;color:#666;letter-spacing:.06em;font-variant-numeric:tabular-nums}
.group-member-nav button{font-size:21px;padding:5px 14px;min-width:44px;min-height:38px;line-height:1}
.group-member-nav button:disabled{opacity:.2;cursor:default}.group-member-nav button:focus-visible{outline:1px solid #777;outline-offset:2px}
.group-member-count{min-width:62px;text-align:center}
.project-page-count{min-width:85px;white-space:nowrap}
#entryDialog{width:min(1220px,94vw);max-width:94vw;max-height:94svh;padding:25px 30px 20px;overflow-y:auto;overscroll-behavior:contain}
.group-viewer-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}
#entryDialog .group-viewer-head h2{font-size:20px;margin:8px 0 18px}#entryDialog .group-viewer-head .entry-meta{margin:0;font-size:9px}#entryDialog .entry-close{float:none;font-size:10px;flex:none}
.group-viewer-stage{height:min(62svh,720px);display:flex;flex-direction:column;justify-content:center;align-items:center;min-height:150px;background:#fff}
#entryDialog .group-viewer-stage img,#entryDialog .group-viewer-stage video{width:auto;height:auto;max-width:100%;max-height:100%;margin:0;object-fit:contain}
#entryDialog .group-viewer-stage .pdf-reader{width:100%;height:100%;flex:1;min-height:0;border:1px solid #e0e0db;margin:0}
#entryDialog .group-viewer-stage .pdf-open{margin:0 0 10px;font-size:9px;align-self:flex-end}
#entryDialog .group-member-nav{margin-top:12px}.group-text-note{font-size:24px;font-weight:400;text-align:center}
#entryDialog .entry-description{max-width:760px;margin:18px auto 0;color:#666;font-size:12px}#entryDialog .group-external-links{display:flex;gap:20px;flex-wrap:wrap;justify-content:center}
@media(max-width:700px){.index-grid{gap:28px 18px}.index-group-count{font-size:7px;padding:4px;bottom:5px;right:5px}.project-slide{grid-template-rows:minmax(0,1fr) 32px}.group-member-nav{gap:10px;font-size:9px}.group-member-nav button{min-height:30px;padding:3px 12px}.project-image-frame{padding-top:12px}.project-scroll-hint{font-size:6px}.project-page-count{min-width:74px;font-size:8px}#entryDialog{padding:20px 16px}#entryDialog .group-viewer-head h2{font-size:16px}.group-viewer-stage{height:52svh}}
@media(prefers-reduced-motion:reduce){.index-cover{transition:none}}

/* Position markers live below the picture; arrows follow its visible bounds. */
.project-image-frame,.group-viewer-stage{position:relative}
.group-viewer-stage{touch-action:pan-y}
.group-member-nav{gap:16px;min-width:0;max-width:100%;overflow:hidden}
.project-slide>.group-nav-below-image{position:absolute;height:30px;z-index:3}
.group-position-track{position:relative;display:flex;align-items:center;gap:4px;max-width:min(420px,calc(100% - 80px));overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain;flex:0 1 auto}
.group-position-track::-webkit-scrollbar{display:none}
.group-member-nav .group-position-mark{position:relative;flex:0 0 24px;width:24px;min-width:24px;min-height:30px;height:30px;padding:0;border:0;background:none;outline-offset:-2px}
.group-position-mark::after{content:'';position:absolute;left:3px;right:3px;top:calc(50% - 1px);height:2px;background:#c6c8c2;border-radius:1px;transition:background .2s,height .2s}
.group-position-mark.current::after{background:#343b34;height:3px}
.group-position-mark:hover::after{background:#70786d}
.group-member-count{font-size:9px;letter-spacing:.08em;color:#82877d;min-width:54px}
.group-image-overlay{position:absolute;z-index:2;pointer-events:none;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(6px,1.2vw,16px)}
.group-overlay-arrow{pointer-events:auto;display:grid;place-items:center;flex:none;width:40px;height:52px;min-height:44px;padding:0;border:1px solid #ffffff55;border-radius:3px;background:#ffffff70;color:#1c231cbb;box-shadow:0 2px 10px #11111114;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);transition:background .18s,color .18s,opacity .18s;touch-action:manipulation}
.group-overlay-arrow svg{width:20px;height:26px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.group-overlay-arrow:hover{background:#ffffffcc;color:#171d17}.group-overlay-arrow:disabled{opacity:.24;cursor:default}.group-overlay-arrow:focus-visible{outline:2px solid #fff;outline-offset:3px;box-shadow:0 0 0 4px #20252077}
@media(max-width:700px){.group-member-nav{gap:10px}.group-position-track{gap:2px;max-width:calc(100% - 66px)}.group-member-nav .group-position-mark{flex-basis:20px;width:20px;min-width:20px}.group-overlay-arrow{width:34px;height:44px}.group-overlay-arrow svg{width:18px;height:22px}.group-member-count{font-size:8px;min-width:48px}}
@media(prefers-reduced-motion:reduce){.group-position-mark::after,.group-overlay-arrow{transition:none}}
