{"id":2370,"date":"2026-09-21T12:36:43","date_gmt":"2026-09-21T12:36:43","guid":{"rendered":"https:\/\/dev.artistbrook.com\/?page_id=2370"},"modified":"2026-09-21T13:12:16","modified_gmt":"2026-09-21T13:12:16","slug":"templet-test1","status":"publish","type":"page","link":"https:\/\/dev.artistbrook.com\/am\/templet-test1\/","title":{"rendered":"templet-test1"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"2370\" class=\"elementor elementor-2370\">\n\t\t\t\t<div class=\"elementor-element elementor-element-5d93d48 e-flex e-con-boxed wpr-particle-no wpr-jarallax-no wpr-parallax-no wpr-sticky-section-no wpr-column-slider-no wpr-equal-height-no e-con e-parent\" data-id=\"5d93d48\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t\t<div class=\"e-con-inner\">\n\t\t\t\t<div class=\"elementor-element elementor-element-86e61f2 elementor-widget elementor-widget-shortcode\" data-id=\"86e61f2\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"shortcode.default\">\n\t\t\t\t<div class=\"elementor-widget-container\">\n\t\t\t\t\t\t\t<div class=\"elementor-shortcode\">    <link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\n    <link href=\"https:\/\/fonts.googleapis.com\/css2?family=Alex+Brush&family=Great+Vibes&family=Cormorant+Garamond:ital,wght@0,400;0,500;1,500&family=Montserrat:wght@400;600&display=swap\" rel=\"stylesheet\">\n    <div class=\"yen-ff-page-form\">\n      <style>\n        .yen-ff-page-form{--ink:#171412;--gold:#b8955d;--muted:#766d64;--line:#ded4c8;--paper:#fbf8f2;width:100vw;max-width:100vw;margin:0 0 0 calc(50% - 50vw);background:var(--paper);color:var(--ink);font-family:inherit;}\n        .yen-ff-page-form *{box-sizing:border-box}\n        .yen-ff-page-form .ff-title{padding:30px 38px;background:#211b16;color:#fff}\n        .yen-ff-page-form h1{font:400 38px Georgia,serif;margin:0}\n        .yen-ff-page-form h2{font:400 27px Georgia,serif;margin:0 0 8px}\n        .yen-ff-page-form .ff-title p,.yen-ff-page-form .ff-help{color:#d8cabc;line-height:1.6;margin:8px 0 0;font-size:13px}\n        .yen-ff-page-form .ff-help{color:var(--muted);margin:0 0 18px}\n        .yen-ff-page-form .ff-section{padding:29px 38px;border-bottom:1px solid var(--line)}\n        .yen-ff-page-form .ff-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}\n        .yen-ff-page-form .ff-wide{grid-column:1\/-1}\n        \/* Event editor: Time + Event + Icon stay on the same row, matching the reference form. *\/\n        .yen-ff-page-form .ff-timeline-editor{display:grid;grid-template-columns:1fr 1.25fr 1fr;gap:0 18px;align-items:end}\n        .yen-ff-page-form .ff-timeline-editor .ff-tl-label{padding:0 0 14px;font-size:13px;font-weight:700}\n        .yen-ff-page-form .ff-timeline-editor .ff-tl-label input,.yen-ff-page-form .ff-timeline-editor .ff-tl-label select{margin-top:7px;min-height:50px}\n        .yen-ff-page-form label{display:block;font-size:13px;font-weight:700}\n        .yen-ff-page-form input,.yen-ff-page-form textarea,.yen-ff-page-form select{display:block;width:100%;padding:12px;margin-top:7px;border:1px solid #d8cec1;background:#fff;color:var(--ink);font:inherit;font-weight:400}\n        .yen-ff-page-form textarea{resize:vertical;min-height:90px}\n        .yen-ff-page-form small{font-weight:400;color:var(--muted)}\n        .yen-ff-page-form .ff-pill-group{display:flex;gap:8px;margin-top:7px;flex-wrap:wrap}\n        .yen-ff-page-form .ff-pill{display:inline-flex!important;align-items:center!important;justify-content:center!important;min-width:58px!important;min-height:38px!important;height:auto!important;padding:8px 15px!important;border:1px solid #bfb3a5!important;border-radius:999px!important;background:#fff!important;color:#171412!important;font-size:13px!important;line-height:1.2!important;cursor:pointer!important;font-weight:500!important;white-space:nowrap!important;opacity:1!important;visibility:visible!important}\n        .yen-ff-page-form .ff-pill:hover{background:#f4eee7!important;color:#171412!important}\n        .yen-ff-page-form .ff-pill.is-active{background:var(--ink)!important;color:#fff!important;border-color:var(--ink)!important}\n        .yen-ff-page-form select[name=\"name_anim\"]{display:block!important;width:100%!important;min-height:48px!important;height:48px!important;padding:11px 42px 11px 14px!important;border:1px solid #cfc4b8!important;border-radius:4px!important;background-color:#fff!important;color:#171412!important;font-family:inherit!important;font-size:14px!important;font-weight:400!important;line-height:1.4!important;white-space:normal!important;overflow:visible!important;opacity:1!important;visibility:visible!important;appearance:auto!important;-webkit-appearance:auto!important}\n        .yen-ff-page-form select[name=\"name_style\"]{display:block!important;width:100%!important;min-height:48px!important;height:48px!important;padding:11px 42px 11px 14px!important;border:1px solid #cfc4b8!important;border-radius:4px!important;background:#fff!important;color:#171412!important;font-family:inherit!important;font-size:14px!important}\n        .yen-ff-page-form input[type=\"color\"]{display:block!important;width:64px!important;height:44px!important;padding:3px!important;border:1px solid #cfc4b8!important;border-radius:6px!important;background:#fff!important;cursor:pointer!important}\n        .yen-ff-page-form input[type=\"number\"]{min-height:46px}\n        .yen-ff-page-form .ff-style-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px;margin-top:10px}\n        .yen-ff-page-form .ff-style-chip{border:1px solid var(--line);background:#fff;padding:10px 8px;text-align:center;cursor:pointer;border-radius:4px}\n        .yen-ff-page-form .ff-style-chip strong{display:block;font-size:13px;margin-bottom:5px}\n        .yen-ff-page-form .ff-style-chip span{font-size:20px;line-height:1.1}\n        .yen-ff-page-form .ff-style-chip.is-selected{border:2px solid var(--gold);padding:9px;box-shadow:0 0 0 3px rgba(184,149,93,.13)}\n        .yen-ff-page-form .ff-control-note{font-size:12px;color:var(--muted);margin:8px 0 0;line-height:1.5}\n        @media(max-width:760px){.yen-ff-page-form .ff-style-grid{grid-template-columns:repeat(2,1fr)}}\n        .yen-ff-page-form .ff-toggle-row{display:flex;align-items:center;justify-content:space-between;padding:12px 0}\n        .yen-ff-page-form .ff-toggle-row span{font-size:13px;font-weight:700}\n        .yen-ff-page-form .ff-designs{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}\n        .yen-ff-page-form .ff-design{border:1px solid var(--line);padding:10px;background:#fff;cursor:pointer}\n        .yen-ff-page-form .ff-design.is-selected{border:2px solid var(--gold);padding:9px;box-shadow:0 0 0 3px rgba(184,149,93,.13)}\n        .yen-ff-page-form .ff-design input{display:inline-block;width:auto;margin:0 6px 0 0}\n        .yen-ff-page-form .ff-swatch{height:70px;margin:9px 0;display:grid;place-items:center;font:26px 'Alex Brush',cursive}\n        .yen-ff-page-form .ff-swatch.noir{background:linear-gradient(160deg,#0b0d12,#33291b);color:#e9d9b4}\n        .yen-ff-page-form .ff-swatch.classic{background:#090807;color:#fff}\n        .yen-ff-page-form .ff-swatch.ivory{background:#eadfce;color:#49382b}\n        .yen-ff-page-form .ff-swatch.rose{background:linear-gradient(145deg,#3a1f22,#c7998b);color:#fff}\n        .yen-ff-page-form .ff-photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}\n        .yen-ff-page-form .chip-list{margin-top:8px}\n        .yen-ff-page-form .chip{display:inline-flex;align-items:center;gap:6px;background:#efe6d6;padding:5px 11px;border-radius:999px;font-size:12.5px;margin:0 6px 6px 0}\n        .yen-ff-page-form .chip button{border:0;background:none;cursor:pointer;font-size:13px}\n        \/* Full-width side-by-side builder: editor and live preview scroll independently. *\/\n        .yen-ff-page-form .ff-builder-shell{\n          display:grid;\n          grid-template-columns:minmax(600px,1fr) minmax(430px,34vw);\n          gap:0;\n          border-top:1px solid var(--line);\n          height:calc(100vh - 150px);\n          min-height:720px;\n          max-height:none;\n          overflow:hidden;\n        }\n        .yen-ff-page-form .ff-builder-shell.ff-ws-desktop{grid-template-columns:minmax(460px,40%) minmax(0,1fr)}\n        .yen-ff-page-form .ff-editor-pane{\n          min-width:0;\n          min-height:0;\n          overflow-y:auto;\n          overflow-x:hidden;\n          background:#faf7f2;\n          scroll-behavior:smooth;\n        }\n        .yen-ff-page-form .ff-preview-pane{\n          min-width:0;\n          min-height:0;\n          overflow-y:auto;\n          overflow-x:hidden;\n          background:#3a3a3a;\n          border-left:1px solid var(--line);\n          overscroll-behavior:contain;\n          position:relative;\n        }\n        .yen-ff-page-form .ff-preview-pane .ff-section{border:0;padding:18px 24px 40px}\n        .yen-ff-page-form .ff-preview-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:14px}\n        .yen-ff-page-form .ff-preview-head h2{color:#fff;font-size:20px;margin:0}\n        .yen-ff-page-form .ff-preview-toggle{display:inline-flex;border:1px solid rgba(255,255,255,.3);border-radius:999px;overflow:hidden}\n        .yen-ff-page-form .ff-preview-toggle button{border:0;border-radius:0;margin:0;min-height:0;background:transparent;color:#d8d8d8;font-size:11px;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;padding:6px 14px;cursor:pointer;font-weight:400}\n        .yen-ff-page-form .ff-preview-toggle button.is-active{background:#fff;color:#171412}\n        .yen-ff-page-form .ff-preview-wrap{display:flex;flex-direction:column;align-items:center}\n        .yen-ff-page-form .ff-device{margin:0 auto;background:#000;box-shadow:0 24px 70px rgba(0,0,0,.45);border-radius:8px;overflow:hidden;position:relative;width:390px;height:700px}\n        .yen-ff-page-form .ff-device iframe{display:block;border:0;background:#000;transform-origin:0 0;max-width:none;width:390px;height:700px}\n        .yen-ff-page-form .ff-preview-wrap .ff-submit{margin-top:18px}\n        .yen-ff-page-form .ff-preview-wrap .ff-note{color:#cfc8bd}\n        @media(max-width:1100px){\n          .yen-ff-page-form .ff-builder-shell,.yen-ff-page-form .ff-builder-shell.ff-ws-desktop{\n            grid-template-columns:1fr;\n            display:block;\n            height:auto;\n            max-height:none;\n            min-height:0;\n            overflow:visible;\n          }\n          .yen-ff-page-form .ff-editor-pane{max-height:none;overflow:visible}\n          .yen-ff-page-form .ff-preview-pane{border-left:0;border-top:1px solid var(--line);max-height:none;overflow:visible}\n        }\n        .yen-ff-page-form .ff-submit{width:100%;margin-top:0;padding:15px 25px;background:#211c18;color:#fff;border:0;font-weight:700;cursor:pointer}\n        .yen-ff-page-form .ff-note{font-size:12px;color:var(--muted);margin-top:10px}\n        @media(max-width:720px){\n          .yen-ff-page-form .ff-title,.yen-ff-page-form .ff-section{padding-left:20px;padding-right:20px}\n          .yen-ff-page-form .ff-grid,.yen-ff-page-form .ff-designs,.yen-ff-page-form .ff-photo-grid{grid-template-columns:1fr 1fr}\n          .yen-ff-page-form .ff-timeline-editor{grid-template-columns:1fr}\n          .yen-ff-page-form .ff-timeline-editor .ff-tl-label{padding-bottom:8px}\n          .yen-ff-page-form .ff-pill{min-width:58px!important}\n        }\n      <\/style>\n      <div class=\"ff-title\"><h1>Templet-1<\/h1><p>Enter the couple's details, preview the invitation in Mobile or Desktop view, then create a new page with the couple's names in its web address.<\/p><\/div>\n      <form method=\"post\" action=\"https:\/\/dev.artistbrook.com\/wp-admin\/admin-post.php\" enctype=\"multipart\/form-data\" id=\"yen-ff-form\">\n        <input type=\"hidden\" name=\"action\" value=\"yen_ff_create_page\">\n        <input type=\"hidden\" name=\"editors_json\" id=\"ff-editors-json\" value=\"[]\">\n        <input type=\"hidden\" name=\"verse_type\" id=\"ff-verse-type\" value=\"none\">\n        <input type=\"hidden\" id=\"yen_ff_nonce\" name=\"yen_ff_nonce\" value=\"8906d10077\" \/><input type=\"hidden\" name=\"_wp_http_referer\" value=\"\/am\/wp-json\/wp\/v2\/pages\/2370\" \/>\n        <div class=\"ff-builder-shell\">\n          <div class=\"ff-editor-pane\">\n\n        <section class=\"ff-section\">\n          <h2>01. Details Profile<\/h2>\n          <p class=\"ff-help\">First photo, couple's names, date &amp; time, and verse. A tall (portrait) photo works best \u2014 the couple's names are printed across the lower part of this photo. This photo is also the thumbnail shown when the link is shared.<\/p>\n          <div class=\"ff-grid\">\n            <label class=\"ff-wide\">First photo<input name=\"hero_photo\" id=\"ff-photo\" type=\"file\" accept=\"image\/jpeg,image\/png,image\/webp\"><\/label>\n            <label class=\"ff-wide\">Save the Date with...<input name=\"hero_tagline\" data-ff=\"tagline\" value=\"Save the Date\"><\/label>\n            <label>Person one<input name=\"person_one\" data-ff=\"one\" value=\"Fikerab\" required maxlength=\"80\"><\/label>\n            <label>Person two<input name=\"person_two\" data-ff=\"two\" value=\"Fenan\" required maxlength=\"80\"><\/label>\n            <label>Wedding date<input name=\"event_date\" data-ff=\"date\" type=\"date\" min=\"2026-10-06\" required><\/label>\n            <label>Wedding time <small>24-hour, e.g. 16:00<\/small><input name=\"event_time\" data-ff=\"time\" type=\"time\" value=\"16:00\" required><\/label>\n            <label class=\"ff-wide\">Greeting line <small>\u2014 printed on the photo under the names<\/small>\n              <input name=\"greeting\" data-ff=\"greeting\" value=\"Dear Families and Friends\">\n            <\/label>\n            <div class=\"ff-wide\">\n              <label>Bible \/ Quran verse<\/label>\n              <div class=\"ff-pill-group\" id=\"ff-verse-pills\">\n                <button type=\"button\" class=\"ff-pill is-active\" data-v=\"none\">None<\/button>\n                <button type=\"button\" class=\"ff-pill\" data-v=\"bible\">Bible<\/button>\n                <button type=\"button\" class=\"ff-pill\" data-v=\"quran\">Quran<\/button>\n              <\/div>\n              <div id=\"ff-verse-fields\" style=\"display:none;margin-top:10px\">\n                <input name=\"verse_text\" data-ff=\"verse\" placeholder=\"Verse text\">\n                <input name=\"verse_ref\" placeholder=\"Reference, e.g. 1 Corinthians 13:4\" style=\"margin-top:8px\">\n              <\/div>\n            <\/div>\n          <\/div>\n        <\/section>\n\n        <section class=\"ff-section\">\n          <h2>02. Couple name style<\/h2>\n          <p class=\"ff-help\">Choose the visual style of the couple's names. This is separate from the entrance animation, so you can combine any style with any animation.<\/p>\n          <div class=\"ff-style-grid\" id=\"ff-name-style-grid\">\n            <label class=\"ff-style-chip is-selected\"><input type=\"radio\" name=\"name_style\" value=\"script\" checked style=\"display:none\"><strong>1. Script<\/strong><span style=\"font-family:'Alex Brush',cursive\">F &amp; F<\/span><\/label>\n            <label class=\"ff-style-chip\"><input type=\"radio\" name=\"name_style\" value=\"elegant\" style=\"display:none\"><strong>2. Elegant<\/strong><span style=\"font-family:'Great Vibes',cursive\">F &amp; F<\/span><\/label>\n            <label class=\"ff-style-chip\"><input type=\"radio\" name=\"name_style\" value=\"modern\" style=\"display:none\"><strong>3. Modern<\/strong><span style=\"font-family:'Montserrat',sans-serif;font-weight:600\">F &amp; F<\/span><\/label>\n            <label class=\"ff-style-chip\"><input type=\"radio\" name=\"name_style\" value=\"editorial\" style=\"display:none\"><strong>4. Editorial<\/strong><span style=\"font-family:'Cormorant Garamond',serif;font-style:italic\">F &amp; F<\/span><\/label>\n            <label class=\"ff-style-chip\"><input type=\"radio\" name=\"name_style\" value=\"luxe\" style=\"display:none\"><strong>5. Luxe<\/strong><span style=\"font-family:'Cormorant Garamond',serif;letter-spacing:.08em\">F &amp; F<\/span><\/label>\n          <\/div>\n          <div class=\"ff-grid\" style=\"margin-top:16px\">\n            <label>Couple name color<input type=\"color\" name=\"name_color\" value=\"#ffffff\"><\/label>\n            <label>Couple name size (px)<input type=\"number\" name=\"name_size\" min=\"28\" max=\"120\" value=\"56\"><\/label>\n          <\/div>\n        <\/section>\n\n        <section class=\"ff-section\">\n          <h2>03. Couple name animation<\/h2>\n          <p class=\"ff-help\">How the names appear on the photo when the page loads.<\/p>\n          <select name=\"name_anim\" id=\"ff-name-anim\">\n            <option value=\"rise\">1 \u2014 Rise &amp; fade in (soft lift from below)<\/option>\n            <option value=\"cascade\">2 \u2014 Letter cascade (letters drop in one by one)<\/option>\n            <option value=\"shimmer\">3 \u2014 Gold shimmer sweep (light sweeps across the names)<\/option>\n            <option value=\"float\">4 \u2014 Gentle float (slow continuous drift, never stops)<\/option>\n            <option value=\"reveal\">5 \u2014 Ink reveal (blur &amp; scale into focus)<\/option>\n          <\/select>\n          <p class=\"ff-control-note\">You can mix any name style with any animation.<\/p>\n        <\/section>\n\n        <section class=\"ff-section\">\n          <h2>04. Basic Information<\/h2>\n          <p class=\"ff-help\">The message shown to guests. You can also control the size and color of the greeting, message, and wedding information.<\/p>\n          <label class=\"ff-wide\">Message<textarea name=\"message\" data-ff=\"message\">With grateful hearts and great joy,\nwe invite you to celebrate the wedding of our beloved children.<\/textarea><\/label>\n          <div class=\"ff-grid\" style=\"margin-top:16px\">\n            <label>Greeting size (px)<input type=\"number\" name=\"greeting_size\" min=\"14\" max=\"72\" value=\"36\"><\/label>\n            <label>Greeting color<input type=\"color\" name=\"greeting_color\" value=\"#f1e7d2\"><\/label>\n            <label>Basic info \/ message size (px)<input type=\"number\" name=\"message_size\" min=\"12\" max=\"32\" value=\"17\"><\/label>\n            <label>Basic info \/ message color<input type=\"color\" name=\"message_color\" value=\"#3b342e\"><\/label>\n            <label>Wedding date \/ time \/ venue size (px)<input type=\"number\" name=\"event_size\" min=\"11\" max=\"28\" value=\"17\"><\/label>\n            <label>Wedding date \/ time \/ venue color<input type=\"color\" name=\"event_color\" value=\"#b8955d\"><\/label>\n          <\/div>\n          <p class=\"ff-control-note\">Tip: use a dark color on light backgrounds and a light color on dark backgrounds. The preview updates immediately.<\/p>\n        <\/section>\n\n        <section class=\"ff-section\">\n          <h2>05. Calendar &amp; Countdown<\/h2>\n          <div class=\"ff-toggle-row\"><span>Add to Calendar button<\/span><label><input type=\"checkbox\" name=\"add_to_calendar\" value=\"yes\" checked> Show it<\/label><\/div>\n          <div class=\"ff-toggle-row\"><span>Month calendar with the day marked<\/span><label><input type=\"checkbox\" name=\"calendar_grid\" value=\"yes\" checked> Show it<\/label><\/div>\n          <div class=\"ff-toggle-row\"><span>Countdown<\/span><label><input type=\"checkbox\" name=\"countdown_enabled\" value=\"yes\" checked> Show it<\/label><\/div>\n          <div class=\"ff-grid\">\n            <label>Heading before the wedding<input name=\"cd_before\" value=\"Until our big day\" maxlength=\"60\"><\/label>\n            <label>Heading after the wedding<input name=\"cd_after\" value=\"Married life together\" maxlength=\"60\"><\/label>\n            <label class=\"ff-wide\">Countdown background photo <small>\u2014 optional; the hero photo is used if empty<\/small>\n              <input name=\"countdown_photo\" type=\"file\" accept=\"image\/jpeg,image\/png,image\/webp\">\n            <\/label>\n            <label class=\"ff-wide\">Count-up switch-over <small>\u2014 the timer counts DOWN to the wedding, holds at zero through the day, then counts UP from this moment. Leave blank for the day after the wedding at 12:00 noon.<\/small>\n              <input type=\"datetime-local\" name=\"countup_start\">\n            <\/label>\n            <label>Calendar photo <small>\u2014 optional<\/small>\n              <input name=\"calendar_photo\" type=\"file\" accept=\"image\/jpeg,image\/png,image\/webp\">\n            <\/label>\n            <label>Calendar style\n              <select name=\"calendar_style\">\n                <option value=\"soft_blur\" selected>Soft blur<\/option>\n                <option value=\"dark_warm\">Dark and warm<\/option>\n                <option value=\"warm_film\">Warm film<\/option>\n              <\/select>\n            <\/label>\n          <\/div>\n        <\/section>\n\n        <section class=\"ff-section\">\n          <h2>06. Images<\/h2>\n          <p class=\"ff-help\">Three photos side by side. Hovering one enlarges it; moving the mouse away returns it to its original size.<\/p>\n          <div class=\"ff-photo-grid\">\n            <label>Photo 1<input type=\"file\" name=\"gallery_1\" accept=\"image\/jpeg,image\/png,image\/webp\"><\/label>\n            <label>Photo 2<input type=\"file\" name=\"gallery_2\" accept=\"image\/jpeg,image\/png,image\/webp\"><\/label>\n            <label>Photo 3<input type=\"file\" name=\"gallery_3\" accept=\"image\/jpeg,image\/png,image\/webp\"><\/label>\n          <\/div>\n        <\/section>\n\n        <section class=\"ff-section\">\n          <h2>07. Event Timeline<\/h2>\n          <p class=\"ff-help\">Up to 6 events. Time, event name and icon stay inline while editing. The invitation displays them as one connected vertical timeline.<\/p>\n          <div class=\"ff-timeline-editor\">\n                          <label class=\"ff-tl-label\">Time 1                <input name=\"time_1\" value=\"03:00 P.M\" placeholder=\"e.g. 11:00 \u2013 1:00\">\n              <\/label>\n              <label class=\"ff-tl-label\">Event 1                <input name=\"title_1\" value=\"Ceremony Begins\" placeholder=\"Event title\">\n              <\/label>\n              <label class=\"ff-tl-label\">Icon 1                <select name=\"icon_1\">\n                  <option value=\"\u26ea\"  selected='selected'>\u26ea Ceremony<\/option>\n                  <option value=\"\ud83d\udeaa\" >\ud83d\udeaa Entrance<\/option>\n                  <option value=\"\ud83d\udc8d\" >\ud83d\udc8d Rings \/ Wedding<\/option>\n                  <option value=\"\ud83c\udf7d\ufe0f\" >\ud83c\udf7d\ufe0f Food \/ Reception<\/option>\n                  <option value=\"\ud83d\udcf7\" >\ud83d\udcf7 Photo<\/option>\n                  <option value=\"\ud83c\udfb5\" >\ud83c\udfb5 Music \/ Dance<\/option>\n                  <option value=\"\u2726\" >\u2726 Other<\/option>\n                <\/select>\n              <\/label>\n                          <label class=\"ff-tl-label\">Time 2                <input name=\"time_2\" value=\"03:30 P.M\" placeholder=\"e.g. 11:00 \u2013 1:00\">\n              <\/label>\n              <label class=\"ff-tl-label\">Event 2                <input name=\"title_2\" value=\"Bride &amp; Groom Entrance\" placeholder=\"Event title\">\n              <\/label>\n              <label class=\"ff-tl-label\">Icon 2                <select name=\"icon_2\">\n                  <option value=\"\u26ea\" >\u26ea Ceremony<\/option>\n                  <option value=\"\ud83d\udeaa\"  selected='selected'>\ud83d\udeaa Entrance<\/option>\n                  <option value=\"\ud83d\udc8d\" >\ud83d\udc8d Rings \/ Wedding<\/option>\n                  <option value=\"\ud83c\udf7d\ufe0f\" >\ud83c\udf7d\ufe0f Food \/ Reception<\/option>\n                  <option value=\"\ud83d\udcf7\" >\ud83d\udcf7 Photo<\/option>\n                  <option value=\"\ud83c\udfb5\" >\ud83c\udfb5 Music \/ Dance<\/option>\n                  <option value=\"\u2726\" >\u2726 Other<\/option>\n                <\/select>\n              <\/label>\n                          <label class=\"ff-tl-label\">Time 3                <input name=\"time_3\" value=\"04:00 P.M\" placeholder=\"e.g. 11:00 \u2013 1:00\">\n              <\/label>\n              <label class=\"ff-tl-label\">Event 3                <input name=\"title_3\" value=\"Wedding Ceremony\" placeholder=\"Event title\">\n              <\/label>\n              <label class=\"ff-tl-label\">Icon 3                <select name=\"icon_3\">\n                  <option value=\"\u26ea\" >\u26ea Ceremony<\/option>\n                  <option value=\"\ud83d\udeaa\" >\ud83d\udeaa Entrance<\/option>\n                  <option value=\"\ud83d\udc8d\"  selected='selected'>\ud83d\udc8d Rings \/ Wedding<\/option>\n                  <option value=\"\ud83c\udf7d\ufe0f\" >\ud83c\udf7d\ufe0f Food \/ Reception<\/option>\n                  <option value=\"\ud83d\udcf7\" >\ud83d\udcf7 Photo<\/option>\n                  <option value=\"\ud83c\udfb5\" >\ud83c\udfb5 Music \/ Dance<\/option>\n                  <option value=\"\u2726\" >\u2726 Other<\/option>\n                <\/select>\n              <\/label>\n                          <label class=\"ff-tl-label\">Time 4                <input name=\"time_4\" value=\"05:00 P.M\" placeholder=\"e.g. 11:00 \u2013 1:00\">\n              <\/label>\n              <label class=\"ff-tl-label\">Event 4                <input name=\"title_4\" value=\"Reception\" placeholder=\"Event title\">\n              <\/label>\n              <label class=\"ff-tl-label\">Icon 4                <select name=\"icon_4\">\n                  <option value=\"\u26ea\" >\u26ea Ceremony<\/option>\n                  <option value=\"\ud83d\udeaa\" >\ud83d\udeaa Entrance<\/option>\n                  <option value=\"\ud83d\udc8d\" >\ud83d\udc8d Rings \/ Wedding<\/option>\n                  <option value=\"\ud83c\udf7d\ufe0f\"  selected='selected'>\ud83c\udf7d\ufe0f Food \/ Reception<\/option>\n                  <option value=\"\ud83d\udcf7\" >\ud83d\udcf7 Photo<\/option>\n                  <option value=\"\ud83c\udfb5\" >\ud83c\udfb5 Music \/ Dance<\/option>\n                  <option value=\"\u2726\" >\u2726 Other<\/option>\n                <\/select>\n              <\/label>\n                          <label class=\"ff-tl-label\">Time 5                <input name=\"time_5\" value=\"\" placeholder=\"e.g. 11:00 \u2013 1:00\">\n              <\/label>\n              <label class=\"ff-tl-label\">Event 5                <input name=\"title_5\" value=\"\" placeholder=\"Event title\">\n              <\/label>\n              <label class=\"ff-tl-label\">Icon 5                <select name=\"icon_5\">\n                  <option value=\"\u26ea\" >\u26ea Ceremony<\/option>\n                  <option value=\"\ud83d\udeaa\" >\ud83d\udeaa Entrance<\/option>\n                  <option value=\"\ud83d\udc8d\" >\ud83d\udc8d Rings \/ Wedding<\/option>\n                  <option value=\"\ud83c\udf7d\ufe0f\" >\ud83c\udf7d\ufe0f Food \/ Reception<\/option>\n                  <option value=\"\ud83d\udcf7\"  selected='selected'>\ud83d\udcf7 Photo<\/option>\n                  <option value=\"\ud83c\udfb5\" >\ud83c\udfb5 Music \/ Dance<\/option>\n                  <option value=\"\u2726\" >\u2726 Other<\/option>\n                <\/select>\n              <\/label>\n                          <label class=\"ff-tl-label\">Time 6                <input name=\"time_6\" value=\"\" placeholder=\"e.g. 11:00 \u2013 1:00\">\n              <\/label>\n              <label class=\"ff-tl-label\">Event 6                <input name=\"title_6\" value=\"\" placeholder=\"Event title\">\n              <\/label>\n              <label class=\"ff-tl-label\">Icon 6                <select name=\"icon_6\">\n                  <option value=\"\u26ea\" >\u26ea Ceremony<\/option>\n                  <option value=\"\ud83d\udeaa\" >\ud83d\udeaa Entrance<\/option>\n                  <option value=\"\ud83d\udc8d\" >\ud83d\udc8d Rings \/ Wedding<\/option>\n                  <option value=\"\ud83c\udf7d\ufe0f\" >\ud83c\udf7d\ufe0f Food \/ Reception<\/option>\n                  <option value=\"\ud83d\udcf7\" >\ud83d\udcf7 Photo<\/option>\n                  <option value=\"\ud83c\udfb5\"  selected='selected'>\ud83c\udfb5 Music \/ Dance<\/option>\n                  <option value=\"\u2726\" >\u2726 Other<\/option>\n                <\/select>\n              <\/label>\n                      <\/div>\n        <\/section>\n\n        <section class=\"ff-section\">\n          <h2>08. Location<\/h2>\n          <p class=\"ff-help\">The venue name is plain text. Only the map and the \u201cOpen in Google Maps\u201d button are links. To pin the exact spot: open Google Maps, find the venue, press Share &rarr; Copy link, and paste it below.<\/p>\n          <div class=\"ff-grid\">\n            <label class=\"ff-wide\">Venue name \/ address<input name=\"location\" data-ff=\"location\" value=\"Hilton International Hotel, Addis Ababa\" required><\/label>\n            <label class=\"ff-wide\">Google Maps link <small>\u2014 optional, but makes the pin exact<\/small>\n              <input name=\"location_map_url\" type=\"url\" placeholder=\"https:\/\/maps.app.goo.gl\/\u2026 or https:\/\/www.google.com\/maps\/place\/\u2026\">\n            <\/label>\n          <\/div>\n        <\/section>\n\n        <section class=\"ff-section\">\n          <h2>09. Template options (Max 4)<\/h2>\n          <div class=\"ff-designs\">\n            <label class=\"ff-design is-selected\"><input type=\"radio\" name=\"design\" value=\"noir\" checked> Noir<div class=\"ff-swatch noir\">F &amp; F<\/div><\/label>\n            <label class=\"ff-design\"><input type=\"radio\" name=\"design\" value=\"classic\"> Fikerab Style<div class=\"ff-swatch classic\">F &amp; F<\/div><\/label>\n            <label class=\"ff-design\"><input type=\"radio\" name=\"design\" value=\"ivory\"> Soft Ivory<div class=\"ff-swatch ivory\">F &amp; F<\/div><\/label>\n            <label class=\"ff-design\"><input type=\"radio\" name=\"design\" value=\"rose\"> Evening Rose<div class=\"ff-swatch rose\">F &amp; F<\/div><\/label>\n          <\/div>\n        <\/section>\n\n        <section class=\"ff-section\">\n          <h2>10. Editor access<\/h2>\n          <input type=\"text\" id=\"ff-editor-input\" placeholder=\"name@email.com \u2014 press Enter\">\n          <div class=\"chip-list\" id=\"ff-editor-chips\"><\/div>\n        <\/section>\n\n        <section class=\"ff-section\">\n          <h2>11. Custom link<\/h2>\n          <label class=\"ff-wide\">Custom link (optional)<small> \u2014 leave blank to generate automatically<\/small>\n            <input name=\"custom_slug\" placeholder=\"fikerab-and-fenan\" maxlength=\"80\">\n          <\/label>\n        <\/section>\n\n          <\/div>\n\n          <aside class=\"ff-preview-pane\">\n        <section class=\"ff-section\">\n          <div class=\"ff-preview-head\">\n            <h2>12. Live preview and create page<\/h2>\n            <span class=\"ff-preview-toggle\"><button type=\"button\" data-view=\"mobile\" class=\"is-active\">Mobile<\/button><button type=\"button\" data-view=\"desktop\">Desktop<\/button><\/span>\n          <\/div>\n          <div class=\"ff-preview-wrap\">\n            <div class=\"ff-device\" id=\"ff-device\"><iframe id=\"ff-frame\" title=\"Live invitation preview\"><\/iframe><\/div>\n            <button class=\"ff-submit\" type=\"submit\">Create couple invitation page<\/button>\n            <div class=\"ff-note\">After submission, WordPress creates a published page (e.g. \/fikerab-and-fenan\/) and you'll be taken straight to it.<\/div>\n          <\/div>\n        <\/section>\n          <\/aside>\n        <\/div>\n      <\/form>\n      <script>\n      (function(){\n        var PV = {\"ajax\":\"https:\\\/\\\/dev.artistbrook.com\\\/wp-admin\\\/admin-ajax.php\",\"nonce\":\"25fd23f4ee\",\"css\":\".yen-ff-generated{width:100vw!important;max-width:100vw!important;margin-left:calc(50% - 50vw)!important;margin-right:calc(50% - 50vw)!important}\\n@media(min-width:900px){\\n.yen-ff-generated .yff-hero{aspect-ratio:auto!important;height:min(92vh,980px)!important;min-height:620px!important;max-height:none!important;background-position:50% 24%!important}\\n.yen-ff-generated .hero-copy{padding-bottom:3.2vw!important}\\n.yen-ff-generated .tagline{font-size:clamp(24px,2.2vw,38px)!important}\\n.yen-ff-generated h1.couple,.yen-ff-generated h1.cl-names{font-size:min(calc(var(--yff-ns,56px)*1.7),8.5vw)!important}\\n.yen-ff-generated .greeting,.yen-ff-generated .greeting-block,.yen-ff-generated .cl-greeting{font-size:min(calc(var(--yff-gs,36px)*1.4),4.8vw)!important}\\n.yen-ff-generated .yff-container,.yen-ff-generated .cl-container{max-width:1040px!important}\\n.yen-ff-generated .yff-section:not(.yff-calendar-section):not([style]){padding-top:92px!important;padding-bottom:92px!important}\\n.yen-ff-generated .yff-heading{font-size:clamp(44px,4.2vw,68px)!important}\\n.yen-ff-generated p.msg{max-width:860px!important;font-size:min(calc(var(--yff-ms,17px)*1.3),2.4vw)!important;line-height:1.9!important}\\n.yen-ff-generated .event,.yen-ff-generated .cl-date{font-size:min(calc(var(--yff-es,17px)*1.3),2.4vw)!important}\\n.yen-ff-generated .couple-quote{font-size:clamp(34px,3.4vw,56px)!important}\\n.yen-ff-generated .verse{font-size:21px!important}\\n.yen-ff-generated .cal-btn{font-size:14px!important;padding:13px 28px!important}\\n.yen-ff-generated .cl-hero{height:min(88vh,920px)!important;min-height:560px!important;background-position:50% 24%!important}\\n.yen-ff-generated .cl-intro{max-width:980px!important;padding-bottom:70px!important}\\n.yen-ff-generated .cl-tagline{font-size:18px!important}\\n.yen-ff-generated .cl-divider{width:220px!important}\\n.yen-ff-generated .ph-item img{height:clamp(260px,32vw,540px)!important}\\n.yen-ff-generated .yff-timeline,.yen-ff-generated .cl-timeline{max-width:780px!important}\\n.yen-ff-generated .tl-title,.yen-ff-generated .cl-tl-label{font-size:clamp(34px,3vw,48px)!important}\\n.yen-ff-generated .tl-time,.yen-ff-generated .cl-tl-time{font-size:15px!important}\\n.yen-ff-generated .yff-countdown-section{padding-top:112px!important;padding-bottom:120px!important}\\n.yen-ff-generated .count-title{font-size:clamp(40px,4vw,64px)!important;margin-bottom:36px!important}\\n.yen-ff-generated .countdown-stable{gap:clamp(24px,4vw,64px)!important}\\n.yen-ff-generated .time-box{min-width:120px!important}\\n.yen-ff-generated .time-box .num{font-size:clamp(40px,4vw,64px)!important}\\n.yen-ff-generated .time-box .lbl{font-size:14px!important;margin-top:10px!important}\\n.yen-ff-generated .location-address{font-size:22px!important}\\n.yen-ff-generated .map-frame{max-width:1040px!important}\\n.yen-ff-generated .map-frame iframe{height:460px!important}\\n.yen-ff-generated .cal-photo-wrap{padding:100px 24px!important}\\n.yen-ff-generated .cal-grid-wrap{max-width:540px!important}\\n.yen-ff-generated .cal-weekdays{font-size:15px!important}\\n.yen-ff-generated .cal-cell{font-size:19px!important}\\n.yen-ff-generated .cal-cell.is-day .heart{font-size:26px!important}\\n.yen-ff-generated .cal-caption{font-size:30px!important}\\n.yen-ff-generated .credit{font-size:12px!important}\\n}\"};\n        function boot(){\n          var form = document.getElementById('yen-ff-form');\n          if (!form || form.__yenFFBooted) return;\n          var root = form.closest('.yen-ff-page-form') || form.parentElement;\n          form.__yenFFBooted = true;\n\n          var frame = root.querySelector('#ff-frame'), device = root.querySelector('#ff-device');\n          var panel = root.querySelector('.ff-preview-pane'), shell = root.querySelector('.ff-builder-shell');\n          var PREV = 'https:\/\/yffprev.invalid\/';\n          var urls = {hero:'', cal:'', g1:'', g2:'', g3:''};\n          var heroRatio = '3 \/ 4';\n          var MODE = 'mobile', ready = false, playAnim = true, seq = 0, timer = null;\n          var verseType = (form.querySelector('#ff-verse-type') || {}).value || 'none';\n\n          function checked(name){ var el = form.querySelector('[name=\"' + name + '\"]'); return !!(el && el.checked); }\n\n          \/* ---------- live preview: the REAL page, rendered by the server ---------- *\/\n          function schedule(){ clearTimeout(timer); timer = setTimeout(refresh, 250); }\n          function refresh(){\n            if (!ready) return;\n            var fd = new FormData(form), drop = [];\n            fd.forEach(function(v, k){ if (typeof File !== 'undefined' && v instanceof File) drop.push(k); });\n            drop.forEach(function(k){ fd.delete(k); });\n            fd.set('action', 'yen_ff_preview');\n            fd.set('nonce', PV.nonce);\n            ['hero','cal','g1','g2','g3'].forEach(function(k){ if (urls[k]) fd.set('has_' + k, '1'); });\n            fd.set('hero_ratio', heroRatio);\n            var my = ++seq;\n            fetch(PV.ajax, {method:'POST', body:fd, credentials:'same-origin'})\n              .then(function(r){ return r.json(); })\n              .then(function(j){ if (my !== seq || !j || !j.success) return; apply(j.data.html); })\n              .catch(function(){});\n          }\n          function apply(html){\n            var doc = frame.contentDocument, win = frame.contentWindow; if (!doc || !doc.body) return;\n            ['hero','cal','g1','g2','g3'].forEach(function(k){ html = html.split(PREV + k).join(urls[k] || ''); });\n            var y = win.pageYOffset || 0;\n            doc.body.className = 'yen-ff-invite-page' + (playAnim ? '' : ' yff-noanim');\n            doc.body.innerHTML = html;\n            win.scrollTo(0, y);\n            playAnim = false;\n            cascade(doc);\n            tickAll();\n          }\n          \/* letter cascade (the published page does this with its own script) *\/\n          function cascade(doc){\n            var h1 = doc.querySelector('h1.couple[data-anim=\"cascade\"]'); if (!h1) return;\n            var txt = h1.textContent, out = '';\n            for (var i = 0; i < txt.length; i++){\n              var ch = txt.charAt(i);\n              if (ch === ' ') out += '<span class=\"ltr sp\">&nbsp;<\/span>';\n              else { if (ch === '&') ch = '&amp;'; else if (ch === '<') ch = '&lt;'; out += '<span class=\"ltr\" style=\"animation-delay:' + (i * 0.06).toFixed(2) + 's\">' + ch + '<\/span>'; }\n            }\n            h1.innerHTML = out;\n          }\n          \/* countdown: down to the wedding, hold at zero on the day, then count up *\/\n          function tickBox(box){\n            var start = Number(box.getAttribute('data-start-ms')), end = Number(box.getAttribute('data-end-ms'));\n            if (!start || !isFinite(start)) start = Date.parse(box.getAttribute('data-start'));\n            if (!end || !isFinite(end)){ var ea = box.getAttribute('data-end'); end = ea ? Date.parse(ea) : start; }\n            if (!isFinite(start)) return; if (!isFinite(end)) end = start;\n            var rootEl = box.closest('.yen-ff-generated'), title = rootEl ? rootEl.querySelector('.count-title') : null;\n            var d = box.querySelector('[data-u=d]'), h = box.querySelector('[data-u=h]'), m = box.querySelector('[data-u=m]'), s = box.querySelector('[data-u=s]');\n            if (!d || !h || !m || !s) return;\n            function pad(n){ n = String(n); return n.length < 2 ? '0' + n : n; }\n            function show(w){ ['before','day','after'].forEach(function(k){ var el = title && title.querySelector('[data-cd=' + k + ']'); if (el) el.style.display = (k === w) ? 'inline' : 'none'; }); }\n            function put(sec){ sec = Math.max(0, Math.floor(sec)); d.textContent = Math.floor(sec \/ 86400); h.textContent = pad(Math.floor((sec % 86400) \/ 3600)); m.textContent = pad(Math.floor((sec % 3600) \/ 60)); s.textContent = pad(sec % 60); }\n            var now = Date.now();\n            if (now < start){ show('before'); put((start - now) \/ 1000); }\n            else if (now < end){ show('day'); put(0); }\n            else { show('after'); put((now - end) \/ 1000); }\n          }\n          function tickAll(){\n            var doc = frame.contentDocument; if (!doc) return;\n            doc.querySelectorAll('.yen-ff-generated .countdown-stable').forEach(tickBox);\n          }\n          setInterval(tickAll, 1000);\n\n          \/* The preview is a real iframe sized like a real phone (390px) or a real\n             desktop window (1280px, scaled down to fit), so the very same CSS media\n             queries as the published page decide the layout. *\/\n          function layout(){\n            var stacked = getComputedStyle(shell).display !== 'grid';\n            var availW = Math.max(260, panel.clientWidth - 48);\n            var availH = stacked ? Math.round(window.innerHeight * 0.8) : Math.max(480, panel.clientHeight - 210);\n            var W = MODE === 'desktop' ? 1280 : 390, s = Math.min(1, availW \/ W);\n            var H = Math.round(Math.max(560, MODE === 'desktop' ? Math.min(1000, availH \/ s) : Math.min(844, availH \/ s)));\n            frame.style.width = W + 'px'; frame.style.height = H + 'px'; frame.style.transform = 'scale(' + s + ')';\n            device.style.width = Math.round(W * s) + 'px'; device.style.height = Math.round(H * s) + 'px';\n          }\n          root.querySelectorAll('.ff-preview-toggle button').forEach(function(btn){\n            btn.addEventListener('click', function(){\n              MODE = btn.getAttribute('data-view') === 'desktop' ? 'desktop' : 'mobile';\n              root.querySelectorAll('.ff-preview-toggle button').forEach(function(b){ b.classList.toggle('is-active', b === btn); });\n              shell.classList.toggle('ff-ws-desktop', MODE === 'desktop');\n              layout();\n            });\n          });\n          window.addEventListener('resize', layout);\n          frame.addEventListener('load', function(){ ready = true; layout(); refresh(); });\n          frame.srcdoc = '<!doctype html><html><head><meta charset=\"utf-8\"><meta name=\"viewport\" content=\"width=device-width,initial-scale=1\"><link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\"><style>html,body{margin:0;padding:0;overflow-x:hidden;background:#000;scrollbar-width:none}::-webkit-scrollbar{display:none}body.yff-noanim .yen-ff-generated h1.couple,body.yff-noanim .yen-ff-generated h1.couple .ltr{animation:none!important;opacity:1!important;transform:none!important;filter:none!important}<\/style><style>' + PV.css + '<\/style><\/head><body class=\"yen-ff-invite-page\"><\/body><\/html>';\n\n          \/* ---------- form behavior ---------- *\/\n          function enforceFutureDate(){\n            var dateEl = form.querySelector('[name=\"event_date\"]'), timeEl = form.querySelector('[name=\"event_time\"]');\n            if (!dateEl || !timeEl) return true;\n            var now = new Date();\n            var localDate = now.getFullYear() + '-' + String(now.getMonth() + 1).padStart(2,'0') + '-' + String(now.getDate()).padStart(2,'0');\n            dateEl.min = localDate;\n            if (dateEl.value === localDate) timeEl.min = String(now.getHours()).padStart(2,'0') + ':' + String(now.getMinutes()).padStart(2,'0');\n            else timeEl.removeAttribute('min');\n            if (dateEl.value && timeEl.value){\n              var chosen = new Date(dateEl.value + 'T' + timeEl.value);\n              return chosen.getTime() > Date.now();\n            }\n            return true;\n          }\n          form.addEventListener('submit', function(e){\n            if (!enforceFutureDate()){\n              e.preventDefault();\n              alert('The wedding date and time must be later than the current date and time. Please choose a future date\/time.');\n            }\n          });\n          form.addEventListener('input', function(){ enforceFutureDate(); schedule(); });\n          form.addEventListener('change', function(e){\n            enforceFutureDate();\n            if (e.target && (e.target.name === 'name_anim' || e.target.name === 'name_style')) playAnim = true;\n            schedule();\n          });\n\n          root.querySelectorAll('.ff-design').forEach(function(card){\n            card.addEventListener('click', function(e){\n              var input = card.querySelector('input');\n              if (input && e.target !== input) input.checked = true;\n              root.querySelectorAll('.ff-design').forEach(function(x){ x.classList.remove('is-selected'); });\n              card.classList.add('is-selected');\n              schedule();\n            });\n          });\n\n          \/* chosen photos: shown in the preview straight from the user's computer *\/\n          var KEYS = {hero_photo:'hero', calendar_photo:'cal', gallery_1:'g1', gallery_2:'g2', gallery_3:'g3'};\n          form.querySelectorAll('input[type=file]').forEach(function(input){\n            input.addEventListener('change', function(){\n              var key = KEYS[input.name], file = input.files && input.files[0];\n              if (!key) return;\n              if (!file){ urls[key] = ''; if (key === 'hero') heroRatio = '3 \/ 4'; schedule(); return; }\n              var reader = new FileReader();\n              reader.onload = function(e){\n                urls[key] = e.target.result;\n                if (key === 'hero'){\n                  var im = new Image();\n                  im.onload = function(){ if (im.naturalWidth && im.naturalHeight) heroRatio = im.naturalWidth + ' \/ ' + im.naturalHeight; schedule(); };\n                  im.onerror = schedule;\n                  im.src = urls[key];\n                } else schedule();\n              };\n              reader.readAsDataURL(file);\n            });\n          });\n\n          function syncVersePills(){\n            var current = (form.querySelector('#ff-verse-type') || {}).value || 'none';\n            verseType = current;\n            root.querySelectorAll('#ff-verse-pills .ff-pill').forEach(function(b){ b.classList.toggle('is-active', b.getAttribute('data-v') === current); });\n            var fields = root.querySelector('#ff-verse-fields');\n            if (fields) fields.style.display = current === 'none' ? 'none' : 'block';\n          }\n          root.querySelectorAll('#ff-verse-pills .ff-pill').forEach(function(btn){\n            btn.addEventListener('click', function(){\n              verseType = btn.getAttribute('data-v') || 'none';\n              var hidden = form.querySelector('#ff-verse-type'); if (hidden) hidden.value = verseType;\n              root.querySelectorAll('#ff-verse-pills .ff-pill').forEach(function(b){ b.classList.remove('is-active'); });\n              btn.classList.add('is-active');\n              var fields = root.querySelector('#ff-verse-fields'); if (fields) fields.style.display = verseType === 'none' ? 'none' : 'block';\n              schedule();\n            });\n          });\n\n          var editors = [], editorInput = root.querySelector('#ff-editor-input'), editorChips = root.querySelector('#ff-editor-chips'), editorsJson = form.querySelector('#ff-editors-json');\n          function renderEditors(){\n            if (!editorChips || !editorsJson) return;\n            editorChips.innerHTML = '';\n            editors.forEach(function(email, idx){\n              var chip = document.createElement('span'); chip.className = 'chip'; chip.textContent = email + ' ';\n              var btn = document.createElement('button'); btn.type = 'button'; btn.textContent = '\u00d7';\n              btn.addEventListener('click', function(){ editors.splice(idx, 1); renderEditors(); });\n              chip.appendChild(btn); editorChips.appendChild(chip);\n            });\n            editorsJson.value = JSON.stringify(editors);\n          }\n          if (editorInput){\n            editorInput.addEventListener('keydown', function(e){\n              if (e.key === 'Enter' && editorInput.value.trim()){\n                e.preventDefault(); editors.push(editorInput.value.trim()); editorInput.value = ''; renderEditors();\n              }\n            });\n          }\n\n          syncVersePills();\n          var selectedNameStyle = form.querySelector('[name=\"name_style\"]:checked');\n          root.querySelectorAll('.ff-style-chip').forEach(function(card){\n            var input = card.querySelector('input[name=\"name_style\"]');\n            card.classList.toggle('is-selected', !!(input && selectedNameStyle && input.value === selectedNameStyle.value));\n            card.addEventListener('click', function(){\n              if (input) input.checked = true;\n              root.querySelectorAll('.ff-style-chip').forEach(function(x){ x.classList.remove('is-selected'); });\n              card.classList.add('is-selected');\n              playAnim = true;\n              schedule();\n            });\n          });\n        }\n        if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot);\n        else boot();\n      })();\n      <\/script>\n    <\/div>\n    <\/div>\n\t\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_templately_pack_id":"","_templately_imported_at":"","_templately_source":"","_templately_import_session_id":"","site-sidebar-layout":"no-sidebar","site-content-layout":"","ast-site-content-layout":"full-width-container","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"disabled","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-2370","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/dev.artistbrook.com\/am\/wp-json\/wp\/v2\/pages\/2370","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dev.artistbrook.com\/am\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/dev.artistbrook.com\/am\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/dev.artistbrook.com\/am\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/dev.artistbrook.com\/am\/wp-json\/wp\/v2\/comments?post=2370"}],"version-history":[{"count":13,"href":"https:\/\/dev.artistbrook.com\/am\/wp-json\/wp\/v2\/pages\/2370\/revisions"}],"predecessor-version":[{"id":2397,"href":"https:\/\/dev.artistbrook.com\/am\/wp-json\/wp\/v2\/pages\/2370\/revisions\/2397"}],"wp:attachment":[{"href":"https:\/\/dev.artistbrook.com\/am\/wp-json\/wp\/v2\/media?parent=2370"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}