@import "https://fonts.googleapis.com/css2?family=DM+Mono:wght@400;500&family=Syne:wght@400;500;600;700;800&display=swap";:root{--ink:#070a0c;--panel:#0d1214;--line:#263237;--soft:#96a7a2;--white:#e8f0e9;--acid:#b7ff48;--cyan:#56e7d6;--red:#ff7070;color:var(--white);background:var(--ink);font-family:DM Mono,monospace}*{box-sizing:border-box}body{background:var(--ink);min-width:320px;margin:0}button,input{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:wait}input{color:var(--white);border:1px solid var(--line);background:#101719;outline:none;width:100%;padding:12px}input:focus{border-color:var(--cyan);box-shadow:0 0 0 3px #56e7d61a}label{color:var(--soft);letter-spacing:.12em;gap:8px;font-size:10px;display:grid}.eyebrow{color:var(--cyan);letter-spacing:.16em;margin:0 0 12px;font-size:10px}.primary-button,.ghost-button{border:1px solid var(--acid);background:var(--acid);color:#101500;letter-spacing:.08em;padding:13px 16px;font-size:11px;font-weight:500}.primary-button span{margin-left:28px;font-size:17px}.ghost-button{color:var(--acid);background:0 0}.error-message{color:var(--red);font-size:12px}.notice{color:var(--cyan);font-size:12px}.login-shell,.not-found,.loading-screen{background:linear-gradient(125deg,#070a0c,#101c1c);place-items:center;min-height:100vh;padding:24px;display:grid;position:relative;overflow:hidden}.login-shell:before,.public-archive:before{content:"";pointer-events:none;opacity:.16;background-image:linear-gradient(#56e7d60e 1px,#0000 1px),linear-gradient(90deg,#56e7d60e 1px,#0000 1px);background-size:36px 36px;position:absolute;inset:0}.login-panel{background:#0b1113e8;border:1px solid #4d746e;width:min(100%,440px);padding:48px;position:relative;box-shadow:18px 18px #b7ff4820}.login-panel h1,.content-header h1,.not-found h1{letter-spacing:-.07em;margin:0;font:800 clamp(38px,8vw,68px)/.88 Syne,sans-serif}.login-panel h1 span,.content-header h1 span,.not-found h1 span{color:var(--acid)}.login-copy{color:var(--soft);margin:22px 0 30px;font-size:13px;line-height:1.7}.login-panel form{gap:20px;display:grid}.corner-mark{border-top:1px solid var(--line);color:#5c6d6b;margin-top:32px;padding-top:14px;font-size:10px}.admin-shell{background:radial-gradient(circle at 85% 15%,#1b373526,transparent 30%),var(--ink);grid-template-columns:254px 1fr;min-height:100vh;display:grid}.sidebar{border-right:1px solid var(--line);background:#090d0f;flex-direction:column;min-height:100vh;padding:28px 15px;display:flex}.brand{letter-spacing:-.06em;align-items:center;gap:11px;padding:0 9px 45px;font:700 18px Syne,sans-serif;display:flex}.brand small{letter-spacing:.08em;color:var(--soft);margin-top:3px;font:9px DM Mono;display:block}.brand-sigil{background:var(--acid);color:#101500;place-items:center;width:30px;height:30px;font-size:18px;display:grid}.sidebar nav{gap:4px;display:grid}.menu-parent,.menu-child,.logout{color:var(--white);text-align:left;letter-spacing:.06em;background:0 0;border:0;padding:13px 10px;font-size:11px}.menu-parent{align-items:center;gap:10px;width:100%;display:flex}.menu-parent span{color:var(--cyan)}.menu-parent b{margin-left:auto;font-size:18px;transform:rotate(-90deg)}.menu-parent.open b{transform:none}.menu-child{color:var(--soft);border-left:1px solid var(--line);margin-left:25px}.menu-child.active{color:var(--acid);border-color:var(--acid)}.logout{color:var(--soft);margin-top:auto}.admin-content{padding:48px clamp(24px,5vw,76px);overflow:hidden}.content-header{justify-content:space-between;align-items:end;gap:24px;margin-bottom:38px;display:flex}.content-header h1{font-size:40px}.search-bar{border:1px solid var(--line);background:#0b1012;grid-template-columns:1fr 1fr auto;gap:16px;margin-bottom:18px;padding:20px;display:grid}.search-bar .ghost-button{align-self:end}.table-frame{border:1px solid var(--line);background:#0b1012;overflow:auto}table{border-collapse:collapse;width:100%;min-width:850px}th{color:var(--soft);text-align:left;letter-spacing:.11em;border-bottom:1px solid var(--line);padding:16px 19px;font-size:10px}td{border-bottom:1px solid #1b2528;padding:20px 19px;font-size:12px}tbody tr:last-child td{border:0}.mono{color:var(--cyan)}.status{letter-spacing:.08em;font-size:10px}.status.active{color:var(--acid)}.status.disabled{color:var(--red)}.actions{white-space:nowrap}.actions button{color:var(--cyan);background:0 0;border:0;padding:0 10px 0 0;font-size:10px}.actions .danger{color:var(--red)}.actions .restore{color:var(--acid)}.empty{color:var(--soft);text-align:center;padding:50px}.drawer-mask{z-index:5;background:#000a;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer{background:#0d1416;border-left:1px solid #4e6f6a;align-content:start;gap:24px;width:min(100%,530px);height:100%;padding:35px;display:grid;overflow:auto;box-shadow:-20px 0 70px #0008}.drawer header{position:relative}.drawer h2{margin:0;font:600 29px Syne}.close{color:var(--white);background:0 0;border:0;font-size:28px;position:absolute;top:0;right:0}.upload-block{gap:10px;display:grid}.upload-button{border:1px dashed var(--cyan);width:max-content;color:var(--cyan);cursor:pointer;background:#152124;padding:11px 14px;display:inline-block}.upload-button input{display:none}.upload-block small{color:var(--soft);font-size:10px;line-height:1.5}.previews{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.previews figure{aspect-ratio:1;background:#070a0c;margin:0;position:relative}.previews img{object-fit:cover;width:100%;height:100%}.previews button{color:#fff;background:#000c;border:0;border-radius:50%;width:23px;height:23px;position:absolute;top:5px;right:5px}.drawer footer{justify-content:flex-end;gap:10px;margin-top:10px;display:flex}.public-archive{background:#080c0e;min-height:100vh;padding:clamp(26px,6vw,90px);position:relative}.public-archive header{border-bottom:1px solid var(--line);max-width:1000px;margin:0 auto 32px;padding-bottom:25px;position:relative}.public-archive h1{letter-spacing:-.06em;margin:0;font:700 clamp(27px,6vw,56px) Syne}.archive-code{color:var(--soft);letter-spacing:.1em;margin:20px 0 0;font-size:10px}.image-stack{gap:14px;max-width:900px;margin:auto;display:grid;position:relative}.image-stack img{background:#101719;width:100%;min-height:80px;display:block}.public-archive footer{color:#60706d;letter-spacing:.12em;max-width:900px;margin:auto;padding:45px 0 0;font-size:10px;position:relative}.not-found{text-align:left;place-content:center}.not-found h1{margin-bottom:25px;font-size:clamp(60px,15vw,150px)}.not-found>p:last-child{color:var(--soft);max-width:310px;font-size:13px;line-height:1.6}.loading-screen{color:var(--cyan);letter-spacing:.16em;font-size:12px}.loading-screen span{background:var(--acid);width:5px;height:14px;margin-left:9px;animation:.8s infinite blink}@keyframes blink{50%{opacity:0}}.archive-image{cursor:zoom-in;background:#101719;border:0;width:100%;padding:0}.image-viewer{z-index:20;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#000e;place-items:center;padding:70px 18px 24px;display:grid;position:fixed;inset:0}.viewer-toolbar{z-index:1;color:var(--white);align-items:center;gap:8px;font-size:11px;display:flex;position:absolute;top:16px;right:18px}.viewer-toolbar button{width:34px;height:34px;color:var(--white);background:#111a1ce8;border:1px solid #58706d;place-items:center;padding:0;font-size:20px;display:grid}.viewer-toolbar .viewer-close{border-color:var(--acid);color:var(--acid);margin-left:10px;font-size:25px}.viewer-stage{touch-action:none;cursor:grab;place-items:center;width:min(100%,1200px);height:100%;display:grid;overflow:hidden}.viewer-stage:active{cursor:grabbing}.viewer-stage img{object-fit:contain;-webkit-user-select:none;user-select:none;pointer-events:none;transform-origin:50%;max-width:100%;max-height:100%;transition:transform 80ms linear}@media (width<=720px){.admin-shell{grid-template-columns:1fr}.sidebar{border-right:0;border-bottom:1px solid var(--line);min-height:auto;padding:15px}.brand{padding:0 0 17px}.sidebar nav{grid-template-columns:1fr}.logout{display:none}.admin-content{padding:28px 16px}.content-header{flex-direction:column;align-items:start;margin-bottom:24px}.search-bar{grid-template-columns:1fr;padding:16px}.drawer{padding:25px}.login-panel{padding:32px 25px}}
