cloudflare
tcp/443 tcp/80 tcp/8443
Open service 2606:4700:3036::6815:592a:443 · pub.studio15.jp
2026-01-26 03:09
HTTP/1.1 404 Not Found
Date: Mon, 26 Jan 2026 03:09:47 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: no-store
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=48HK2odXGVhhOIKSLMsAFk63M5t39uDFmJ36BCgz0ut%2FqgpRkDMIrG7%2FKUBVTWlTNF9osZFJirg9X7SnALhfG5p%2Bd7v9B1%2BN6v%2FdEkssAG17RarzOaNxjZOaJA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=2,cfOrigin;dur=24
cf-cache-status: DYNAMIC
CF-RAY: 9c3cd0435fa0dcca-FRA
alt-svc: h3=":443"; ma=86400
Page title: このブログは移転しました | 15Pub
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>このブログは移転しました | 15Pub</title>
</head>
<body>
<p>
このブログは <a href="https://studio15.jp/blog/">https://studio15.jp/blog/</a> に移転しました。
</p>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"c55743f90ddd4fd5a1dfe7d4be0dc7d2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 172.67.156.88:8443 · pub.studio15.jp
2026-01-26 03:09
HTTP/1.1 404 Not Found
Date: Mon, 26 Jan 2026 03:09:47 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: no-store
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=c9q8EIrN2EX0UwVvgYKbGOX609RhOobSGGJOow7ux1twjTibO4%2B9shGWttTUdo0ESUdESp3g9tPbMh6ES6%2FyJPXE5suhU0De2F4KsbtmFA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=7,cfOrigin;dur=30
cf-cache-status: DYNAMIC
CF-RAY: 9c3cd0435e7bd352-FRA
alt-svc: h3=":8443"; ma=86400
Page title: このブログは移転しました | 15Pub
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>このブログは移転しました | 15Pub</title>
</head>
<body>
<p>
このブログは <a href="https://studio15.jp/blog/">https://studio15.jp/blog/</a> に移転しました。
</p>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"c55743f90ddd4fd5a1dfe7d4be0dc7d2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 2606:4700:3032::ac43:9c58:80 · pub.studio15.jp
2026-01-26 03:09
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 03:09:47 GMT
Content-Length: 0
Connection: close
Location: https://pub.studio15.jp/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=%2F7%2Bj0lowTExXcD%2FFSfOPfRq%2BdrmlqxMOxz%2Fzul7vzUAsa4gcKQZhLRHovNiCzodm7F5yZ28lTqugMTaRMjt9GRYScFO0rgoeSeV5TY2CfShQ1K4l0aGVTO8WAA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=14,cfOrigin;dur=7
cf-cache-status: DYNAMIC
CF-RAY: 9c3cd0431f27dcca-FRA
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3032::ac43:9c58:443 · pub.studio15.jp
2026-01-26 03:09
HTTP/1.1 404 Not Found
Date: Mon, 26 Jan 2026 03:09:47 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: no-store
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=mKR%2BnIuJL6%2BYMTXmxEF8VCL1MT4KiMY0mh3s9C9%2FhJj0OKM9z3M7XIhVCsxK7AezKas9RG2sTQrO4imUTjflOuc2QEHdWcl%2BsmWmmqyKU%2FTSI8nHU%2F6UQSXmIw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=9,cfOrigin;dur=33
cf-cache-status: DYNAMIC
CF-RAY: 9c3cd0425b8449b9-AMS
alt-svc: h3=":443"; ma=86400
Page title: このブログは移転しました | 15Pub
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>このブログは移転しました | 15Pub</title>
</head>
<body>
<p>
このブログは <a href="https://studio15.jp/blog/">https://studio15.jp/blog/</a> に移転しました。
</p>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"c55743f90ddd4fd5a1dfe7d4be0dc7d2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 2606:4700:3036::6815:592a:80 · pub.studio15.jp
2026-01-26 03:09
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 03:09:47 GMT
Content-Length: 0
Connection: close
Location: https://pub.studio15.jp/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=d0MuLy8Cke89l4%2BDJhAl4HNzQ2kyoQZR4psj0274muZ0e%2FPTeRNrL5fwUiPW8MSL636xOWAv%2BhqxoIrs5LuG4UsrJHsveNvKXwSaUrmpamOr8vZTrv4rbt0%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=21,cfOrigin;dur=6
cf-cache-status: DYNAMIC
CF-RAY: 9c3cd041da0ef5ba-AMS
alt-svc: h3=":443"; ma=86400
Open service 172.67.156.88:443 · pub.studio15.jp
2026-01-26 03:09
HTTP/1.1 404 Not Found
Date: Mon, 26 Jan 2026 03:09:47 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: no-store
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=fY0X9vQVaDrP%2B5FPJBy5KJ%2BI48THnHCOnUIhcqXhvLLAEiIU0GYGrmLny35Hf71LIBO%2BJ0t%2BMGBf8gTiX1d%2Fxz57BpclcbR%2BgNPIp5XS%2Fg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=11,cfOrigin;dur=42
cf-cache-status: DYNAMIC
CF-RAY: 9c3cd0421d9e086a-YYZ
alt-svc: h3=":443"; ma=86400
Page title: このブログは移転しました | 15Pub
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>このブログは移転しました | 15Pub</title>
</head>
<body>
<p>
このブログは <a href="https://studio15.jp/blog/">https://studio15.jp/blog/</a> に移転しました。
</p>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"c55743f90ddd4fd5a1dfe7d4be0dc7d2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 2606:4700:3032::ac43:9c58:8443 · pub.studio15.jp
2026-01-26 03:09
HTTP/1.1 404 Not Found
Date: Mon, 26 Jan 2026 03:09:47 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: no-store
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=%2FOx9trLIJ9VtMfwshpsYXMQ7d38983YCQdC6iT4PiOWb6Uz4zWpa4FHhnB%2FCi6XNCFToQ0FFdDPLrrqxZjNpPust8REtExmUVgT1aaXOrOg08mifOL4sTmmorg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=10,cfOrigin;dur=37
cf-cache-status: DYNAMIC
CF-RAY: 9c3cd041e8f8887f-LHR
alt-svc: h3=":8443"; ma=86400
Page title: このブログは移転しました | 15Pub
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>このブログは移転しました | 15Pub</title>
</head>
<body>
<p>
このブログは <a href="https://studio15.jp/blog/">https://studio15.jp/blog/</a> に移転しました。
</p>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"c55743f90ddd4fd5a1dfe7d4be0dc7d2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 2606:4700:3036::6815:592a:8443 · pub.studio15.jp
2026-01-26 03:09
HTTP/1.1 404 Not Found
Date: Mon, 26 Jan 2026 03:09:47 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: no-store
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=3j1DsI3ylqd3JDV11YH9LQy2bmBYQYezFk%2FucaH%2FTy5FK1ThCb%2BICmRuVH7vHozzzh%2BQfgTykkuAPlvN7brU7zUFG9EsH5%2BbXTa4rWEz2nYRlyRF1gvvXlsv9g%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=9,cfOrigin;dur=37
cf-cache-status: DYNAMIC
CF-RAY: 9c3cd041e8a29472-LHR
alt-svc: h3=":8443"; ma=86400
Page title: このブログは移転しました | 15Pub
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>このブログは移転しました | 15Pub</title>
</head>
<body>
<p>
このブログは <a href="https://studio15.jp/blog/">https://studio15.jp/blog/</a> に移転しました。
</p>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"c55743f90ddd4fd5a1dfe7d4be0dc7d2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 172.67.156.88:80 · pub.studio15.jp
2026-01-26 03:09
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 03:09:47 GMT
Content-Length: 0
Connection: close
Location: https://pub.studio15.jp/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ynqjsMiVBTz%2Fi3hFzbJnmuBp8k69B5Q%2BY%2BmvlaQwlVle4foXRne%2FUx6esA%2BuUUKcgYxo2%2FrINuW1Th5QrCZN9jRvDTLcCYMTiDEypSOBpA%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=18,cfOrigin;dur=10
cf-cache-status: DYNAMIC
CF-RAY: 9c3cd041a9a5949d-LHR
alt-svc: h3=":443"; ma=86400
Open service 104.21.89.42:443 · pub.studio15.jp
2026-01-26 03:09
HTTP/1.1 404 Not Found
Date: Mon, 26 Jan 2026 03:09:47 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: no-store
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=w3DNi8XSAPrKmT8oUnnW1EbNle6mdUbQ5z2JlcOykjSan2jLIjR06yvplmJn2h6eOZiDcBxNAc5fgabFNNWSDjyuCNhxdo3kRfj5%2Bb5UFg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=6,cfOrigin;dur=42
cf-cache-status: DYNAMIC
CF-RAY: 9c3cd041e8c1227b-LHR
alt-svc: h3=":443"; ma=86400
Page title: このブログは移転しました | 15Pub
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>このブログは移転しました | 15Pub</title>
</head>
<body>
<p>
このブログは <a href="https://studio15.jp/blog/">https://studio15.jp/blog/</a> に移転しました。
</p>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"c55743f90ddd4fd5a1dfe7d4be0dc7d2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 104.21.89.42:8443 · pub.studio15.jp
2026-01-26 03:09
HTTP/1.1 404 Not Found
Date: Mon, 26 Jan 2026 03:09:47 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: no-store
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=aZQC6t0fHt5TxiTuq6dSH5Udr9rbI3eAtMt%2FCBIw4hPYsc%2FhTqGhzQkha2f2zS9K8MdzL3Nl6RdiIwntqy5YqLylJE%2BLAn6bRaDPhf0q3A%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=17,cfOrigin;dur=45
cf-cache-status: DYNAMIC
CF-RAY: 9c3cd041ed607785-LHR
alt-svc: h3=":8443"; ma=86400
Page title: このブログは移転しました | 15Pub
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>このブログは移転しました | 15Pub</title>
</head>
<body>
<p>
このブログは <a href="https://studio15.jp/blog/">https://studio15.jp/blog/</a> に移転しました。
</p>
<script defer src="https://static.cloudflareinsights.com/beacon.min.js/vcd15cbe7772f49c399c6a5babf22c1241717689176015" integrity="sha512-ZpsOmlRQV6y907TI0dKBHq9Md29nnaEIPlkf84rnaERnq6zvWvPUqr2ft8M1aS28oN72PdrCzSjY4U6VaAw1EQ==" data-cf-beacon='{"version":"2024.11.0","token":"c55743f90ddd4fd5a1dfe7d4be0dc7d2","r":1,"server_timing":{"name":{"cfCacheStatus":true,"cfEdge":true,"cfExtPri":true,"cfL4":true,"cfOrigin":true,"cfSpeedBrain":true},"location_startswith":null}}' crossorigin="anonymous"></script>
</body>
</html>
Open service 104.21.89.42:80 · pub.studio15.jp
2026-01-26 03:09
HTTP/1.1 301 Moved Permanently
Date: Mon, 26 Jan 2026 03:09:47 GMT
Content-Length: 0
Connection: close
Location: https://pub.studio15.jp/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=pkWy898r4eObR43b%2BHjT4LQ1nPVGw2yuz2urGe2Xir4Tclonag6PtFxUFJB6eHx0qe6zQMmBR8AX6lEg7W7XCRJv4UprST1Ixxg5o373fg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=13,cfOrigin;dur=6
cf-cache-status: DYNAMIC
CF-RAY: 9c3cd0419943c70d-LHR
alt-svc: h3=":443"; ma=86400
Open service 104.21.89.42:8443 · studio15.jp
2026-01-12 02:03
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 02:03:08 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
cf-cache-status: DYNAMIC
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=n0zVR4VptDLJJOkImKS%2BIBOOZQTH6iREQJ%2FR58gj23zwVTjoBieC8LJKkNyWTHA%2FCqthPj9%2Bp%2FRSSanlZtjnsomSftdeEAlzre0%2F"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=13,cfOrigin;dur=38
CF-RAY: 9bc913605cffa62e-EWR
alt-svc: h3=":8443"; ma=86400
Page title: studio15
<!DOCTYPE html><html lang="ja"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iOCIgZmlsbD0ib2tsY2goNzElIDAuMTUgMjM1KSIgLz48L3N2Zz4=" sizes="any" type="image/svg+xml"><link rel="alternate" type="application/rss+xml" title="studio15" href="https://studio15.jp/feed.xml"><link rel="canonical" href="https://studio15.jp/"><title>studio15</title><meta name="title" content="studio15"><meta name="description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:type" content="website"><meta property="og:site_name" content="studio15"><meta property="og:url" content="https://studio15.jp/"><meta property="og:title" content="studio15"><meta property="og:description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:image" content="https://studio15.jp/img/15.png"><script>
const root = document.documentElement;
function circularDistanceDeg(a, b) {
const d = Math.abs(a - b) % 360;
return Math.min(d, 360 - d);
}
function getChromeWeight(hue) {
const dist = circularDistanceDeg(hue, 30);
return 0.5 + 0.5 * (dist / 180);
}
function getHue() {
const date = new Date();
const seconds =
date.getSeconds() + 60 * date.getMinutes() + 60 * 60 * date.getHours();
return (Math.round(seconds / 10) + 235) % 360;
}
function updateHue() {
const hue = getHue();
const chromaWeight = getChromeWeight(hue);
root.style.setProperty("--hue", `${hue}deg`);
root.style.setProperty("--chroma-weight", chromaWeight.toFixed(2));
}
updateHue();
window.onload = () => {
const primaryColor = window
.getComputedStyle(root)
.getPropertyValue("--color-primary")
.trim();
const faviconSvg =
`<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">` +
`<circle cx="8" cy="8" r="8" fill="${primaryColor}" />` +
`</svg>`;
const linkSvgFavicon = document.querySelector(
"link[rel='icon'][type='image/svg+xml']",
);
linkSvgFavicon?.setAttribute(
"href",
`data:image/svg+xml;base64,${btoa(faviconSvg)}`,
);
};
</script>
<style>:root{--gap-nano: .125rem;--gap-micro: .25rem;--gap-small: .5rem;--gap-medium: 1rem;--gap-large: 1.5rem;--gap-huge: 2.5rem;--gap-giant: 4rem;--line-height-none: 1;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--font-weight-normal: normal;--font-weight-bold: bold;--font-weight-black: 900;--font-size-ruby: .5rem;--font-size-micro: .75rem;--font-size-small: .875rem;--font-size-normal: 1rem;--font-size-medium: 1.125rem;--font-size-large: 1.5rem;--font-size-huge: 2.25rem;--size-max-width: 768px;--size-dot: 8px;--size-maximum: 9999px;--hue: 235deg;--chroma-weight: 1;--color-background: oklch(92% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(35% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(25% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(5% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(40% calc(.01 * var(--chroma-weight)) var(--hue))}@media (prefers-color-scheme: dark){:root{--color-background: oklch(8% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(63% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(95% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(95% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(68% calc(.01 * var(--chroma-weight)) var(--hue))}}*,:before,:after{box-sizing:border-box}:where(:root){line-height:1.5;overfl
Open service 172.67.156.88:443 · studio15.jp
2026-01-12 02:03
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 02:03:08 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=1Gu5%2B%2B3%2B00WyL0ElpNTyLvQsmyoinAaNKyrMxQ6VpioZDkfwYGjnVA84Cvvk8Dp37yh45x1f3c4jOTrZQqQDMwPLTfAPRp8tEI8h"}]}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=11,cfOrigin;dur=47
cf-cache-status: DYNAMIC
CF-RAY: 9bc9135f8f069bfb-FRA
alt-svc: h3=":443"; ma=86400
Page title: studio15
<!DOCTYPE html><html lang="ja"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iOCIgZmlsbD0ib2tsY2goNzElIDAuMTUgMjM1KSIgLz48L3N2Zz4=" sizes="any" type="image/svg+xml"><link rel="alternate" type="application/rss+xml" title="studio15" href="https://studio15.jp/feed.xml"><link rel="canonical" href="https://studio15.jp/"><title>studio15</title><meta name="title" content="studio15"><meta name="description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:type" content="website"><meta property="og:site_name" content="studio15"><meta property="og:url" content="https://studio15.jp/"><meta property="og:title" content="studio15"><meta property="og:description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:image" content="https://studio15.jp/img/15.png"><script>
const root = document.documentElement;
function circularDistanceDeg(a, b) {
const d = Math.abs(a - b) % 360;
return Math.min(d, 360 - d);
}
function getChromeWeight(hue) {
const dist = circularDistanceDeg(hue, 30);
return 0.5 + 0.5 * (dist / 180);
}
function getHue() {
const date = new Date();
const seconds =
date.getSeconds() + 60 * date.getMinutes() + 60 * 60 * date.getHours();
return (Math.round(seconds / 10) + 235) % 360;
}
function updateHue() {
const hue = getHue();
const chromaWeight = getChromeWeight(hue);
root.style.setProperty("--hue", `${hue}deg`);
root.style.setProperty("--chroma-weight", chromaWeight.toFixed(2));
}
updateHue();
window.onload = () => {
const primaryColor = window
.getComputedStyle(root)
.getPropertyValue("--color-primary")
.trim();
const faviconSvg =
`<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">` +
`<circle cx="8" cy="8" r="8" fill="${primaryColor}" />` +
`</svg>`;
const linkSvgFavicon = document.querySelector(
"link[rel='icon'][type='image/svg+xml']",
);
linkSvgFavicon?.setAttribute(
"href",
`data:image/svg+xml;base64,${btoa(faviconSvg)}`,
);
};
</script>
<style>:root{--gap-nano: .125rem;--gap-micro: .25rem;--gap-small: .5rem;--gap-medium: 1rem;--gap-large: 1.5rem;--gap-huge: 2.5rem;--gap-giant: 4rem;--line-height-none: 1;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--font-weight-normal: normal;--font-weight-bold: bold;--font-weight-black: 900;--font-size-ruby: .5rem;--font-size-micro: .75rem;--font-size-small: .875rem;--font-size-normal: 1rem;--font-size-medium: 1.125rem;--font-size-large: 1.5rem;--font-size-huge: 2.25rem;--size-max-width: 768px;--size-dot: 8px;--size-maximum: 9999px;--hue: 235deg;--chroma-weight: 1;--color-background: oklch(92% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(35% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(25% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(5% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(40% calc(.01 * var(--chroma-weight)) var(--hue))}@media (prefers-color-scheme: dark){:root{--color-background: oklch(8% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(63% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(95% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(95% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(68% calc(.01 * var(--chroma-weight)) var(--hue))}}*,:before,:after{box-sizing:border-box}:where(:root){line-height:1.5;overfl
Open service 2606:4700:3036::6815:592a:8443 · studio15.jp
2026-01-12 02:03
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 02:03:08 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
cf-cache-status: DYNAMIC
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=b2nCyLpp45SIa8m5%2FU7SztlmHIKyC%2BjcFymCWPzSaZ8zO6%2BgbqjVoqIlsU4qID%2BTbTfG5%2B0WRVMf5uKXa%2BYd64EDKXb07jY4VL5mPI1gznB0%2Bus8vz4k"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=8,cfOrigin;dur=41
CF-RAY: 9bc913602a9675b1-EWR
alt-svc: h3=":8443"; ma=86400
Page title: studio15
<!DOCTYPE html><html lang="ja"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iOCIgZmlsbD0ib2tsY2goNzElIDAuMTUgMjM1KSIgLz48L3N2Zz4=" sizes="any" type="image/svg+xml"><link rel="alternate" type="application/rss+xml" title="studio15" href="https://studio15.jp/feed.xml"><link rel="canonical" href="https://studio15.jp/"><title>studio15</title><meta name="title" content="studio15"><meta name="description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:type" content="website"><meta property="og:site_name" content="studio15"><meta property="og:url" content="https://studio15.jp/"><meta property="og:title" content="studio15"><meta property="og:description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:image" content="https://studio15.jp/img/15.png"><script>
const root = document.documentElement;
function circularDistanceDeg(a, b) {
const d = Math.abs(a - b) % 360;
return Math.min(d, 360 - d);
}
function getChromeWeight(hue) {
const dist = circularDistanceDeg(hue, 30);
return 0.5 + 0.5 * (dist / 180);
}
function getHue() {
const date = new Date();
const seconds =
date.getSeconds() + 60 * date.getMinutes() + 60 * 60 * date.getHours();
return (Math.round(seconds / 10) + 235) % 360;
}
function updateHue() {
const hue = getHue();
const chromaWeight = getChromeWeight(hue);
root.style.setProperty("--hue", `${hue}deg`);
root.style.setProperty("--chroma-weight", chromaWeight.toFixed(2));
}
updateHue();
window.onload = () => {
const primaryColor = window
.getComputedStyle(root)
.getPropertyValue("--color-primary")
.trim();
const faviconSvg =
`<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">` +
`<circle cx="8" cy="8" r="8" fill="${primaryColor}" />` +
`</svg>`;
const linkSvgFavicon = document.querySelector(
"link[rel='icon'][type='image/svg+xml']",
);
linkSvgFavicon?.setAttribute(
"href",
`data:image/svg+xml;base64,${btoa(faviconSvg)}`,
);
};
</script>
<style>:root{--gap-nano: .125rem;--gap-micro: .25rem;--gap-small: .5rem;--gap-medium: 1rem;--gap-large: 1.5rem;--gap-huge: 2.5rem;--gap-giant: 4rem;--line-height-none: 1;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--font-weight-normal: normal;--font-weight-bold: bold;--font-weight-black: 900;--font-size-ruby: .5rem;--font-size-micro: .75rem;--font-size-small: .875rem;--font-size-normal: 1rem;--font-size-medium: 1.125rem;--font-size-large: 1.5rem;--font-size-huge: 2.25rem;--size-max-width: 768px;--size-dot: 8px;--size-maximum: 9999px;--hue: 235deg;--chroma-weight: 1;--color-background: oklch(92% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(35% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(25% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(5% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(40% calc(.01 * var(--chroma-weight)) var(--hue))}@media (prefers-color-scheme: dark){:root{--color-background: oklch(8% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(63% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(95% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(95% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(68% calc(.01 * var(--chroma-weight)) var(--hue))}}*,:before,:after{box-sizing:border-box}:where(:root){line-height:1.5;overfl
Open service 2606:4700:3036::6815:592a:80 · studio15.jp
2026-01-12 02:03
HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Jan 2026 02:03:08 GMT
Content-Length: 0
Connection: close
Location: https://studio15.jp/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=ZiYawaJfHtleel8oAuFDlDX5cYfCFx59OykVIjdv4C9C%2BA05%2BwG3pqhXAj5xjv7Pmq2WZUkIloyNlfjfOYz%2BLQBuNGG%2FGNM4yPU6brV9GIzMuoBR%2Fg%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=17,cfOrigin;dur=8
cf-cache-status: DYNAMIC
CF-RAY: 9bc9135ef90b0b11-EWR
alt-svc: h3=":443"; ma=86400
Open service 104.21.89.42:80 · studio15.jp
2026-01-12 02:03
HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Jan 2026 02:03:07 GMT
Content-Length: 0
Connection: close
Location: https://studio15.jp/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=AaRnz1wcEV5nsK5ZsJjpOYwzqwyvj3q5M%2BruY%2BMKPoVnpcqNIzVILWLC%2BcMSlYad%2FLonM1U3xewnT%2ByU%2BfkIck2xdh8wCYG0HVUR"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=14,cfOrigin;dur=6
cf-cache-status: DYNAMIC
CF-RAY: 9bc9135ebbd11229-AMS
alt-svc: h3=":443"; ma=86400
Open service 172.67.156.88:8443 · studio15.jp
2026-01-12 02:03
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 02:03:08 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
cf-cache-status: DYNAMIC
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=CQ2f3S1QSlko6zrmYEEn5bL2%2BX7F%2FkcpPFHR4%2F3t3%2BSbtEKI0SpHHSyG68MD3zGzlLJ88ywx5YMlchmEdY%2FDw75IsuwVgwjMI6bD"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=9,cfOrigin;dur=42
CF-RAY: 9bc9135f190feffa-EWR
alt-svc: h3=":8443"; ma=86400
Page title: studio15
<!DOCTYPE html><html lang="ja"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iOCIgZmlsbD0ib2tsY2goNzElIDAuMTUgMjM1KSIgLz48L3N2Zz4=" sizes="any" type="image/svg+xml"><link rel="alternate" type="application/rss+xml" title="studio15" href="https://studio15.jp/feed.xml"><link rel="canonical" href="https://studio15.jp/"><title>studio15</title><meta name="title" content="studio15"><meta name="description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:type" content="website"><meta property="og:site_name" content="studio15"><meta property="og:url" content="https://studio15.jp/"><meta property="og:title" content="studio15"><meta property="og:description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:image" content="https://studio15.jp/img/15.png"><script>
const root = document.documentElement;
function circularDistanceDeg(a, b) {
const d = Math.abs(a - b) % 360;
return Math.min(d, 360 - d);
}
function getChromeWeight(hue) {
const dist = circularDistanceDeg(hue, 30);
return 0.5 + 0.5 * (dist / 180);
}
function getHue() {
const date = new Date();
const seconds =
date.getSeconds() + 60 * date.getMinutes() + 60 * 60 * date.getHours();
return (Math.round(seconds / 10) + 235) % 360;
}
function updateHue() {
const hue = getHue();
const chromaWeight = getChromeWeight(hue);
root.style.setProperty("--hue", `${hue}deg`);
root.style.setProperty("--chroma-weight", chromaWeight.toFixed(2));
}
updateHue();
window.onload = () => {
const primaryColor = window
.getComputedStyle(root)
.getPropertyValue("--color-primary")
.trim();
const faviconSvg =
`<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">` +
`<circle cx="8" cy="8" r="8" fill="${primaryColor}" />` +
`</svg>`;
const linkSvgFavicon = document.querySelector(
"link[rel='icon'][type='image/svg+xml']",
);
linkSvgFavicon?.setAttribute(
"href",
`data:image/svg+xml;base64,${btoa(faviconSvg)}`,
);
};
</script>
<style>:root{--gap-nano: .125rem;--gap-micro: .25rem;--gap-small: .5rem;--gap-medium: 1rem;--gap-large: 1.5rem;--gap-huge: 2.5rem;--gap-giant: 4rem;--line-height-none: 1;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--font-weight-normal: normal;--font-weight-bold: bold;--font-weight-black: 900;--font-size-ruby: .5rem;--font-size-micro: .75rem;--font-size-small: .875rem;--font-size-normal: 1rem;--font-size-medium: 1.125rem;--font-size-large: 1.5rem;--font-size-huge: 2.25rem;--size-max-width: 768px;--size-dot: 8px;--size-maximum: 9999px;--hue: 235deg;--chroma-weight: 1;--color-background: oklch(92% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(35% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(25% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(5% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(40% calc(.01 * var(--chroma-weight)) var(--hue))}@media (prefers-color-scheme: dark){:root{--color-background: oklch(8% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(63% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(95% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(95% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(68% calc(.01 * var(--chroma-weight)) var(--hue))}}*,:before,:after{box-sizing:border-box}:where(:root){line-height:1.5;overfl
Open service 2606:4700:3032::ac43:9c58:80 · studio15.jp
2026-01-12 02:03
HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Jan 2026 02:03:07 GMT
Content-Length: 0
Connection: close
Location: https://studio15.jp/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=JjDgsXgX%2BCUInZLG4xncLIIV2%2BIFmCTIOVW%2F1vW7A6BSOTROUOW6OnSfIJdH0lcqqN1JDkt5STP5Gz3KuReMAoun4PiZKPVD2OXtJxbJtZpuo%2Fa7b2v4"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=16,cfOrigin;dur=7
cf-cache-status: DYNAMIC
CF-RAY: 9bc9135e7fcc9cd3-AMS
alt-svc: h3=":443"; ma=86400
Open service 2606:4700:3032::ac43:9c58:8443 · studio15.jp
2026-01-12 02:03
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 02:03:08 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
cf-cache-status: DYNAMIC
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=3jDs2uIz%2FShp108Owa5%2FSJGML9u7MhFOllXhJ6ibkG4V%2BeZDXa2BTjqGtKBHqbb%2FeI5PoN4iTRa0ruvuLqZjM7wjrdm2wPR9Q22lHIZUOibVc10zRDfP"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=8,cfOrigin;dur=36
CF-RAY: 9bc9135ed958f41f-YYZ
alt-svc: h3=":8443"; ma=86400
Page title: studio15
<!DOCTYPE html><html lang="ja"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iOCIgZmlsbD0ib2tsY2goNzElIDAuMTUgMjM1KSIgLz48L3N2Zz4=" sizes="any" type="image/svg+xml"><link rel="alternate" type="application/rss+xml" title="studio15" href="https://studio15.jp/feed.xml"><link rel="canonical" href="https://studio15.jp/"><title>studio15</title><meta name="title" content="studio15"><meta name="description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:type" content="website"><meta property="og:site_name" content="studio15"><meta property="og:url" content="https://studio15.jp/"><meta property="og:title" content="studio15"><meta property="og:description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:image" content="https://studio15.jp/img/15.png"><script>
const root = document.documentElement;
function circularDistanceDeg(a, b) {
const d = Math.abs(a - b) % 360;
return Math.min(d, 360 - d);
}
function getChromeWeight(hue) {
const dist = circularDistanceDeg(hue, 30);
return 0.5 + 0.5 * (dist / 180);
}
function getHue() {
const date = new Date();
const seconds =
date.getSeconds() + 60 * date.getMinutes() + 60 * 60 * date.getHours();
return (Math.round(seconds / 10) + 235) % 360;
}
function updateHue() {
const hue = getHue();
const chromaWeight = getChromeWeight(hue);
root.style.setProperty("--hue", `${hue}deg`);
root.style.setProperty("--chroma-weight", chromaWeight.toFixed(2));
}
updateHue();
window.onload = () => {
const primaryColor = window
.getComputedStyle(root)
.getPropertyValue("--color-primary")
.trim();
const faviconSvg =
`<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">` +
`<circle cx="8" cy="8" r="8" fill="${primaryColor}" />` +
`</svg>`;
const linkSvgFavicon = document.querySelector(
"link[rel='icon'][type='image/svg+xml']",
);
linkSvgFavicon?.setAttribute(
"href",
`data:image/svg+xml;base64,${btoa(faviconSvg)}`,
);
};
</script>
<style>:root{--gap-nano: .125rem;--gap-micro: .25rem;--gap-small: .5rem;--gap-medium: 1rem;--gap-large: 1.5rem;--gap-huge: 2.5rem;--gap-giant: 4rem;--line-height-none: 1;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--font-weight-normal: normal;--font-weight-bold: bold;--font-weight-black: 900;--font-size-ruby: .5rem;--font-size-micro: .75rem;--font-size-small: .875rem;--font-size-normal: 1rem;--font-size-medium: 1.125rem;--font-size-large: 1.5rem;--font-size-huge: 2.25rem;--size-max-width: 768px;--size-dot: 8px;--size-maximum: 9999px;--hue: 235deg;--chroma-weight: 1;--color-background: oklch(92% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(35% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(25% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(5% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(40% calc(.01 * var(--chroma-weight)) var(--hue))}@media (prefers-color-scheme: dark){:root{--color-background: oklch(8% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(63% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(95% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(95% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(68% calc(.01 * var(--chroma-weight)) var(--hue))}}*,:before,:after{box-sizing:border-box}:where(:root){line-height:1.5;overfl
Open service 172.67.156.88:80 · studio15.jp
2026-01-12 02:03
HTTP/1.1 301 Moved Permanently
Date: Mon, 12 Jan 2026 02:03:07 GMT
Content-Length: 0
Connection: close
Location: https://studio15.jp/
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=YtVv3BTq9x6tmUR1CSfX9vtC7%2B2nXOMh%2Bvdll2u8%2BiA3AuoowKNQP%2Bpii5TaaOidCJrznhewuBkregxGBIt4vcgzOBa5XEw6bRGi"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=20,cfOrigin;dur=8
cf-cache-status: DYNAMIC
CF-RAY: 9bc9135e6cc01c7b-AMS
alt-svc: h3=":443"; ma=86400
Open service 104.21.89.42:443 · studio15.jp
2026-01-12 02:03
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 02:03:07 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
cf-cache-status: DYNAMIC
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=3i6m%2BFxSbDfj%2FHAMfn57Ps%2BH5wpUe3uN2UeqP%2BcG4LY7ycWTkmxIXwq0%2FVl1AHTfW68D9n8kIcVc2cBp4YHwOdPe5Vq8Mwwz5eda"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=8,cfOrigin;dur=28
CF-RAY: 9bc9135e9bf2edbd-LHR
alt-svc: h3=":443"; ma=86400
Page title: studio15
<!DOCTYPE html><html lang="ja"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iOCIgZmlsbD0ib2tsY2goNzElIDAuMTUgMjM1KSIgLz48L3N2Zz4=" sizes="any" type="image/svg+xml"><link rel="alternate" type="application/rss+xml" title="studio15" href="https://studio15.jp/feed.xml"><link rel="canonical" href="https://studio15.jp/"><title>studio15</title><meta name="title" content="studio15"><meta name="description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:type" content="website"><meta property="og:site_name" content="studio15"><meta property="og:url" content="https://studio15.jp/"><meta property="og:title" content="studio15"><meta property="og:description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:image" content="https://studio15.jp/img/15.png"><script>
const root = document.documentElement;
function circularDistanceDeg(a, b) {
const d = Math.abs(a - b) % 360;
return Math.min(d, 360 - d);
}
function getChromeWeight(hue) {
const dist = circularDistanceDeg(hue, 30);
return 0.5 + 0.5 * (dist / 180);
}
function getHue() {
const date = new Date();
const seconds =
date.getSeconds() + 60 * date.getMinutes() + 60 * 60 * date.getHours();
return (Math.round(seconds / 10) + 235) % 360;
}
function updateHue() {
const hue = getHue();
const chromaWeight = getChromeWeight(hue);
root.style.setProperty("--hue", `${hue}deg`);
root.style.setProperty("--chroma-weight", chromaWeight.toFixed(2));
}
updateHue();
window.onload = () => {
const primaryColor = window
.getComputedStyle(root)
.getPropertyValue("--color-primary")
.trim();
const faviconSvg =
`<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">` +
`<circle cx="8" cy="8" r="8" fill="${primaryColor}" />` +
`</svg>`;
const linkSvgFavicon = document.querySelector(
"link[rel='icon'][type='image/svg+xml']",
);
linkSvgFavicon?.setAttribute(
"href",
`data:image/svg+xml;base64,${btoa(faviconSvg)}`,
);
};
</script>
<style>:root{--gap-nano: .125rem;--gap-micro: .25rem;--gap-small: .5rem;--gap-medium: 1rem;--gap-large: 1.5rem;--gap-huge: 2.5rem;--gap-giant: 4rem;--line-height-none: 1;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--font-weight-normal: normal;--font-weight-bold: bold;--font-weight-black: 900;--font-size-ruby: .5rem;--font-size-micro: .75rem;--font-size-small: .875rem;--font-size-normal: 1rem;--font-size-medium: 1.125rem;--font-size-large: 1.5rem;--font-size-huge: 2.25rem;--size-max-width: 768px;--size-dot: 8px;--size-maximum: 9999px;--hue: 235deg;--chroma-weight: 1;--color-background: oklch(92% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(35% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(25% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(5% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(40% calc(.01 * var(--chroma-weight)) var(--hue))}@media (prefers-color-scheme: dark){:root{--color-background: oklch(8% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(63% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(95% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(95% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(68% calc(.01 * var(--chroma-weight)) var(--hue))}}*,:before,:after{box-sizing:border-box}:where(:root){line-height:1.5;overfl
Open service 2606:4700:3036::6815:592a:443 · studio15.jp
2026-01-12 02:03
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 02:03:07 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
cf-cache-status: DYNAMIC
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=wimYcOkeVcnzYoQPmae9e1y%2FUvUzabVyGv77Vr9DvTTRTn74mG9WdE9MpEjsET33TbjA%2Bp%2FP28PkOSKWHnfR7pSQnYcyw3yERXPH8kNRBZL0s2xKPgCs"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=8,cfOrigin;dur=30
CF-RAY: 9bc9135e9bc4d531-LHR
alt-svc: h3=":443"; ma=86400
Page title: studio15
<!DOCTYPE html><html lang="ja"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iOCIgZmlsbD0ib2tsY2goNzElIDAuMTUgMjM1KSIgLz48L3N2Zz4=" sizes="any" type="image/svg+xml"><link rel="alternate" type="application/rss+xml" title="studio15" href="https://studio15.jp/feed.xml"><link rel="canonical" href="https://studio15.jp/"><title>studio15</title><meta name="title" content="studio15"><meta name="description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:type" content="website"><meta property="og:site_name" content="studio15"><meta property="og:url" content="https://studio15.jp/"><meta property="og:title" content="studio15"><meta property="og:description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:image" content="https://studio15.jp/img/15.png"><script>
const root = document.documentElement;
function circularDistanceDeg(a, b) {
const d = Math.abs(a - b) % 360;
return Math.min(d, 360 - d);
}
function getChromeWeight(hue) {
const dist = circularDistanceDeg(hue, 30);
return 0.5 + 0.5 * (dist / 180);
}
function getHue() {
const date = new Date();
const seconds =
date.getSeconds() + 60 * date.getMinutes() + 60 * 60 * date.getHours();
return (Math.round(seconds / 10) + 235) % 360;
}
function updateHue() {
const hue = getHue();
const chromaWeight = getChromeWeight(hue);
root.style.setProperty("--hue", `${hue}deg`);
root.style.setProperty("--chroma-weight", chromaWeight.toFixed(2));
}
updateHue();
window.onload = () => {
const primaryColor = window
.getComputedStyle(root)
.getPropertyValue("--color-primary")
.trim();
const faviconSvg =
`<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">` +
`<circle cx="8" cy="8" r="8" fill="${primaryColor}" />` +
`</svg>`;
const linkSvgFavicon = document.querySelector(
"link[rel='icon'][type='image/svg+xml']",
);
linkSvgFavicon?.setAttribute(
"href",
`data:image/svg+xml;base64,${btoa(faviconSvg)}`,
);
};
</script>
<style>:root{--gap-nano: .125rem;--gap-micro: .25rem;--gap-small: .5rem;--gap-medium: 1rem;--gap-large: 1.5rem;--gap-huge: 2.5rem;--gap-giant: 4rem;--line-height-none: 1;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--font-weight-normal: normal;--font-weight-bold: bold;--font-weight-black: 900;--font-size-ruby: .5rem;--font-size-micro: .75rem;--font-size-small: .875rem;--font-size-normal: 1rem;--font-size-medium: 1.125rem;--font-size-large: 1.5rem;--font-size-huge: 2.25rem;--size-max-width: 768px;--size-dot: 8px;--size-maximum: 9999px;--hue: 235deg;--chroma-weight: 1;--color-background: oklch(92% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(35% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(25% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(5% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(40% calc(.01 * var(--chroma-weight)) var(--hue))}@media (prefers-color-scheme: dark){:root{--color-background: oklch(8% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(63% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(95% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(95% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(68% calc(.01 * var(--chroma-weight)) var(--hue))}}*,:before,:after{box-sizing:border-box}:where(:root){line-height:1.5;overfl
Open service 2606:4700:3032::ac43:9c58:443 · studio15.jp
2026-01-12 02:03
HTTP/1.1 200 OK
Date: Mon, 12 Jan 2026 02:03:07 GMT
Content-Type: text/html; charset=utf-8
Transfer-Encoding: chunked
Connection: close
Access-Control-Allow-Origin: *
Cache-Control: public, max-age=0, must-revalidate
cf-cache-status: DYNAMIC
referrer-policy: strict-origin-when-cross-origin
x-content-type-options: nosniff
Vary: accept-encoding
Report-To: {"group":"cf-nel","max_age":604800,"endpoints":[{"url":"https://a.nel.cloudflare.com/report/v4?s=w7dNKEKnhTIMuDT%2BuuqZyJgasRISJ75XcuUc2nZBpQTsk47ahhKsOQfWoxhS70TYT4HTQwxNjcMVX2AJtkR73%2BoEaW0w66R84mnm4Qv5jho4GyiEOw%3D%3D"}]}
Nel: {"report_to":"cf-nel","success_fraction":0.0,"max_age":604800}
Server: cloudflare
Server-Timing: cfCacheStatus;desc="DYNAMIC"
Server-Timing: cfEdge;dur=9,cfOrigin;dur=41
CF-RAY: 9bc9135eaaf36940-FRA
alt-svc: h3=":443"; ma=86400
Page title: studio15
<!DOCTYPE html><html lang="ja"> <head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHZpZXdCb3g9IjAgMCAxNiAxNiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczpzdmc9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48Y2lyY2xlIGN4PSI4IiBjeT0iOCIgcj0iOCIgZmlsbD0ib2tsY2goNzElIDAuMTUgMjM1KSIgLz48L3N2Zz4=" sizes="any" type="image/svg+xml"><link rel="alternate" type="application/rss+xml" title="studio15" href="https://studio15.jp/feed.xml"><link rel="canonical" href="https://studio15.jp/"><title>studio15</title><meta name="title" content="studio15"><meta name="description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:type" content="website"><meta property="og:site_name" content="studio15"><meta property="og:url" content="https://studio15.jp/"><meta property="og:title" content="studio15"><meta property="og:description" content="studio15(すたじおじゅうご)は15(じゅうご)こと小幡晋介(おばたしんすけ)による、ひとりウェブサービス制作プロジェクトです。"><meta property="og:image" content="https://studio15.jp/img/15.png"><script>
const root = document.documentElement;
function circularDistanceDeg(a, b) {
const d = Math.abs(a - b) % 360;
return Math.min(d, 360 - d);
}
function getChromeWeight(hue) {
const dist = circularDistanceDeg(hue, 30);
return 0.5 + 0.5 * (dist / 180);
}
function getHue() {
const date = new Date();
const seconds =
date.getSeconds() + 60 * date.getMinutes() + 60 * 60 * date.getHours();
return (Math.round(seconds / 10) + 235) % 360;
}
function updateHue() {
const hue = getHue();
const chromaWeight = getChromeWeight(hue);
root.style.setProperty("--hue", `${hue}deg`);
root.style.setProperty("--chroma-weight", chromaWeight.toFixed(2));
}
updateHue();
window.onload = () => {
const primaryColor = window
.getComputedStyle(root)
.getPropertyValue("--color-primary")
.trim();
const faviconSvg =
`<svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">` +
`<circle cx="8" cy="8" r="8" fill="${primaryColor}" />` +
`</svg>`;
const linkSvgFavicon = document.querySelector(
"link[rel='icon'][type='image/svg+xml']",
);
linkSvgFavicon?.setAttribute(
"href",
`data:image/svg+xml;base64,${btoa(faviconSvg)}`,
);
};
</script>
<style>:root{--gap-nano: .125rem;--gap-micro: .25rem;--gap-small: .5rem;--gap-medium: 1rem;--gap-large: 1.5rem;--gap-huge: 2.5rem;--gap-giant: 4rem;--line-height-none: 1;--line-height-tight: 1.25;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--font-weight-normal: normal;--font-weight-bold: bold;--font-weight-black: 900;--font-size-ruby: .5rem;--font-size-micro: .75rem;--font-size-small: .875rem;--font-size-normal: 1rem;--font-size-medium: 1.125rem;--font-size-large: 1.5rem;--font-size-huge: 2.25rem;--size-max-width: 768px;--size-dot: 8px;--size-maximum: 9999px;--hue: 235deg;--chroma-weight: 1;--color-background: oklch(92% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(35% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(25% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(5% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(40% calc(.01 * var(--chroma-weight)) var(--hue))}@media (prefers-color-scheme: dark){:root{--color-background: oklch(8% calc(.003 * var(--chroma-weight)) var(--hue));--color-primary: oklch(63% calc(.33 * var(--chroma-weight)) var(--hue));--color-secondary: oklch(95% calc(.1 * var(--chroma-weight)) var(--hue));--color-text: oklch(95% calc(.01 * var(--chroma-weight)) var(--hue));--color-subtext: oklch(68% calc(.01 * var(--chroma-weight)) var(--hue))}}*,:before,:after{box-sizing:border-box}:where(:root){line-height:1.5;overfl