:root{--paper: #f5ecd9;--paper-2: #ede0c3;--paper-3: #e3d2ae;--ink: #2b241b;--ink-2: #5a4b37;--ink-3: #8a7659;--line: #c9b58c;--accent: #e87a2e;--accent-2: #c8541f;--cream: #fbf5e5;--leaf: #7a9347;--err: #c8351f;--success: #5c7a3d;--font-display: "Fraunces", ui-serif, Georgia, serif;--font-body: "Instrument Sans", system-ui, -apple-system, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box;margin:0;padding:0}html,body{background:var(--paper);color:var(--ink);font-family:var(--font-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased;min-height:100vh}body{background-image:radial-gradient(ellipse 800px 400px at 10% -10%,rgba(232,122,46,.06),transparent 60%),radial-gradient(ellipse 600px 500px at 110% 20%,rgba(122,147,71,.05),transparent 60%);background-attachment:fixed}a{color:inherit;text-decoration:none}button{font:inherit;background:none;border:none;cursor:pointer;color:inherit}input{font:inherit}code{font-family:var(--font-mono);font-size:.9em;background:var(--paper-2);padding:1px 6px;border-radius:4px}.app{min-height:100vh;display:flex;flex-direction:column}.app-header{display:flex;justify-content:space-between;align-items:center;padding:18px 32px;border-bottom:1px solid color-mix(in oklab,var(--line) 50%,transparent)}.brand{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:20px;font-weight:500}.brand-mark{font-size:22px}.brand-pill{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--accent-2);border:1px solid var(--line);padding:2px 8px;border-radius:999px}.signout{font-size:13px;color:var(--ink-3);padding:6px 12px;border-radius:999px;border:1px solid var(--line);transition:background .2s}.signout:hover{background:var(--paper-2);color:var(--ink)}.app-main{flex:1;display:flex;align-items:center;justify-content:center;padding:60px 32px}.app-footer{padding:24px 32px;font-family:var(--font-mono);font-size:11px;color:var(--ink-3);text-align:center;border-top:1px solid color-mix(in oklab,var(--line) 50%,transparent)}.status-card,.login-card,.upload-page,.result-page{background:var(--cream);border:1px solid var(--line);border-radius:16px;padding:40px;width:100%;box-shadow:0 12px 40px -16px #2b241b26}.status-card,.login-card{max-width:520px}.upload-page{max-width:720px;display:flex;flex-direction:column;gap:24px}.result-page{max-width:1100px;display:flex;flex-direction:column;gap:32px}.status-card h2{font-family:var(--font-display);font-size:28px;letter-spacing:-.02em;margin-bottom:12px}.status-card p{color:var(--ink-2);margin-bottom:12px}.status-card.denied h2{color:var(--err)}.status-card.success h2{color:var(--success)}.muted{color:var(--ink-3)}.small{font-size:13px}.login-card h1{font-family:var(--font-display);font-size:36px;letter-spacing:-.02em;margin-bottom:4px}.login-subtle{font-family:var(--font-mono);font-size:16px;color:var(--accent-2);text-transform:uppercase;letter-spacing:.15em;font-weight:400}.login-card .lead{color:var(--ink-2);margin-bottom:32px}.login-form{display:flex;flex-direction:column;gap:16px}.login-form label{display:flex;flex-direction:column;gap:6px}.login-form label>span{font-family:var(--font-mono);font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-3)}.login-form input{padding:14px 18px;border:1px solid var(--line);border-radius:999px;background:var(--paper);font-size:15px;outline:none;transition:border-color .2s,background .2s}.login-form input:focus{border-color:var(--accent);background:#fff}.login-form input:disabled{opacity:.5}.login-form button[type=submit]{padding:14px 24px;border-radius:999px;background:var(--ink);color:var(--paper);font-weight:500;font-size:15px;transition:background .2s,transform .2s}.login-form button[type=submit]:hover:not(:disabled){background:var(--accent-2);transform:translateY(-1px)}.login-form button[type=submit]:disabled{opacity:.55;cursor:not-allowed}.login-meta{margin-top:24px}.upload-header h1{font-family:var(--font-display);font-size:clamp(28px,4vw,40px);letter-spacing:-.02em;margin-bottom:8px}.dropzone{display:block;border:2px dashed var(--line);border-radius:16px;background:var(--paper);padding:60px 24px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s,transform .2s}.dropzone:hover,.dropzone.drag-over{border-color:var(--accent);background:var(--paper-2)}.dropzone.has-preview{padding:16px;background:var(--paper-2)}.dropzone.disabled{cursor:not-allowed;opacity:.6}.dropzone-preview{max-width:100%;max-height:360px;border-radius:12px;display:block;margin:0 auto}.dropzone-cta{display:flex;flex-direction:column;align-items:center;gap:8px}.dropzone-icon{font-size:36px}.dropzone-text{font-family:var(--font-display);font-size:22px;letter-spacing:-.01em;color:var(--ink)}.upload-actions{display:flex;gap:12px;align-items:center}.btn-primary,.btn-ghost{padding:14px 28px;border-radius:999px;font-size:15px;font-weight:500;transition:transform .2s,background .2s,color .2s}.btn-primary.small,.btn-ghost.small{padding:10px 18px;font-size:13px}.btn-primary{background:var(--ink);color:var(--paper)}.btn-primary:hover:not(:disabled){background:var(--accent-2);transform:translateY(-1px)}.btn-primary:disabled{opacity:.4;cursor:not-allowed}.btn-ghost{background:transparent;color:var(--ink-3);border:1px solid var(--line)}.btn-ghost:hover{background:var(--paper-2);color:var(--ink)}.upload-meta{margin-top:8px}.processing{display:flex;flex-direction:column;gap:12px;padding:20px 24px;background:var(--paper);border:1px solid var(--line);border-radius:12px}.progress-track{width:100%;height:8px;background:var(--paper-3);border-radius:999px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,var(--leaf),var(--accent));transition:width .25s ease-out;border-radius:999px}.progress-label{font-family:var(--font-mono);font-size:13px;color:var(--ink-2);letter-spacing:.04em}.result-header h1{font-family:var(--font-display);font-size:clamp(28px,4vw,44px);letter-spacing:-.02em;margin-bottom:8px}.before-after{display:grid;grid-template-columns:repeat(2,1fr);gap:16px}.ba-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:12px}.ba-card figcaption{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.15em;color:var(--ink-3);margin-bottom:8px}.ba-card img{width:100%;max-height:320px;object-fit:contain;border-radius:8px;display:block}.result-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.result-card{background:var(--paper);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:12px;align-items:stretch}.result-card-head{display:flex;justify-content:space-between;align-items:center}.result-state{font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;font-weight:700;color:var(--accent-2)}.result-size{font-family:var(--font-mono);font-size:11px;color:var(--ink-3)}.result-gif{width:100%;aspect-ratio:1/1;background:var(--paper);border:1px solid color-mix(in oklab,var(--line) 60%,transparent);border-radius:8px;object-fit:contain}.result-card-sub{font-size:13px;color:var(--ink-2)}.result-actions{display:flex;gap:12px;align-items:center;justify-content:center;padding-top:8px}.result-meta{text-align:center}.result-videos{display:flex;flex-direction:column;gap:12px;padding-top:16px;border-top:1px dashed color-mix(in oklab,var(--line) 70%,transparent)}.result-videos-title{font-family:var(--font-mono);font-size:11px;text-transform:uppercase;letter-spacing:.18em;color:var(--ink-3);font-weight:500;text-align:center}.result-videos-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.result-video-card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:8px}.result-video-card video{width:100%;aspect-ratio:1/1;border-radius:8px;background:#000;display:block;object-fit:contain}.result-video-card figcaption{font-family:var(--font-mono);font-size:11px;letter-spacing:.2em;color:var(--accent-2);font-weight:700;text-align:center}.fallback-banner{background:color-mix(in oklab,var(--err) 8%,var(--cream));border:1px solid color-mix(in oklab,var(--err) 35%,var(--line));border-radius:12px;padding:16px 20px;display:flex;flex-direction:column;gap:8px}.fallback-banner-title{font-family:var(--font-display);font-size:16px;font-weight:600;color:var(--err)}.fallback-banner-msg{font-family:var(--font-mono);font-size:12px;color:var(--ink-2);word-break:break-all}.fallback-banner-hint{font-size:13px;color:var(--ink-2);line-height:1.55}.err{padding:12px 16px;background:color-mix(in oklab,var(--err) 8%,transparent);border:1px solid color-mix(in oklab,var(--err) 30%,transparent);border-radius:8px;color:var(--err);font-size:14px;font-family:var(--font-mono)}@media(max-width:800px){.result-grid,.result-videos-grid,.before-after{grid-template-columns:1fr}}@media(max-width:640px){.app-header{padding:14px 16px}.app-main{padding:32px 16px}.login-card,.upload-page,.status-card,.result-page{padding:28px 20px}.upload-actions,.result-actions{flex-direction:column;align-items:stretch}.upload-actions .btn-primary,.upload-actions .btn-ghost,.result-actions .btn-primary,.result-actions .btn-ghost{width:100%;text-align:center}}
