/* 相框:平的照片 + 浅米色衬底 #f6f5f2 + 一圈 1px 深灰外框 #4b4945,无厚度/侧面、无阴影、无第二道线(10-19 15-补3 去掉照片墙卡片的三层侧面);
   照片墙、列表兜底、大图三处一致。照片墙服务器端就是显示状态,列表只在无脚本 / 不支持 3D 时兜底(见 georges-spectra.php) */
.gspectra { background:#fff; color:#141414; position:relative; }
.gspectra [hidden] { display:none!important; }
.gspectra button { font:inherit; color:inherit; background:none; border:0; border-radius:0; box-shadow:none; padding:0 12px; margin:0; min-height:44px; cursor:pointer; text-transform:none; letter-spacing:inherit; }
.gspectra button:focus-visible,.gs-stage:focus-visible { outline:1px solid #555; outline-offset:3px; }
.gs-stage { display:block; position:relative; width:100%; height:clamp(420px,67svh,740px); overflow:hidden; background:#fff; touch-action:pan-y; cursor:grab; isolation:isolate; }
.gs-stage:active { cursor:grabbing; }
.gs-flat .gs-stage { display:none; }
.gs-space { position:absolute; inset:0; transform-style:preserve-3d; pointer-events:none; }
.gspectra .gs-card { display:block; position:absolute; left:50%; top:50%; width:100px; height:132px; min-height:0; margin:-66px 0 0 -50px; padding:2px; box-sizing:border-box; background:#f6f5f2; box-shadow:none; border:1px solid #4b4945; border-radius:0; overflow:hidden; backface-visibility:visible; transform-origin:50% 50%; pointer-events:auto; }
.gspectra .gs-card::before { content:""; position:absolute; inset:2px; background:#f6f5f2; pointer-events:none; }
.gspectra .gs-card img { display:block; position:absolute; z-index:1; inset:0; margin:auto; width:80%; height:80%; max-width:none; box-sizing:border-box; border:5px solid #f6f5f2; object-fit:cover; pointer-events:none; user-select:none; -webkit-user-drag:none; border-radius:0; }
.gspectra .gs-fallback { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 20px; margin:0!important; padding:0!important; list-style:none!important; }
.gspectra .gs-fallback li { margin:0!important; padding:0!important; list-style:none!important; }
.gspectra .gs-fallback li::before { content:none!important; }
@media (scripting:none) { .gspectra .gs-stage{display:none} .gspectra .gs-fallback[hidden]{display:grid!important} }
.gspectra .gs-photo { display:block; position:relative; aspect-ratio:3/4; padding:2px; box-sizing:border-box; background:#f6f5f2; border:1px solid #4b4945; box-shadow:none; }
.gspectra .gs-photo::before { content:""; position:absolute; inset:2px; background:#f6f5f2; pointer-events:none; }
.gs-photo img { position:absolute; z-index:1; inset:0; width:80%; height:80%; margin:auto; box-sizing:border-box; border:5px solid #f6f5f2; background:#f6f5f2; object-fit:cover; display:block; border-radius:0; }
.gs-source { display:block; margin-top:10px; color:#777!important; font-size:12px; line-height:1.6; text-decoration:none!important; box-shadow:none!important; }
.gspectra .gs-dialog { padding:48px 24px 18px; border:0; border-radius:0; box-shadow:none; width:min(1000px,94vw); max-width:94vw; max-height:90svh; background:#fff; color:#141414; overflow:auto; }
.gs-dialog::backdrop { background:#fff; }
.gs-dialog[open] { animation:gs-photo-in 320ms cubic-bezier(.16,1,.3,1) both; }
.gs-dialog.gs-closing[open] { animation:gs-photo-out 220ms cubic-bezier(.4,0,1,1) both; }
@keyframes gs-photo-in { from{transform:translateY(16px) scale(.94)} to{transform:translateY(0) scale(1)} }
@keyframes gs-photo-out { from{transform:translateY(0) scale(1)} to{transform:translateY(10px) scale(.96)} }
.gspectra .gs-close { position:absolute; top:4px; right:6px; width:44px; height:44px; font-size:30px; font-weight:300; }
.gs-full-frame { display:grid; place-items:center; position:relative; box-sizing:border-box; width:min(100%,48.75svh); max-height:65svh; aspect-ratio:3/4; padding:2px; margin:0 auto; overflow:hidden; border:1px solid #4b4945; background:#f6f5f2; box-shadow:none; }
.gs-full { display:block; width:80%; height:80%; max-height:none; box-sizing:border-box; border:5px solid #f6f5f2; background:#f6f5f2; object-fit:cover; margin:0 auto; }
.gs-caption { display:flex; align-items:center; justify-content:space-between; gap:14px; margin-top:16px; text-align:center; font-size:13px; }
.gs-caption>div { min-width:0; }
.gs-caption button { flex:none; }
.gs-origin { color:inherit!important; text-decoration:none!important; box-shadow:none!important; }
.gs-date { display:block; color:#999; font-size:11px; margin-top:5px; }
@media(max-width:600px) { .gs-stage{height:58svh;min-height:420px;max-height:620px} .gspectra .gs-fallback{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 14px} .gspectra .gs-dialog{padding:46px 12px 14px} }
@media(prefers-reduced-motion:reduce) { .gspectra .gs-dialog[open],.gspectra .gs-dialog[open]::backdrop{animation:none} }
@media print { .gspectra .gs-stage,.gspectra .gs-dialog{display:none!important} .gspectra .gs-fallback{display:grid!important} }
