1<!DOCTYPE html><html lang="ja"> <head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1"><meta name="generator" content="Astro v6.2.2"><meta name="theme-color" content="#0E1112" media="(prefers-color-scheme: light)"><meta name="theme-color" content="#0E1112" media="(prefers-color-scheme: dark)"><title>ãåãåãã | rafuru</title><meta name="description" content="rafuru ã¸ã®ãåãåããçªå£ã§ãã製åãæéã»ãã©ã³ã®ã質åãå¶ä½ä¼ç¤¾ã»ãã¼ã ã§ã®å°å
¥ã®ãç¸è«ãã¡ãã£ã¢æ²è¼ã»åæã®ãä¾é ¼ãªã©ããã©ã¼ã ã§åãä»ãã¦ãã¾ããPro / Team ãã©ã³ã®ãç¸è«ããã¡ãããã"><link rel="canonical" href="https://rafuru.ai/contact/"><meta name="robots" content="index, follow, max-image-preview:large"><link rel="icon" type="image/svg+xml" href="/favicon.svg"><link rel="apple-touch-icon" href="/apple-touch-icon.png"><link rel="sitemap" href="/sitemap-index.xml"><!-- Meta ãã¡ã¤ã³èªè¨¼ï¼ãã¸ãã¹ãã¼ããã©ãªãª Omochi ã«ãã rafuru.ai ã®ææç¢ºèªï¼ --><meta name="facebook-domain-verification" content="nae1nz6mz553y7uuoo9c0fgynybpua"><link rel="preload" href="/_astro/inter-latin-wght-normal.Dx4kXJAl.woff2" as="font" type="font/woff2" crossorigin><!-- Open Graph --><meta property="og:title" content="ãåãåãã | rafuru"><meta property="og:description" content="rafuru ã¸ã®ãåãåããçªå£ã§ãã製åãæéã»ãã©ã³ã®ã質åãå¶ä½ä¼ç¤¾ã»ãã¼ã ã§ã®å°å
¥ã®ãç¸è«ãã¡ãã£ã¢æ²è¼ã»åæã®ãä¾é ¼ãªã©ããã©ã¼ã ã§åãä»ãã¦ãã¾ããPro / Team ãã©ã³ã®ãç¸è«ããã¡ãããã"><meta property="og:url" content="https://rafuru.ai/contact/"><meta property="og:type" content="website"><meta property="og:image" content="https://rafuru.ai/og-image.png"><meta property="og:image:type" content="image/png"><meta property="og:image:width" content="1200"><meta property="og:image:height" content="630"><meta property="og:image:alt" content="rafuru ã¸ã®ãåãåããçªå£ã§ãã製åãæéã»ãã©ã³ã®ã質åãå¶ä½ä¼ç¤¾ã»ãã¼ã ã§ã®å°å
¥ã®ãç¸è«ãã¡ãã£ã¢æ²è¼ã»åæã®ãä¾é ¼ãªã©ããã©ã¼ã ã§åãä»ãã¦ãã¾ããPro / Team ãã©ã³ã®ãç¸è«ããã¡ãããã"><meta property="og:site_name" content="rafuru"><meta property="og:locale" content="ja_JP"><!-- Twitter Card --><meta name="twitter:card" content="summary_large_image"><meta name="twitter:site" content="@rafuru_ai"><meta name="twitter:title" content="ãåãåãã | rafuru"><meta name="twitter:description" content="rafuru ã¸ã®ãåãåããçªå£ã§ãã製åãæéã»ãã©ã³ã®ã質åãå¶ä½ä¼ç¤¾ã»ãã¼ã ã§ã®å°å
¥ã®ãç¸è«ãã¡ãã£ã¢æ²è¼ã»åæã®ãä¾é ¼ãªã©ããã©ã¼ã ã§åãä»ãã¦ãã¾ããPro / Team ãã©ã³ã®ãç¸è«ããã¡ãããã"><meta name="twitter:image" content="https://rafuru.ai/og-image.png"><meta name="twitter:image:alt" content="rafuru ã¸ã®ãåãåããçªå£ã§ãã製åãæéã»ãã©ã³ã®ã質åãå¶ä½ä¼ç¤¾ã»ãã¼ã ã§ã®å°å
¥ã®ãç¸è«ãã¡ãã£ã¢æ²è¼ã»åæã®ãä¾é ¼ãªã©ããã©ã¼ã ã§åãä»ãã¦ãã¾ããPro / Team ãã©ã³ã®ãç¸è«ããã¡ãããã"><!-- æ§é åãã¼ã¿ï¼ãµã¤ãå
±é: Organization / WebSiteï¼ -->
1<script type="application/ld+json">{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://rafuru.ai/#organization","name":"rafuru","alternateName":"ã©ãã«","legalName":"Omochi","url":"https://rafuru.ai/","logo":{"@type":"ImageObject","url":"https://rafuru.ai/logo/rafuru-logo-light.svg"},"email":"[email protected]","sameAs":["https://x.com/rafuru_ai","https://www.instagram.com/rafuru_ai/","https://www.youtube.com/@rafuru_ai","https://www.tiktok.com/@rafuru_ai"]},{"@type":"WebSite","@id":"https://rafuru.ai/#website","name":"rafuru","alternateName":"ã©ãã«","url":"https://rafuru.ai/","inLanguage":"ja","publisher":{"@id":"https://rafuru.ai/#organization"}}]}</script>
1<!-- ãã¼ã¸åºæã® <head> 追å ï¼article:* ã¡ã¿ã»ãã³ãã JSON-LD ãªã©ï¼ --><link rel="stylesheet" href="/_astro/BaseLayout.B7ffeRUC.css"> 2<style>.form-control[data-astro-cid-ca7uxiov]{width:100%;background-color:var(--color-input);color:var(--color-foreground);border:1px solid var(--color-border);border-radius:var(--radius);padding:10px 14px;font-size:var(--text-base);line-height:var(--leading-normal);transition:border-color var(--duration-fast) var(--ease-in-out)}.form-control[data-astro-cid-ca7uxiov]:hover{border-color:color-mix(in oklab,var(--color-foreground) 30%,transparent)}.form-control[data-astro-cid-ca7uxiov]::placeholder{color:var(--color-muted-foreground)}textarea[data-astro-cid-ca7uxiov].form-control{min-height:9rem}#contact-form[data-astro-cid-ca7uxiov][data-attempted=true] .form-control[data-astro-cid-ca7uxiov]:invalid{border-color:var(--color-destructive)} 3</style></head> <body class="bg-background text-foreground flex min-h-screen flex-col"> <header class="z-sticky pointer-events-none fixed inset-x-0 top-4" data-astro-cid-qlfjksao> <div class="container-page flex justify-center" data-astro-cid-qlfjksao> <div class="pointer-events-auto relative" data-astro-cid-qlfjksao> <div id="glass-nav" class="glass-nav flex items-center gap-1 sm:gap-2" data-astro-cid-qlfjksao> <a href="/" class="duration-fast mr-2 inline-flex items-center transition-opacity hover:opacity-80 sm:mr-3" aria-label="rafuru ãã¼ã " data-astro-cid-qlfjksao> <img src="/logo/rafuru-logo-dark.svg" alt="rafuru" width="84" height="28" class="h-6 w-auto sm:h-7" data-astro-cid-qlfjksao> </a> <nav class="glass-links items-center gap-1 sm:gap-2" data-astro-cid-qlfjksao> <a href="/#showcase" class="glass-link" data-astro-cid-qlfjksao>ä½ä¾</a> <a href="/pricing/" class="glass-link" data-astro-cid-qlfjksao>æé</a> <a href="/blog/" class="glass-link" data-astro-cid-qlfjksao>ããã°</a> <a href="https://app.rafuru.ai/login" class="glass-link" target="_blank" rel="noopener noreferrer" data-astro-cid-qlfjksao>ãã°ã¤ã³</a> </nav> <a href="https://app.rafuru.ai/signup" class="glass-cta" target="_blank" rel="noopener noreferrer" data-astro-cid-qlfjksao>ç¡æã§è©¦ã</a> <button type="button" id="glass-burger" class="glass-burger" aria-expanded="false" aria-controls="glass-mobile-menu" aria-label="ã¡ãã¥ã¼ãéã" data-astro-cid-qlfjksao> <span class="burger-bar" aria-hidden="true" data-astro-cid-qlfjksao></span> <span class="burger-bar" aria-hidden="true" data-astro-cid-qlfjksao></span> <span class="burger-bar" aria-hidden="true" data-astro-cid-qlfjksao></span> </button> </div> <!-- ã¢ãã¤ã«ã¡ãã¥ã¼(ãã«ç´ä¸ã®ã¬ã©ã¹ããã«) --> <nav id="glass-mobile-menu" class="glass-menu" aria-label="ã¡ãã¥ã¼" hidden data-astro-cid-qlfjksao> <a href="/#showcase" class="glass-menu-link" data-astro-cid-qlfjksao>ä½ä¾</a> <a href="/pricing/" class="glass-menu-link" data-astro-cid-qlfjksao>æé</a> <a href="/blog/" class="glass-menu-link" data-astro-cid-qlfjksao>ããã°</a> <a href="https://app.rafuru.ai/login" class="glass-menu-link" target="_blank" rel="noopener noreferrer" data-astro-cid-qlfjksao>ãã°ã¤ã³</a> </nav> </div> </div> </header>
3<script> 4 // ã¹ã¯ãã¼ã«ã§ããããããã«ç¸®ãã(Level 2 ã¹ã¯ãã¼ã«æ¼åºã®ä¸é¨) 5 (function () { 6 const nav = document.getElementById("glass-nav"); 7 if (!nav) return; 8 let ticking = false; 9 function update() { 10 ticking = false; 11 nav.classList.toggle("is-condensed", window.scrollY > 40); 12 } 13 window.addEventListener( 14 "scroll", 15 function () { 16 if (!ticking) { 17 ticking = true; 18 requestAnimationFrame(update); 19 } 20 }, 21 { passive: true }, 22 ); 23 update(); 24 })(); 25 26 // ã¢ãã¤ã«ã®ãã³ãã¼ã¬ã¼ã¡ãã¥ã¼ééã 27 // ãªã³ã¯ã¿ããã»å¤å´ã¿ããã»Esc ã§éããã 28 (function () { 29 const burger = document.getElementById("glass-burger"); 30 const menu = document.getElementById("glass-mobile-menu"); 31 if (!burger || !menu) return; 32 function setOpen(open) { 33 burger.setAttribute("aria-expanded", open ? "true" : "false"); 34 burger.setAttribute( 35 "aria-label", 36 open ? "ã¡ãã¥ã¼ãéãã" : "ã¡ãã¥ã¼ãéã", 37 ); 38 menu.hidden = !open; 39 } 40 burger.addEventListener("click", function () { 41 setOpen(menu.hidden); 42 }); 43 menu.addEventListener("click", function (e) { 44 if (e.target.closest("a")) setOpen(false); 45 }); 46 document.addEventListener("click", function (e) { 47 if (!menu.hidden && !e.target.closest("#glass-nav, #glass-mobile-menu")) 48 setOpen(false); 49 }); 50 document.addEventListener("keydown", function (e) { 51 if (e.key === "Escape" && !menu.hidden) { 52 setOpen(false); 53 burger.focus(); 54 } 55 }); 56 })(); 57</script>
57 <main class="flex-1 pt-24"> <section class="bg-background py-20 text-center sm:py-24"> <div class="container-page"> <p class="text-accent mb-3 text-xs font-medium tracking-wide uppercase"> 58Contact 59</p> <h1 class="text-foreground mx-auto max-w-3xl text-2xl font-medium tracking-tight sm:text-3xl"> 60ãåãåãã 61</h1> <p class="text-muted-foreground sm:text-md mx-auto mt-4 max-w-prose text-base leading-relaxed"> 62製åã«é¢ããã質åãå°å ¥ã®ãç¸è«ãã¡ãã£ã¢æ²è¼ã»åæä¾é ¼ãªã©ããã¡ãã®ãã©ã¼ã ãããæ°è»½ã«ãåãåãããã ããã 63</p> </div> </section> <section class="bg-muted py-16 sm:py-20 lg:py-24" data-astro-cid-ca7uxiov> <div class="container-page" data-astro-cid-ca7uxiov> <div class="reveal mx-auto max-w-2xl" data-astro-cid-ca7uxiov> <form id="contact-form" action="https://formspree.io/f/xaqvbloq" method="POST" class="border-border bg-card rounded-lg border p-6 shadow-sm sm:p-10" novalidate data-astro-cid-ca7uxiov> <input type="text" name="_gotcha" tabindex="-1" autocomplete="off" aria-hidden="true" class="hidden" data-astro-cid-ca7uxiov> <input type="hidden" name="_subject" value="rafuru LP ããã®ãåãåãã" data-astro-cid-ca7uxiov> <div data-form-fields class="flex flex-col gap-6 sm:gap-7" data-astro-cid-ca7uxiov> <p class="text-muted-foreground text-xs leading-relaxed sm:text-sm" data-astro-cid-ca7uxiov> 64ã¯ã¬ã¸ããã«ã¼ãçªå·ããã¤ãã³ãã¼ããã¹ã¯ã¼ãçã®éèã»èªè¨¼æ å ±ã第ä¸è ããé ãã£ãå人æ å ±ï¼é¡§å®¢åç°¿çï¼ã第ä¸è ã®è¦é æ ®å人æ å ±ï¼ä»è ã®å¥åº·ã»ææ³ä¿¡æ¡çï¼ãNDA 65 対象æ å ±ã¯è¨è¼ããªãã§ãã ããã詳細㯠<a href="/legal/privacy/" target="_blank" rel="noopener noreferrer" class="duration-fast hover:text-accent-hover text-accent underline-offset-4 transition-colors hover:underline" data-astro-cid-ca7uxiov>ãã©ã¤ãã·ã¼ããªã·ã¼</a>ãã覧ãã ããã 66</p> <div class="flex flex-col gap-2" data-astro-cid-ca7uxiov> <label for="contact-name" class="text-foreground flex items-center gap-2 text-sm font-medium" data-astro-cid-ca7uxiov> 67ãåå 68<span class="bg-accent/10 text-accent rounded-sm px-1.5 py-0.5 text-xs font-semibold" data-astro-cid-ca7uxiov>å¿ é </span> </label> <input id="contact-name" name="name" type="text" required autocomplete="name" class="form-control" data-astro-cid-ca7uxiov> </div> <div class="flex flex-col gap-2" data-astro-cid-ca7uxiov> <label for="contact-email" class="text-foreground flex items-center gap-2 text-sm font-medium" data-astro-cid-ca7uxiov> 69ã¡ã¼ã«ã¢ãã¬ã¹ 70<span class="bg-accent/10 text-accent rounded-sm px-1.5 py-0.5 text-xs font-semibold" data-astro-cid-ca7uxiov>å¿ é </span> </label> <input id="contact-email" name="email" type="email" required autocomplete="email" inputmode="email" class="form-control" data-astro-cid-ca7uxiov> </div> <div class="flex flex-col gap-2" data-astro-cid-ca7uxiov> <label for="contact-affiliation" class="text-foreground flex items-center gap-2 text-sm font-medium" data-astro-cid-ca7uxiov> 71ãæå± 72<span class="bg-accent/10 text-accent rounded-sm px-1.5 py-0.5 text-xs font-semibold" data-astro-cid-ca7uxiov>å¿ é </span> </label> <div class="relative" data-astro-cid-ca7uxiov> <select id="contact-affiliation" name="affiliation" required class="form-control appearance-none pr-10" data-astro-cid-ca7uxiov> <option value="" disabled selected data-astro-cid-ca7uxiov>鏿ãã¦ãã ãã</option> <option value="Web å¶ä½ä¼ç¤¾" data-astro-cid-ca7uxiov>Web å¶ä½ä¼ç¤¾</option><option value="ããªã¼ã©ã³ã¹" data-astro-cid-ca7uxiov>ããªã¼ã©ã³ã¹</option><option value="äºæ¥ä¼ç¤¾ã®ã¤ã³ãã¦ã¹" data-astro-cid-ca7uxiov>äºæ¥ä¼ç¤¾ã®ã¤ã³ãã¦ã¹</option><option value="ãã®ä»" data-astro-cid-ca7uxiov>ãã®ä»</option> </select> <svg viewBox="0 0 16 16" width="14" height="14" aria-hidden="true" class="text-muted-foreground pointer-events-none absolute top-1/2 right-3.5 -translate-y-1/2" fill="none" data-astro-cid-ca7uxiov> <path d="M4 6l4 4 4-4" stroke="currentColor" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-ca7uxiov></path> </svg> </div> </div> <div class="flex flex-col gap-2" data-astro-cid-ca7uxiov> <label for="contact-message" class="text-foreground flex items-center gap-2 text-sm font-medium" data-astro-cid-ca7uxiov> 73ãåãåããå 容 74<span class="bg-accent/10 text-accent rounded-sm px-1.5 py-0.5 text-xs font-semibold" data-astro-cid-ca7uxiov>å¿ é </span> </label> <textarea id="contact-message" name="message" required rows="6" class="form-control resize-y" data-astro-cid-ca7uxiov></textarea> </div> <label class="text-foreground flex cursor-pointer items-start gap-3 text-sm leading-relaxed" data-astro-cid-ca7uxiov> <input type="checkbox" name="privacy_consent" value="agreed" required class="border-border accent-accent mt-0.5 size-4 shrink-0 cursor-pointer rounded-sm" data-astro-cid-ca7uxiov> <span data-astro-cid-ca7uxiov> <a href="/legal/privacy/" target="_blank" rel="noopener noreferrer" class="text-accent duration-fast hover:text-accent-hover underline-offset-4 transition-colors hover:underline" data-astro-cid-ca7uxiov>ãã©ã¤ãã·ã¼ããªã·ã¼</a>ã«åæãã¾ã 75</span> </label> <div data-status="error" role="alert" hidden class="border-destructive/30 bg-destructive/5 text-destructive rounded border p-4 text-sm" data-astro-cid-ca7uxiov> 76éä¿¡ã«å¤±æãã¾ãããæéãããã¦å度ã試ãããã ããã<a href="/cdn-cgi/l/email-protection#becdcbceced1cccafeccdfd8cbcccb90dfd7" class="underline underline-offset-4" data-astro-cid-ca7uxiov><span class="__cf_email__" data-cfemail="86f5f3f6f6e9f4f2c6f4e7e0f3f4f3a8e7ef">[email protected]</span></a> ã¾ã§ãé£çµ¡ãã ããã 77</div> <button type="submit" data-submit class="bg-primary text-md text-primary-foreground duration-normal hover:bg-primary/90 inline-flex h-12 items-center justify-center gap-2 rounded px-7 font-medium transition-all ease-out hover:-translate-y-0.5 hover:shadow-lg disabled:pointer-events-none disabled:opacity-60" data-astro-cid-ca7uxiov> <span data-submit-label data-astro-cid-ca7uxiov>éä¿¡ãã</span> <span data-submit-loading hidden data-astro-cid-ca7uxiov>éä¿¡ä¸â¦</span> </button> </div>
77 <div data-status="success" role="status" aria-live="polite" hidden class="flex flex-col items-center gap-4 py-6 text-center sm:py-10" data-astro-cid-ca7uxiov> <span class="bg-success/10 text-success inline-flex size-12 items-center justify-center rounded-full" aria-hidden="true" data-astro-cid-ca7uxiov> <svg viewBox="0 0 24 24" width="24" height="24" fill="none" data-astro-cid-ca7uxiov> <path d="M5 12.5l4.5 4.5L19 7.5" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" data-astro-cid-ca7uxiov></path> </svg> </span> <h2 class="text-foreground text-lg font-medium sm:text-xl" data-astro-cid-ca7uxiov> 78ãåãåãããåãä»ãã¾ãã 79</h2> <p class="text-muted-foreground max-w-md text-base leading-relaxed" data-astro-cid-ca7uxiov> 80ãå ¥åããã ããã¡ã¼ã«ã¢ãã¬ã¹å®ã«ãé常 2ã3 å¶æ¥æ¥ä»¥å ã« rafuru 81 ãã¼ã ãããè¿ä¿¡ãããã¾ãã 82</p> </div> </form> <p class="text-muted-foreground mt-6 text-center text-xs leading-relaxed sm:text-sm" data-astro-cid-ca7uxiov> 83â» é常 2ã3 84 å¶æ¥æ¥ä»¥å ã«ãè¿ä¿¡ãããã¾ãã忥ç¥ã®ãåãåããã¯ç¿å¶æ¥æ¥ä»¥éã®å¯¾å¿ã¨ãªãã¾ãã 85</p> </div> </div> </section>
vendor: 110 bytes, line 85
85 <script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
85<script type="module">(function(){const e=document.getElementById("contact-form");if(!e)return;const s=e.querySelector("[data-submit]"),n=e.querySelector("[data-submit-label]"),a=e.querySelector("[data-submit-loading]"),i=e.querySelector("[data-form-fields]"),o=e.querySelector('[data-status="success"]'),r=e.querySelector('[data-status="error"]');if(!s||!n||!a||!i||!o||!r)return;function d(t){!s||!n||!a||(s.disabled=t,n.hidden=t,a.hidden=!t)}e.addEventListener("submit",async t=>{if(t.preventDefault(),!!e&&(e.dataset.attempted="true",r.hidden=!0,!!e.reportValidity())){d(!0);try{(await fetch(e.action,{method:"POST",body:new FormData(e),headers:{Accept:"application/json"}})).ok?(i.hidden=!0,o.hidden=!1,o.scrollIntoView({behavior:"smooth",block:"center"})):r.hidden=!1}catch{r.hidden=!1}finally{d(!1)}}})})();</script>
85 </main> <!-- 86 Footer 㯠OS ã®ãã¼ãã«é¢ä¿ãªã常ã«ããã¼ã¯ã³ã³ããã¹ããã¨ãã¦æç»ãã 87 ãã¶ã¤ã³ã¨ãã¦åºå®ã`data-theme="dark"` ãå½ã¦ããã¨ã§ãå é¨ã® 88 bg-background / text-foreground / border-border çã®ã»ãã³ãã£ã㯠89 ãã¼ã¯ã³ããã¹ã¦ dark å¤ã«è§£æ±ºãããã 90--><footer data-theme="dark" class="bg-background text-muted-foreground"> <div class="container-page py-16 sm:py-20"> <div class="border-border flex flex-col gap-8 border-b pb-12 sm:flex-row sm:items-start sm:justify-between"> <div> <a href="/" class="duration-fast inline-flex items-center transition-opacity hover:opacity-80" aria-label="rafuru ãã¼ã "> <img src="/logo/rafuru-logo-dark.svg" alt="rafuru" width="96" height="32" class="h-8 w-auto"> </a> <p class="text-muted-foreground mt-3 text-sm"> <span class="inline-block">ã¯ã©ã¤ã¢ã³ãã¨åæããªããä½ãã</span><span class="inline-block">Web å¶ä½è ã®ããã® AI å¶ä½ãã©ãããã©ã¼ã ã</span> </p> </div> <nav class="flex flex-wrap items-center gap-x-8 gap-y-3"> <a href="/" class="text-muted-foreground duration-fast hover:text-foreground text-sm transition-colors"> ãã¼ã </a><a href="/pricing/" class="text-muted-foreground duration-fast hover:text-foreground text-sm transition-colors"> æé </a><a href="/blog/" class="text-muted-foreground duration-fast hover:text-foreground text-sm transition-colors"> ããã° </a><a href="/legal/terms/" class="text-muted-foreground duration-fast hover:text-foreground text-sm transition-colors"> å©ç¨è¦ç´ </a><a href="/legal/privacy/" class="text-muted-foreground duration-fast hover:text-foreground text-sm transition-colors"> ãã©ã¤ãã·ã¼ããªã·ã¼ </a><a href="/legal/tokushoho/" class="text-muted-foreground duration-fast hover:text-foreground text-sm transition-colors"> ç¹åæ³è¡¨è¨ </a><a href="/contact/" class="text-muted-foreground duration-fast hover:text-foreground text-sm transition-colors"> ãåãåãã </a> </nav> </div> <div class="flex flex-wrap items-center justify-between gap-3 pt-8"> <span class="text-muted-foreground text-xs"> 91© 2026 rafuru. All rights reserved. 92</span> </div> </div> </footer>
92<script> 93 // Scroll-triggered reveal â `.reveal` è¦ç´ ã viewport ã«å ¥ã£ãã 94 // `.is-visible` ãä»ä¸ããCSS å´ã®ãã©ã³ã¸ã·ã§ã³ã§åºç¾ãããã 95 // prefers-reduced-motion ã®å ´åã¯å³æ visible åï¼åçããï¼ã 96 (function () { 97 const targets = document.querySelectorAll(".reveal"); 98 if (!targets.length) return; 99 const reduced = 100 window.matchMedia && 101 window.matchMedia("(prefers-reduced-motion: reduce)").matches; 102 if (reduced || !("IntersectionObserver" in window)) { 103 targets.forEach(function (el) { 104 el.classList.add("is-visible"); 105 }); 106 return; 107 } 108 const obs = new IntersectionObserver( 109 function (entries) { 110 for (let i = 0; i < entries.length; i++) { 111 const entry = entries[i]; 112 if (entry.isIntersecting) { 113 entry.target.classList.add("is-visible"); 114 obs.unobserve(entry.target); 115 } 116 } 117 }, 118 { rootMargin: "0px 0px -8% 0px", threshold: 0.1 }, 119 ); 120 targets.forEach(function (el) { 121 obs.observe(el); 122 }); 123 })(); 124 </script>
124
124<script> 125 // First-touch ã¢ããªãã¥ã¼ã·ã§ã³ â åºåã»SNS æµå ¥æã® UTM / fbclid ã 126 // localStorage ã«ä¿æãï¼ååã®ã¿ã䏿¸ãããªãï¼ãã¢ã㪠127 // (app.rafuru.ai) ã¸ã®ãªã³ã¯ã«å¼ãç¶ããapp å´ã¯ signup æã«ãã® 128 // ã¯ã¨ãªãã¦ã¼ã¶ã¼ã¬ã³ã¼ãã¸ä¿åããï¼docs/sns-strategy.md §7ï¼ã 129 (function () { 130 const KEY = "rafuru.firstTouch"; 131 const KEEP = [ 132 "utm_source", 133 "utm_medium", 134 "utm_campaign", 135 "utm_content", 136 "utm_term", 137 "fbclid", 138 ]; 139 // AI ã¢ã·ã¹ã¿ã³ãçµç±ã®æµå ¥ã¯ UTM ãä»ããªããã¨ãå¤ãããªãã¡ã©ã¼ 140 // ã ããæãããï¼ChatGPT 㯠utm_source=chatgpt.com ãä»ãããã 141 // Claude çã¯ãªãã¡ã©ã¼ã®ã¿ï¼ãæ¢ç¥ã® AI ãã¡ã¤ã³ããã®æµå ¥ã¯ 142 // utm_source=<ãµã¼ãã¹å> / utm_medium=ai_referral ã¨ãã¦åæãã 143 // åºåã»SNS ã¨åãçµè·¯ã§ signup ã¾ã§è¿½è·¡ã§ããããã«ããã 144 const AI_HOSTS = { 145 "chatgpt.com": "chatgpt", 146 "chat.openai.com": "chatgpt", 147 "claude.ai": "claude", 148 "perplexity.ai": "perplexity", 149 "www.perplexity.ai": "perplexity", 150 "gemini.google.com": "gemini", 151 "copilot.microsoft.com": "copilot", 152 }; 153 try { 154 const cur = new URLSearchParams(location.search); 155 const hasAny = KEEP.some(function (k) { 156 return cur.get(k); 157 }); 158 let aiSource = ""; 159 try { 160 if (document.referrer) { 161 aiSource = AI_HOSTS[new URL(document.referrer).hostname] || ""; 162 } 163 } catch { 164 // ãªãã¡ã©ã¼ã URL ã¨ãã¦ä¸æ£ãªå ´åã¯ç¡è¦ 165 } 166 if ((hasAny || aiSource) && !localStorage.getItem(KEY)) { 167 const data = { landingPath: location.pathname }; 168 KEEP.forEach(function (k) { 169 if (cur.get(k)) data[k] = cur.get(k); 170 }); 171 if (!hasAny && aiSource) { 172 data.utm_source = aiSource; 173 data.utm_medium = "ai_referral"; 174 } 175 localStorage.setItem(KEY, JSON.stringify(data)); 176 } 177 const saved = JSON.parse(localStorage.getItem(KEY) || "null"); 178 if (!saved) return; 179 document 180 .querySelectorAll('a[href^="https://app.rafuru.ai"]') 181 .forEach(function (a) { 182 const u = new URL(a.href); 183 let touched = false; 184 KEEP.forEach(function (k) { 185 if (saved[k] && !u.searchParams.has(k)) { 186 u.searchParams.set(k, saved[k]); 187 touched = true; 188 } 189 }); 190 if (touched) a.href = u.toString(); 191 }); 192 } catch { 193 // localStorage ã使ããªãç°å¢ï¼ãã©ã¤ãã¼ãã¢ã¼ãçï¼ã§ã¯ä½ãããªã 194 } 195 })(); 196 </script>
196
196<script> 197 // Meta ãã¯ã»ã« â åºåå¹ææ¸¬å®ï¼privacy §11ï¼ãããªã·ã¼æ¹è¨ã®äºåå¨ç¥ 198 // æéãç½®ããããæ½è¡æ¥ 2026-07-21 00:00 JST ã¾ã§ã¯çºç«ãããªã 199 // ï¼Â§11ãå°å ¥æã¯æ¹è¨ã®ããäºåã«å¨ç¥ãã®å±¥è¡ï¼ãæ½è¡æ¥åã®åä½ç¢ºèªã¯ 200 // URL ã« ?meta_pixel_test=1 ãä»ãããç»é²ã»èª²éã® CV ã¯ã¢ããªå´ CAPI 201 // ããéãè¨è¨ï¼docs/sns-strategy.md §7ï¼ã§ãLP ã¯ãã¼ã¸ãã¥ã¼ã» 202 // ã¢ããªé客ã¯ãªãã¯ã»è¨äº50%ã¹ã¯ãã¼ã«ï¼åºåã®ä¸æµCVï¼ã®ã¿ãè¨æ¸¬ããã 203 (function () { 204 const LIVE_FROM = Date.parse("2026-07-21T00:00:00+09:00"); 205 const isTest = /[?&]meta_pixel_test=1/.test(location.search); 206 if (Date.now() < LIVE_FROM && !isTest) return; 207 (function (f, b, e, v) { 208 if (f.fbq) return; 209 const n = (f.fbq = function (...args) { 210 if (n.callMethod) { 211 n.callMethod(...args); 212 } else { 213 n.queue.push(args); 214 } 215 }); 216 if (!f._fbq) f._fbq = n; 217 n.push = n; 218 n.loaded = true; 219 n.version = "2.0"; 220 n.queue = []; 221 const t = b.createElement(e); 222 t.async = true; 223 t.src = v; 224 const s = b.getElementsByTagName(e)[0]; 225 s.parentNode.insertBefore(t, s); 226 })( 227 window, 228 document, 229 "script", 230 "https://connect.facebook.net/en_US/fbevents.js", 231 ); 232 window.fbq("init", "1028084989602298"); 233 window.fbq("track", "PageView"); 234 document.addEventListener("click", function (ev) { 235 const a = 236 ev.target && ev.target.closest ? ev.target.closest("a") : null; 237 if (a && /^https:\/\/app\.rafuru\.ai/.test(a.href)) { 238 window.fbq("trackCustom", "AppLinkClick", { 239 path: location.pathname, 240 }); 241 } 242 }); 243 // è¨äº50%ã¹ã¯ãã¼ã« â åºåã»ããAS1ï¼è¨äºçå°ï¼ã®æé©åã¤ãã³ã 244 // ï¼sns-strategy §5/§7ï¼ã/blog/ é ä¸ã§1ãã¼ã¸ãã¥ã¼ã«ã¤ã1åã ãçºç«ã 245 if (location.pathname.startsWith("/blog/")) { 246 let scrollFired = false; 247 const onArticleScroll = function () { 248 if (scrollFired) return; 249 const doc = document.documentElement; 250 const depth = 251 (window.scrollY + window.innerHeight) / doc.scrollHeight; 252 if (depth >= 0.5) { 253 scrollFired = true; 254 window.removeEventListener("scroll", onArticleScroll); 255 window.fbq("trackCustom", "ArticleScroll50", { 256 path: location.pathname, 257 }); 258 } 259 }; 260 window.addEventListener("scroll", onArticleScroll, { passive: true }); 261 onArticleScroll(); 262 } 263 })(); 264 </script>
264 </body> </html>
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.