:root{color-scheme:dark;--bg:#11120f;--panel:#191a16;--line:#2a2b25;--text:#eeeae0;--muted:#8d8c80;--accent:#d7ef78;--serif:"Playfair Display",Georgia,serif;--sans:"DM Sans",sans-serif;--mono:"DM Mono",monospace}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font-family:var(--sans);min-height:100vh}.shell{max-width:1380px;margin:auto;padding:0 64px}.topbar{height:86px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:10px;color:var(--text);font-size:18px;font-weight:600;letter-spacing:-.6px;text-decoration:none}.brand-mark{display:grid;place-items:center;color:var(--accent);width:29px;height:29px;font:400 26px/1 var(--sans)}.topbar-right{display:flex;align-items:center;gap:19px}.private-pill,.eyebrow,footer span:last-child{font:10px var(--mono);letter-spacing:1.35px;color:var(--muted)}.private-pill{display:flex;gap:8px;align-items:center}.private-pill i{width:6px;height:6px;border-radius:50%;background:var(--accent);box-shadow:0 0 9px #d7ef7880}.avatar{width:30px;height:30px;border:1px solid #46473d;border-radius:50%;display:grid;place-items:center;color:var(--accent);font:12px var(--mono)}main{min-height:calc(100vh - 156px)}.intro{display:flex;justify-content:space-between;align-items:end;padding:76px 0 70px}.eyebrow{margin:0 0 17px}.intro h1{font:500 clamp(28px,3.2vw,42px)/1.12 var(--serif);letter-spacing:-1px;margin:0}.intro h1 em{color:var(--accent);font-weight:500}.subtitle{font-size:15px;color:var(--muted);margin:17px 0 0}.button{height:46px;padding:0 18px;border:0;border-radius:4px;font:600 13px var(--sans);cursor:pointer;transition:transform .2s,background .2s}.button:hover{transform:translateY(-1px)}.button-primary{color:#191b12;background:var(--accent)}.button-primary:hover{background:#e1f892}.plus{font-size:18px;margin-right:7px;vertical-align:-1px}.library-head{display:flex;align-items:end;justify-content:space-between;border-top:1px solid var(--line);padding:30px 0 24px}.library-head h2{font-size:17px;font-weight:500;margin:0 0 6px}.library-head h2 span{font:11px var(--mono);color:var(--muted);margin-left:5px}.library-head p{font-size:12px;color:var(--muted);margin:0}.search{width:224px;display:flex;align-items:center;gap:9px;padding:0 0 8px;border-bottom:1px solid #383930;color:var(--muted)}.search span{font-size:21px}.search input{width:100%;background:none;border:0;outline:0;color:var(--text);font:12px var(--sans)}.search input::placeholder{color:#73736a}.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:34px 22px;padding-bottom:72px}.video-card{min-width:0;cursor:pointer}.poster{position:relative;aspect-ratio:1.55;background:#22231e;border:1px solid #292a24;overflow:hidden;border-radius:3px}.poster img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .5s cubic-bezier(.2,.7,.2,1);opacity:.91}.video-card:hover .poster img{transform:scale(1.035);opacity:1}.poster-shade{position:absolute;inset:30% 0 0;background:linear-gradient(transparent,#11120f88)}.play-button{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.85);display:grid;place-items:center;width:48px;height:48px;border:1px solid #ffffff80;border-radius:50%;background:#11120f88;color:white;font-size:15px;padding-left:3px;opacity:0;transition:all .2s}.video-card:hover .play-button{opacity:1;transform:translate(-50%,-50%) scale(1)}.duration{position:absolute;right:11px;bottom:10px;padding:4px 6px;background:#11120fbb;border-radius:2px;color:white;font:10px var(--mono)}.card-meta{display:flex;justify-content:space-between;gap:12px;align-items:start;padding-top:14px}.card-meta h3{font-size:14px;font-weight:500;margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.card-meta p{font-size:11px;color:var(--muted);margin:6px 0 0}.delete-button{border:0;background:none;color:#79796d;font-size:17px;cursor:pointer;padding:0 3px}.delete-button:hover{color:#e99985}.empty-state{text-align:center;padding:68px 0 100px}.empty-icon{font-size:30px;color:var(--accent)}.empty-state h3{font:500 27px var(--serif);margin:14px 0 8px}.empty-state p{color:var(--muted);font-size:13px;margin:0 0 24px}.button-secondary{background:transparent;border:1px solid #44453a;color:var(--text)}footer{height:70px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;color:#74746a;font-size:11px}footer span:last-child{font-size:9px}.footer-heart{font-style:normal;color:var(--accent);margin-left:6px}.loading{grid-column:1/-1;display:flex;justify-content:center;align-items:center;gap:10px;color:var(--muted);font-size:13px;padding:80px}.spinner{width:15px;height:15px;border:1px solid #535448;border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.dialog{border:0;padding:0;background:transparent;color:var(--text);max-width:min(520px,calc(100% - 28px));width:100%;overflow:visible}.dialog::backdrop{background:#090a08dd;backdrop-filter:blur(5px)}.dialog-card,.player-card{position:relative;background:#191a16;border:1px solid #35362d;border-radius:5px;padding:35px}.dialog-close{position:absolute;right:17px;top:13px;border:0;background:none;color:#aaa99e;font-size:25px;cursor:pointer}.dialog-card h2,.player-caption h2{font:500 30px var(--serif);margin:0}.dialog-copy{font-size:12px;color:var(--muted);line-height:1.7;margin:11px 0 24px}.field-label{display:block;font-size:11px;color:#c2c0b3;margin-bottom:8px}.text-input{width:100%;height:42px;background:#11120f;border:1px solid #37382f;border-radius:3px;color:var(--text);padding:0 12px;font:13px var(--sans);outline:none}.text-input:focus{border-color:#a4b75c}.file-drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;margin-top:15px;padding:22px 10px;border:1px dashed #55564b;border-radius:3px;cursor:pointer}.drop-icon{font-size:24px;color:var(--accent);margin-bottom:3px}.file-drop strong{font-size:12px;font-weight:500}.file-drop small,.thumb-preview-wrap small{font-size:10px;color:var(--muted)}.file-drop input{position:absolute;width:1px;height:1px;opacity:0}.thumb-preview-wrap{display:flex;align-items:center;gap:11px;margin-top:14px}.thumb-preview-wrap img{width:76px;height:48px;object-fit:cover;border-radius:2px}.thumb-preview-wrap div{display:flex;flex-direction:column;gap:4px;flex:1}.thumb-preview-wrap strong{font-size:11px;font-weight:500}.button-quiet{height:32px;padding:0 10px;border:1px solid #44453a;color:#cccabb;background:none;font-size:11px}.button-wide{width:100%;margin-top:22px;display:flex;align-items:center;justify-content:space-between;padding:0 16px}.progress-wrap{margin-top:17px}.progress-track{height:3px;background:#393a31;border-radius:3px;overflow:hidden}.progress-track i{display:block;height:100%;width:0;background:var(--accent);transition:width .15s}.progress-wrap span{display:block;margin-top:7px;color:var(--muted);font:10px var(--mono)}.error-message{color:#f0927f;font-size:12px;margin:14px 0 0}.player-dialog{max-width:min(1040px,calc(100% - 28px))}.player-card{padding:14px}.player-close{z-index:1;background:#11120f99;width:32px;height:32px;right:21px;top:20px;border-radius:50%;color:white}.player-card video{width:100%;max-height:72vh;display:block;background:#090a08;border-radius:2px}.player-caption{padding:18px 9px 6px}.player-caption .eyebrow{font-size:9px;margin-bottom:7px}.player-caption h2{font-size:22px}.player-dialog[open]{animation:appear .2s ease-out}@keyframes appear{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}[hidden]{display:none!important}@media(max-width:860px){.shell{padding:0 34px}.gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.intro{padding:60px 0}.intro h1{font-size:36px}}@media(max-width:560px){.shell{padding:0 19px}.topbar{height:70px}.private-pill{font-size:8px}.intro{display:block;padding:55px 0 46px}.intro h1{font-size:32px;letter-spacing:-1px}.intro .button{margin-top:27px}.library-head{align-items:start}.search{width:145px}.gallery{grid-template-columns:1fr;gap:23px}.poster{aspect-ratio:1.62}.play-button{opacity:1;transform:translate(-50%,-50%)}footer span:first-child{font-size:10px}footer span:last-child{font-size:8px}.dialog-card{padding:30px 23px}.dialog-card h2{font-size:27px}}

.login-screen{min-height:100vh;display:grid;place-items:center;padding:28px 18px}.login-card{width:min(100%,430px);padding:42px;background:var(--panel);border:1px solid var(--line);border-radius:5px;box-shadow:0 24px 80px #0005}.login-brand{margin-bottom:44px}.login-card .eyebrow{margin:0 0 14px}.login-card h1{font:500 clamp(26px,4vw,32px)/1.12 var(--serif);letter-spacing:-1px;margin:0}.login-card h1 em{color:var(--accent);font-weight:500}.login-copy{font-size:13px;color:var(--muted);margin:13px 0 30px}.login-form{display:grid;gap:10px}.login-form .field-label{margin:8px 0 0}.login-form .button-wide{margin-top:14px}.sign-out{height:34px;padding:0 12px;border:1px solid #44453a;border-radius:3px;background:transparent;color:var(--muted);font:11px var(--sans);cursor:pointer}.sign-out:hover{border-color:#73745f;color:var(--text)}@media(max-width:560px){.login-card{padding:30px 24px}.login-brand{margin-bottom:37px}}
.delete-button{width:30px;height:30px;display:grid;place-items:center;border:1px solid transparent;border-radius:3px;background:transparent;color:var(--muted);cursor:pointer}.delete-button svg,.delete-symbol svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.delete-button:hover{border-color:#51342f;color:#e99985}.delete-button:disabled{opacity:.5;cursor:wait}.delete-card{max-width:460px}.delete-symbol{width:42px;height:42px;display:grid;place-items:center;margin:0 0 22px;border:1px solid #51342f;border-radius:50%;color:#e99985}.delete-symbol svg{width:20px;height:20px}.delete-card .eyebrow{margin:0 0 10px}.delete-card h2{font-size:25px;overflow-wrap:anywhere}.delete-card .dialog-copy{margin:12px 0 22px}.delete-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:25px}.button-danger{background:#9b4f43;color:#fff;font:600 13px var(--sans)}.button-danger:hover{background:#b75d4f}.button-danger:disabled{opacity:.65;cursor:wait}
