@import "https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&family=Space+Grotesk:wght@500;700&display=swap";
@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/fef07dbb0973bf53-s.00az9qtie3ho1.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.3j-a226dh71aj.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/53b9e256198e5412-s.2gwoz23eiro2t.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.0i3h3th1vs4m7.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.0zr6hhvz-h9nw.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist", "Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/5ce348bf30bf5439-s.27spqqad3wyeo.woff2)format("woff2");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.3f4zuumv8svu0.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/6306c77e7c8268e4-s.34r5yzckw0h2s.woff2)format("woff2");unicode-range:U+2000-2001,U+2004-2008,U+200A,U+23B8-23BD,U+2500-259F}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7d817b4c03b0c5f1-s.2jyz_zw3a8jit.woff2)format("woff2");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.30bdpjkrtcces.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.1v5bejj26fx9h.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono", "Geist Mono Fallback"}
:root{--ink:#f5f1e8;--muted:#b9b2a5;--accent:#d4ff54;--accent-ink:#11140f;--red:#ff6b5e;--fav:#f5b544;--line:#ffffff30;--field:#ffffff25 #ffffff25;--surface:#fff;--surface-text:#1f2937;--surface-muted:#6b7280;--surface-line:#0000002e;--surface-hover:#eceef1;--scrim:#080a08e0;--bg-image:url(/background.jpg)}[data-theme=light]{--ink:#23241d;--muted:#56584a;--accent:#55651a;--accent-ink:#fff;--red:#b42318;--fav:#8a5a00;--line:#23241d3d;--field:#fffdf7cc;--chip:#23241d14}*{box-sizing:border-box}body{color:var(--ink);background:#11140f;margin:0;font-family:DM Sans,sans-serif}body:before{content:"";z-index:-1;opacity:.18;background:var(--bg-image) center / cover;filter:grayscale();position:fixed;inset:0}[data-theme=light] body{background:#d3c4a2}[data-theme=light] body:before{opacity:.14}button,input,select{font:inherit}button{cursor:pointer}.library-shell{width:min(1180px,100% - 3rem);margin:0 auto;padding:3rem 0 5rem}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:end;gap:2rem;padding-bottom:2.5rem;display:flex}.eyebrow{color:var(--accent);letter-spacing:.14em;margin:0 0 .8rem;font-size:.75rem;font-weight:700}h1{letter-spacing:-.04em;max-width:650px;margin:0;font:700 clamp(2.5rem,7vw,6rem)/.9 Space Grotesk,sans-serif}.subtitle{color:var(--muted);margin:1rem 0 0;font-size:1.05rem}.account{color:var(--muted);text-align:right;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;font-size:.85rem;display:flex}.storage-status{background:var(--chip);color:var(--muted);white-space:nowrap;border-radius:999px;padding:.3rem .7rem;font-size:.75rem}.auth-error{border:1px solid var(--red);color:var(--red);border-radius:.75rem;margin:1rem 0 0;padding:.8rem 1rem}.role{letter-spacing:.1em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;gap:.4rem;padding:.3rem .7rem;font-size:.68rem;font-weight:700;display:inline-flex}.role:before{content:"";background:currentColor;border-radius:50%;width:.4rem;height:.4rem}.role.visitor{background:var(--chip);color:var(--ink)}.role.owner{background:var(--accent);color:var(--accent-ink)}.account-notice{border:1px solid var(--line);border-left:3px solid var(--fav);max-width:65ch;color:var(--muted);border-radius:.75rem;margin:1.25rem 0 0;padding:.85rem 1.1rem;font-size:.9rem;line-height:1.5}.account-notice b{color:var(--ink);font-weight:700}.owner-tools{border:1px solid var(--accent);background:var(--chip);border-radius:1rem;margin:0 0 2rem;padding:1rem 1.25rem}.owner-tools .bulk-title{color:var(--accent)}.account button{text-wrap:nowrap;flex:100px;color:#1e1e1e!important;background-color:#0ff!important}.account button,.toolbar button,.upload{border:1px solid var(--line);color:var(--ink);background:0 0;border-radius:999px;padding:.7rem 1rem}.account button:hover,.toolbar button:hover,.upload:hover{border-color:var(--accent);color:var(--accent)}.account button:disabled{cursor:wait;opacity:.6}.toolbar{flex-wrap:wrap;align-items:center;gap:.7rem;width:100%;padding:1.25rem 0 2rem;display:flex}.toolbar>input[type=search]{border:1px solid var(--line);background:var(--field);width:100%;min-height:2.7rem;color:var(--ink);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);border-radius:999px;outline:none;padding:.7rem 1rem}.toolbar>input[type=search]:focus{border-color:var(--accent)}.toolbar select{border:1px solid var(--line);min-height:2.7rem;color:var(--ink);cursor:pointer;appearance:none;background-color:var(--field);background-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 8\"><path d=\"M1 1 6 6 11 1\" fill=\"none\" stroke=\"%23b9b2a5\" stroke-width=\"2\" stroke-linecap=\"round\"/></svg>");background-position:right 1rem center;background-repeat:no-repeat;background-size:.7rem;border-radius:999px;padding:.7rem 2.4rem .7rem 1rem}[data-theme=light] .toolbar select{background-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 8\"><path d=\"M1 1 6 6 11 1\" fill=\"none\" stroke=\"%234b5563\" stroke-width=\"2\" stroke-linecap=\"round\"/></svg>")}.toolbar select:hover{border-color:var(--accent);color:var(--accent)}.toolbar select option{color:#f5f1e8;background:#20231f}[data-theme=light] .toolbar select option{color:#1c2420;background:#fff}.toolbar .random_lyric{background-color:#8d404d!important}.upload input{display:none}.theme-switch{border:1px solid var(--line);min-height:2.7rem;color:var(--ink);cursor:pointer;border-radius:999px;align-items:center;gap:.6rem;padding:.35rem 1rem;font-size:.9rem;display:inline-flex;position:relative}.theme-switch:hover{border-color:var(--accent);color:var(--accent)}.theme-switch input{clip-path:inset(50%);white-space:nowrap;border:0;flex:none;width:1px;height:1px;min-height:0;margin:-1px;padding:0;position:absolute;top:0;left:0;overflow:hidden}.switch-track{background:#6b7280;border-radius:1rem;width:2.7rem;height:1.5rem;transition:background .2s;position:relative}.switch-track:after{content:"";background:#fff;border-radius:50%;width:1.1rem;height:1.1rem;transition:transform .2s;position:absolute;top:.2rem;left:.2rem}.theme-switch input:checked+.switch-track{background:var(--accent)}.theme-switch input:checked+.switch-track:after{transform:translate(1.2rem)}.theme-switch input:focus-visible+.switch-track{outline:2px solid var(--accent);outline-offset:2px}.image-grid{column-width:22rem;column-gap:1.25rem}.image-card{break-inside:avoid;border:1px solid var(--surface-line);background:var(--surface);cursor:grab;border-radius:1rem;width:100%;margin:0 0 1.25rem;padding:.4rem;transition:transform .2s,box-shadow .2s,border-color .2s,opacity .2s;display:inline-block;position:relative;overflow:hidden;box-shadow:0 4px 14px #0000000d}.image-card:hover{border-color:var(--accent);transform:translateY(-.4rem)scale(1.01);box-shadow:0 1rem 2rem #00000035}.image-card.favorite{border-color:var(--fav);box-shadow:0 0 0 .18rem #f5b54466,0 4px 14px #0000000d}.image-card.selected{border-color:var(--red);box-shadow:0 0 0 .2rem #ff6b5e66,0 4px 14px #0000000d}.image-card.dragging{cursor:grabbing;opacity:.45;transform:scale(.98)}.image-grid.selecting .image-card{cursor:pointer}[data-theme=light] .image-card{border-color:#23241d2e;box-shadow:0 6px 18px #0000001f}[data-theme=light] .image-card:hover{box-shadow:0 1rem 2rem #0003}.image-card img{width:100%;aspect-ratio:var(--ar);background:#0000000a;border-radius:1rem;display:block}.card-mark{color:#fff;background:#111827e6;border-radius:999px;padding:.3rem .6rem;font-size:.7rem;font-weight:600;position:absolute;top:.8rem;right:.8rem}.done-button{z-index:4;background:var(--accent);color:var(--accent-ink);border:0;border-radius:999px;padding:.8rem 1.2rem;font-weight:700;position:fixed;bottom:1.5rem;right:1.5rem}.empty-state{border:1px dashed var(--line);color:var(--muted);text-align:center;border-radius:1rem;padding:3rem}.bulk-edit,.restore-confirm{border:1px solid var(--line);background:var(--chip);border-radius:1rem;margin:0 0 1.5rem;padding:1rem 1.25rem}.restore-confirm{border-color:var(--accent)}.restore-confirm p{color:var(--muted);margin:0 0 .75rem;font-size:.9rem}.bulk-title{color:var(--ink);letter-spacing:.04em;margin:0 0 .75rem;font-size:.85rem;font-weight:700}.bulk-fields{flex-wrap:wrap;align-items:center;gap:.6rem;display:flex}.bulk-fields input{border:1px solid var(--line);background:var(--field);min-height:2.6rem;color:var(--ink);border-radius:999px;outline:none;flex:12rem;padding:.6rem .9rem}.bulk-fields input:focus{border-color:var(--accent)}.bulk-fields select,.bulk-fields button{border:1px solid var(--line);min-height:2.6rem;color:var(--ink);cursor:pointer;background:0 0;border-radius:999px;padding:.6rem 1rem}.bulk-fields select{appearance:none;background-color:var(--field);background-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 8\"><path d=\"M1 1 6 6 11 1\" fill=\"none\" stroke=\"%23b9b2a5\" stroke-width=\"2\" stroke-linecap=\"round\"/></svg>");background-position:right .9rem center;background-repeat:no-repeat;background-size:.7rem;padding-right:2.2rem}[data-theme=light] .bulk-fields select{background-image:url("data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 12 8\"><path d=\"M1 1 6 6 11 1\" fill=\"none\" stroke=\"%234b5563\" stroke-width=\"2\" stroke-linecap=\"round\"/></svg>")}.bulk-fields select option{color:#f5f1e8;background:#20231f}[data-theme=light] .bulk-fields select option{color:#1c2420;background:#fff}.bulk-fields .upload{align-items:center;min-height:2.6rem;padding:.6rem 1rem;display:inline-flex}.bulk-fields button:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.bulk-fields button:disabled{cursor:not-allowed;opacity:.35}.bulk-fields button.danger{color:var(--red);border-color:var(--red)}.viewer-dialog{z-index:10;background:var(--scrim);border:0;width:100%;max-width:none;height:100%;max-height:none;margin:0;padding:2rem;position:fixed;inset:0;overflow:auto}.viewer-dialog::backdrop{background:0 0}.viewer-panel{background:var(--surface);width:min(92vw,36rem);color:var(--surface-text);border-radius:1rem;gap:1rem;margin:auto;padding:1rem;display:grid;box-shadow:0 1.5rem 4rem #0008}.viewer-panel img{object-fit:contain;cursor:zoom-in;border-radius:1.25rem;max-width:100%;max-height:65vh;margin:auto}.viewer-navigation{justify-content:space-between;align-items:center;gap:.75rem;display:flex}.viewer-count{color:var(--surface-muted);letter-spacing:.08em;font-size:.85rem}.viewer-toolbar{flex-wrap:wrap;justify-content:center;gap:.5rem;display:flex}.viewer-fields{gap:.65rem;display:grid}.viewer-fields input,.viewer-fields textarea{border:1px solid var(--surface-line);width:100%;color:var(--surface-text);font:inherit;resize:vertical;background:#fff;border-radius:.4rem;padding:.65rem}.viewer-fields input:focus,.viewer-fields textarea:focus{border-color:#0f766e;outline:none}.viewer-fields input:disabled,.viewer-fields textarea:disabled{color:var(--surface-muted);background:#f3f4f6}.viewer-actions{flex-wrap:wrap;justify-content:end;gap:.65rem;display:flex}.viewer-panel button{border:1px solid var(--surface-line);color:var(--surface-text);background:#f3f4f6;border-radius:.5rem;padding:.6rem 1rem;font-weight:600}.viewer-panel button:hover:not(:disabled){background:var(--surface-hover);color:#0f766e;border-color:#0f766e}.viewer-panel button:disabled{cursor:not-allowed;opacity:.4}.viewer-panel button.danger{color:#b42318;border-color:#b42318}.viewer-panel button.danger:hover:not(:disabled){color:#b42318;background:#fee4e2;border-color:#b42318}.viewer-dialog.fullscreen{background:#050605;padding:0}.viewer-dialog.fullscreen .viewer-panel{width:100%;max-width:none;box-shadow:none;background:#050605;border-radius:0;align-content:center;padding:0}.viewer-dialog.fullscreen .viewer-panel img{cursor:zoom-out;border-radius:0;width:100vw;max-width:100vw;max-height:100vh}.viewer-dialog.fullscreen .viewer-navigation,.viewer-dialog.fullscreen .viewer-toolbar,.viewer-dialog.fullscreen .viewer-fields,.viewer-dialog.fullscreen .viewer-actions{display:none}.viewer-panel:fullscreen{width:100%;max-width:none;box-shadow:none;background:#050605;border-radius:0;align-content:center;padding:0}.viewer-panel:fullscreen img{cursor:zoom-out;border-radius:0;width:100vw;max-width:100vw;max-height:100vh}.viewer-panel:fullscreen .viewer-navigation,.viewer-panel:fullscreen .viewer-toolbar,.viewer-panel:fullscreen .viewer-fields,.viewer-panel:fullscreen .viewer-actions{display:none}html:has(.viewer-dialog[open]){overflow:hidden}.viewer-dialog[open]{animation:.25s ease-out both backdrop-in}.viewer-dialog[open].closing{animation:.2s ease-in both backdrop-out}.viewer-dialog[open] .viewer-panel{animation:.25s ease-out both viewer-in}.viewer-dialog[open].closing .viewer-panel{animation:.2s ease-in both viewer-out}@keyframes backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes backdrop-out{0%{opacity:1}to{opacity:0}}@keyframes viewer-in{0%{opacity:0;transform:scale(.94)translateY(.75rem)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes viewer-out{0%{opacity:1;transform:scale(1)translateY(0)}to{opacity:0;transform:scale(.94)translateY(.75rem)}}button:focus-visible,input:focus-visible,select:focus-visible,.upload:focus-within,.image-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.viewer-panel button:focus-visible,.viewer-fields input:focus-visible{outline-offset:2px;outline:2px solid #0f766e}@media (prefers-reduced-motion:reduce){.viewer-dialog[open],.viewer-dialog[open].closing,.viewer-dialog[open] .viewer-panel,.viewer-dialog[open].closing .viewer-panel{animation-duration:.01ms}.image-card,.image-card:hover{transition:none;transform:none}.switch-track,.switch-track:after{transition:none}}@media (max-width:700px){.library-shell{width:min(100% - 3rem,1180px)}.topbar{flex-direction:column;align-items:start}.account{text-align:left}.viewer-dialog{padding:1rem}.viewer-panel{width:100%}.viewer-panel img{max-height:55vh}.viewer-actions{justify-content:stretch}.viewer-actions button{flex:auto}}
