:root{color-scheme:dark;--bg:#000;--fg:#fff;--muted:#999;--line:#333}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--bg);color:var(--fg);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;height:100%}a{text-decoration:none}a,button{color:inherit}button{font:inherit;background:none;border:1px solid var(--fg);padding:.6em 1.2em;cursor:pointer;border-radius:4px}button:disabled{opacity:.25;cursor:default}.page{height:100dvh;width:100vw;display:grid;grid-template-columns:1fr;grid-template-rows:auto 1fr auto;grid-template-areas:"modebuttons" "content" "footer"}@media (min-width:900px){.page{grid-template-columns:168px 1fr;grid-template-rows:auto auto 1fr auto;grid-template-areas:"modebuttons image" "arrows      image" ".           image" "footer      caption"}.page .mode-buttons,.page .site-footer,.page .viewer-controls{flex-direction:column;align-items:center}.page .viewer{display:contents}.page .viewer-image-wrap{grid-area:image;width:100%;height:100%;min-width:0;min-height:0}.page .viewer-caption{grid-area:caption;align-self:start}.page .viewer-controls{grid-area:arrows;padding:0 1rem}}.mode-buttons{grid-area:modebuttons;display:flex;flex-wrap:wrap;justify-content:center;gap:1rem;padding:1rem;flex-shrink:0}.mode-button,.viewer-controls button{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:46px;width:120px;padding:0 .5em;border-radius:4px}.mode-button{font-size:.95rem;letter-spacing:.08em;text-transform:uppercase;border:1px solid var(--muted);opacity:.6;transition:opacity .15s,border-color .15s}.mode-button.active{border-color:var(--fg);opacity:1}.viewer{grid-area:content;width:100%;min-width:0;flex-direction:column;overflow:hidden}.viewer,.viewer-image-wrap{min-height:0;display:flex;position:relative}.viewer-image-wrap{flex:1 1;align-items:center;justify-content:center;padding:1rem}.viewer-image-wrap img{width:100%;height:100%;object-fit:contain}.viewer-caption{padding:.75rem 1.5rem calc(.75rem + env(safe-area-inset-bottom));text-align:center;font-size:.9rem;color:var(--muted);min-height:1.4em}.viewer-nav{position:absolute;inset:0;display:flex}.viewer-nav button{flex:1 1;background:none;border:none;border-radius:0;height:100%}.viewer-controls{display:flex;justify-content:center;gap:1rem;padding:0 1rem calc(1rem + env(safe-area-inset-bottom));flex-shrink:0}.viewer-controls button{font-size:1.4rem;line-height:1;border:1px solid var(--muted);opacity:.85;transition:opacity .15s,border-color .15s}.viewer-controls button:not(:disabled):active,.viewer-controls button:not(:disabled):hover{opacity:1;border-color:var(--fg)}.site-footer{grid-area:footer;display:flex;flex-wrap:wrap;justify-content:center;gap:.75rem;padding:1rem 1rem calc(1rem + env(safe-area-inset-bottom));flex-shrink:0}.site-footer a{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:120px;font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);border:1px solid var(--muted);border-radius:4px;padding:.6em .5em;opacity:.7;transition:opacity .15s,border-color .15s,color .15s}.site-footer a:active,.site-footer a:hover{opacity:1;border-color:var(--fg);color:var(--fg)}.content-page{min-height:100dvh;display:grid;grid-template-columns:1fr;grid-template-rows:1fr auto;grid-template-areas:"main" "footer"}@media (min-width:900px){.content-page{grid-template-columns:168px 1fr;grid-template-rows:1fr;grid-template-areas:"footer main"}.content-page .site-footer{flex-direction:column;align-items:center;justify-content:flex-end}}.content-page main{grid-area:main;width:100%;max-width:560px;margin:0 auto;padding:3rem 1.5rem}.content-page .site-footer{grid-area:footer}.content-page h1{font-size:1.1rem;font-weight:400;text-transform:uppercase;letter-spacing:.08em;margin:0 0 1.5rem}.content-page p{font-size:.95rem;line-height:1.6;color:var(--muted);margin:0 0 1rem}.admin-login{height:100dvh;display:flex;align-items:center;justify-content:center;padding:1.5rem}.admin-login form{display:flex;flex-direction:column;gap:.75rem;width:min(320px,100%)}.admin-login h1{font-size:1.2rem;font-weight:400;margin:0 0 .5rem}.admin-login input{padding:.6em;background:none;border:1px solid var(--muted);color:var(--fg);border-radius:4px;font-size:1rem}.error{color:#f66;font-size:.85rem;margin:0}.dashboard{padding:1.5rem;max-width:720px;margin:0 auto}.dashboard header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.dashboard h1{font-size:1.2rem;font-weight:400;margin:0}.upload-form{display:flex;flex-direction:column;gap:.75rem;margin-bottom:2rem;padding-bottom:2rem;border-bottom:1px solid var(--line)}.edit-row textarea,.upload-form textarea{background:none;border:1px solid var(--muted);color:var(--fg);border-radius:4px;padding:.6em;font:inherit;resize:vertical}.photo-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:1.5rem}.photo-row{display:flex;gap:1rem;align-items:flex-start}.photo-row img{width:88px;height:88px;object-fit:cover;border-radius:4px;flex-shrink:0}.edit-row,.view-row{display:flex;flex-direction:column;gap:.5rem;flex:1 1;min-width:0}.view-row p{margin:0;font-size:.9rem;overflow-wrap:break-word}.row-buttons{display:flex;gap:.5rem}.row-buttons button{font-size:.8rem;padding:.35em .8em}