html body{overflow-y:auto}.gallery-page{max-width:1080px;margin:0 auto;padding:24px 24px 64px}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}@media(max-width:600px),(pointer:coarse)and (orientation:portrait){.gallery-grid{grid-template-columns:1fr}}.prj-card{display:flex;flex-direction:column;gap:8px;padding:12px;border:1px solid var(--edge,#3a352c);border-radius:10px;background:var(--panel,#1e1c18);color:inherit;cursor:pointer;text-align:left}.prj-card img{width:100%;aspect-ratio:8/5;object-fit:cover;border-radius:6px;background:#232019}.prj-card .prj-name{font-size:14px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.prj-card:hover{border-color:var(--acc,#c8a96a)}.prj-new{border:1.5px dashed var(--edge,#3a352c);align-items:center;justify-content:center;min-height:180px;color:var(--txt3,#8a8474)}.prj-new .plus{font-size:40px;line-height:1}.prj-share{align-self:flex-end;font-size:12px;padding:4px 12px;border:1px solid var(--edge,#3a352c);border-radius:4px;background:transparent;color:var(--txt2,#B4AEA2);cursor:pointer}.prj-share:hover{color:var(--acc,#c8a96a);border-color:var(--acc,#c8a96a)}.prj-share.ghost{color:var(--txt3,#8a8474)}.prj-share-row{display:flex;gap:8px}.prj-share-row .prj-share{flex:1}.share-sec{max-width:1200px;margin:0 auto;padding:0 16px 32px}.share-sec-title{font-size:14px;color:var(--txt2,#B4AEA2);margin:8px 0 12px}
