{"id":2969,"date":"2026-04-30T11:47:08","date_gmt":"2026-04-30T02:47:08","guid":{"rendered":"https:\/\/drunkencapybara.com\/?page_id=2969"},"modified":"2026-04-30T12:33:14","modified_gmt":"2026-04-30T03:33:14","slug":"guestbook","status":"publish","type":"page","link":"https:\/\/drunkencapybara.com\/en\/guestbook\/","title":{"rendered":"Guestbook"},"content":{"rendered":"\n<style>\n.dc-gb-wrap { max-width: 720px; margin: 0 auto; font-family: 'DM Sans', sans-serif; }\n\n\/* \uc18c\uc15c \ub9c1\ud06c *\/\n.dc-social { display: flex; justify-content: center; gap: 14px; margin: 0 0 32px; }\n.dc-social a {\n    width: 44px; height: 44px; border-radius: 50%;\n    display: flex; align-items: center; justify-content: center;\n    text-decoration: none; transition: transform .15s ease, box-shadow .15s ease;\n}\n.dc-social a:hover { transform: translateY(-3px); box-shadow: 0 6px 16px rgba(0,0,0,.18); }\n.dc-social svg { width: 22px; height: 22px; display: block; }\n.dc-social-ig { background: radial-gradient(circle at 30% 110%, #ffd600 0%, #ff7a00 25%, #ff0069 50%, #d300c5 75%, #7638fa 100%); }\n.dc-social-th { background: #000; }\n.dc-social-x  { background: #000; }\n\n\/* \uc624\ub298\uc758 \uba54\uc2dc\uc9c0 *\/\n.dc-today {\n    background: #fff8f0; border: 1.5px solid #f0d9b5; border-radius: 14px;\n    padding: 24px 28px; margin-bottom: 40px; position: relative;\n}\n.dc-today-label { font-size: 10px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: #e18a2d; margin-bottom: 10px; }\n.dc-today-text  { font-size: 16px; line-height: 1.7; color: #1a1a1a; white-space: pre-wrap; }\n.dc-today-date  { font-size: 11px; color: #bbb; margin-top: 10px; }\n.dc-today-edit-btn {\n    position: absolute; top: 16px; right: 16px;\n    background: none; border: 1px solid #e0ddd8; border-radius: 6px;\n    padding: 4px 10px; font-size: 11px; color: #aaa; cursor: pointer;\n}\n.dc-today-edit-btn:hover { border-color: #e18a2d; color: #e18a2d; }\n.dc-today-textarea { width: 100%; min-height: 80px; border: 1px solid #f0d9b5; border-radius: 8px; padding: 10px; font-family: 'DM Sans',sans-serif; font-size: 15px; resize: vertical; margin-top: 8px; box-sizing: border-box; }\n.dc-today-save-btn { margin-top: 8px; padding: 8px 20px; background: #e18a2d; color: #fff; border: none; border-radius: 8px; font-size: 13px; cursor: pointer; }\n\n\/* \uc791\uc131 \ud3fc *\/\n.dc-gb-form { background: #fff; border: 1px solid #f0ede8; border-radius: 14px; padding: 24px; margin-bottom: 40px; }\n.dc-gb-form h3 { font-size: 15px; font-weight: 500; color: #1a1a1a; margin-bottom: 16px; }\n.dc-gb-row { display: flex; gap: 10px; margin-bottom: 10px; }\n.dc-gb-row input { flex: 1; }\n.dc-gb-form input, .dc-gb-form textarea {\n    width: 100%; padding: 10px 12px; border: 1px solid #e8e5e0; border-radius: 8px;\n    font-family: 'DM Sans',sans-serif; font-size: 13px; color: #1a1a1a;\n    box-sizing: border-box; transition: border-color .15s;\n}\n.dc-gb-form input:focus, .dc-gb-form textarea:focus { outline: none; border-color: #e18a2d; }\n.dc-gb-form textarea { min-height: 90px; resize: vertical; margin-bottom: 10px; }\n.dc-gb-pass-hint { font-size: 11px; color: #bbb; margin-bottom: 10px; }\n\n\/* \uc54c\ub9bc \ub3d9\uc758 \ubc84\ud2bc *\/\n.dc-gb-notify-wrap { display: none; margin-bottom: 14px; }\n.dc-gb-notify-wrap.visible { display: block; }\n.dc-gb-notify-btn {\n    display: inline-flex; align-items: center; gap: 6px;\n    padding: 8px 16px; border: 1.5px solid #e18a2d; border-radius: 100px;\n    background: #fff8f0; color: #e18a2d; font-family: 'DM Sans',sans-serif;\n    font-size: 12px; font-weight: 500; cursor: pointer; transition: background .15s;\n}\n.dc-gb-notify-btn:hover { background: #fdefd6; }\n.dc-gb-notify-btn.granted { border-color: #3a9e5f; color: #3a9e5f; background: #f0faf4; cursor: default; }\n.dc-gb-notify-btn svg { width: 14px; height: 14px; flex-shrink: 0; }\n\n.dc-gb-submit {\n    padding: 11px 28px; background: #e18a2d; color: #fff; border: none;\n    border-radius: 100px; font-family: 'DM Sans',sans-serif; font-size: 13px; font-weight: 500;\n    cursor: pointer; transition: background .2s;\n}\n.dc-gb-submit:hover { background: #c97a25; }\n.dc-gb-submit:disabled { background: #e0ddd8; cursor: default; }\n.dc-gb-msg { font-size: 13px; margin-top: 10px; }\n.dc-gb-msg.ok  { color: #3a9e5f; }\n.dc-gb-msg.err { color: #d94040; }\n\n\/* \ud56d\ubaa9 \ubaa9\ub85d *\/\n.dc-gb-entries { display: flex; flex-direction: column; gap: 16px; }\n.dc-gb-entry { background: #fff; border: 1px solid #f0ede8; border-radius: 12px; padding: 20px; }\n.dc-gb-entry-header { display: flex; align-items: center; gap: 10px; margin-bottom: 10px; }\n.dc-gb-avatar { width: 32px; height: 32px; border-radius: 50%; background: #f0d9b5; display: flex; align-items: center; justify-content: center; font-size: 13px; font-weight: 500; color: #e18a2d; flex-shrink: 0; }\n.dc-gb-entry-name { font-size: 13px; font-weight: 500; color: #1a1a1a; }\n.dc-gb-entry-date { font-size: 11px; color: #bbb; margin-left: auto; }\n.dc-gb-entry-msg  { font-size: 14px; color: #333; line-height: 1.7; white-space: pre-wrap; }\n.dc-gb-entry-actions { margin-top: 10px; display: flex; gap: 8px; }\n.dc-gb-btn-sm { background: none; border: 1px solid #e8e5e0; border-radius: 6px; padding: 4px 10px; font-size: 11px; color: #aaa; cursor: pointer; font-family: 'DM Sans',sans-serif; }\n.dc-gb-btn-sm:hover { border-color: #ccc; color: #666; }\n.dc-gb-btn-del:hover { border-color: #e08080; color: #d94040; }\n\n\/* \ub300\ub313\uae00 *\/\n.dc-gb-reply { margin-top: 14px; background: #fafaf8; border-left: 3px solid #e18a2d; border-radius: 0 8px 8px 0; padding: 12px 14px; }\n.dc-gb-reply-label { font-size: 10px; font-weight: 600; color: #e18a2d; letter-spacing: .06em; margin-bottom: 6px; }\n.dc-gb-reply-text  { font-size: 13px; color: #444; line-height: 1.6; white-space: pre-wrap; }\n.dc-gb-reply-date  { font-size: 11px; color: #bbb; margin-top: 4px; }\n.dc-gb-reply-form  { margin-top: 12px; }\n.dc-gb-reply-form textarea { width: 100%; padding: 8px 10px; border: 1px solid #e8e5e0; border-radius: 8px; font-family: 'DM Sans',sans-serif; font-size: 13px; resize: vertical; min-height: 70px; box-sizing: border-box; }\n.dc-gb-reply-submit { margin-top: 6px; padding: 8px 18px; background: #1a1a1a; color: #fff; border: none; border-radius: 8px; font-size: 12px; cursor: pointer; font-family: 'DM Sans',sans-serif; }\n\n\/* \uc218\uc815 \ud3fc *\/\n.dc-gb-edit-wrap { margin-top: 10px; display: none; }\n.dc-gb-edit-wrap textarea { width: 100%; padding: 8px 10px; border: 1px solid #e8e5e0; border-radius: 8px; font-family: 'DM Sans',sans-serif; font-size: 13px; resize: vertical; min-height: 70px; box-sizing: border-box; margin-bottom: 6px; }\n.dc-gb-edit-wrap input { padding: 6px 10px; border: 1px solid #e8e5e0; border-radius: 8px; font-size: 12px; margin-right: 6px; font-family: 'DM Sans',sans-serif; }\n.dc-gb-edit-save { padding: 6px 14px; background: #e18a2d; color: #fff; border: none; border-radius: 8px; font-size: 12px; cursor: pointer; }\n\n\/* \uc0ad\uc81c \ud655\uc778 *\/\n.dc-gb-del-wrap { margin-top: 10px; display: none; }\n.dc-gb-del-wrap input { padding: 6px 10px; border: 1px solid #e8e5e0; border-radius: 8px; font-size: 12px; margin-right: 6px; font-family: 'DM Sans',sans-serif; width: 120px; }\n.dc-gb-del-confirm { padding: 6px 14px; background: #d94040; color: #fff; border: none; border-radius: 8px; font-size: 12px; cursor: pointer; }\n\n\/* \ud398\uc774\uc9c0\ub124\uc774\uc158 *\/\n.dc-gb-pagination { display: flex; justify-content: center; gap: 6px; margin-top: 24px; }\n.dc-gb-page-btn { width: 32px; height: 32px; border: 1px solid #e8e5e0; border-radius: 8px; background: #fff; font-size: 13px; cursor: pointer; display: flex; align-items: center; justify-content: center; }\n.dc-gb-page-btn.active { background: #e18a2d; color: #fff; border-color: #e18a2d; }\n\n.dc-gb-empty  { text-align: center; color: #bbb; font-size: 14px; padding: 40px 0; }\n.dc-gb-loading { text-align: center; color: #bbb; font-size: 13px; padding: 20px 0; }\n<\/style>\n\n<!-- Firebase SDK -->\n<script src=\"https:\/\/www.gstatic.com\/firebasejs\/12.15.0\/firebase-app-compat.js\"><\/script>\n<script src=\"https:\/\/www.gstatic.com\/firebasejs\/12.15.0\/firebase-messaging-compat.js\"><\/script>\n\n<div class=\"dc-gb-wrap\">\n\n  <!-- \uc18c\uc15c \ub9c1\ud06c -->\n  <div class=\"dc-social\">\n    <a class=\"dc-social-ig\" href=\"https:\/\/www.instagram.com\/drunken.capybara\" target=\"_blank\" rel=\"noopener\" aria-label=\"Instagram\">\n      <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#fff\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\">\n        <rect x=\"2\" y=\"2\" width=\"20\" height=\"20\" rx=\"5\" ry=\"5\"><\/rect>\n        <path d=\"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\"><\/path>\n        <line x1=\"17.5\" y1=\"6.5\" x2=\"17.51\" y2=\"6.5\"><\/line>\n      <\/svg>\n    <\/a>\n    <a class=\"dc-social-th\" href=\"https:\/\/www.threads.com\/@drunken.capybara\" target=\"_blank\" rel=\"noopener\" aria-label=\"Threads\">\n      <svg viewBox=\"0 0 24 24\" fill=\"#fff\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n        <path d=\"M12.186 24h-.007c-3.581-.024-6.334-1.205-8.184-3.509C2.35 18.44 1.5 15.586 1.472 12.01v-.017c.03-3.579.879-6.43 2.525-8.482C5.845 1.205 8.6.024 12.18 0h.014c2.746.02 5.043.725 6.826 2.098 1.677 1.29 2.858 3.13 3.509 5.467l-2.04.569c-1.104-3.96-3.898-5.984-8.304-6.015-2.91.022-5.11.936-6.54 2.717C4.307 6.504 3.616 8.914 3.589 12c.027 3.086.718 5.496 2.057 7.164 1.43 1.781 3.631 2.695 6.54 2.717 2.628-.02 4.363-.631 5.805-2.045 1.647-1.613 1.618-3.593 1.09-4.798-.31-.71-.873-1.3-1.634-1.75-.192 1.352-.622 2.446-1.284 3.272-.886 1.102-2.14 1.704-3.73 1.79-1.202.065-2.361-.218-3.259-.801-1.063-.689-1.685-1.74-1.752-2.964-.065-1.19.408-2.285 1.33-3.082.88-.76 2.119-1.207 3.583-1.291a13.85 13.85 0 0 1 3.02.142c-.126-.742-.375-1.332-.75-1.757-.513-.586-1.308-.883-2.359-.89h-.029c-.844 0-1.992.232-2.721 1.32L7.734 8.073c.98-1.452 2.568-2.25 4.478-2.25h.044c3.194.02 5.097 1.975 5.287 5.388.108.046.216.094.321.142 1.49.7 2.58 1.761 3.154 3.07.797 1.82.871 4.785-1.548 7.155-1.85 1.81-4.094 2.628-7.277 2.65zm1.504-11.49c-.279 0-.563.009-.852.024-1.84.103-2.991.952-2.928 2.18.067 1.286 1.486 1.883 2.85 1.809 1.301-.07 2.93-.578 3.204-3.952a10.06 10.06 0 0 0-2.274-.262z\"\/>\n      <\/svg>\n    <\/a>\n    <a class=\"dc-social-x\" href=\"https:\/\/x.com\/drunkenCapybar_\" target=\"_blank\" rel=\"noopener\" aria-label=\"X\">\n      <svg viewBox=\"0 0 24 24\" fill=\"#fff\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\">\n        <path d=\"M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z\"\/>\n      <\/svg>\n    <\/a>\n  <\/div>\n\n  <!-- \uc624\ub298\uc758 \uba54\uc2dc\uc9c0 -->\n  <div class=\"dc-today\">\n    <div class=\"dc-today-label\">\uc624\ub298\uc758 \uba54\uc2dc\uc9c0<\/div>\n        <div class=\"dc-today-text\" id=\"dc-today-text\">\uc624\ub298\ub3c4 \uc88b\uc740 \ud558\ub8e8 \ub418\uc138\uc694 \ud83d\ude42\n\uc0c8 \uae00 \uc54c\ub9bc \uc124\uc815\uc774 \ubb38\uc81c\uac00 \uc788\uc5b4\uc11c \ud604\uc7ac\ub294 \uce74\ud14c\uace0\ub9ac \ubcc4 \uc54c\ub9bc\uc740 \uc791\ub3d9\uc774 \uc548\ub418\uc5b4\uc11c\n\ubaa8\ub4e0 \uae00\uc5d0 \uc54c\ub9bc\uc774 \uac00\uace0 \uc788\ub124\uc694 \u3160<\/div>\n          <div class=\"dc-today-date\">2026.06.18 \uc5c5\ub370\uc774\ud2b8<\/div>\n          <\/div>\n\n  <!-- \uc791\uc131 \ud3fc -->\n  <div class=\"dc-gb-form\">\n    <h3>\ubc29\uba85\ub85d \ub0a8\uae30\uae30<\/h3>\n    <input type=\"text\" id=\"dc-gb-website\" name=\"website\" style=\"display:none\" tabindex=\"-1\" autocomplete=\"off\">\n    <div class=\"dc-gb-row\">\n      <input type=\"text\" id=\"dc-gb-name\" placeholder=\"\uc774\ub984 (\ub2c9\ub124\uc784 \uac00\ub2a5)\" maxlength=\"30\">\n      <input type=\"password\" id=\"dc-gb-pass\" placeholder=\"\uc218\uc815\/\uc0ad\uc81c \ube44\ubc00\ubc88\ud638\" maxlength=\"20\">\n    <\/div>\n    <div class=\"dc-gb-pass-hint\">\ube44\ubc00\ubc88\ud638\ub294 \ub098\uc911\uc5d0 \uc218\uc815\u00b7\uc0ad\uc81c\ud560 \ub54c \uc0ac\uc6a9\ud574\uc694.<\/div>\n    <textarea id=\"dc-gb-message\" placeholder=\"\ubc18\uac11\uc2b5\ub2c8\ub2e4! \uc790\uc720\ub86d\uac8c \ub0a8\uaca8\uc8fc\uc138\uc694 :)\" maxlength=\"500\"><\/textarea>\n\n    <!-- \uc54c\ub9bc \ub3d9\uc758 \ubc84\ud2bc (\ubc29\uba85\ub85d \uc791\uc131 \ud6c4 \ud45c\uc2dc) -->\n    <div class=\"dc-gb-notify-wrap\" id=\"dc-gb-notify-wrap\">\n      <button class=\"dc-gb-notify-btn\" id=\"dc-gb-notify-btn\" onclick=\"dcGbRequestNotify()\">\n        <svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"><path d=\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\"\/><path d=\"M13.73 21a2 2 0 0 1-3.46 0\"\/><\/svg>\n        \ub2f5\uae00 \uc54c\ub9bc \ubc1b\uae30\n      <\/button>\n    <\/div>\n\n    <button class=\"dc-gb-submit\" onclick=\"dcGbSubmit()\">\ub0a8\uae30\uae30<\/button>\n    <div class=\"dc-gb-msg\" id=\"dc-gb-form-msg\"><\/div>\n  <\/div>\n\n  <!-- \ubaa9\ub85d -->\n  <div class=\"dc-gb-entries\" id=\"dc-gb-entries\">\n    <div class=\"dc-gb-loading\">\ubd88\ub7ec\uc624\ub294 \uc911...<\/div>\n  <\/div>\n  <div class=\"dc-gb-pagination\" id=\"dc-gb-pagination\"><\/div>\n\n<\/div>\n\n<script>\n(function(){\n  var AJAX     = 'https:\/\/drunkencapybara.com\/wp-admin\/admin-ajax.php';\n  var IS_ADMIN = false;\n  var VAPID    = 'BIR0rmSfrjJZFBnG9dKGYycrNOx1IiBzODlGhCV_0W-VplZHPLfOZ7s87qUWKEwOkWr5M1wmV09cKhWKzuaK2ZA';\n  var currentPage = 1;\n  var lastNewId   = null;  \/\/ \ubc29\uae08 \uc791\uc131\ud55c \ud56d\ubaa9 ID (\ud1a0\ud070 \uc800\uc7a5\uc6a9)\n\n  \/\/ \u2500\u2500 Firebase \ucd08\uae30\ud654 \u2500\u2500\n  var firebaseConfig = {\n    apiKey:            \"AIzaSyDELn8Fy_H4uXEJAHYKgqNKUvDaXIy0Z0Q\",\n    authDomain:        \"drunken-capybara-g.firebaseapp.com\",\n    projectId:         \"drunken-capybara-g\",\n    storageBucket:     \"drunken-capybara-g.firebasestorage.app\",\n    messagingSenderId: \"160316038576\",\n    appId:             \"1:160316038576:web:a0e48227951d42b0edca75\"\n  };\n  firebase.initializeApp(firebaseConfig);\n  var messaging = firebase.messaging();\n\n  \/\/ \u2500\u2500 \uc54c\ub9bc \uad8c\ud55c \uc694\uccad & FCM \ud1a0\ud070 \ubc1c\uae09 \u2500\u2500\n  window.dcGbRequestNotify = function() {\n    if (!lastNewId) return;\n    var btn = document.getElementById('dc-gb-notify-btn');\n\n    Notification.requestPermission().then(function(permission) {\n      if (permission !== 'granted') {\n        btn.textContent = '\uc54c\ub9bc \ud5c8\uc6a9\uc774 \ud544\uc694\ud574\uc694';\n        return;\n      }\n      messaging.getToken({ vapidKey: VAPID }).then(function(token) {\n        if (!token) return;\n        \/\/ FCM \ud1a0\ud070\uc744 DB\uc5d0 \uc800\uc7a5\n        fetch(AJAX, {\n          method: 'POST',\n          headers: {'Content-Type': 'application\/x-www-form-urlencoded'},\n          body: 'action=dc_gb_save_fcm&id=' + lastNewId + '&fcm_token=' + encodeURIComponent(token)\n        }).then(function(r){ return r.json(); }).then(function(d) {\n          if (d.success) {\n            btn.className = 'dc-gb-notify-btn granted';\n            btn.innerHTML = '<svg viewBox=\"0 0 24 24\" fill=\"currentColor\" style=\"width:14px;height:14px\"><path d=\"M9 16.17L4.83 12l-1.42 1.41L9 19 21 7l-1.41-1.41z\"\/><\/svg> \uc54c\ub9bc \uc124\uc815 \uc644\ub8cc!';\n            btn.onclick = null;\n          }\n        });\n      }).catch(function(){ btn.textContent = '\uc54c\ub9bc \uc124\uc815 \uc2e4\ud328 (\uc11c\ube44\uc2a4\uc6cc\ucee4 \ud544\uc694)'; });\n    });\n  };\n\n  \/\/ \u2500\u2500 \uc624\ub298\uc758 \uba54\uc2dc\uc9c0 \u2500\u2500\n  window.dcGbToggleToday = function() {\n    var ed = document.getElementById('dc-today-edit');\n    ed.style.display = ed.style.display === 'none' ? 'block' : 'none';\n  };\n  window.dcGbSaveToday = function() {\n    var msg = document.getElementById('dc-today-textarea').value;\n    fetch(AJAX, {\n      method:'POST', headers:{'Content-Type':'application\/x-www-form-urlencoded'},\n      body:'action=dc_gb_update_today&message='+encodeURIComponent(msg)\n    }).then(function(r){return r.json();}).then(function(d){\n      if(d.success){\n        document.getElementById('dc-today-text').textContent = msg;\n        document.getElementById('dc-today-edit').style.display = 'none';\n      }\n    });\n  };\n\n  \/\/ \u2500\u2500 \uc791\uc131 \u2500\u2500\n  window.dcGbSubmit = function() {\n    var name    = document.getElementById('dc-gb-name').value.trim();\n    var pass    = document.getElementById('dc-gb-pass').value;\n    var message = document.getElementById('dc-gb-message').value.trim();\n    var honey   = document.getElementById('dc-gb-website').value;\n    var btn     = document.querySelector('.dc-gb-submit');\n\n    if (!name || !pass || !message) { showFormMsg('\uc774\ub984, \ube44\ubc00\ubc88\ud638, \ub0b4\uc6a9\uc744 \ubaa8\ub450 \uc785\ub825\ud574\uc8fc\uc138\uc694.', 'err'); return; }\n    if (pass.length < 4) { showFormMsg('\ube44\ubc00\ubc88\ud638\ub294 4\uc790 \uc774\uc0c1\uc73c\ub85c \uc124\uc815\ud574\uc8fc\uc138\uc694.', 'err'); return; }\n\n    btn.disabled = true; btn.textContent = '\ub0a8\uae30\ub294 \uc911...';\n\n    fetch(AJAX, {\n      method:'POST', headers:{'Content-Type':'application\/x-www-form-urlencoded'},\n      body:'action=dc_gb_submit'\n        +'&name='+encodeURIComponent(name)\n        +'&pass='+encodeURIComponent(pass)\n        +'&message='+encodeURIComponent(message)\n        +'&website='+encodeURIComponent(honey)\n    }).then(function(r){return r.json();}).then(function(d){\n      btn.disabled = false; btn.textContent = '\ub0a8\uae30\uae30';\n      if(d.success){\n        document.getElementById('dc-gb-name').value    = '';\n        document.getElementById('dc-gb-pass').value    = '';\n        document.getElementById('dc-gb-message').value = '';\n        showFormMsg('\ubc29\uba85\ub85d\uc744 \ub0a8\uacbc\uc5b4\uc694 :)', 'ok');\n\n        \/\/ \u2605 \uc54c\ub9bc \ubc84\ud2bc \ud45c\uc2dc (\uc791\uc131 \uc131\uacf5 \ud6c4)\n        lastNewId = d.data.new_id;\n        var notifyWrap = document.getElementById('dc-gb-notify-wrap');\n        if (notifyWrap && 'Notification' in window) {\n          notifyWrap.classList.add('visible');\n        }\n\n        loadEntries(1);\n      } else {\n        var msgs = {\n          'rate_limit':'\uc7a0\uc2dc \ud6c4 \ub2e4\uc2dc \uc2dc\ub3c4\ud574\uc8fc\uc138\uc694.',\n          'invalid':'\ubaa8\ub4e0 \ud56d\ubaa9\uc744 \ucc44\uc6cc\uc8fc\uc138\uc694.',\n          'too_long':'\ub0b4\uc6a9\uc774 \ub108\ubb34 \uae38\uc5b4\uc694 (500\uc790 \uc774\ub0b4).',\n          'pass_short':'\ube44\ubc00\ubc88\ud638\ub294 4\uc790 \uc774\uc0c1\uc774\uc5b4\uc57c \ud574\uc694.'\n        };\n        showFormMsg(msgs[d.data] || '\uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc5b4\uc694.', 'err');\n      }\n    }).catch(function(){ btn.disabled=false; btn.textContent='\ub0a8\uae30\uae30'; showFormMsg('\uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc5b4\uc694.','err'); });\n  };\n\n  function showFormMsg(text, type) {\n    var el = document.getElementById('dc-gb-form-msg');\n    el.textContent = text; el.className = 'dc-gb-msg ' + type;\n    setTimeout(function(){ el.textContent=''; el.className='dc-gb-msg'; }, 4000);\n  }\n\n  \/\/ \u2500\u2500 \ubaa9\ub85d \u2500\u2500\n  function loadEntries(page) {\n    currentPage = page;\n    var container = document.getElementById('dc-gb-entries');\n    container.innerHTML = '<div class=\"dc-gb-loading\">\ubd88\ub7ec\uc624\ub294 \uc911...<\/div>';\n\n    fetch(AJAX, {\n      method:'POST', headers:{'Content-Type':'application\/x-www-form-urlencoded'},\n      body:'action=dc_gb_load&page='+page\n    }).then(function(r){return r.json();}).then(function(d){\n      if(!d.success) return;\n      var data = d.data;\n      container.innerHTML = '';\n\n      if(!data.entries.length){\n        container.innerHTML = '<div class=\"dc-gb-empty\">\uc544\uc9c1 \ubc29\uba85\ub85d\uc774 \uc5c6\uc5b4\uc694. \uccab \ubc88\uc9f8 \uba54\uc2dc\uc9c0\ub97c \ub0a8\uaca8\ubcf4\uc138\uc694!<\/div>';\n        document.getElementById('dc-gb-pagination').innerHTML = '';\n        return;\n      }\n      data.entries.forEach(function(e){ container.appendChild(buildEntry(e, data.is_admin)); });\n      buildPagination(data.pages);\n    });\n  }\n\n  function buildEntry(e, isAdmin) {\n    var div = document.createElement('div');\n    div.className = 'dc-gb-entry'; div.id = 'dc-entry-'+e.id;\n\n    var initial = e.name.charAt(0).toUpperCase();\n\n    \/\/ \u2605 \uc218\uc815\uc77c \uc788\uc73c\uba74 \uc218\uc815\uc77c \ud45c\uc2dc, \uc5c6\uc73c\uba74 \uc791\uc131\uc77c\n    var displayDate = (e.updated_at && e.updated_at !== '0000-00-00 00:00:00')\n      ? e.updated_at.substring(0,10).replace(\/-\/g,'.') + ' (\uc218\uc815\ub428)'\n      : e.created_at.substring(0,10).replace(\/-\/g,'.');\n\n    var actionsHtml = '';\n    if (isAdmin) {\n      actionsHtml =\n        '<button class=\"dc-gb-btn-sm dc-gb-btn-del\" onclick=\"dcGbAdminDelete('+e.id+')\">\uc0ad\uc81c<\/button>'+\n        '<button class=\"dc-gb-btn-sm\" onclick=\"dcGbToggleReplyForm('+e.id+')\">\ub2f5\uae00<\/button>';\n    } else {\n      actionsHtml =\n        '<button class=\"dc-gb-btn-sm\" onclick=\"dcGbToggleEdit('+e.id+')\">\uc218\uc815<\/button>'+\n        '<button class=\"dc-gb-btn-sm dc-gb-btn-del\" onclick=\"dcGbToggleDelete('+e.id+')\">\uc0ad\uc81c<\/button>';\n    }\n\n    var replyHtml = '';\n    if (e.reply) {\n      var rDate = e.replied_at ? e.replied_at.substring(0,10).replace(\/-\/g,'.') : '';\n      replyHtml =\n        '<div class=\"dc-gb-reply\" id=\"dc-reply-'+e.id+'\">'\n        +'<div class=\"dc-gb-reply-label\">CAPYBARA<\/div>'\n        +'<div class=\"dc-gb-reply-text\">'+escHtml(e.reply)+'<\/div>'\n        +(rDate ? '<div class=\"dc-gb-reply-date\">'+rDate+'<\/div>' : '')\n        +'<\/div>';\n    } else if (isAdmin) {\n      replyHtml = '<div class=\"dc-gb-reply\" id=\"dc-reply-'+e.id+'\" style=\"display:none\"><\/div>';\n    }\n\n    div.innerHTML =\n      '<div class=\"dc-gb-entry-header\">'\n      +'<div class=\"dc-gb-avatar\">'+initial+'<\/div>'\n      +'<span class=\"dc-gb-entry-name\">'+escHtml(e.name)+'<\/span>'\n      +'<span class=\"dc-gb-entry-date\">'+displayDate+'<\/span>'\n      +'<\/div>'\n      +'<div class=\"dc-gb-entry-msg\" id=\"dc-msg-'+e.id+'\">'+escHtml(e.message)+'<\/div>'\n      +'<div class=\"dc-gb-entry-actions\">'+actionsHtml+'<\/div>'\n      +'<div class=\"dc-gb-edit-wrap\" id=\"dc-edit-'+e.id+'\">'\n      +'<textarea>'+escHtml(e.message)+'<\/textarea>'\n      +'<div><input type=\"password\" placeholder=\"\ube44\ubc00\ubc88\ud638 \ud655\uc778\">'\n      +'<button class=\"dc-gb-edit-save\" onclick=\"dcGbSaveEdit('+e.id+',this)\">\uc800\uc7a5<\/button>'\n      +'<button class=\"dc-gb-btn-sm\" style=\"margin-left:6px\" onclick=\"document.getElementById(\\'dc-edit-'+e.id+'\\').style.display=\\'none\\'\">\ucde8\uc18c<\/button>'\n      +'<\/div><\/div>'\n      +'<div class=\"dc-gb-del-wrap\" id=\"dc-del-'+e.id+'\">'\n      +'<input type=\"password\" placeholder=\"\ube44\ubc00\ubc88\ud638 \ud655\uc778\">'\n      +'<button class=\"dc-gb-del-confirm\" onclick=\"dcGbConfirmDelete('+e.id+',this)\">\uc0ad\uc81c \ud655\uc778<\/button>'\n      +'<button class=\"dc-gb-btn-sm\" style=\"margin-left:6px\" onclick=\"document.getElementById(\\'dc-del-'+e.id+'\\').style.display=\\'none\\'\">\ucde8\uc18c<\/button>'\n      +'<\/div>'\n      +(isAdmin && !e.reply ?\n        '<div class=\"dc-gb-reply-form\" id=\"dc-reply-form-'+e.id+'\" style=\"display:none\">'\n        +'<textarea placeholder=\"\ub2f5\uae00\uc744 \uc785\ub825\ud558\uc138\uc694...\"><\/textarea>'\n        +'<button class=\"dc-gb-reply-submit\" onclick=\"dcGbSaveReply('+e.id+',this)\">\ub2f5\uae00 \ub2ec\uae30<\/button>'\n        +'<\/div>' : '')\n      + replyHtml;\n\n    return div;\n  }\n\n  window.dcGbToggleEdit = function(id) {\n    var el = document.getElementById('dc-edit-'+id);\n    el.style.display = el.style.display === 'none' ? 'block' : 'none';\n    document.getElementById('dc-del-'+id).style.display = 'none';\n  };\n  window.dcGbToggleDelete = function(id) {\n    var el = document.getElementById('dc-del-'+id);\n    el.style.display = el.style.display === 'none' ? 'block' : 'none';\n    document.getElementById('dc-edit-'+id).style.display = 'none';\n  };\n  window.dcGbToggleReplyForm = function(id) {\n    var el = document.getElementById('dc-reply-form-'+id);\n    if (el) el.style.display = el.style.display === 'none' ? 'block' : 'none';\n  };\n\n  \/\/ \u2605 \uc218\uc815 \uc800\uc7a5 - updated_at \ubc18\uc601\n  window.dcGbSaveEdit = function(id, btn) {\n    var wrap    = document.getElementById('dc-edit-'+id);\n    var message = wrap.querySelector('textarea').value.trim();\n    var pass    = wrap.querySelector('input').value;\n    if (!message || !pass) { alert('\ub0b4\uc6a9\uacfc \ube44\ubc00\ubc88\ud638\ub97c \uc785\ub825\ud574\uc8fc\uc138\uc694.'); return; }\n\n    btn.disabled = true;\n    fetch(AJAX, {\n      method:'POST', headers:{'Content-Type':'application\/x-www-form-urlencoded'},\n      body:'action=dc_gb_edit&id='+id+'&pass='+encodeURIComponent(pass)+'&message='+encodeURIComponent(message)\n    }).then(function(r){return r.json();}).then(function(d){\n      btn.disabled = false;\n      if(d.success){\n        document.getElementById('dc-msg-'+id).textContent = d.data.message;\n        \/\/ \u2605 \ub0a0\uc9dc \ud45c\uc2dc \uc5c5\ub370\uc774\ud2b8\n        var dateEl = document.querySelector('#dc-entry-'+id+' .dc-gb-entry-date');\n        if (dateEl && d.data.updated_at) {\n          dateEl.textContent = d.data.updated_at.substring(0,10).replace(\/-\/g,'.') + ' (\uc218\uc815\ub428)';\n        }\n        wrap.style.display = 'none';\n      } else {\n        alert(d.data === 'wrong_pass' ? '\ube44\ubc00\ubc88\ud638\uac00 \ub9de\uc9c0 \uc54a\uc544\uc694.' : '\uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc5b4\uc694.');\n      }\n    });\n  };\n\n  window.dcGbConfirmDelete = function(id, btn) {\n    var wrap = document.getElementById('dc-del-'+id);\n    var pass = wrap.querySelector('input').value;\n    if (!pass) { alert('\ube44\ubc00\ubc88\ud638\ub97c \uc785\ub825\ud574\uc8fc\uc138\uc694.'); return; }\n\n    btn.disabled = true;\n    fetch(AJAX, {\n      method:'POST', headers:{'Content-Type':'application\/x-www-form-urlencoded'},\n      body:'action=dc_gb_delete_own&id='+id+'&pass='+encodeURIComponent(pass)\n    }).then(function(r){return r.json();}).then(function(d){\n      btn.disabled = false;\n      if(d.success){\n        var el = document.getElementById('dc-entry-'+id);\n        el.style.opacity = '0'; el.style.transition = 'opacity .3s';\n        setTimeout(function(){ el.remove(); }, 300);\n      } else {\n        alert(d.data === 'wrong_pass' ? '\ube44\ubc00\ubc88\ud638\uac00 \ub9de\uc9c0 \uc54a\uc544\uc694.' : '\uc624\ub958\uac00 \ubc1c\uc0dd\ud588\uc5b4\uc694.');\n      }\n    });\n  };\n\n  window.dcGbAdminDelete = function(id) {\n    if(!confirm('\uc0ad\uc81c\ud560\uae4c\uc694?')) return;\n    fetch(AJAX, {\n      method:'POST', headers:{'Content-Type':'application\/x-www-form-urlencoded'},\n      body:'action=dc_gb_admin_delete&id='+id\n    }).then(function(r){return r.json();}).then(function(d){\n      if(d.success){\n        var el = document.getElementById('dc-entry-'+id);\n        el.style.opacity = '0'; el.style.transition = 'opacity .3s';\n        setTimeout(function(){ el.remove(); }, 300);\n      }\n    });\n  };\n\n  window.dcGbSaveReply = function(id, btn) {\n    var form  = document.getElementById('dc-reply-form-'+id);\n    var reply = form.querySelector('textarea').value.trim();\n    if (!reply) { alert('\ub2f5\uae00\uc744 \uc785\ub825\ud574\uc8fc\uc138\uc694.'); return; }\n\n    btn.disabled = true;\n    fetch(AJAX, {\n      method:'POST', headers:{'Content-Type':'application\/x-www-form-urlencoded'},\n      body:'action=dc_gb_reply&id='+id+'&reply='+encodeURIComponent(reply)\n    }).then(function(r){return r.json();}).then(function(d){\n      btn.disabled = false;\n      if(d.success){\n        form.style.display = 'none';\n        var replyDiv = document.getElementById('dc-reply-'+id);\n        if(replyDiv){\n          replyDiv.style.display = 'block';\n          replyDiv.innerHTML =\n            '<div class=\"dc-gb-reply-label\">\uc220 \ucde8\ud55c \uce74\ud53c\ubc14\ub77c <button class=\"dc-gb-btn-sm\" style=\"float:right;font-size:10px\" onclick=\"dcGbDeleteReply('+id+')\">\ub2f5\uae00 \uc0ad\uc81c<\/button><\/div>'\n            +'<div class=\"dc-gb-reply-text\">'+escHtml(d.data.reply)+'<\/div>'\n            +'<div class=\"dc-gb-reply-date\">'+d.data.replied_at.substring(0,10).replace(\/-\/g,'.')+'<\/div>';\n        }\n      }\n    });\n  };\n\n  window.dcGbDeleteReply = function(id) {\n    if(!confirm('\ub2f5\uae00\uc744 \uc0ad\uc81c\ud560\uae4c\uc694?')) return;\n    fetch(AJAX, {\n      method:'POST', headers:{'Content-Type':'application\/x-www-form-urlencoded'},\n      body:'action=dc_gb_delete_reply&id='+id\n    }).then(function(r){return r.json();}).then(function(d){\n      if(d.success){\n        var replyDiv = document.getElementById('dc-reply-'+id);\n        if(replyDiv) replyDiv.style.display='none';\n        var replyForm = document.getElementById('dc-reply-form-'+id);\n        if(replyForm) replyForm.style.display='block';\n      }\n    });\n  };\n\n  function buildPagination(pages) {\n    var pg = document.getElementById('dc-gb-pagination');\n    pg.innerHTML = '';\n    if(pages <= 1) return;\n    for(var i=1;i<=pages;i++){\n      (function(p){\n        var btn = document.createElement('button');\n        btn.className = 'dc-gb-page-btn' + (p===currentPage?' active':'');\n        btn.textContent = p;\n        btn.onclick = function(){ loadEntries(p); window.scrollTo({top:document.querySelector('.dc-gb-wrap').offsetTop-40,behavior:'smooth'}); };\n        pg.appendChild(btn);\n      })(i);\n    }\n  }\n\n  function escHtml(str) {\n    if(!str) return '';\n    return str.replace(\/&\/g,'&amp;').replace(\/<\/g,'&lt;').replace(\/>\/g,'&gt;').replace(\/\"\/g,'&quot;');\n  }\n\n  loadEntries(1);\n})();\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kadence_starter_templates_imported_post":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-2969","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/drunkencapybara.com\/en\/wp-json\/wp\/v2\/pages\/2969","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/drunkencapybara.com\/en\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/drunkencapybara.com\/en\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/drunkencapybara.com\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/drunkencapybara.com\/en\/wp-json\/wp\/v2\/comments?post=2969"}],"version-history":[{"count":2,"href":"https:\/\/drunkencapybara.com\/en\/wp-json\/wp\/v2\/pages\/2969\/revisions"}],"predecessor-version":[{"id":2974,"href":"https:\/\/drunkencapybara.com\/en\/wp-json\/wp\/v2\/pages\/2969\/revisions\/2974"}],"wp:attachment":[{"href":"https:\/\/drunkencapybara.com\/en\/wp-json\/wp\/v2\/media?parent=2969"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}