:root{color:#2b2b2b;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:radial-gradient(circle at 0 0,#ffffffb3,#0000 34%),radial-gradient(circle at 100% 0,#b4b4b457,#0000 28%),linear-gradient(#ededed 0%,#e5e5e5 50%,#ddd 100%);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}html,body,#app{min-height:100%}html{-webkit-text-size-adjust:100%}body{background:inherit;min-height:100dvh;margin:0}button,input,textarea,select{font:inherit}button{cursor:pointer}a{color:inherit}button,input{font:inherit}h1,h2,h3,p,dl,dt,dd{margin:0}h1{letter-spacing:-.05em;font-size:clamp(2rem,4vw,3.6rem);line-height:.96}h2{letter-spacing:-.03em;font-size:clamp(1.2rem,2vw,1.55rem);line-height:1.02}h3{font-size:1rem;line-height:1.25}.page-shell{min-height:100dvh;padding:max(20px, env(safe-area-inset-top)) max(20px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(20px, env(safe-area-inset-left))}.upload-layout,.terminal-state{width:min(1200px,100%);margin:0 auto}.upload-layout{gap:16px;display:grid}.terminal-state,.dropzone,.gallery-panel,.upload-toolbar,.upload-message{background:#f5f5f5a8;border:1px solid #3737371f}.dropzone__eyebrow,.terminal-state__eyebrow{letter-spacing:.14em;text-transform:uppercase;color:#6a6a6a;margin-bottom:8px;font-size:.78rem;font-weight:700}.terminal-state__description,.dropzone__hint,.gallery-empty p,.gallery-item__details,.preview-modal__details,.preview-modal__counter,.dropzone__meta,.dropzone__progress-copy,.gallery-panel__summary,.upload-toolbar__summary{color:#666}.upload-block{gap:14px;display:grid}.dropzone,.terminal-state{border-radius:24px}.dropzone{min-height:240px;margin:20px 20px 0;padding:22px 18px;position:relative;overflow:hidden}.dropzone:before{content:"";border:2px dashed #78787861;border-radius:18px;transition:opacity .12s;position:absolute;inset:12px}.dropzone[data-active=true]:before{background:#ffffff6b;border-color:#464646b3}.dropzone[data-disabled=true]{opacity:.7}.dropzone__input{opacity:0;pointer-events:none;position:absolute;inset:0}.dropzone__content{z-index:1;text-align:center;align-content:center;gap:16px;min-height:200px;display:grid;position:relative}.dropzone__actions{justify-items:center;gap:10px;display:grid}.dropzone__meta{font-size:.94rem}.dropzone__active-copy,.dropzone__progress-copy{color:#3e3e3e;font-size:.95rem}.dropzone__progress{justify-items:center;gap:10px;display:grid}.dropzone__progress-bar{background:#3737371a;border-radius:999px;width:min(420px,100%);height:10px;overflow:hidden}.dropzone__progress-fill{border-radius:inherit;background:linear-gradient(90deg,#525252,#888);height:100%;display:block}.upload-message{border-radius:16px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:0 20px;padding:12px 14px;display:flex}.upload-message--error{color:#8b2c2c;background:#a03c3c14;border-color:#a03c3c29}.upload-message--success{color:#2e6b35;background:#3c783c14;border-color:#3c783c29}.upload-message--info{color:#3b3b3b;background:#50505014;border-color:#50505029}.upload-toolbar{border-radius:16px;justify-content:space-between;align-items:center;gap:12px;margin:0 20px;padding:12px 14px;display:flex}.gallery-panel{border-radius:0;gap:0;padding:0;display:grid;overflow:hidden}.gallery-panel__header{background:#d8d8d8cc;border-bottom:1px solid #3737371f;justify-content:space-between;align-items:flex-start;gap:16px;padding:16px 20px;display:flex}.gallery-panel__summary{white-space:nowrap;background:#3c3c3c14;border-radius:999px;padding:7px 12px;font-size:.92rem}.gallery-empty{text-align:center;background:#e6e6e69e;border-radius:0;place-items:center;gap:8px;min-height:220px;padding:20px;display:grid}.gallery-grid{background:#dcdcdc5c;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;display:grid}.gallery-item{aspect-ratio:1;background:#cfcfcf;border-bottom:1px solid #4b4b4b1f;border-right:1px solid #4b4b4b1f;min-width:0;position:relative}.gallery-item:nth-child(3n){border-right:0}.gallery-item:nth-last-child(-n+3){border-bottom:0}.gallery-item__open{width:100%;height:100%;color:inherit;text-align:left;background:0 0;border:0;padding:0;display:block;position:absolute;inset:0}.gallery-item__image,.gallery-item__fallback{width:100%;height:100%;position:absolute;inset:0}.gallery-item__image{object-fit:cover;display:block}.gallery-item__fallback{text-align:center;color:#555;align-content:center;justify-items:center;gap:6px;padding:16px;display:grid}.gallery-item__overlay{opacity:0;pointer-events:none;background:#0000003d;transition:opacity .12s;position:absolute;inset:0}.gallery-item__meta{color:#fff;opacity:0;pointer-events:none;background:#232323db;gap:4px;padding:10px 12px;transition:opacity .12s,transform .12s;display:grid;position:absolute;bottom:0;left:0;right:0;transform:translateY(8px)}.gallery-item__name{text-overflow:ellipsis;white-space:nowrap;font-size:.92rem;overflow:hidden}.gallery-item__details{color:#ffffffd1;font-size:.8rem}.gallery-item__delete{z-index:2;color:#fff;opacity:0;background:#191919c7;border:0;border-radius:999px;place-items:center;width:34px;height:34px;font-size:20px;line-height:1;transition:opacity .12s,transform .12s;display:grid;position:absolute;top:10px;right:10px;transform:scale(.94)}.gallery-item__delete:hover:not(:disabled){transform:scale(1)}.gallery-item:hover .gallery-item__overlay,.gallery-item:focus-within .gallery-item__overlay{opacity:1}.gallery-item:hover .gallery-item__meta,.gallery-item:focus-within .gallery-item__meta,.gallery-item:hover .gallery-item__delete,.gallery-item:focus-within .gallery-item__delete{opacity:1;transform:scale(1)}.gallery-item__delete:disabled{cursor:not-allowed;opacity:.55}.preview-modal{z-index:1000;background:#000000e6;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.preview-modal__panel{grid-template-rows:minmax(0,1fr) auto;gap:16px;width:min(1100px,100%);max-height:min(92dvh,940px);display:grid;position:relative}.preview-modal__image-shell{background:#ffffff0a;border-radius:22px;place-items:center;min-height:0;display:grid;position:relative;overflow:hidden}.preview-modal__image{object-fit:contain;max-width:100%;max-height:calc(92dvh - 140px);display:block}.preview-modal__close,.preview-modal__nav{color:#fff;background:#282828d1;border:0;transition:opacity .12s,transform .12s;position:absolute}.preview-modal__close:hover:not(:disabled),.preview-modal__nav:hover:not(:disabled){transform:translateY(-1px)}.preview-modal__close{border-radius:999px;place-items:center;width:42px;height:42px;font-size:28px;line-height:1;display:grid;top:10px;right:10px}.preview-modal__nav{border-radius:999px;place-items:center;width:48px;height:48px;font-size:28px;display:grid;top:50%;transform:translateY(-50%)}.preview-modal__nav--prev{left:10px}.preview-modal__nav--next{right:10px}.preview-modal__nav:disabled,.preview-modal__close:disabled{opacity:.35;cursor:not-allowed;transform:none}.preview-modal__footer{color:#232323;background:#ebebebeb;border-radius:18px;justify-content:space-between;align-items:end;gap:16px;padding:16px 18px;display:flex}.preview-modal__meta{gap:4px;min-width:0;display:grid}.preview-modal__name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.preview-modal__details,.preview-modal__counter{font-size:.92rem}.preview-modal__actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:12px;display:flex}.preview-modal__link{min-width:0}.terminal-state{align-content:center;gap:14px;min-height:calc(100dvh - 40px);padding:28px;display:grid}.terminal-state[data-tone=error]{border-color:#a03c3c2e}.terminal-state__actions{margin-top:8px}.button{border:0;border-radius:999px;justify-content:center;align-items:center;min-height:46px;padding:0 18px;font-weight:700;text-decoration:none;transition:opacity .12s,transform .12s;display:inline-flex}.button:hover:not(:disabled){transform:translateY(-1px)}.button:disabled{cursor:not-allowed}.button--primary{color:#fff;background:linear-gradient(135deg,#4d4d4d,#727272)}.button--ghost{color:#2d2d2d;background:#3c3c3c14;border:1px solid #3c3c3c1f}.button--neutral{color:#2d2d2d;background:#ffffff75;border:1px solid #3c3c3c1f}.button--inline{min-height:40px;padding-inline:14px}@media (width<=1024px){.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.gallery-item:nth-child(3n){border-right:1px solid #4b4b4b1f}.gallery-item:nth-child(2n){border-right:0}.gallery-item:nth-last-child(-n+3){border-bottom:1px solid #4b4b4b1f}.gallery-item:nth-last-child(-n+2){border-bottom:0}}@media (width<=720px){.page-shell{padding:max(12px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(12px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left))}.dropzone,.terminal-state{border-radius:20px}.dropzone{margin:12px 12px 0;padding:18px 16px}.upload-message,.upload-toolbar,.gallery-panel__header{margin-inline:12px}.gallery-grid{grid-template-columns:1fr}.gallery-item,.gallery-item:nth-child(2n),.gallery-item:nth-child(3n),.gallery-item:nth-last-child(-n+2),.gallery-item:nth-last-child(-n+3){border-bottom:1px solid #4b4b4b1f;border-right:0}.gallery-item:last-child{border-bottom:0}.gallery-item__overlay,.gallery-item__meta,.gallery-item__delete{opacity:1;transform:none}.gallery-item__meta{background:#232323c7}.preview-modal{padding:10px}.preview-modal__panel{max-height:96dvh}.preview-modal__footer{flex-direction:column;align-items:stretch}.preview-modal__actions{justify-content:space-between}.preview-modal__nav{width:40px;height:40px;font-size:24px}.preview-modal__nav--prev{left:6px}.preview-modal__nav--next{right:6px}.button{width:100%}.preview-modal__link{width:auto}}
