:root{--accent: #f97154;--primary: #28d2be;--warn: #f44336;--bg: #181818;--title: #fff;--subtitle: #d1d1d1;--card: #444;--muted: #888;--pad: 10px;--gap: 6px;font-family:Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;color:var(--title);background:#000}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-decoration:none}button,input{font:inherit}.nav{position:fixed;z-index:20;inset:0 0 auto;display:flex;align-items:center;gap:4px;padding:0 12px;background:#000}.brand,.nav a{color:var(--title);padding:16px 10px;border-bottom:3px solid transparent}.brand{font-weight:700}.nav a.here{font-weight:700;border-bottom-color:var(--accent)}.spacer{flex:1}.search{width:min(220px,28vw);border:0;border-radius:999px;padding:8px 12px;background:#ffffff1f;color:#fff}.page{min-height:100vh;display:flex;flex-direction:column}.main{flex:1;margin-top:58px;background:var(--bg);padding:16px var(--pad) 0}.toast{margin:0 6px 12px;color:var(--primary);min-height:1em}.toast.error{color:var(--warn)}.label{padding:0 6px 8px;color:var(--subtitle);font-size:13px}.grid{display:flex;flex-wrap:wrap;gap:var(--gap)}.card{position:relative;flex:1 1 280px;max-width:calc(50% - var(--gap));margin:0}.card.wall{flex-basis:320px;max-width:none}.card>a{display:block}.photo{position:relative;overflow:hidden;background:var(--card);border-radius:8px;aspect-ratio:320 / 184}.card img{width:100%;height:100%;object-fit:cover;display:block}.card figcaption{position:absolute;z-index:3;left:0;right:0;bottom:0;padding:6px 8px;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-shadow:0 1px 3px #000c;pointer-events:none}.card figcaption a{pointer-events:auto}.card figcaption .meta{opacity:.65;margin-left:8px}#sentinel{height:1px}.foot{color:var(--muted);text-align:center;padding:28px 12px 20px;font-size:13px}#viewer{position:fixed;inset:0;z-index:30;display:grid;place-items:center;padding:32px;background:#000e}#viewer[hidden]{display:none}#viewer img{max-width:100%;max-height:100%;object-fit:contain}#viewer button{position:absolute;top:16px;right:16px;border:0;background:transparent;color:#fff;font-size:28px;cursor:pointer}#viewer .save{position:absolute;right:72px;top:22px;color:#fff;background:var(--accent);border-radius:999px;padding:8px 14px}@media(max-width:720px){.card{max-width:100%}.nav{overflow-x:auto}.search{width:110px;flex:0 0 110px}}
