From 1a3a6d61f9bf564bc8533ab369a022ba8c725a0d Mon Sep 17 00:00:00 2001 From: Fraxle Date: Tue, 2 Jun 2026 13:10:12 +0100 Subject: [PATCH] Fix teleport animation page location --- css/style.css | 7 ++ estimates.php | 1 + index.php | 1 + js/main.js | 13 ++- terms.php | 260 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 279 insertions(+), 3 deletions(-) create mode 100644 terms.php diff --git a/css/style.css b/css/style.css index 7ca1386..9c9d340 100644 --- a/css/style.css +++ b/css/style.css @@ -872,6 +872,13 @@ ul { list-style: none; } } .footer-logo span { color: var(--orange); } .footer-tagline { font-size: 0.88rem; margin-bottom: 20px; } +.footer-links { font-size: 0.82rem; margin-bottom: 14px; } +.footer-links a { + color: rgba(255,255,255,0.6); + text-decoration: none; + transition: color var(--transition); +} +.footer-links a:hover { color: var(--orange); } .footer-copy { font-size: 0.78rem; } /* ================================================ diff --git a/estimates.php b/estimates.php index 2b0d41e..3146b10 100644 --- a/estimates.php +++ b/estimates.php @@ -807,6 +807,7 @@
+
diff --git a/index.php b/index.php index 199dd31..bf1c5b8 100644 --- a/index.php +++ b/index.php @@ -324,6 +324,7 @@ $form_error = isset($_GET['error']) && $_GET['error'] === '1';
+
diff --git a/js/main.js b/js/main.js index 95f4805..ef09b7a 100644 --- a/js/main.js +++ b/js/main.js @@ -287,7 +287,7 @@ window.addEventListener('scroll', function () { var size = (0.45 + Math.random() * 0.8).toFixed(2); var col = T_COLORS[(Math.random() * T_COLORS.length) | 0]; s.textContent = T_CHARS[(Math.random() * T_CHARS.length) | 0]; - s.style.cssText = 'position:fixed;left:' + x + 'px;top:' + y + 'px;z-index:1200;pointer-events:none;line-height:1;' + s.style.cssText = 'position:absolute;left:' + x + 'px;top:' + y + 'px;z-index:90;pointer-events:none;line-height:1;' + 'font-size:' + size + 'rem;color:' + col + ';text-shadow:0 0 4px ' + col + ',0 0 2px rgba(255,255,255,0.95);' + 'will-change:transform,opacity;'; document.body.appendChild(s); @@ -299,8 +299,15 @@ window.addEventListener('scroll', function () { ], { duration: life, easing: 'ease-out' }).onfinish = function () { s.remove(); }; } + // Convert a viewport rect into document-space, so absolutely-positioned sparkles + // stay anchored to the page (and scroll with it) instead of following the viewport. + function pageRect(rc) { + var l = rc.left + window.scrollX, t = rc.top + window.scrollY; + return { left: l, top: t, width: rc.width, height: rc.height, right: l + rc.width, bottom: t + rc.height }; + } + function teleport(img, startDelay) { - var r = img.getBoundingClientRect(); + var r = pageRect(img.getBoundingClientRect()); var START_DELAY = (typeof startDelay === 'number') ? startDelay : 500; // pause before anything happens var CHARGE = 1000; // sparkles gather along the bottom before the figure grows var GROW = 2200; // the bottom-up materialise @@ -379,7 +386,7 @@ window.addEventListener('scroll', function () { // Reverse "beam out": dissolve top-down into a puff of sparkles, then stay hidden function dematerialize(img, done) { - var r = img.getBoundingClientRect(); + var r = pageRect(img.getBoundingClientRect()); var DUR = 800; var baseShadow = 'drop-shadow(0 8px 24px rgba(0,0,0,0.35))'; var start = null; diff --git a/terms.php b/terms.php new file mode 100644 index 0000000..f09f0be --- /dev/null +++ b/terms.php @@ -0,0 +1,260 @@ + + + + + + + Terms & Conditions - Fraxle.net + + + + + + + + + + + + + + +
+
+
+
+
+
+
+

✦ The Fine Print ✦

+

Terms & Conditions

+

The everyday rules of the realm - covering how this website works and the services Fraxle.net provides. Plain English, no jargon spells.

+
+
+ + + +
+
+ + +
+
+ Last updated: + +
+

01 Who We Are

+

This website (fraxle.net) and the services described on it are operated by Fraxle.net ("we", "us", "our"), a small independent web & technology business based in Oxfordshire, United Kingdom. You can reach us any time at wizard@fraxle.net.

+

By using this website or engaging our services, you agree to these Terms & Conditions. If you don't agree with them, please don't use the site or services.

+
+ +
+

02 Using This Website

+

You're welcome to browse and use this website for lawful purposes. In return, you agree not to:

+
    +
  • Use the site in any way that breaks UK law or infringes anyone else's rights.
  • +
  • Attempt to gain unauthorised access to the site, its server, or any connected systems.
  • +
  • Introduce viruses, malware, or any other harmful or disruptive code.
  • +
  • Misuse the contact form to send spam, abusive, or fraudulent messages.
  • +
+

We may update, change, or withdraw any part of the website at any time without notice.

+
+ +
+

03 Our Services

+

Fraxle.net provides web design and build, technology support, and ongoing maintenance services. Details of typical packages and pricing are shown on our Estimates page.

+
    +
  • All prices and estimates shown are guides only and may vary depending on the specifics of your project.
  • +
  • A formal quote will be provided and agreed before any chargeable work begins.
  • +
  • The exact scope, deliverables, and timescales for each project will be confirmed in writing (for example by email) before we start.
  • +
+
+ +
+

04 Quotes, Payment & Cancellation

+
    +
  • Quotes are valid for 30 days from the date they are issued unless stated otherwise.
  • +
  • For larger projects we may ask for a deposit before work begins, with the balance due on completion.
  • +
  • Hourly support is charged at the rate agreed beforehand, with a minimum of one hour.
  • +
  • Monthly care plans ("Protection Charms") are billed monthly and can be cancelled with 30 days' notice.
  • +
  • Invoices are payable within 14 days unless otherwise agreed.
  • +
+
+ +
+

05 Intellectual Property

+

The content, branding, mascots, and design of this website belong to Fraxle.net and may not be copied or reused without permission.

+

Once a project is completed and paid for in full, you own the final deliverables we create specifically for you. Third-party assets (such as stock images, fonts, plugins, or software) remain subject to their own licences.

+
+ +
+

06 Third-Party Services

+

Some projects rely on third-party platforms and services - for example web hosting, domain registrars, WordPress, Shopify, or payment providers. These are governed by their own terms, and we aren't responsible for changes, outages, or issues caused by those third parties.

+
+ +
+

07 Liability

+

We take great care in the work we do, but we can't guarantee that the website or any service will always be uninterrupted or completely error-free.

+

To the extent permitted by law, Fraxle.net is not liable for any indirect or consequential loss arising from use of this website or our services. Nothing in these terms limits our liability for anything that cannot lawfully be limited.

+
+ +
+

08 Privacy

+

Any personal details you share with us (for example through the contact form) are used only to respond to your enquiry and provide the services you've requested. We don't sell your data, and we keep it only as long as needed. If you'd like your details removed, just email us at wizard@fraxle.net.

+
+ +
+

09 Changes to These Terms

+

We may update these Terms & Conditions from time to time. The latest version will always be available on this page, with the "last updated" date shown above.

+
+ +
+

10 Governing Law

+

These terms are governed by the laws of England and Wales, and any disputes will be subject to the exclusive jurisdiction of the courts of England and Wales.

+
+ +
+ These terms are provided as a friendly, plain-English summary and don't constitute legal advice. For anything business-critical, it's always worth checking with a qualified professional. Got a question? Drop us a line at wizard@fraxle.net. +
+
+
+ + + + + + +