{"id":224,"date":"2026-10-30T12:38:57","date_gmt":"2026-10-30T12:38:57","guid":{"rendered":"https:\/\/bookpublish.online\/amy\/?page_id=224"},"modified":"2026-10-30T13:21:49","modified_gmt":"2026-10-30T13:21:49","slug":"book-series","status":"publish","type":"page","link":"https:\/\/bookpublish.online\/amy\/book-series\/","title":{"rendered":"BOOK SERIES"},"content":{"rendered":"\t\t<div data-elementor-type=\"wp-page\" data-elementor-id=\"224\" class=\"elementor elementor-224\" data-elementor-post-type=\"page\">\n\t\t\t\t<div class=\"elementor-element elementor-element-86f7291 e-con-full e-flex e-con e-parent\" data-id=\"86f7291\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-8671e04 elementor-widget elementor-widget-html\" data-id=\"8671e04\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ==============================================================\r\n  FOREVER WOLF \u00b7 BOOK SERIES PAGE \u2014 Elementor \u203a HTML widget\r\n  Book I (Coming Soon in December) + 4 books in the works as \"mystery covers\"\r\n  Pure CSS \u00b7 no JavaScript \u00b7 one image (re-used, so it loads only once)\r\n  -------------------------------------------------------------\r\n  SETUP: container Content Width = Full Width, Padding = 0,\r\n         put ONLY this HTML widget inside.\r\n  WHEN A BOOK IS RELEASED: search \"WHEN READY\" - paste the buy link, change \"Coming Soon\" to \"Buy the Book\".\r\n  New cover ready? Search \"BOOK 2\" (etc.) and follow the note.\r\n=============================================================== -->\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cinzel:wght@500;600;700&family=Cormorant+Garamond:ital,wght@1,500;1,600&family=Poppins:wght@300;400;500;600&display=swap\" rel=\"stylesheet\">\r\n\r\n<style>\r\n\/* ---------- Elementor wrappers ---------- *\/\r\n.elementor-widget:has(#fwb-book){width:100% !important; max-width:none !important; margin:0 !important; flex:1 1 100%}\r\n.e-con:has(> .elementor-widget #fwb-book),\r\n.e-con:has(> .e-con-inner > .elementor-widget #fwb-book){padding:0 !important}\r\n.e-con-inner:has(> .elementor-widget #fwb-book){max-width:none !important; padding:0 !important}\r\n\r\n\/* ---------- base: same dark palette as the hero (ink + gold + moonlit navy) ---------- *\/\r\n#fwb-book{\r\n  --gold:#d6a84e; --gold-l:#f3d48e; --text:#efe9dc; --muted:#aca699; --line:rgba(214,168,78,.2); --ink:5,7,13;\r\n  --grad:linear-gradient(180deg,#fff3cc 0%,#f3cd78 34%,#c18a30 58%,#e8c26c 80%,#fde8ad 100%);\r\n  position:relative; overflow:hidden; isolation:isolate; margin:0;\r\n  padding:clamp(80px,10vw,130px) 0 clamp(80px,9vw,120px);\r\n  background:\r\n    radial-gradient(ellipse 40% 50% at 26% 38%,rgba(214,168,78,.14),transparent 70%),\r\n    radial-gradient(ellipse 45% 35% at 85% 5%,rgba(90,120,210,.12),transparent 70%),\r\n    radial-gradient(ellipse 60% 30% at 50% 100%,rgba(90,120,210,.08),transparent 70%),\r\n    linear-gradient(180deg,#05070d 0%,#0a0f1c 50%,#06080f 100%);\r\n  border-top:1px solid var(--line);\r\n  color:var(--text); font-family:'Poppins',system-ui,sans-serif; font-size:16px; line-height:1.7; text-align:left;\r\n}\r\n#fwb-book::before{content:''; position:absolute; inset:0; z-index:-1; pointer-events:none; opacity:.05;\r\n  background-image:url(\"data:image\/svg+xml,%3Csvg xmlns='http:\/\/www.w3.org\/2000\/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'\/%3E%3C\/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'\/%3E%3C\/svg%3E\")}\r\n#fwb-book *,#fwb-book *::before,#fwb-book *::after{box-sizing:border-box}\r\n#fwb-book h2,#fwb-book h3,#fwb-book p,#fwb-book a,#fwb-book ul,#fwb-book ol,#fwb-book li,#fwb-book figure,#fwb-book article{\r\n  margin:0; padding:0; border:0; background:none; box-shadow:none; list-style:none; text-transform:none; letter-spacing:normal;\r\n  font-family:inherit; font-weight:inherit; font-style:normal; line-height:inherit; color:inherit; text-decoration:none}\r\n#fwb-book :focus-visible{outline:2px solid var(--gold-l); outline-offset:4px}\r\n#fwb-book .fwb-wrap{max-width:1400px; margin:0 auto; padding:0 clamp(20px,4vw,56px)}\r\n\r\n\/* ---------- Book I spotlight ---------- *\/\r\n#fwb-book .fwb-main{display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); gap:clamp(40px,6vw,96px); align-items:center}\r\n\r\n#fwb-book .fwb-stage{position:relative; display:grid; place-items:center; padding:clamp(20px,3vw,40px) 0}\r\n#fwb-book .fwb-ring{position:absolute; width:min(118%,620px); aspect-ratio:1; border-radius:50%; border:1px solid rgba(214,168,78,.28); pointer-events:none}\r\n#fwb-book .fwb-ring::before{content:''; position:absolute; inset:7%; border-radius:50%; border:1px dashed rgba(214,168,78,.3); animation:fwbSpin 60s linear infinite}\r\n#fwb-book .fwb-ring::after{content:''; position:absolute; inset:22%; border-radius:50%; background:radial-gradient(circle,rgba(214,168,78,.22),transparent 70%)}\r\n@keyframes fwbSpin{to{transform:rotate(360deg)}}\r\n#fwb-book .fwb-cover{position:relative; z-index:1; display:block; width:clamp(230px,26vw,420px); animation:fwbFloat 6s ease-in-out infinite}\r\n@keyframes fwbFloat{0%,100%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-14px) rotate(.5deg)}}\r\n#fwb-book .fwb-cover img{display:block; width:100%; height:auto; max-width:none; margin:0; border:0;\r\n  filter:drop-shadow(18px 28px 30px rgba(0,0,0,.6)) drop-shadow(0 0 40px rgba(214,168,78,.18))}\r\n#fwb-book .fwb-badge{position:absolute; z-index:2; top:6%; right:-6%; display:grid; place-items:center; width:84px; height:84px; border-radius:50%; text-align:center;\r\n  font-family:'Cinzel',Georgia,serif; font-weight:600; font-size:11px; line-height:1.15; letter-spacing:.08em; text-transform:uppercase; color:#1b1206;\r\n  background:radial-gradient(circle at 35% 30%,#fff0c4,#e3b45c 55%,#a8762a); box-shadow:0 10px 24px rgba(0,0,0,.5), inset 0 0 0 4px rgba(255,255,255,.18), inset 0 0 0 5px rgba(120,80,20,.35);\r\n  transform:rotate(10deg)}\r\n#fwb-book .fwb-floor{position:absolute; z-index:0; bottom:4%; width:60%; height:30px; border-radius:50%; background:radial-gradient(ellipse,rgba(0,0,0,.55),transparent 70%); filter:blur(4px); animation:fwbShadow 6s ease-in-out infinite}\r\n@keyframes fwbShadow{0%,100%{transform:scaleX(1); opacity:1}50%{transform:scaleX(.85); opacity:.7}}\r\n\r\n#fwb-book .fwb-eyebrow{display:flex; align-items:center; gap:14px; font-size:11.5px; font-weight:600; letter-spacing:.4em; text-transform:uppercase; color:var(--gold-l)}\r\n#fwb-book .fwb-eyebrow::before{content:''; width:44px; height:1px; flex:none; background:linear-gradient(90deg,transparent,var(--gold))}\r\n#fwb-book .fwb-title{margin-top:18px; font-family:'Cinzel',Georgia,serif; font-weight:600; font-size:clamp(44px,5.6vw,88px); line-height:.98; text-transform:uppercase;\r\n  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent; filter:drop-shadow(0 6px 20px rgba(0,0,0,.5))}\r\n#fwb-book .fwb-tagline{margin-top:14px; font-family:'Cormorant Garamond',Georgia,serif; font-style:italic; font-weight:600; font-size:clamp(22px,2.2vw,30px); line-height:1.25; color:var(--gold-l)}\r\n#fwb-book .fwb-story{margin-top:22px; max-width:34em; font-size:16px; font-weight:300; color:var(--muted)}\r\n#fwb-book .fwb-story + .fwb-story{margin-top:14px}\r\n#fwb-book .fwb-story strong{font-weight:500; color:var(--text)}\r\n#fwb-book .fwb-chips{display:flex; flex-wrap:wrap; gap:10px; margin-top:26px}\r\n#fwb-book .fwb-chips li{padding:8px 14px; font-size:11px; font-weight:500; letter-spacing:.16em; text-transform:uppercase; color:var(--text); border:1px solid var(--line); background:rgba(255,255,255,.03)}\r\n#fwb-book .fwb-btn{position:relative; display:inline-flex; align-items:center; gap:14px; margin-top:34px; padding:20px 38px;\r\n  font-size:12px; font-weight:600; line-height:1; letter-spacing:.22em; text-transform:uppercase; white-space:nowrap;\r\n  color:#1b1206; background:linear-gradient(180deg,#f6d993,#cf9b45 55%,#a8762a); border:1px solid var(--gold); overflow:hidden; isolation:isolate;\r\n  box-shadow:0 16px 40px -14px rgba(214,168,78,.8), inset 0 1px 0 rgba(255,255,255,.45); transition:transform .45s, box-shadow .45s}\r\n#fwb-book .fwb-btn::before{content:''; position:absolute; inset:0; z-index:-1; background:linear-gradient(110deg,transparent 30%,rgba(255,255,255,.65) 50%,transparent 70%); transform:translateX(-130%); transition:transform .9s cubic-bezier(.6,0,.2,1)}\r\n#fwb-book .fwb-btn:hover{transform:translateY(-3px); box-shadow:0 20px 50px -12px rgba(214,168,78,1), inset 0 1px 0 rgba(255,255,255,.45); color:#1b1206}\r\n#fwb-book .fwb-btn:hover::before{transform:translateX(130%)}\r\n#fwb-book .fwb-btn svg{width:18px; height:10px; display:block; transition:transform .45s}\r\n#fwb-book .fwb-btn:hover svg{transform:translateX(6px)}\r\n\r\n\/* ---------- coming soon row ---------- *\/\r\n#fwb-book .fwb-next{margin-top:clamp(70px,8vw,110px); padding-top:clamp(40px,5vw,60px); border-top:1px solid var(--line)}\r\n#fwb-book .fwb-next-head{display:flex; align-items:flex-end; justify-content:space-between; gap:20px; flex-wrap:wrap; margin-bottom:34px}\r\n#fwb-book .fwb-next-head h3{font-family:'Cinzel',Georgia,serif; font-weight:500; font-size:clamp(26px,2.6vw,36px); line-height:1.1; color:#f6f0e3}\r\n#fwb-book .fwb-next-head h3 em{font-family:'Cormorant Garamond',Georgia,serif; font-style:italic; font-weight:600; font-size:1.12em; color:var(--gold-l)}\r\n#fwb-book .fwb-next-head p{font-size:14px; color:var(--muted)}\r\n#fwb-book .fwb-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:clamp(14px,2vw,28px)}\r\n\r\n#fwb-book .fwb-soon{position:relative; padding:18px 18px 20px; border:1px solid var(--line); background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.008)), rgba(var(--ink),.6);\r\n  transition:transform .5s cubic-bezier(.2,.9,.3,1.2), border-color .5s, box-shadow .5s}\r\n#fwb-book .fwb-soon:hover{transform:translateY(-8px); border-color:rgba(214,168,78,.6); box-shadow:0 24px 50px -24px rgba(0,0,0,.8), 0 0 30px -10px rgba(214,168,78,.35)}\r\n#fwb-book .fwb-pic{position:relative; aspect-ratio:3\/4; overflow:hidden; background:#05070d}\r\n#fwb-book .fwb-pic img{position:absolute; inset:0; width:100%; height:100%; max-width:none; margin:0; border:0; object-fit:contain; padding:6% 4% 2%}\r\n\/* mystery cover: the Book I image, blurred + tinted (no extra download) *\/\r\n#fwb-book .fwb-pic img.is-mystery{padding:0; object-fit:cover; transform:scale(1.15); filter:blur(10px) brightness(.42) saturate(.7) hue-rotate(var(--hue,0deg)); transition:filter .6s}\r\n#fwb-book .fwb-soon:hover img.is-mystery{filter:blur(6px) brightness(.55) saturate(.8) hue-rotate(var(--hue,0deg))}\r\n#fwb-book .fwb-pic::after{content:''; position:absolute; inset:0; pointer-events:none;\r\n  background:linear-gradient(115deg,transparent 35%,rgba(255,240,205,.16) 48%,transparent 60%); background-size:260% 100%; background-position:130% 0; animation:fwbSheen 5s ease-in-out infinite}\r\n#fwb-book .fwb-soon:nth-child(2) .fwb-pic::after{animation-delay:1.2s}\r\n#fwb-book .fwb-soon:nth-child(3) .fwb-pic::after{animation-delay:2.4s}\r\n#fwb-book .fwb-soon:nth-child(4) .fwb-pic::after{animation-delay:3.6s}\r\n#fwb-book .fwb-soon:nth-child(5) .fwb-pic::after{animation-delay:4.8s}\r\n@keyframes fwbSheen{0%{background-position:130% 0}40%,100%{background-position:-30% 0}}\r\n#fwb-book .fwb-lock{position:absolute; inset:0; z-index:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; text-align:center}\r\n#fwb-book .fwb-pic:not(:has(img.is-mystery)) .fwb-lock{display:none}\r\n#fwb-book .fwb-lock-num{font-family:'Cinzel',Georgia,serif; font-weight:600; font-size:clamp(40px,4vw,58px); line-height:1;\r\n  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent}\r\n#fwb-book .fwb-lock-ic{display:grid; place-items:center; width:46px; height:46px; border-radius:50%; border:1px solid rgba(243,212,142,.6); color:var(--gold-l); background:rgba(var(--ink),.55)}\r\n#fwb-book .fwb-lock-ic svg{width:18px; height:18px; display:block}\r\n#fwb-book .fwb-soon:hover .fwb-lock-ic{animation:fwbWiggle .6s ease}\r\n@keyframes fwbWiggle{20%{transform:rotate(-12deg)}40%{transform:rotate(10deg)}60%{transform:rotate(-6deg)}80%{transform:rotate(3deg)}}\r\n#fwb-book .fwb-soon-meta{display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:16px}\r\n#fwb-book .fwb-soon-meta span{font-size:10.5px; font-weight:600; letter-spacing:.3em; text-transform:uppercase; color:var(--gold-l)}\r\n#fwb-book .fwb-soon-meta b{padding:4px 10px 3px; font-size:9px; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-l); border:1px solid rgba(214,168,78,.5); border-radius:999px; white-space:nowrap}\r\n#fwb-book .fwb-soon h3{margin-top:8px; font-family:'Cinzel',Georgia,serif; font-weight:500; font-size:18px; line-height:1.25; color:#f6f0e3}\r\n#fwb-book .fwb-soon p{margin-top:4px; font-size:13px; color:var(--muted)}\r\n\r\n\/* ---------- series path: 5 books, Book I lights up in December ---------- *\/\r\n#fwb-book .fwb-path{position:relative; display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); margin:0 0 38px}\r\n#fwb-book .fwb-path::before{content:\"\"; position:absolute; left:10%; right:10%; top:9px; height:1px; background:repeating-linear-gradient(90deg,rgba(214,168,78,.45) 0 6px,transparent 6px 12px)}\r\n#fwb-book .fwb-path li{position:relative; display:flex; flex-direction:column; align-items:center; gap:3px; text-align:center}\r\n#fwb-book .fwb-path i{position:relative; width:19px; height:19px; border-radius:50%; background:#0a0f1c; border:1px solid rgba(214,168,78,.5)}\r\n#fwb-book .fwb-path b{margin-top:8px; font-family:\"Cinzel\",Georgia,serif; font-weight:600; font-size:13px; letter-spacing:.08em; color:#f4eee2}\r\n#fwb-book .fwb-path span{font-size:10px; font-weight:500; letter-spacing:.22em; text-transform:uppercase; color:var(--muted)}\r\n#fwb-book .fwb-path .is-first i{background:radial-gradient(circle at 35% 30%,#fff0c4,#e3b45c 55%,#a8762a); border-color:var(--gold-l); box-shadow:0 0 18px rgba(214,168,78,.8)}\r\n#fwb-book .fwb-path .is-first i::after{content:\"\"; position:absolute; inset:-5px; border-radius:50%; border:1px solid var(--gold); animation:fwbPulse 2.2s ease-out infinite}\r\n@keyframes fwbPulse{from{transform:scale(1); opacity:.8}to{transform:scale(1.9); opacity:0}}\r\n#fwb-book .fwb-path .is-first span{color:var(--gold-l)}\r\n\r\n\/* ---------- Coming Soon button (grey, not clickable) -> becomes the Buy button when you add a link ---------- *\/\r\n#fwb-book .fwb-btn.is-soon{cursor:default; pointer-events:none; color:var(--gold-l); background:rgba(214,168,78,.08); border:1px solid rgba(214,168,78,.55); box-shadow:none}\r\n#fwb-book .fwb-btn.is-soon::before{display:none}\r\n#fwb-book .fwb-mini{display:flex; align-items:center; justify-content:center; margin-top:16px; padding:14px 18px; font-size:11px; font-weight:600; line-height:1; letter-spacing:.2em; text-transform:uppercase; white-space:nowrap; color:#1b1206; background:linear-gradient(180deg,#f6d993,#cf9b45 55%,#a8762a); border:1px solid var(--gold); transition:transform .4s, box-shadow .4s}\r\n#fwb-book a.fwb-mini:hover{transform:translateY(-2px); box-shadow:0 14px 30px -10px rgba(214,168,78,.9); color:#1b1206}\r\n#fwb-book .fwb-mini.is-soon{cursor:default; color:var(--gold-l); background:rgba(214,168,78,.08); border-color:rgba(214,168,78,.5)}\r\n\r\n\/* ---------- responsive ---------- *\/\r\n@media (max-width:900px){\r\n  #fwb-book .fwb-main{grid-template-columns:1fr; gap:30px}\r\n  #fwb-book .fwb-cover{width:clamp(210px,58vw,330px)}\r\n  #fwb-book .fwb-badge{width:70px; height:70px; font-size:9.5px; right:-4%}\r\n  #fwb-book .fwb-grid{grid-template-columns:repeat(2,minmax(0,1fr))}\r\n}\r\n@media (max-width:520px){\r\n  #fwb-book .fwb-eyebrow{font-size:10px; letter-spacing:.24em; gap:10px}\r\n  #fwb-book .fwb-eyebrow::before{width:28px}\r\n  #fwb-book .fwb-btn{width:100%; justify-content:center}\r\n  #fwb-book .fwb-soon{padding:12px 12px 14px}\r\n  #fwb-book .fwb-soon h3{font-size:15px}\r\n  #fwb-book .fwb-soon-meta{flex-direction:column; align-items:flex-start; gap:6px}\r\n  #fwb-book .fwb-lock-ic{width:38px; height:38px}\r\n  #fwb-book .fwb-path b{font-size:11px; letter-spacing:.04em}\r\n  #fwb-book .fwb-path span{font-size:8px; letter-spacing:.1em}\r\n  #fwb-book .fwb-grid{gap:12px}\r\n  #fwb-book .fwb-soon p{display:none}\r\n  #fwb-book .fwb-mini{padding:12px 8px; font-size:9.5px; letter-spacing:.12em}\r\n}\r\n@media (prefers-reduced-motion:reduce){\r\n  #fwb-book *,#fwb-book *::before,#fwb-book *::after{animation:none !important; transition-duration:.01s !important}\r\n}\r\n<\/style>\r\n\r\n<section id=\"fwb-book\" aria-labelledby=\"fwb-title\">\r\n  <div class=\"fwb-wrap\">\r\n\r\n    <!-- ===== BOOK I \u2014 COMING SOON IN DECEMBER ===== -->\r\n    <div class=\"fwb-main\">\r\n      <div class=\"fwb-stage\">\r\n        <span class=\"fwb-ring\" aria-hidden=\"true\"><\/span>\r\n        <span class=\"fwb-floor\" aria-hidden=\"true\"><\/span>\r\n        <figure class=\"fwb-cover\">\r\n          <img loading=\"lazy\" src=\"https:\/\/bookpublish.online\/amy\/wp-content\/uploads\/2026\/10\/f95ef9d7-5db7-40d3-b2a5-0e9875123d26-e1792496492247.webp\" alt=\"Forever Wolf by Amy Sadler \u2014 Book One cover\" width=\"907\" height=\"1364\" loading=\"lazy\" decoding=\"async\">\r\n          <span class=\"fwb-badge\" aria-hidden=\"true\">Coming<br>Dec<\/span>\r\n        <\/figure>\r\n      <\/div>\r\n\r\n      <div class=\"fwb-text\">\r\n        <p class=\"fwb-eyebrow\">Book One \u00b7 Where It All Begins<\/p>\r\n        <h2 id=\"fwb-title\" class=\"fwb-title\">Forever Wolf<\/h2>\r\n        <p class=\"fwb-tagline\">Half human. Half Pure. Hunted by both.<\/p>\r\n        <p class=\"fwb-story\"><strong>Aryn<\/strong> is eighteen, a miller's son, and running for his life. He escapes to the <strong>Northern Straights<\/strong> \u2014 a frozen border no human or wolf dares to cross \u2014 and finds <strong>Luna<\/strong>, the last of the Pure, dying in the snow.<\/p>\r\n        <p class=\"fwb-story\">She should have killed him. Instead, she bites \u2014 and gives him her soul. He wakes as <strong>Aria<\/strong>: the one soul who could bring peace to Aryla\u2026 in a world where wolves and humans both want him dead.<\/p>\r\n        <ul class=\"fwb-chips\">\r\n          <li>Dark Fantasy Romance<\/li>\r\n          <li>The World of Aryla<\/li>\r\n          <li>18+ \u00b7 Dark Themes<\/li>\r\n        <\/ul>\r\n        <!-- WHEN READY (book released): delete the line below and paste this instead (add your link):\r\n             <a class=\"fwb-btn\" href=\"PASTE-BUY-LINK\"><span>Buy the Book<\/span><svg viewBox=\"0 0 18 10\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" aria-hidden=\"true\"><path d=\"M0 5h16M12 1l4 4-4 4\"\/><\/svg><\/a>\r\n             Also change the badge above (\"Coming Dec\") to \"Out Now\". -->\r\n        <span class=\"fwb-btn is-soon\"><span>Coming Soon in December<\/span><\/span>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- ===== MORE BOOKS \u2014 IN THE WORKS ===== -->\r\n    <div class=\"fwb-next\">\r\n      <div class=\"fwb-next-head\">\r\n        <h3>The Saga <em>Continues\u2026<\/em><\/h3>\r\n        <p>Four more books are in the works. Covers revealed here first.<\/p>\r\n      <\/div>\r\n\r\n      <ol class=\"fwb-path\" aria-label=\"The five books of Forever Wolf\">\r\n        <li class=\"is-first\"><i><\/i><b>Book I<\/b><span>December<\/span><\/li>\r\n        <li><i><\/i><b>Book II<\/b><span>In the works<\/span><\/li>\r\n        <li><i><\/i><b>Book III<\/b><span>In the works<\/span><\/li>\r\n        <li><i><\/i><b>Book IV<\/b><span>In the works<\/span><\/li>\r\n        <li><i><\/i><b>Book V<\/b><span>In the works<\/span><\/li>\r\n      <\/ol>\r\n\r\n      <div class=\"fwb-grid\">\r\n        <!-- BOOK 2: cover ready? Replace the img src with the new cover URL and delete class=\"is-mystery\".\r\n             Then change the h3 to the real title (and the pill to \"Out Now\" when released). -->\r\n        <article class=\"fwb-soon\">\r\n          <div class=\"fwb-pic\">\r\n            <img loading=\"lazy\" class=\"is-mystery\" style=\"--hue:-35deg\" src=\"https:\/\/bookpublish.online\/amy\/wp-content\/uploads\/2026\/10\/f95ef9d7-5db7-40d3-b2a5-0e9875123d26-e1792496492247.webp\" alt=\"\" width=\"907\" height=\"1364\" loading=\"lazy\" decoding=\"async\">\r\n            <div class=\"fwb-lock\" aria-hidden=\"true\">\r\n              <span class=\"fwb-lock-num\">II<\/span>\r\n              <span class=\"fwb-lock-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><rect x=\"5\" y=\"11\" width=\"14\" height=\"10\" rx=\"2\"\/><path d=\"M8 11V7a4 4 0 0 1 8 0v4\"\/><\/svg><\/span>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"fwb-soon-meta\"><span>Book II<\/span><b>In the Works<\/b><\/div>\r\n          <h3>Title Reveal Soon<\/h3>\r\n          <p>The story isn't over yet.<\/p>\r\n          <!-- WHEN READY: replace the next line with  <a class=\"fwb-mini\" href=\"PASTE-BUY-LINK\">Buy the Book<\/a> -->\r\n          <span class=\"fwb-mini is-soon\">Coming Soon<\/span>\r\n        <\/article>\r\n\r\n        <!-- BOOK 3: same steps as Book 2 -->\r\n        <article class=\"fwb-soon\">\r\n          <div class=\"fwb-pic\">\r\n            <img loading=\"lazy\" class=\"is-mystery\" style=\"--hue:160deg\" src=\"https:\/\/bookpublish.online\/amy\/wp-content\/uploads\/2026\/10\/f95ef9d7-5db7-40d3-b2a5-0e9875123d26-e1792496492247.webp\" alt=\"\" width=\"907\" height=\"1364\" loading=\"lazy\" decoding=\"async\">\r\n            <div class=\"fwb-lock\" aria-hidden=\"true\">\r\n              <span class=\"fwb-lock-num\">III<\/span>\r\n              <span class=\"fwb-lock-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><rect x=\"5\" y=\"11\" width=\"14\" height=\"10\" rx=\"2\"\/><path d=\"M8 11V7a4 4 0 0 1 8 0v4\"\/><\/svg><\/span>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"fwb-soon-meta\"><span>Book III<\/span><b>In the Works<\/b><\/div>\r\n          <h3>Title Reveal Soon<\/h3>\r\n          <p>More of Aryla's secrets await.<\/p>\r\n          <!-- WHEN READY: replace the next line with  <a class=\"fwb-mini\" href=\"PASTE-BUY-LINK\">Buy the Book<\/a> -->\r\n          <span class=\"fwb-mini is-soon\">Coming Soon<\/span>\r\n        <\/article>\r\n\r\n        <!-- BOOK 4: same steps as Book 2 -->\r\n        <article class=\"fwb-soon\">\r\n          <div class=\"fwb-pic\">\r\n            <img loading=\"lazy\" class=\"is-mystery\" style=\"--hue:60deg\" src=\"https:\/\/bookpublish.online\/amy\/wp-content\/uploads\/2026\/10\/f95ef9d7-5db7-40d3-b2a5-0e9875123d26-e1792496492247.webp\" alt=\"\" width=\"907\" height=\"1364\" loading=\"lazy\" decoding=\"async\">\r\n            <div class=\"fwb-lock\" aria-hidden=\"true\">\r\n              <span class=\"fwb-lock-num\">IV<\/span>\r\n              <span class=\"fwb-lock-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><rect x=\"5\" y=\"11\" width=\"14\" height=\"10\" rx=\"2\"\/><path d=\"M8 11V7a4 4 0 0 1 8 0v4\"\/><\/svg><\/span>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"fwb-soon-meta\"><span>Book IV<\/span><b>In the Works<\/b><\/div>\r\n          <h3>Title Reveal Soon<\/h3>\r\n          <p>New bonds. Old enemies.<\/p>\r\n          <!-- WHEN READY: replace the next line with  <a class=\"fwb-mini\" href=\"PASTE-BUY-LINK\">Buy the Book<\/a> -->\r\n          <span class=\"fwb-mini is-soon\">Coming Soon<\/span>\r\n        <\/article>\r\n\r\n        <!-- BOOK 5: same steps as Book 2 -->\r\n        <article class=\"fwb-soon\">\r\n          <div class=\"fwb-pic\">\r\n            <img loading=\"lazy\" class=\"is-mystery\" style=\"--hue:-120deg\" src=\"https:\/\/bookpublish.online\/amy\/wp-content\/uploads\/2026\/10\/f95ef9d7-5db7-40d3-b2a5-0e9875123d26-e1792496492247.webp\" alt=\"\" width=\"907\" height=\"1364\" loading=\"lazy\" decoding=\"async\">\r\n            <div class=\"fwb-lock\" aria-hidden=\"true\">\r\n              <span class=\"fwb-lock-num\">V<\/span>\r\n              <span class=\"fwb-lock-ic\"><svg viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.5\"><rect x=\"5\" y=\"11\" width=\"14\" height=\"10\" rx=\"2\"\/><path d=\"M8 11V7a4 4 0 0 1 8 0v4\"\/><\/svg><\/span>\r\n            <\/div>\r\n          <\/div>\r\n          <div class=\"fwb-soon-meta\"><span>Book V<\/span><b>In the Works<\/b><\/div>\r\n          <h3>Title Reveal Soon<\/h3>\r\n          <p>The final chapter.<\/p>\r\n          <!-- WHEN READY: replace the next line with  <a class=\"fwb-mini\" href=\"PASTE-BUY-LINK\">Buy the Book<\/a> -->\r\n          <span class=\"fwb-mini is-soon\">Coming Soon<\/span>\r\n        <\/article>\r\n\r\n      <\/div>\r\n    <\/div>\r\n\r\n  <\/div>\r\n<\/section>\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t<div class=\"elementor-element elementor-element-4fb18a8 e-con-full e-flex e-con e-parent\" data-id=\"4fb18a8\" data-element_type=\"container\" data-e-type=\"container\">\n\t\t\t\t<div class=\"elementor-element elementor-element-fa95030 elementor-widget elementor-widget-html\" data-id=\"fa95030\" data-element_type=\"widget\" data-e-type=\"widget\" data-widget_type=\"html.default\">\n\t\t\t\t\t<!-- ==============================================================\r\n  FOREVER WOLF \u00b7 BOOK TRAILER SECTION \u2014 Elementor \u203a HTML widget\r\n  Cinema frame with a silent preview that plays when scrolled into view.\r\n  \"Watch with sound\" restarts the trailer with audio + custom controls.\r\n  Scene buttons below jump to each moment of the trailer.\r\n  Anchor: links to  #trailer  scroll here.   No libraries.\r\n  -------------------------------------------------------------\r\n  SETUP: container Content Width = Full Width, Padding = 0,\r\n         put ONLY this HTML widget inside.\r\n  VIDEO: search \"MEDIA\".   Links: search \"CHANGE LINK\".\r\n=============================================================== -->\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.googleapis.com\">\r\n<link rel=\"preconnect\" href=\"https:\/\/fonts.gstatic.com\" crossorigin>\r\n<link href=\"https:\/\/fonts.googleapis.com\/css2?family=Cinzel:wght@500;600;700&family=Cormorant+Garamond:ital,wght@1,500;1,600&family=Poppins:wght@300;400;500;600&display=swap\" rel=\"stylesheet\">\r\n\r\n<style>\r\n\/* ---------- Elementor wrappers ---------- *\/\r\n.elementor-widget:has(#fwv-trailer){width:100% !important; max-width:none !important; margin:0 !important; flex:1 1 100%}\r\n.e-con:has(> .elementor-widget #fwv-trailer),\r\n.e-con:has(> .e-con-inner > .elementor-widget #fwv-trailer){padding:0 !important}\r\n.e-con-inner:has(> .elementor-widget #fwv-trailer){max-width:none !important; padding:0 !important}\r\n\r\n\/* ---------- base ---------- *\/\r\n#fwv-trailer{\r\n  --gold:#d6a84e; --gold-l:#f3d48e; --text:#efe9dc; --muted:#aca699; --line:rgba(214,168,78,.22);\r\n  --ice:150,190,255; --blood:#d0313c;\r\n  --grad:linear-gradient(180deg,#fff3cc 0%,#f3cd78 34%,#c18a30 58%,#e8c26c 80%,#fde8ad 100%);\r\n  position:relative; overflow:hidden; isolation:isolate; margin:0; padding:clamp(80px,10vw,130px) 0;\r\n  background:\r\n    radial-gradient(ellipse 55% 45% at 50% 52%,rgba(var(--ice),.13),transparent 70%),\r\n    radial-gradient(ellipse 40% 30% at 50% 100%,rgba(208,49,60,.12),transparent 70%),\r\n    linear-gradient(180deg,#05070d 0%,#0a1120 50%,#05070d 100%);\r\n  border-top:1px solid var(--line);\r\n  color:var(--text); font-family:'Poppins',system-ui,sans-serif; font-size:16px; line-height:1.7; text-align:left;\r\n}\r\n#fwv-trailer *,#fwv-trailer *::before,#fwv-trailer *::after{box-sizing:border-box}\r\n#fwv-trailer h2,#fwv-trailer p,#fwv-trailer a,#fwv-trailer ol,#fwv-trailer li,#fwv-trailer button{\r\n  margin:0; padding:0; border:0; background:none; box-shadow:none; list-style:none; text-transform:none; letter-spacing:normal;\r\n  font-family:inherit; font-weight:inherit; font-style:normal; line-height:inherit; color:inherit; text-decoration:none; border-radius:0}\r\n#fwv-trailer button{cursor:pointer; -webkit-appearance:none; appearance:none}\r\n#fwv-trailer :focus-visible{outline:2px solid var(--gold-l); outline-offset:4px}\r\n#fwv-trailer .fwv-anchor{position:absolute; top:0; scroll-margin-top:90px}\r\n#fwv-trailer .fwv-wrap{position:relative; z-index:1; max-width:1400px; margin:0 auto; padding:0 clamp(20px,4vw,56px)}\r\n\r\n\/* falling snow (two layers of dots, CSS only) *\/\r\n@keyframes fwvSnow{to{background-position:0 300px,0 0}}\r\n@keyframes fwvSnow2{to{background-position:0 220px,0 0}}\r\n#fwv-trailer::before,#fwv-trailer::after{content:''; position:absolute; inset:0; z-index:0; pointer-events:none;\r\n  -webkit-mask-image:linear-gradient(180deg,transparent,#000 15%,#000 85%,transparent); mask-image:linear-gradient(180deg,transparent,#000 15%,#000 85%,transparent)}\r\n#fwv-trailer::before{opacity:.35; animation:fwvSnow 22s linear infinite;\r\n  background-image:radial-gradient(1.6px 1.6px at 20px 30px,#fff 50%,transparent 51%),radial-gradient(1.2px 1.2px at 140px 110px,#fff 50%,transparent 51%),radial-gradient(2px 2px at 240px 200px,#fff 50%,transparent 51%),radial-gradient(1px 1px at 90px 250px,#fff 50%,transparent 51%);\r\n  background-size:300px 300px}\r\n#fwv-trailer::after{opacity:.22; animation:fwvSnow2 34s linear infinite;\r\n  background-image:radial-gradient(1px 1px at 60px 40px,#dfe9ff 50%,transparent 51%),radial-gradient(1.4px 1.4px at 170px 150px,#dfe9ff 50%,transparent 51%),radial-gradient(1px 1px at 120px 200px,#dfe9ff 50%,transparent 51%);\r\n  background-size:220px 220px}\r\n\r\n\/* ---------- heading ---------- *\/\r\n#fwv-trailer .fwv-head{max-width:760px; margin:0 auto; text-align:center}\r\n#fwv-trailer .fwv-eyebrow{display:inline-flex; align-items:center; gap:12px; font-size:11.5px; font-weight:600; letter-spacing:.4em; text-transform:uppercase; color:var(--gold-l)}\r\n@keyframes fwvRec{0%,100%{opacity:1}50%{opacity:.25}}\r\n#fwv-trailer .fwv-rec{width:8px; height:8px; flex:none; border-radius:50%; background:var(--blood); box-shadow:0 0 12px var(--blood); animation:fwvRec 1.6s ease-in-out infinite}\r\n#fwv-trailer h2{margin-top:16px; font-family:'Cinzel',Georgia,serif; font-weight:500; font-size:clamp(36px,4.6vw,66px); line-height:1.05; color:#f6f0e3}\r\n#fwv-trailer h2 em{font-family:'Cormorant Garamond',Georgia,serif; font-style:italic; font-weight:600; font-size:1.12em;\r\n  background:var(--grad); -webkit-background-clip:text; background-clip:text; color:transparent; -webkit-text-fill-color:transparent}\r\n#fwv-trailer .fwv-sub{margin-top:16px; font-family:'Cormorant Garamond',Georgia,serif; font-style:italic; font-weight:500; font-size:clamp(19px,1.7vw,23px); line-height:1.45; color:#cfc8b8}\r\n\r\n\/* ---------- cinema frame ---------- *\/\r\n#fwv-trailer .fwv-stage{position:relative; max-width:1180px; margin:clamp(40px,5vw,64px) auto 0; padding:12px; border:1px solid rgba(214,168,78,.45);\r\n  background:rgba(5,7,13,.6); box-shadow:0 0 0 6px rgba(5,7,13,.8), 0 50px 100px -40px rgba(0,0,0,.95), 0 0 90px -30px rgba(var(--ice),.35)}\r\n#fwv-trailer .fwv-c{position:absolute; width:26px; height:26px; border:2px solid var(--gold); pointer-events:none}\r\n#fwv-trailer .fwv-c-tl{left:-8px; top:-8px; border-right:0; border-bottom:0}\r\n#fwv-trailer .fwv-c-tr{right:-8px; top:-8px; border-left:0; border-bottom:0}\r\n#fwv-trailer .fwv-c-bl{left:-8px; bottom:-8px; border-right:0; border-top:0}\r\n#fwv-trailer .fwv-c-br{right:-8px; bottom:-8px; border-left:0; border-top:0}\r\n\r\n#fwv-trailer .fwv-screen{position:relative; aspect-ratio:16\/9; overflow:hidden; background:#000}\r\n#fwv-trailer .fwv-video{position:absolute; inset:0; width:100%; height:100%; max-width:none; margin:0; border:0; object-fit:cover; display:block}\r\n#fwv-trailer .fwv-screen:fullscreen{aspect-ratio:auto; width:100%; height:100%}\r\n#fwv-trailer .fwv-screen:fullscreen .fwv-video{object-fit:contain}\r\n#fwv-trailer .fwv-shade{position:absolute; inset:0; pointer-events:none; transition:opacity .8s;\r\n  background:radial-gradient(ellipse 60% 60% at 50% 50%,rgba(5,7,13,.25),rgba(5,7,13,.75) 100%), linear-gradient(0deg,rgba(5,7,13,.55),transparent 40%)}\r\n\r\n\/* big play button with spinning text ring *\/\r\n@keyframes fwvSpin{to{transform:rotate(360deg)}}\r\n@keyframes fwvPulse{from{transform:scale(1); opacity:.7}to{transform:scale(1.5); opacity:0}}\r\n#fwv-trailer .fwv-play{position:absolute; left:50%; top:50%; width:136px; height:136px; margin:-80px 0 0 -68px; border-radius:50%; color:var(--gold-l); z-index:2;\r\n  transition:opacity .5s, transform .5s cubic-bezier(.2,.9,.3,1.3)}\r\n#fwv-trailer .fwv-play:hover{transform:scale(1.07)}\r\n#fwv-trailer .fwv-ring{position:absolute; inset:0; width:100%; height:100%; overflow:visible; animation:fwvSpin 16s linear infinite}\r\n#fwv-trailer .fwv-ring text{font-family:'Poppins',sans-serif; font-size:9px; font-weight:500; letter-spacing:.5px; fill:var(--gold-l)}\r\n#fwv-trailer .fwv-core{position:absolute; inset:28px; display:grid; place-items:center; border-radius:50%;\r\n  background:linear-gradient(180deg,#f6d993,#cf9b45 55%,#a8762a); box-shadow:0 14px 40px -10px rgba(214,168,78,.8), inset 0 1px 0 rgba(255,255,255,.5)}\r\n#fwv-trailer .fwv-core::after{content:''; position:absolute; inset:-2px; border-radius:50%; border:1px solid var(--gold-l); animation:fwvPulse 2.2s ease-out infinite}\r\n#fwv-trailer .fwv-core svg{width:26px; height:26px; margin-left:4px; display:block; color:#1b1206}\r\n#fwv-trailer .fwv-hint{position:absolute; left:0; right:0; top:calc(50% + 70px); z-index:2; text-align:center; pointer-events:none; transition:opacity .5s;\r\n  font-size:11px; font-weight:600; letter-spacing:.32em; text-transform:uppercase; color:var(--text); text-shadow:0 2px 10px rgba(0,0,0,.9)}\r\n#fwv-trailer .fwv-hint .fwv-again{display:none}\r\n#fwv-trailer.is-ended .fwv-hint .fwv-first{display:none}\r\n#fwv-trailer.is-ended .fwv-hint .fwv-again{display:inline}\r\n\r\n\/* watching: overlay off, controls on *\/\r\n#fwv-trailer.is-watching .fwv-shade,#fwv-trailer.is-watching .fwv-play,#fwv-trailer.is-watching .fwv-hint{opacity:0; pointer-events:none}\r\n#fwv-trailer.is-watching .fwv-play{transform:scale(.8)}\r\n#fwv-trailer.is-watching .fwv-video{cursor:pointer}\r\n\r\n\/* ---------- controls ---------- *\/\r\n#fwv-trailer .fwv-bar{position:absolute; left:0; right:0; bottom:0; z-index:3; display:flex; align-items:center; gap:14px; padding:34px 18px 14px;\r\n  background:linear-gradient(0deg,rgba(5,7,13,.92),rgba(5,7,13,.55) 60%,transparent); opacity:0; transform:translateY(10px); pointer-events:none; transition:opacity .4s, transform .4s}\r\n#fwv-trailer.is-watching .fwv-bar{opacity:1; transform:none; pointer-events:auto}\r\n@media (hover:hover){\r\n  #fwv-trailer.is-watching:not(.is-paused) .fwv-screen:not(:hover) .fwv-bar{opacity:0; transform:translateY(10px)}\r\n}\r\n#fwv-trailer .fwv-ctl{display:grid; place-items:center; width:40px; height:40px; flex:none; border-radius:50%; color:var(--text); border:1px solid rgba(239,233,220,.25); background:rgba(5,7,13,.5); transition:color .3s, border-color .3s}\r\n#fwv-trailer .fwv-ctl:hover{color:var(--gold-l); border-color:var(--gold)}\r\n#fwv-trailer .fwv-ctl svg{width:16px; height:16px; display:block}\r\n#fwv-trailer .fwv-ctl .fwv-i2{display:none}\r\n#fwv-trailer.is-paused .fwv-toggle .fwv-i1{display:none}\r\n#fwv-trailer.is-paused .fwv-toggle .fwv-i2{display:block}\r\n#fwv-trailer.is-muted .fwv-mute .fwv-i1{display:none}\r\n#fwv-trailer.is-muted .fwv-mute .fwv-i2{display:block}\r\n#fwv-trailer .fwv-time{flex:none; min-width:84px; font-family:'Cinzel',Georgia,serif; font-size:13px; letter-spacing:.06em; color:var(--text); white-space:nowrap}\r\n#fwv-trailer .fwv-track{position:relative; flex:1; height:22px; cursor:pointer; touch-action:none}\r\n#fwv-trailer .fwv-track::before{content:''; position:absolute; left:0; right:0; top:50%; height:3px; margin-top:-1.5px; background:rgba(239,233,220,.22)}\r\n#fwv-trailer .fwv-fill{position:absolute; left:0; right:0; top:50%; height:3px; margin-top:-1.5px; background:linear-gradient(90deg,#a8762a,var(--gold-l)); transform-origin:left; transform:scaleX(var(--prog,0))}\r\n#fwv-trailer .fwv-knob{position:absolute; top:50%; left:calc(var(--prog,0) * 100%); width:13px; height:13px; margin:-6.5px 0 0 -6.5px; border-radius:50%; background:var(--gold-l); box-shadow:0 0 12px rgba(214,168,78,.9)}\r\n#fwv-trailer .fwv-mark{position:absolute; top:50%; width:5px; height:5px; margin:-2.5px 0 0 -2.5px; border-radius:50%; background:var(--blood); box-shadow:0 0 6px var(--blood); pointer-events:none}\r\n\r\n\/* ---------- scene buttons ---------- *\/\r\n#fwv-trailer .fwv-scenes{display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; max-width:1180px; margin:28px auto 0}\r\n#fwv-trailer .fwv-scene{position:relative; display:flex; flex-direction:column; gap:2px; width:100%; height:100%; padding:16px 18px 18px; overflow:hidden; text-align:left;\r\n  border:1px solid var(--line); background:rgba(5,7,13,.6); transition:border-color .4s, background .4s, transform .4s}\r\n#fwv-trailer .fwv-scene:hover{transform:translateY(-3px); border-color:rgba(214,168,78,.55)}\r\n#fwv-trailer .fwv-ts{font-family:'Cinzel',Georgia,serif; font-weight:600; font-size:13px; letter-spacing:.08em; color:var(--gold)}\r\n#fwv-trailer .fwv-scene b{font-family:'Cinzel',Georgia,serif; font-weight:600; font-size:15px; line-height:1.3; color:#f4eee2}\r\n#fwv-trailer .fwv-scene small{font-size:12px; line-height:1.45; color:var(--muted)}\r\n#fwv-trailer .fwv-sp{position:absolute; left:0; right:0; bottom:0; height:2px; background:var(--gold-l); transform-origin:left; transform:scaleX(var(--p,0))}\r\n#fwv-trailer .fwv-scene.is-active{border-color:rgba(214,168,78,.75); background:linear-gradient(180deg,rgba(214,168,78,.14),rgba(5,7,13,.6))}\r\n\r\n\/* ---------- CTA ---------- *\/\r\n#fwv-trailer .fwv-cta{display:flex; flex-wrap:wrap; justify-content:center; gap:14px 16px; margin-top:clamp(36px,4vw,52px)}\r\n#fwv-trailer .fwv-btn{position:relative; display:inline-flex; align-items:center; justify-content:center; gap:12px; padding:19px 32px; overflow:hidden; isolation:isolate;\r\n  font-size:12px; font-weight:600; line-height:1; letter-spacing:.2em; text-transform:uppercase; white-space:nowrap; border:1px solid var(--gold); transition:color .45s, box-shadow .45s, transform .45s}\r\n#fwv-trailer .fwv-btn:hover{transform:translateY(-3px)}\r\n#fwv-trailer .fwv-btn svg{width:18px; height:10px; display:block; transition:transform .45s}\r\n#fwv-trailer .fwv-btn:hover svg{transform:translateX(6px)}\r\n#fwv-trailer .fwv-btn-gold{color:#1b1206; background:linear-gradient(180deg,#f6d993,#cf9b45 55%,#a8762a); box-shadow:0 14px 38px -12px rgba(214,168,78,.75), inset 0 1px 0 rgba(255,255,255,.45)}\r\n#fwv-trailer .fwv-btn-gold:hover{color:#1b1206; box-shadow:0 18px 50px -10px rgba(214,168,78,1), inset 0 1px 0 rgba(255,255,255,.45)}\r\n#fwv-trailer .fwv-btn-ghost{color:var(--text); border-color:rgba(239,233,220,.45); background:rgba(5,7,13,.45)}\r\n#fwv-trailer .fwv-btn-ghost::before{content:''; position:absolute; inset:0; z-index:-1; background:var(--gold); transform:scaleY(0); transform-origin:bottom; transition:transform .55s cubic-bezier(.7,0,.2,1)}\r\n#fwv-trailer .fwv-btn-ghost:hover{color:#1b1206; border-color:var(--gold)}\r\n#fwv-trailer .fwv-btn-ghost:hover::before{transform:scaleY(1)}\r\n\r\n\/* ---------- responsive ---------- *\/\r\n@media (max-width:900px){\r\n  #fwv-trailer .fwv-scenes{display:flex; overflow-x:auto; scroll-snap-type:x mandatory; gap:10px; padding-bottom:6px; scrollbar-width:none}\r\n  #fwv-trailer .fwv-scenes::-webkit-scrollbar{display:none}\r\n  #fwv-trailer .fwv-scenes li{flex:0 0 40%; scroll-snap-align:start}\r\n}\r\n@media (max-width:600px){\r\n  #fwv-trailer .fwv-eyebrow{font-size:10px; letter-spacing:.26em}\r\n  #fwv-trailer .fwv-stage{padding:6px; box-shadow:0 0 0 3px rgba(5,7,13,.8), 0 30px 60px -30px rgba(0,0,0,.95)}\r\n  #fwv-trailer .fwv-c{width:18px; height:18px; border-width:1.5px}\r\n  #fwv-trailer .fwv-c-tl,#fwv-trailer .fwv-c-tr{top:-6px} #fwv-trailer .fwv-c-bl,#fwv-trailer .fwv-c-br{bottom:-6px}\r\n  #fwv-trailer .fwv-c-tl,#fwv-trailer .fwv-c-bl{left:-6px} #fwv-trailer .fwv-c-tr,#fwv-trailer .fwv-c-br{right:-6px}\r\n  #fwv-trailer .fwv-play{width:96px; height:96px; margin:-58px 0 0 -48px}\r\n  #fwv-trailer .fwv-ring text{display:none}\r\n  #fwv-trailer .fwv-core{inset:16px}\r\n  #fwv-trailer .fwv-hint{top:calc(50% + 48px); font-size:9.5px; letter-spacing:.24em}\r\n  #fwv-trailer .fwv-bar{gap:8px; padding:24px 10px 8px}\r\n  #fwv-trailer .fwv-ctl{width:34px; height:34px}\r\n  #fwv-trailer .fwv-time{min-width:0; font-size:11px}\r\n  #fwv-trailer .fwv-scenes li{flex-basis:62%}\r\n  #fwv-trailer .fwv-btn{flex:1 1 100%}\r\n}\r\n@media (prefers-reduced-motion:reduce){\r\n  #fwv-trailer::before,#fwv-trailer::after,#fwv-trailer .fwv-ring,#fwv-trailer .fwv-core::after,#fwv-trailer .fwv-rec{animation:none !important}\r\n}\r\n<\/style>\r\n\r\n<section id=\"fwv-trailer\" data-duration=\"35\" aria-labelledby=\"fwv-title\">\r\n  <span id=\"trailer\" class=\"fwv-anchor\" aria-hidden=\"true\"><\/span>\r\n  <div class=\"fwv-wrap\">\r\n\r\n    <header class=\"fwv-head\">\r\n      <p class=\"fwv-eyebrow\"><span class=\"fwv-rec\" aria-hidden=\"true\"><\/span>Official Book Trailer<\/p>\r\n      <h2 id=\"fwv-title\">Blood on the <em>Snow<\/em><\/h2>\r\n      <p class=\"fwv-sub\">A war between wolves and men. A white wolf bleeding in the snow. And a boy who finds her \u2014 and is never the same again.<\/p>\r\n    <\/header>\r\n\r\n    <div class=\"fwv-stage\">\r\n      <span class=\"fwv-c fwv-c-tl\"><\/span><span class=\"fwv-c fwv-c-tr\"><\/span><span class=\"fwv-c fwv-c-bl\"><\/span><span class=\"fwv-c fwv-c-br\"><\/span>\r\n      <div class=\"fwv-screen\">\r\n        <!-- MEDIA: trailer video (data-src) + poster image shown before it loads -->\r\n        <video class=\"fwv-video\" muted loop playsinline webkit-playsinline preload=\"none\" disablepictureinpicture\r\n          poster=\"https:\/\/bookpublish.online\/amy\/wp-content\/uploads\/2026\/10\/7b71b692-aee7-47ab-9028-78356ffc59dc-1.webp\"\r\n          data-src=\"https:\/\/bookpublish.online\/amy\/wp-content\/uploads\/2026\/10\/Forever-Wolf-Final-Video-1.mp4\"><\/video>\r\n        <div class=\"fwv-shade\"><\/div>\r\n\r\n        <button class=\"fwv-play\" type=\"button\" aria-label=\"Watch the Forever Wolf trailer with sound\">\r\n          <svg class=\"fwv-ring\" viewBox=\"0 0 136 136\" aria-hidden=\"true\">\r\n            <defs><path id=\"fwvCirc\" d=\"M68 68m-60 0a60 60 0 1 1 120 0a60 60 0 1 1-120 0\"\/><\/defs>\r\n            <circle cx=\"68\" cy=\"68\" r=\"66\" fill=\"none\" stroke=\"currentColor\" stroke-opacity=\".35\"\/>\r\n            <text><textPath href=\"#fwvCirc\" textLength=\"372\">OFFICIAL TRAILER \u2726 FOREVER WOLF \u2726 AMY SADLER \u2726<\/textPath><\/text>\r\n          <\/svg>\r\n          <span class=\"fwv-core\"><svg viewBox=\"0 0 24 24\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M6 3.5v17l14-8.5z\"\/><\/svg><\/span>\r\n        <\/button>\r\n        <p class=\"fwv-hint\"><span class=\"fwv-first\">Watch with sound \u00b7 0:35<\/span><span class=\"fwv-again\">Watch again<\/span><\/p>\r\n\r\n        <div class=\"fwv-bar\">\r\n          <button class=\"fwv-ctl fwv-toggle\" type=\"button\" aria-label=\"Play or pause\">\r\n            <svg class=\"fwv-i1\" viewBox=\"0 0 16 16\" fill=\"currentColor\" aria-hidden=\"true\"><rect x=\"3\" y=\"2\" width=\"3.5\" height=\"12\"\/><rect x=\"9.5\" y=\"2\" width=\"3.5\" height=\"12\"\/><\/svg>\r\n            <svg class=\"fwv-i2\" viewBox=\"0 0 16 16\" fill=\"currentColor\" aria-hidden=\"true\"><path d=\"M4 2v12l10-6z\"\/><\/svg>\r\n          <\/button>\r\n          <span class=\"fwv-time\">0:00 \/ 0:35<\/span>\r\n          <div class=\"fwv-track\" role=\"slider\" tabindex=\"0\" aria-label=\"Trailer progress\" aria-valuemin=\"0\" aria-valuemax=\"35\" aria-valuenow=\"0\">\r\n            <span class=\"fwv-fill\"><\/span><span class=\"fwv-knob\"><\/span>\r\n          <\/div>\r\n          <button class=\"fwv-ctl fwv-mute\" type=\"button\" aria-label=\"Sound on or off\">\r\n            <svg class=\"fwv-i1\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" aria-hidden=\"true\"><path d=\"M2 6h3l4-3v10l-4-3H2z\" fill=\"currentColor\"\/><path d=\"M11.5 5.5a3.5 3.5 0 0 1 0 5M13 3.5a6 6 0 0 1 0 9\"\/><\/svg>\r\n            <svg class=\"fwv-i2\" viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" aria-hidden=\"true\"><path d=\"M2 6h3l4-3v10l-4-3H2z\" fill=\"currentColor\"\/><path d=\"M11 6l4 4M15 6l-4 4\"\/><\/svg>\r\n          <\/button>\r\n          <button class=\"fwv-ctl fwv-fs\" type=\"button\" aria-label=\"Full screen\">\r\n            <svg viewBox=\"0 0 16 16\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" aria-hidden=\"true\"><path d=\"M1.5 5.5v-4h4M10.5 1.5h4v4M14.5 10.5v4h-4M5.5 14.5h-4v-4\"\/><\/svg>\r\n          <\/button>\r\n        <\/div>\r\n      <\/div>\r\n    <\/div>\r\n\r\n    <!-- scene buttons: data-t = second in the trailer -->\r\n    <ol class=\"fwv-scenes\" aria-label=\"Trailer scenes\">\r\n      <li><button class=\"fwv-scene\" type=\"button\" data-t=\"0\"><span class=\"fwv-ts\">0:00<\/span><b>The War<\/b><small>Wolves against men<\/small><i class=\"fwv-sp\"><\/i><\/button><\/li>\r\n      <li><button class=\"fwv-scene\" type=\"button\" data-t=\"3.5\"><span class=\"fwv-ts\">0:03<\/span><b>The White Wolf<\/b><small>Eyes like ice<\/small><i class=\"fwv-sp\"><\/i><\/button><\/li>\r\n      <li><button class=\"fwv-scene\" type=\"button\" data-t=\"7\"><span class=\"fwv-ts\">0:07<\/span><b>The Trail of Blood<\/b><small>Wounded in the snow<\/small><i class=\"fwv-sp\"><\/i><\/button><\/li>\r\n      <li><button class=\"fwv-scene\" type=\"button\" data-t=\"19\"><span class=\"fwv-ts\">0:19<\/span><b>The Boy<\/b><small>Alone in the forest<\/small><i class=\"fwv-sp\"><\/i><\/button><\/li>\r\n      <li><button class=\"fwv-scene\" type=\"button\" data-t=\"30.5\"><span class=\"fwv-ts\">0:30<\/span><b>Forever Wolf<\/b><small>A novel by Amy Sadler<\/small><i class=\"fwv-sp\"><\/i><\/button><\/li>\r\n    <\/ol>\r\n\r\n    <!--<div class=\"fwv-cta\">-->\r\n      <!-- CHANGE LINK: first chapter \/ excerpt -->\r\n    <!--  <a class=\"fwv-btn fwv-btn-gold\" href=\"#excerpt\"><span>Read Chapter One<\/span><svg viewBox=\"0 0 18 10\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1.4\" aria-hidden=\"true\"><path d=\"M0 5h16M12 1l4 4-4 4\"\/><\/svg><\/a>-->\r\n      <!-- CHANGE LINK: series page -->\r\n    <!--  <a class=\"fwv-btn fwv-btn-ghost\" href=\"#book\"><span>Explore the Series<\/span><\/a>-->\r\n    <!--<\/div>-->\r\n\r\n  <\/div>\r\n<\/section>\r\n\r\n<script>\r\n(function () {\r\n  var root = document.getElementById('fwv-trailer');\r\n  if (!root || root.getAttribute('data-fwv-init')) return;\r\n  root.setAttribute('data-fwv-init', '1');\r\n\r\n  var video = root.querySelector('.fwv-video');\r\n  var screen = root.querySelector('.fwv-screen');\r\n  var track = root.querySelector('.fwv-track');\r\n  var timeEl = root.querySelector('.fwv-time');\r\n  var scenes = [].slice.call(root.querySelectorAll('.fwv-scene'));\r\n  var DUR = parseFloat(root.getAttribute('data-duration')) || 35;\r\n  var loaded = false, inView = false, watching = false, autoPaused = false, dragging = false;\r\n\r\n  var fmt = function (s) { s = Math.max(0, Math.floor(s)); return Math.floor(s \/ 60) + ':' + ('0' + s % 60).slice(-2); };\r\n  var dur = function () { return isFinite(video.duration) && video.duration > 0 ? video.duration : DUR; };\r\n  var load = function () { if (loaded) return; loaded = true; video.src = video.getAttribute('data-src'); video.load(); };\r\n  var play = function () { load(); var p = video.play(); if (p && p.catch) p.catch(function () {}); };\r\n  var seek = function (t) {\r\n    if (video.readyState >= 1) video.currentTime = t;\r\n    else video.addEventListener('loadedmetadata', function () { video.currentTime = t; }, { once: true });\r\n  };\r\n  video.muted = true; video.playsInline = true;\r\n\r\n  \/\/ red scene markers on the progress bar\r\n  scenes.slice(1).forEach(function (s) {\r\n    var m = document.createElement('i');\r\n    m.className = 'fwv-mark'; m.setAttribute('data-t', s.getAttribute('data-t'));\r\n    track.appendChild(m);\r\n  });\r\n  var placeMarks = function () {\r\n    [].forEach.call(track.querySelectorAll('.fwv-mark'), function (m) { m.style.left = (m.getAttribute('data-t') \/ dur() * 100) + '%'; });\r\n  };\r\n  placeMarks();\r\n\r\n  \/\/ progress, time, active scene\r\n  var sync = function () {\r\n    var t = video.currentTime || 0, d = dur(), i;\r\n    root.style.setProperty('--prog', Math.min(1, t \/ d).toFixed(4));\r\n    timeEl.textContent = fmt(t) + ' \/ ' + fmt(d);\r\n    track.setAttribute('aria-valuenow', Math.round(t));\r\n    root.classList.toggle('is-paused', video.paused);\r\n    root.classList.toggle('is-muted', video.muted);\r\n    for (i = scenes.length - 1; i > 0; i--) { if (t >= +scenes[i].getAttribute('data-t') - .05) break; }\r\n    scenes.forEach(function (s, j) {\r\n      var p = 0;\r\n      if (j === i) {\r\n        var a = +s.getAttribute('data-t'), b = j + 1 < scenes.length ? +scenes[j + 1].getAttribute('data-t') : d;\r\n        p = Math.max(0, Math.min(1, (t - a) \/ (b - a)));\r\n      }\r\n      s.classList.toggle('is-active', j === i);\r\n      s.style.setProperty('--p', p.toFixed(3));\r\n    });\r\n  };\r\n  ['timeupdate', 'play', 'pause', 'volumechange', 'seeked'].forEach(function (ev) { video.addEventListener(ev, sync); });\r\n  video.addEventListener('loadedmetadata', function () { placeMarks(); track.setAttribute('aria-valuemax', Math.round(dur())); sync(); });\r\n\r\n  \/\/ watch with sound (from the start, or from a scene)\r\n  var watch = function (t) {\r\n    watching = true; autoPaused = false;\r\n    root.classList.add('is-watching'); root.classList.remove('is-ended');\r\n    video.loop = false; video.muted = false;\r\n    load(); seek(t || 0); play(); sync();\r\n  };\r\n  root.querySelector('.fwv-play').addEventListener('click', function () { watch(0); });\r\n  scenes.forEach(function (s) { s.addEventListener('click', function () { watch(parseFloat(s.getAttribute('data-t'))); }); });\r\n\r\n  \/\/ after the trailer ends: back to the silent preview with \"Watch again\"\r\n  video.addEventListener('ended', function () {\r\n    watching = false;\r\n    root.classList.remove('is-watching'); root.classList.add('is-ended');\r\n    video.muted = true; video.loop = true;\r\n    if (inView) play();\r\n  });\r\n\r\n  \/\/ controls\r\n  var toggle = function () { if (video.paused) play(); else video.pause(); };\r\n  root.querySelector('.fwv-toggle').addEventListener('click', toggle);\r\n  video.addEventListener('click', function () { if (watching) toggle(); });\r\n  root.querySelector('.fwv-mute').addEventListener('click', function () { video.muted = !video.muted; });\r\n  root.querySelector('.fwv-fs').addEventListener('click', function () {\r\n    if (document.fullscreenElement) { document.exitFullscreen(); return; }\r\n    if (screen.requestFullscreen) screen.requestFullscreen();\r\n    else if (video.webkitEnterFullscreen) video.webkitEnterFullscreen(); \/\/ iPhone\r\n  });\r\n\r\n  var seekAt = function (e) {\r\n    var b = track.getBoundingClientRect();\r\n    seek(Math.max(0, Math.min(1, (e.clientX - b.left) \/ b.width)) * dur()); sync();\r\n  };\r\n  track.addEventListener('pointerdown', function (e) { dragging = true; if (track.setPointerCapture) track.setPointerCapture(e.pointerId); seekAt(e); });\r\n  track.addEventListener('pointermove', function (e) { if (dragging) seekAt(e); });\r\n  track.addEventListener('pointerup', function () { dragging = false; });\r\n  track.addEventListener('keydown', function (e) {\r\n    if (e.key === 'ArrowRight' || e.key === 'ArrowLeft') {\r\n      e.preventDefault(); seek(Math.max(0, Math.min(dur(), video.currentTime + (e.key === 'ArrowRight' ? 5 : -5)))); sync();\r\n    }\r\n  });\r\n\r\n  \/\/ silent preview: load just before the section is reached, play while visible, pause when away\r\n  if ('IntersectionObserver' in window) {\r\n    new IntersectionObserver(function (e) { if (e[0].isIntersecting) load(); }, { rootMargin: '400px 0px' }).observe(screen);\r\n    new IntersectionObserver(function (e) {\r\n      inView = e[0].isIntersecting;\r\n      if (inView) { if (!watching || autoPaused) play(); autoPaused = false; }\r\n      else if (!video.paused) { autoPaused = watching; video.pause(); }\r\n    }, { threshold: .25 }).observe(screen);\r\n  } else { inView = true; play(); }\r\n\r\n  document.addEventListener('visibilitychange', function () {\r\n    if (document.hidden) { if (!video.paused) { autoPaused = watching; video.pause(); } }\r\n    else if (inView && (!watching || autoPaused)) { autoPaused = false; play(); }\r\n  });\r\n\r\n  \/\/ phones that block autoplay: start the silent preview on the first touch or scroll\r\n  var nudge = function () { if (inView && video.paused && !watching) play(); };\r\n  ['touchstart', 'scroll'].forEach(function (ev) { window.addEventListener(ev, nudge, { passive: true }); });\r\n\r\n  sync();\r\n})();\r\n<\/script>\r\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t\t\t<\/div>\n\t\t","protected":false},"excerpt":{"rendered":"<p>ComingDec Book One \u00b7 Where It All Begins Forever Wolf Half human. Half Pure. Hunted by both. Aryn is eighteen, a miller&#8217;s son, and running for his life. He escapes to the Northern Straights \u2014 a frozen border no human or wolf dares to cross \u2014 and finds Luna, the last of the Pure, dying [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"elementor_header_footer","meta":{"footnotes":""},"class_list":["post-224","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/bookpublish.online\/amy\/wp-json\/wp\/v2\/pages\/224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bookpublish.online\/amy\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/bookpublish.online\/amy\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/bookpublish.online\/amy\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bookpublish.online\/amy\/wp-json\/wp\/v2\/comments?post=224"}],"version-history":[{"count":14,"href":"https:\/\/bookpublish.online\/amy\/wp-json\/wp\/v2\/pages\/224\/revisions"}],"predecessor-version":[{"id":273,"href":"https:\/\/bookpublish.online\/amy\/wp-json\/wp\/v2\/pages\/224\/revisions\/273"}],"wp:attachment":[{"href":"https:\/\/bookpublish.online\/amy\/wp-json\/wp\/v2\/media?parent=224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}