<!DOCTYPE html>
<html lang="id">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex, nofollow">
<title>FoxManager</title>
<style>
:root{
  --bg:#f3f4f6; --panel:#ffffff; --panel2:#f1f3f6; --line:#e3e5ea;
  --text:#1f2329; --muted:#6b7280; --accent:#f97316; --accent2:#fb923c;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;}
a{color:var(--accent)}
.fm-top{height:52px;display:flex;align-items:center;gap:14px;padding:0 18px;
  background:var(--panel);border-bottom:1px solid var(--line);}
.fm-logo{font-weight:800;font-size:17px;letter-spacing:.3px;display:flex;align-items:center;gap:9px;}
.fm-logo .dot{width:12px;height:12px;border-radius:3px;background:linear-gradient(135deg,var(--accent),var(--accent2));
  display:inline-block;box-shadow:0 0 12px rgba(249,115,22,.35)}
.fm-root{font-size:12px;color:var(--muted);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.fm-btn{text-decoration:none;font-size:13px;font-weight:600;color:var(--text);
  background:var(--panel2);border:1px solid var(--line);padding:7px 14px;border-radius:8px;}
.fm-btn:hover{border-color:var(--accent);color:var(--accent)}
#fox-elfinder{height:calc(100vh - 52px)}
/* login */
.login-wrap{height:100vh;display:flex;align-items:center;justify-content:center;padding:20px}
.login-card{width:360px;max-width:100%;background:var(--panel);border:1px solid var(--line);
  border-radius:14px;padding:34px 30px;box-shadow:0 18px 50px rgba(0,0,0,.08)}
.login-card h1{margin:0 0 6px;font-size:22px;display:flex;align-items:center;gap:10px}
.login-card .sub{color:var(--muted);font-size:13px;margin:0 0 24px}
.login-card input[type=password]{width:100%;padding:12px 14px;border-radius:9px;border:1px solid var(--line);
  background:var(--panel2);color:var(--text);font-size:15px;outline:none}
.login-card input[type=password]:focus{border-color:var(--accent)}
.login-card button{width:100%;margin-top:14px;padding:12px;border-radius:9px;border:none;cursor:pointer;
  background:linear-gradient(135deg,var(--accent),var(--accent2));color:#fff;font-size:15px;font-weight:700}
.login-card button:disabled{opacity:.6;cursor:default}
.login-err{color:#dc2626;font-size:13px;margin-top:12px;min-height:18px}
.login-foot{margin-top:20px;font-size:11px;color:var(--muted);text-align:center}
</style>
</head>
<body>
<div class="login-wrap">
  <form class="login-card" id="fox-login" autocomplete="off">
    <h1><span class="dot"></span>FoxManager</h1>
    <p class="sub">Masukkan password untuk mengakses file manager.</p>
    <input type="password" name="fox_password" id="fox-password" placeholder="Password" autofocus>
    <button type="submit" id="fox-submit">Masuk</button>
    <div class="login-err" id="fox-err"></div>
    <div class="login-foot">FoxManager &middot; single-file web file manager</div>
  </form>
</div>
<script>
(function(){
  var form=document.getElementById('fox-login'),
      pass=document.getElementById('fox-password'),
      btn=document.getElementById('fox-submit'),
      err=document.getElementById('fox-err');
  form.addEventListener('submit',function(e){
    e.preventDefault();
    err.textContent='';
    btn.disabled=true; btn.textContent='Memproses...';
    var body=new URLSearchParams();
    body.append('fox_action','login');
    body.append('fox_password',pass.value);
    fetch(window.location.href,{method:'POST',body:body,
      headers:{'Content-Type':'application/x-www-form-urlencoded'}})
      .then(function(r){return r.json();})
      .then(function(d){
        if(d && d.ok){ window.location.reload(); }
        else { err.textContent=(d&&d.error)?d.error:'Password salah.'; btn.disabled=false; btn.textContent='Masuk'; }
      })
      .catch(function(){ err.textContent='Gagal terhubung.'; btn.disabled=false; btn.textContent='Masuk'; });
  });
})();
</script>
</body>
</html>
<?xml version="1.0"?>
<oembed><version>1.0</version><provider_name>V.VAL</provider_name><provider_url>https://v.val-sculptures.com/en</provider_url><title>V.VAL - Victor The Angelfish</title><type>rich</type><width>600</width><height>338</height><html>&lt;blockquote class="wp-embedded-content" data-secret="RZnQSvAF1O"&gt;&lt;a href="https://v.val-sculptures.com/en/victor-the-angelfish/"&gt;Victor The Angelfish&lt;/a&gt;&lt;/blockquote&gt;&lt;iframe sandbox="allow-scripts" security="restricted" src="https://v.val-sculptures.com/en/victor-the-angelfish/embed/#?secret=RZnQSvAF1O" width="600" height="338" title="&#x201C;Victor The Angelfish&#x201D; &#x2014; V.VAL" data-secret="RZnQSvAF1O" frameborder="0" marginwidth="0" marginheight="0" scrolling="no" class="wp-embedded-content"&gt;&lt;/iframe&gt;&lt;script&gt;
/*! This file is auto-generated */
!function(d,l){"use strict";l.querySelector&amp;&amp;d.addEventListener&amp;&amp;"undefined"!=typeof URL&amp;&amp;(d.wp=d.wp||{},d.wp.receiveEmbedMessage||(d.wp.receiveEmbedMessage=function(e){var t=e.data;if((t||t.secret||t.message||t.value)&amp;&amp;!/[^a-zA-Z0-9]/.test(t.secret)){for(var s,r,n,a=l.querySelectorAll('iframe[data-secret="'+t.secret+'"]'),o=l.querySelectorAll('blockquote[data-secret="'+t.secret+'"]'),c=new RegExp("^https?:$","i"),i=0;i&lt;o.length;i++)o[i].style.display="none";for(i=0;i&lt;a.length;i++)s=a[i],e.source===s.contentWindow&amp;&amp;(s.removeAttribute("style"),"height"===t.message?(1e3&lt;(r=parseInt(t.value,10))?r=1e3:~~r&lt;200&amp;&amp;(r=200),s.height=r):"link"===t.message&amp;&amp;(r=new URL(s.getAttribute("src")),n=new URL(t.value),c.test(n.protocol))&amp;&amp;n.host===r.host&amp;&amp;l.activeElement===s&amp;&amp;(d.top.location.href=t.value))}},d.addEventListener("message",d.wp.receiveEmbedMessage,!1),l.addEventListener("DOMContentLoaded",function(){for(var e,t,s=l.querySelectorAll("iframe.wp-embedded-content"),r=0;r&lt;s.length;r++)(t=(e=s[r]).getAttribute("data-secret"))||(t=Math.random().toString(36).substring(2,12),e.src+="#?secret="+t,e.setAttribute("data-secret",t)),e.contentWindow.postMessage({message:"ready",secret:t},"*")},!1)))}(window,document);
//# sourceURL=https://v.val-sculptures.com/wp-includes/js/wp-embed.min.js
&lt;/script&gt;</html><thumbnail_url>https://v.val-sculptures.com/wp-content/uploads/2023/01/mobile_Poisson360_52.jpg</thumbnail_url><thumbnail_width>1080</thumbnail_width><thumbnail_height>1080</thumbnail_height><description>Mes cr&#xE9;ations se nourrissent de ce que je suis, de ce que je contemple, de mes aspirations&#x2026; mais aussi de mes connaissances artistiques.</description></oembed>
