:root{font-family:Inter,"Segoe UI","Microsoft YaHei",sans-serif;color:#20243a;background:#f5f6fb;font-synthesis:none;text-rendering:optimizeLegibility;--muted:#7f879a;--purple:#6958e8;--line:#e8eaf2;--card:#fff}*{box-sizing:border-box}html{min-width:320px}body{margin:0;min-height:100vh;background:radial-gradient(ellipse at 90% 2%,#eeeaff 0,transparent 26%),#f5f6fb}button,input{font:inherit}a{color:inherit}.shell,.gallery-shell{width:min(1150px,100% - 48px);margin:0 auto;padding:28px 0 72px}.topbar,.brand,.user-area{display:flex;align-items:center}.topbar{justify-content:space-between;gap:20px}.brand{gap:12px}.brand strong,.brand span{display:block}.brand strong{font-size:15px;letter-spacing:.1px}.brand span{font-size:11px;color:var(--muted);margin-top:4px}.brand-mark{height:48px;width:48px;border-radius:16px;background:linear-gradient(145deg,#8272ff,#5545d8);display:grid;place-items:center;color:white;font-size:24px;font-weight:700;box-shadow:0 10px 25px #6d5ce644;flex:none}.brand-mark.small{height:40px;width:40px;border-radius:13px;font-size:20px}.brand-link{text-decoration:none;color:inherit}.user-area{gap:12px;font-size:13px;color:#586174}.quiet{border:0;background:transparent;color:#737d90;cursor:pointer;padding:9px;text-decoration:none;font-size:12px}.quiet:hover,.back-link a:hover{color:var(--purple)}.primary{display:inline-flex;align-items:center;justify-content:center;background:var(--purple);color:white;border:0;border-radius:11px;padding:12px 17px;font-weight:600;font-size:13px;box-shadow:0 5px 13px #6958e833;cursor:pointer;text-decoration:none;transition:transform .18s,background .18s}.primary:hover{background:#5948d4;transform:translateY(-1px)}.eyebrow{font-size:10px;font-weight:700;letter-spacing:2px;color:#8879e8;margin:0 0 13px}.subtle{font-size:13px;color:var(--muted);margin:0}.hero{margin-top:40px;min-height:220px;background:linear-gradient(110deg,#fff 0%,#fbfaff 62%,#efedff 100%);border:1px solid #fff;border-radius:24px;box-shadow:0 12px 38px #2934580a;padding:38px 45px;position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between}.hero h1{font-size:28px;letter-spacing:-.6px;margin:0 0 10px;line-height:1.35}.hero-art{width:245px;height:145px;position:relative;display:grid;place-items:center;margin-right:12px;flex:none}.orb{position:absolute;border-radius:50%}.orb-one{width:138px;height:138px;background:linear-gradient(145deg,#e5e1ff,#c9c3ff);right:18px;top:2px}.orb-two{width:94px;height:94px;background:linear-gradient(145deg,#d1ccff,#a89cff);right:79px;bottom:-2px;opacity:.9}.art-card{position:relative;width:111px;height:94px;border:1px solid #ffffffbd;border-radius:18px;background:linear-gradient(140deg,#ffffffed,#f2f0ffde);box-shadow:0 14px 36px #6256c633;display:flex;align-items:center;justify-content:center;color:#8b7bf2;font-size:32px;transform:rotate(-8deg)}.art-card small{position:absolute;bottom:12px;left:0;right:0;text-align:center;font-size:7px;letter-spacing:1.3px;color:#9290ac}.toolbar{display:flex;justify-content:space-between;align-items:center;margin:34px 0 18px}.toolbar h2{font-size:18px;margin:0 0 5px}.toolbar .subtle{font-size:12px}.upload-button{position:relative;overflow:hidden}.upload-button input{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer}.dropzone{border:1px dashed #d5d7e7;background:#fafaff;border-radius:15px;min-height:78px;display:flex;align-items:center;justify-content:center;gap:13px;color:#737d90;transition:.2s}.dropzone.active{border-color:#8b7bf2;background:#f0efff}.drop-icon{width:36px;height:36px;display:grid;place-items:center;border-radius:11px;background:#eeedff;color:#7666e7;font-size:22px}.dropzone strong,.dropzone div span{display:block}.dropzone strong{font-size:12px;color:#535d70;margin-bottom:4px}.dropzone div span{font-size:11px}.upload-status{margin-top:9px}.progress-row{display:flex;justify-content:space-between;gap:14px;padding:8px 4px;color:#697386;font-size:12px;border-bottom:1px solid var(--line)}.progress-row.failed{color:#bf4b62}.file-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin-top:21px}.file-card{min-width:0;overflow:hidden;background:var(--card);border:1px solid #edf0f5;border-radius:15px;box-shadow:0 5px 17px #1f31500a;transition:transform .2s,box-shadow .2s}.file-card:hover{transform:translateY(-3px);box-shadow:0 12px 25px #1f315013}.media{width:100%;height:180px;padding:0;border:0;background:#f0f0f6;display:block;position:relative;cursor:pointer;overflow:hidden}.media img,.media video{display:block;width:100%;height:100%;object-fit:cover}.kind{position:absolute;top:10px;left:10px;padding:5px 7px;background:#24243b99;color:white;border-radius:6px;font-size:8px;letter-spacing:1px;font-weight:700}.play{position:absolute;inset:0;margin:auto;width:39px;height:39px;border:1px solid #ffffffb0;border-radius:50%;display:grid;place-items:center;color:white;background:#19182b75;padding-left:3px}.file-info{padding:12px 13px 13px}.file-title{font-size:12px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-meta{font-size:10px;color:#9aa2b0;margin-top:6px}.file-actions{display:flex;gap:16px;margin-top:11px;padding-top:9px;border-top:1px solid #f0f1f5}.file-actions a,.file-actions button{font-size:11px;color:#7e72db;text-decoration:none;background:none;border:0;padding:0;cursor:pointer}.file-actions button{color:#9a9fad}.file-actions button:hover{color:#cb5366}.empty{text-align:center;padding:54px 12px 20px}.empty-icon{font-size:30px;color:#b9b3ee}.empty h3{font-size:14px;margin:11px 0 5px}.empty p{font-size:12px;color:var(--muted);margin:0}.login-card{background:#fff;max-width:405px;margin:11vh auto 0;border-radius:22px;padding:39px 42px;box-shadow:0 18px 55px #28365512}.login-card .brand-mark{margin-bottom:25px}.login-card h1{font-size:25px;margin:0}.login-card .subtle{margin:8px 0 27px}.login-card label{display:block;color:#485265;font-size:12px;font-weight:600;margin:15px 0}.login-card input{display:block;width:100%;border:1px solid #e4e7ef;border-radius:10px;height:44px;padding:0 12px;margin-top:7px;outline:none;color:#182230}.login-card input:focus{border-color:#998df0;box-shadow:0 0 0 3px #8e81ed1e}.full{width:100%;height:44px;margin-top:10px}.error{color:#c94d61;font-size:12px;min-height:17px;margin:13px 0 0}.back-link{margin:20px 0 0;font-size:12px}.back-link a{color:#7465df;text-decoration:none}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%,12px);opacity:0;pointer-events:none;background:#25263a;color:white;padding:11px 17px;border-radius:10px;font-size:12px;transition:.2s;z-index:10;box-shadow:0 8px 25px #18223030}.toast.show{opacity:1;transform:translate(-50%,0)}.preview{position:fixed;inset:0;z-index:20;background:#10111bef;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:55px 30px 30px}.preview[hidden]{display:none}.preview-close{position:absolute;right:25px;top:14px;color:white;background:none;border:0;font-size:36px;cursor:pointer}.preview-content{width:min(1050px,92vw);height:78vh;display:flex;align-items:center;justify-content:center}.preview-content img,.preview-content video{display:block;max-width:100%;max-height:100%;border-radius:8px;object-fit:contain}.preview p{color:#ffffffc9;font-size:12px;margin-top:14px}.modal-open{overflow:hidden}.login-card[hidden],#drive[hidden]{display:none!important}.gallery-shell .hero{margin-top:40px}.gallery-shell .toolbar{margin-top:34px}.gallery-shell .file-grid{margin-top:20px}.admin-link{white-space:nowrap}@media(max-width:900px){.file-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.shell,.gallery-shell{width:min(100% - 40px,850px);padding:24px 0 55px}.hero{padding:34px 35px}}@media(max-width:650px){.shell,.gallery-shell{width:calc(100% - 32px);padding:17px 0 45px}.hero,.gallery-shell .hero{margin-top:25px;padding:29px 24px;min-height:180px}.hero h1{font-size:21px;max-width:75%}.hero-art{position:absolute;right:-62px;opacity:.58;transform:scale(.75)}.hero>div:first-child{position:relative;z-index:1}.toolbar{margin-top:27px}.toolbar h2{font-size:16px}.upload-button{padding:11px 12px;font-size:11px}.dropzone{min-height:70px}.file-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.media{height:145px}.user-area{gap:4px;font-size:11px}.brand span{display:none}.login-card{margin:10vh 16px 0;padding:32px 26px}.admin-link{padding:10px 12px;font-size:11px}}@media(max-width:370px){.file-grid{grid-template-columns:1fr}.media{height:190px}.hero h1{max-width:100%}.hero-art{opacity:.35}}
