:root{color-scheme:dark;--obsidian:#0b0c10;--charcoal:#1f2833;--neon-cyan:#45a29e;--neon-teal:#66fcf1;--warm-white:#c5c6c7;--bg:var(--obsidian);--fg:var(--warm-white);--muted:rgba(197,198,199,0.55);--accent:var(--neon-teal);--panel:rgba(31,40,51,0.25);--border:rgba(31,40,51,0.85);--mono:ui-monospace,"SF Mono",SFMono-Regular,Menlo,monospace}*{box-sizing:border-box}body,html{margin:0;padding:0;background:var(--obsidian);color:var(--fg);font:14px/1.5 -apple-system,BlinkMacSystemFont,Segoe UI,system-ui,sans-serif;min-height:100vh}::selection{background:var(--neon-teal);color:var(--obsidian)}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--obsidian)}::-webkit-scrollbar-thumb{background:var(--charcoal);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--neon-cyan)}body:before{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at 50% -10%,rgba(69,162,158,.1),transparent 60%),linear-gradient(rgba(102,252,241,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(102,252,241,.025) 1px,transparent 1px),var(--obsidian);background-size:100% 100%,42px 42px,42px 42px,100% 100%}a{color:var(--accent);text-decoration:none}a:hover{color:#fff}h2{font-size:1.25rem;letter-spacing:-.01em}h2,h3{font-weight:600;color:#fff}h3{font-size:1rem}.topbar{position:-webkit-sticky;position:sticky;top:0;z-index:50;gap:1rem;padding:.85rem 1.5rem;border-bottom:1px solid var(--border);background:rgba(11,12,16,.7);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}.topbar,.topbar h1{display:flex;align-items:center}.topbar h1{gap:.6rem;font-size:15px;margin:0;font-weight:700;text-transform:uppercase;letter-spacing:.18em;color:#fff}.topbar h1:before{content:"";width:9px;height:9px;border-radius:9999px;background:var(--neon-teal);box-shadow:0 0 10px var(--neon-teal);animation:pulse 2s ease-in-out infinite}@keyframes pulse{0%,to{opacity:1}50%{opacity:.35}}.topbar .spacer{flex:1 1}.topbar .muted{color:var(--muted);font-size:12px;font-family:var(--mono)}.topbar a{font-size:13px;color:var(--warm-white)}.topbar a:hover{color:var(--neon-teal)}main{padding:1.75rem 1.5rem;max-width:1280px;margin:0 auto}.section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;border-bottom:1px solid var(--border);padding-bottom:.85rem;margin-bottom:1.25rem}.section-head h2{margin:.25rem 0 0}.eyebrow{margin:0;font-family:var(--mono);font-size:10px;text-transform:uppercase;letter-spacing:.18em;color:var(--neon-cyan)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));grid-gap:1rem;gap:1rem}.card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:1rem;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:border-color .3s,box-shadow .3s,transform .3s}a.card:hover{border-color:rgba(102,252,241,.5);box-shadow:0 0 15px rgba(102,252,241,.18);color:var(--fg)}.card strong{color:#fff}.gallery{column-count:1;column-gap:1.25rem}@media (min-width:640px){.gallery{column-count:2}}@media (min-width:900px){.gallery{column-count:3}}@media (min-width:1200px){.gallery{column-count:4}}.photo-card{display:block;page-break-inside:avoid;break-inside:avoid;margin-bottom:1.25rem;background:var(--panel);border:1px solid var(--border);border-radius:12px;overflow:hidden;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);transition:border-color .3s,box-shadow .3s}.photo-card:hover{border-color:rgba(102,252,241,.5);box-shadow:0 0 20px rgba(102,252,241,.2)}.photo-card .img-wrap{position:relative;overflow:hidden;line-height:0;background:#000}.photo-card img{width:100%;height:auto;display:block;opacity:.92;transition:transform .5s,opacity .3s}.photo-card:hover img{transform:scale(1.05);opacity:1}.photo-card .badge-loc{position:absolute;top:.6rem;right:.6rem;font-family:var(--mono);font-size:10px;color:var(--neon-teal);background:rgba(11,12,16,.8);border:1px solid var(--border);padding:1px 6px;border-radius:4px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.photo-card .caption{padding:.85rem;border-top:1px solid rgba(31,40,51,.5)}.photo-card .caption .row{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:2px}.photo-card .caption h3{margin:0;font-size:.95rem;transition:color .2s}.photo-card:hover .caption h3{color:var(--neon-teal)}.photo-card .caption .year{font-family:var(--mono);font-size:12px;color:var(--neon-cyan);flex-shrink:0}.photo-card .caption .desc{margin:0;font-size:12px;color:var(--muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.photo-tile{aspect-ratio:1;background:#000;overflow:hidden;border-radius:8px;position:relative;display:block}.photo-tile img{width:100%;height:100%;object-fit:cover;display:block}.photo-tile .serial{position:absolute;bottom:4px;left:6px;color:rgba(255,255,255,.7);font-size:11px;font-family:var(--mono)}.photo-detail{display:grid;grid-template-columns:minmax(0,1fr) 300px;grid-gap:1.25rem;gap:1.25rem}@media (max-width:800px){.photo-detail{grid-template-columns:1fr}}.photo-detail .image-wrap{background:#000;border:1px solid var(--border);border-radius:12px;overflow:hidden}.photo-detail .image-wrap img{width:100%;height:auto;display:block}.button{display:inline-block;padding:.5rem 1.1rem;border-radius:6px;background:transparent;color:var(--neon-teal);border:1px solid var(--neon-teal);font-weight:600;font-family:var(--mono);font-size:13px;letter-spacing:.04em;cursor:pointer;transition:background .25s,color .25s,box-shadow .25s,border-color .25s}.button:hover{background:var(--neon-teal);color:var(--obsidian);box-shadow:0 0 25px rgba(102,252,241,.5)}.button.ghost{color:var(--warm-white);border-color:var(--border)}.button.ghost:hover{color:var(--neon-teal);border-color:var(--neon-teal);background:transparent;box-shadow:none}.button.danger{color:#ff8a8a;border-color:rgba(185,28,28,.8)}.button.danger:hover{background:#b91c1c;color:#fff;box-shadow:0 0 18px rgba(185,28,28,.5)}.button:disabled{opacity:.45;cursor:default;box-shadow:none}.button:disabled:hover{background:transparent;color:var(--neon-teal)}.button.ghost:disabled:hover{color:var(--warm-white);border-color:var(--border)}.linkish{background:none;border:none;padding:0;font:inherit;font-size:12px;color:var(--accent);cursor:pointer;text-decoration:underline}.linkish.danger{color:#ff8a8a}.linkish:disabled{opacity:.5;cursor:default}table.admin{width:100%;border-collapse:collapse;margin-top:.5rem}table.admin td,table.admin th{text-align:left;padding:.55rem;border-bottom:1px solid var(--border);font-size:14px}table.admin th{color:var(--muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-family:var(--mono)}.admin-nav{display:flex;gap:.5rem;margin:0 0 1.25rem;flex-wrap:wrap;background:var(--panel);border:1px solid var(--border);padding:.4rem;border-radius:9999px;width:-moz-fit-content;width:fit-content}.admin-nav a{color:var(--warm-white);font-size:13px;padding:.35rem .9rem;border-radius:9999px;transition:background .2s,color .2s}.admin-nav a:hover{color:var(--neon-teal);background:rgba(31,40,51,.5)}.badge{display:inline-block;padding:1px 7px;border-radius:4px;background:var(--charcoal);color:var(--neon-cyan)}.badge,label{font-size:11px;font-family:var(--mono)}label{display:block;color:var(--muted);margin-bottom:.25rem;text-transform:uppercase;letter-spacing:.05em}input[type=file],input[type=password],input[type=text],select,textarea{width:100%;padding:.5rem .7rem;border:1px solid var(--border);border-radius:8px;background:rgba(31,40,51,.4);color:#fff;font-family:inherit;font-size:inherit}input:focus,select:focus,textarea:focus{outline:none;border-color:rgba(102,252,241,.7);box-shadow:0 0 0 3px rgba(102,252,241,.15)}.login-card{max-width:380px;margin:5rem auto;padding:2.25rem;text-align:center;background:var(--panel);border:1px solid var(--border);border-radius:14px;box-shadow:0 0 30px rgba(102,252,241,.08);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.login-card h1{margin-top:0;color:#fff}.error{color:#ff8a8a;font-size:13px;margin-top:.5rem}footer{margin-top:4rem;border-top:1px solid var(--border);padding:1.5rem;text-align:center;font-family:var(--mono);font-size:11px;color:rgba(197,198,199,.4)}