<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>安心 &#8211; Tranquilvæj</title>
	<atom:link href="https://tranquilguides.com/tag/peace-of-mind/feed/" rel="self" type="application/rss+xml" />
	<link>https://tranquilguides.com</link>
	<description>記憶と身体、時間と不在をめぐる、文字と体験</description>
	<lastBuildDate>Wed, 22 Jul 2026 06:37:01 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://i0.wp.com/tranquilguides.com/wp-content/uploads/2026/01/cropped-IMG_3364.jpeg?fit=32%2C32&#038;ssl=1</url>
	<title>安心 &#8211; Tranquilvæj</title>
	<link>https://tranquilguides.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">251661265</site>	<item>
		<title>一時避難所｜いまをやり過ごすための小さな公共施設</title>
		<link>https://tranquilguides.com/temporary-shelter/</link>
					<comments>https://tranquilguides.com/temporary-shelter/#respond</comments>
		
		<dc:creator><![CDATA[案内人のアシカ]]></dc:creator>
		<pubDate>Thu, 25 Jun 2026 22:26:24 +0000</pubDate>
				<category><![CDATA[生存ログ]]></category>
		<category><![CDATA[HSP]]></category>
		<category><![CDATA[セルフケア]]></category>
		<category><![CDATA[メンタルケア]]></category>
		<category><![CDATA[一時避難所]]></category>
		<category><![CDATA[休息]]></category>
		<category><![CDATA[低気圧]]></category>
		<category><![CDATA[回復]]></category>
		<category><![CDATA[安心]]></category>
		<category><![CDATA[居場所]]></category>
		<category><![CDATA[深夜]]></category>
		<category><![CDATA[道具]]></category>
		<category><![CDATA[雨]]></category>
		<category><![CDATA[静けさ]]></category>
		<category><![CDATA[頭痛]]></category>
		<guid isPermaLink="false">https://tranquilguides.com/?p=1174</guid>

					<description><![CDATA[<p><img src="https://i0.wp.com/tranquilguides.com/wp-content/uploads/2026/06/IMG_20260626_072229.jpg?fit=1024%2C683&ssl=1" class="webfeedsFeaturedVisual" /></p>何もしたくない日や、少しだけ休みたい日に。暖炉や給水所、セーフルームなどを歩きながら、いまをやり過ごすための小さな避難所です。]]></description>
										<content:encoded><![CDATA[<p><img src="https://i0.wp.com/tranquilguides.com/wp-content/uploads/2026/06/IMG_20260626_072229.jpg?fit=1024%2C683&ssl=1" class="webfeedsFeaturedVisual" /></p>
<style data-wp-block-html="css">
.shelter-wrap {
  --shelter-text: #3f3a34;
  --shelter-muted: #8d8171;
  --shelter-border: rgba(80,70,55,.14);
  --shelter-surface: rgba(255,255,255,.58);
  --shelter-surface-hover: rgba(255,255,255,.82);
  --shelter-radius: 32px;
  --shelter-shadow: 0 18px 50px rgba(70,55,35,.08);
width: 100%;
max-width: 100%;
margin: 24px auto;
padding: 0 10px;
color: var(--shelter-text);
font-family: "Hiragino Mincho ProN", "Yu Mincho", serif;
}
/* 共通カード */
.shelter-home,
.shelter-room {
position: relative;
width: 100%;
box-sizing: border-box;
min-height: 520px;
padding: 56px 28px 86px;
border-radius: var(--shelter-radius);
background:
radial-gradient(circle at top, rgba(255,255,255,.86),
rgba(244,239,230,.76)),
linear-gradient(180deg, #f7f2e8, #ebe3d6);
border: 1px solid rgba(80,70,55,.12);
box-shadow: var(--shelter-shadow);
text-align: center;
box-sizing: border-box;
}
.shelter-kicker {
margin: 0 0 22px;
font-size: 12px;
letter-spacing: .12em;
color: var(--shelter-muted);
}
.shelter-home h1{
margin: 0 0 28px;
font-size: clamp(28px, 6vw, 42px);
font-weight: 400;
letter-spacing: .08em;
}
.shelter-lead,
.shelter-room p {
margin: 0 auto 34px;
max-width: 420px;
font-size: 16px;
line-height: 2.1;
}
.shelter-note,
.water-msg,
.lost-msg,
.small-msg {
font-size: 13px;
color: var(--shelter-muted);
}
.small-msg {
margin-top: -16px;
line-height: 1.9;
}
/* ボタン */
.shelter-buttons {
display: grid;
gap: 14px;
max-width: 320px;
margin: 0 auto 28px;
}
.shelter-buttons button,
.shelter-room button {
appearance: none;
border: 1px solid rgba(80,70,55,.16);
border-radius: 999px;
background: var(--shelter-surface);
color: #4a4238;
padding: 14px 22px;
font-size: 15px;
font-family: inherit;
cursor: pointer;
}
.shelter-buttons button:hover,
.shelter-room button:hover {
background: var(--shelter-surface-hover);
}
.backBtn {
position: absolute;
left: 28px;
bottom: 28px;
padding: 10px 18px !important;
background: rgba(255,255,255,.38) !important;
color: #8d8171 !important;
font-size: 13px !important;
}
/* ==========================
Fireplace
========================== */
.tg-fireplace {
margin: 28px auto;
text-align: center;
}
.tg-fire {
position: relative;
width: 92px;
height: 110px;
margin: 0 auto 22px;
}
.tg-fire span {
position: absolute;
left: 50%;
bottom: 0;
border-radius: 50% 50% 45% 45%;
transform-origin: bottom center;
animation: tgFireFlicker 2.8s ease-in-out infinite;
}
/* 外側の炎 */
.tg-fire span:nth-child(1) {
width: 48px;
height: 84px;
margin-left: -24px;
background: radial-gradient(
ellipse at 50% 75%,
rgba(255, 225, 160, .95) 0%,
rgba(242, 143, 55, .92) 48%,
rgba(126, 49, 20, .78) 100%
);
}
/* 中央の炎 */
.tg-fire span:nth-child(2) {
width: 36px;
height: 66px;
margin-left: -18px;
background: radial-gradient(
ellipse at 50% 80%,
rgba(255, 240, 200, .96) 0%,
rgba(255, 186, 80, .82) 65%,
rgba(255, 120, 40, .28) 100%
);
animation-delay: .5s;
}
/* 芯 */
.tg-fire span:nth-child(3) {
width: 20px;
height: 42px;
margin-left: -10px;
background: rgba(255,250,235,.95);
filter: blur(.5px);
animation-delay: 1.1s;
}
.tg-fire.is-strong span:nth-child(1) {
animation-duration: 1.8s;
transform: scale(1.08, 1.14);
}
.tg-fire.is-strong span:nth-child(2) {
animation-duration: 1.5s;
opacity: .86;
}
.tg-fire.is-strong span:nth-child(3) {
animation-duration: 1.3s;
opacity: 1;
}
.tg-spark {
position: absolute;
left: 50%;
bottom: 36px;
width: 4px;
height: 4px;
border-radius: 50%;
background: rgba(255, 205, 120, .9);
pointer-events: none;
opacity: 0;
animation: tgSparkFloat 2.8s ease-out forwards;
}
.tg-ash {
position: absolute;
left: 50%;
bottom: 42px;
width: 3px;
height: 3px;
border-radius: 50%;
background: rgba(90, 78, 68, .45);
pointer-events: none;
opacity: 0;
animation: tgAshFall 3.8s ease-in forwards;
}
@keyframes tgAshFall {
0% {
transform: translate(-50%, 0) scale(.8);
opacity: 0;
}
20% {
opacity: .45;
}
100% {
transform: translate(calc(-50% + var(--ash-x)), 48px) scale(.45);
opacity: 0;
}
}
@keyframes tgSparkFloat {
0% {
transform: translate(-50%, 0) scale(.7);
opacity: 0;
}
18% {
opacity: .9;
}
100% {
transform: translate(calc(-50% + var(--spark-x)), -72px) scale(.2);
opacity: 0;
}
}
@keyframes tgFireFlicker {
0%{
transform:translateY(0) scale(.96,1) rotate(-2deg);
opacity:.72;
}
20%{
transform:translateY(-2px) scale(1.02,1.08) rotate(2deg);
opacity:.95;
}
45%{
transform:translateY(1px) scale(.94,.94) rotate(-1deg);
opacity:.78;
}
70%{
transform:translateY(-1px) scale(1.04,1.12) rotate(3deg);
opacity:1;
}
100%{
transform:translateY(0) scale(.96,1) rotate(-2deg);
opacity:.72;
}
}
#roomFire.is-warm-glow {
background-color: rgba(255, 190, 120, .055);
}
.tg-fireplace{
display:flex;
flex-direction:column;
align-items:center;
gap:14px;
margin:28px auto;
}
#roomFire .tg-sound-btn{
display:flex;
align-items:center;
justify-content:center;
width:40px;
height:40px;
padding:0;
border:1px solid rgba(80,62,48,.18);
border-radius:50%;
background:rgba(255,255,255,.25);
color:#6b5b4e;
transition:.3s;
}
#roomFire .tg-sound-btn:hover{
background:rgba(255,255,255,.55);
}
#roomFire .tg-sound-btn svg{
width:18px;
height:18px;
}
#roomFire .tg-sound-btn.is-on{
background:rgba(255,220,170,.18);
color:#8b5b28;
}
.tg-ember {
position: absolute;
left: 50%;
bottom: 2px;
width: 58px;
height: 14px;
transform: translateX(-50%);
border-radius: 999px;
background: radial-gradient(
ellipse at center,
rgba(210, 62, 22, .62) 0%,
rgba(150, 44, 22, .34) 48%,
rgba(90, 36, 22, 0) 78%
);
filter: blur(3px);
opacity: .62;
animation: tgEmberGlow 5.8s ease-in-out infinite;
}
@keyframes tgEmberGlow {
0%, 100% {
opacity: .38;
transform: translateX(-50%) scale(.92, .86);
}
45% {
opacity: .86;
transform: translateX(-50%) scale(1.08, 1);
}
72% {
opacity: .52;
transform: translateX(-50%) scale(.98, .92);
}
}
/* タイトル */
#roomFire .room-title{
margin-bottom:16px;
font-size:.92rem;
letter-spacing:.16em;
color:#7a6d63;
opacity:.65;
}
/* 暖炉メッセージ */
.tg-fire-text{
min-height:2.6em;
max-width:28em;
margin:0 auto;
line-height:1.9;
color:#4b4037;
opacity:0;
transition:opacity 1.8s ease;
}
.tg-fire-text.is-visible{
opacity:1;
}
/* ごゆっくり */
#roomFire .small-msg {
font-size: 11px;
color: rgba(141, 129, 113, .75);
letter-spacing: .08em;
margin-top: -10px;
}
/* セーフルーム：呼吸 */
.safe-icon {
position: relative;
width: 90px;
height: 90px;
margin: 0 auto 28px;
}
.safe-icon::before {
content: "";
position: absolute;
left: 50%;
top: 50%;
width: 70px;
height: 70px;
transform: translate(-50%, -50%);
border-radius: 50%;
background: radial-gradient(
circle,
rgba(255,255,255,.72) 0%,
rgba(245,243,236,.42) 45%,
rgba(245,243,236,0) 80%
);
filter: blur(16px);
animation: safeAura 5.5s ease-in-out infinite;
}
.safe-icon::after {
content: "";
position: absolute;
left: 50%;
top: 50%;
width: 18px;
height: 18px;
transform: translate(-50%, -50%);
border-radius: 50%;
border: 1.5px solid rgba(165,160,150,.55);
animation: safePulse 5.5s ease-in-out infinite;
}
@keyframes safeAura {
0%, 100% {
transform: translate(-50%, -50%) scale(.92);
opacity: .20;
}
50% {
transform: translate(-50%, -50%) scale(1.16);
opacity: .65;
}
}
@keyframes safePulse {
0% {
width: 18px;
height: 18px;
opacity: .65;
}
65% {
width: 54px;
height: 54px;
opacity: .12;
}
100% {
width: 18px;
height: 18px;
opacity: .65;
}
}
.safe-fade-msg {
opacity: 0;
transform: translateY(8px);
transition: opacity 2.6s ease, transform 2.6s ease;
font-size: 14px !important;
color: var(--shelter-muted);
}
.safe-fade-msg.is-visible {
opacity: 1;
transform: translateY(0);
}
/* 給水所 */
.water-drop {
position: relative;
width: 72px;
height: 92px;
margin: 0 auto 24px;
}
.water-drop span {
position: absolute;
left: 50%;
bottom: 8px;
width: 34px;
height: 48px;
border-radius: 58%;
background: rgba(92, 170, 220, .42);
transform: translateX(-50%) rotate(45deg);
transform-origin: center;
animation: waterDropFloat 3.2s ease-in-out infinite;
box-shadow: 0 0 28px rgba(120, 190, 230, .16);
}
.water-drop span:nth-child(2) {
width: 44px;
height: 60px;
background: rgba(132, 198, 232, .28);
animation-delay: .45s;
}
.water-drop span:nth-child(3) {
width: 24px;
height: 34px;
background: rgba(210, 238, 250, .58);
animation-delay: .9s;
}
@keyframes waterDropFloat {
0%, 100% {
transform: translateX(-50%) translateY(0) rotate(45deg) scale(1);
opacity: .68;
}
50% {
transform: translateX(-50%) translateY(-8px) rotate(45deg) scale(1.08);
opacity: .95;
}
}
.water-msg {
min-height: 2.2em;
margin-bottom: 22px !important;
opacity: 0;
visibility: hidden;
transform: translateY(4px);
transition: opacity 1.2s ease, transform 1.2s ease, visibility 1.2s
ease;
}
.water-msg.is-visible {
opacity: 1;
visibility: visible;
transform: translateY(0);
}
/* 深夜待合室：月明かり */
.night-icon {
position: relative;
display: inline-flex;
justify-content: center;
align-items: center;
width: 90px;
height: 90px;
margin: 0 auto 24px;
font-size: 0;
}
.night-icon::before {
content: "";
position: absolute;
width: 120px;
height: 120px;
border-radius: 50%;
background: radial-gradient(
circle,
rgba(255,240,190,.65) 0%,
rgba(255,240,190,.28) 38%,
rgba(255,240,190,.10) 58%,
rgba(255,240,190,0) 80%
);
filter: blur(20px);
animation: moonGlow 7s ease-in-out infinite;
}
.night-icon::after {
content: "";
position: relative;
z-index: 2;
font-size: 46px;
animation: moonBreath 5.5s ease-in-out infinite;
}
@keyframes moonGlow {
0%, 100% {
transform: scale(.9);
opacity: .25;
}
50% {
transform: scale(1.18);
opacity: .72;
}
}
@keyframes moonBreath {
0%, 100% {
transform: translateY(0);
}
50% {
transform: translateY(-2px);
}
}
.night-room {
animation: moonRoomGlow 7s ease-in-out infinite;
}
@keyframes moonRoomGlow {
0%, 100% {
box-shadow:
0 18px 50px rgba(70,55,35,.08),
0 0 30px rgba(255,240,190,.03);
}
50% {
box-shadow:
0 18px 50px rgba(70,55,35,.08),
0 0 80px rgba(255,240,190,.12);
}
}
/* 落とし物センター */
.lost-icon {
position: relative;
width: 90px;
height: 90px;
margin: 0 auto 24px;
}
.lost-post {
position: absolute;
left: 50%;
bottom: 14px;
width: 42px;
height: 46px;
border-radius: 10px 10px 8px 8px;
background: rgba(190, 78, 68, .72);
transform: translateX(-50%);
box-shadow: 0 10px 26px rgba(120,70,55,.10);
}
.lost-privacy-note{
max-width:360px;
margin:-6px auto 22px;
font-size:10px!important;
line-height:2;
letter-spacing:.03em;
color:rgba(80,70,55,.50);
}
.lost-post::before {
content: "";
position: absolute;
left: 9px;
top: 10px;
width: 24px;
height: 12px;
border-radius: 3px;
background: rgba(255,245,225,.72);
}
.lost-post::after {
content: "";
position: absolute;
left: 15px;
bottom: -18px;
width: 12px;
height: 20px;
border-radius: 4px;
background: rgba(150,95,80,.38);
}
.lost-letter {
position: absolute;
left: 50%;
top: 8px;
width: 30px;
height: 20px;
border-radius: 4px;
background: rgba(255,248,232,.86);
border: 1px solid rgba(120,90,70,.18);
transform: translateX(-50%);
animation: letterFloat 4.8s ease-in-out infinite;
}
.lost-letter::before {
content: "";
position: absolute;
left: 5px;
top: 5px;
width: 18px;
height: 9px;
border-left: 1px solid rgba(120,90,70,.24);
border-bottom: 1px solid rgba(120,90,70,.24);
transform: rotate(-45deg);
}
@keyframes letterFloat {
0%, 100% {
transform: translateX(-50%) translateY(0) rotate(-2deg);
opacity: .78;
}
50% {
transform: translateX(-50%) translateY(8px) rotate(2deg);
opacity: 1;
}
}
.lost-input {
display: block;
width: min(360px, 100%);
margin: -10px auto 22px;
padding: 16px 18px;
border-radius: 20px;
border: 1px solid rgba(80,70,55,.14);
background: rgba(255,255,255,.48);
color: #4a4238;
font-family: inherit;
font-size: 14px;
line-height: 1.8;
box-sizing: border-box;
resize: vertical;
overflow: auto;
min-height: 250px;
max-height: 70vh;
}
.lost-input::placeholder {
color: rgba(80,70,55,.38);
}
.lost-input:focus {
outline: none;
background: rgba(255,255,255,.72);
border-color: rgba(80,70,55,.24);
}
.lost-receipt {
min-height: 5.4em;
margin-top: 20px;
opacity: 0;
transform: translateY(6px);
transition: opacity 1.4s ease, transform 1.4s ease;
}
.lost-receipt.is-visible {
opacity: 1;
transform: translateY(0);
}
.lost-receipt.is-fading {
opacity: 0;
transform: translateY(-4px);
}
.lost-item {
margin-bottom: 6px !important;
font-size: 15px !important;
color: #5b5045;
}
.lost-msg {
font-size: 12px !important;
line-height: 1.8;
color: var(--shelter-muted);
margin-bottom: 5px !important;
}
.lost-hp {
display: none !important;
}
/* 東屋 */
.azumaya-icon {
position: relative;
display: inline-flex;
justify-content: center;
align-items: center;
width: 90px;
height: 90px;
margin: 0 auto 24px;
font-size: 0;
}
.azumaya-icon::before {
content: "";
position: relative;
z-index: 2;
font-size: 42px;
animation: leafFloat 6.5s ease-in-out infinite;
}
.azumaya-icon::after {
content: "";
position: absolute;
width: 90px;
height: 90px;
border-radius: 50%;
background: radial-gradient(
circle,
rgba(175,205,150,.28) 0%,
rgba(175,205,150,.10) 45%,
rgba(175,205,150,0) 80%
);
filter: blur(16px);
animation: leafGlow 6.5s ease-in-out infinite;
}
@keyframes leafFloat {
0%, 100% {
transform: translateX(0) translateY(0) rotate(-6deg);
}
25% {
transform: translateX(3px) translateY(-2px) rotate(-2deg);
}
50% {
transform: translateX(7px) translateY(-5px) rotate(5deg);
}
75% {
transform: translateX(2px) translateY(-1px) rotate(1deg);
}
}
@keyframes leafGlow {
0%, 100% {
transform: scale(.92);
opacity: .18;
}
50% {
transform: scale(1.15);
opacity: .45;
}
}
.azumaya-fade-msg {
opacity: 0;
transform: translateY(8px);
transition: opacity 2.8s ease, transform 2.8s ease;
font-size: 16px !important;
color: #5b5045;
}
.azumaya-fade-msg.is-visible {
opacity: 1;
transform: translateY(0);
}
/* iPhone */
@media (max-width: 600px) {
.shelter-wrap {
max-width:100%;
margin: 16px auto;
padding:0 6px;
}
.shelter-home,
.shelter-room {
min-height: 500px;
padding: 40px 16px 72px;
border-radius: 20px;
}
.backBtn {
left: 20px;
bottom: 20px;
}
}


.shelter-wrap [hidden] {
  display: none !important;
}

.shelter-wrap *,
.shelter-wrap *::before,
.shelter-wrap *::after {
  box-sizing: border-box;
}

.shelter-wrap button {
  transition:
    background-color .22s ease,
    border-color .22s ease,
    color .22s ease,
    opacity .22s ease,
    transform .22s ease;
}

.shelter-wrap button:active {
  transform: translateY(1px);
}

.shelter-wrap button:focus-visible,
.shelter-wrap textarea:focus-visible {
  outline: 2px solid rgba(106,125,137,.55);
  outline-offset: 3px;
}

.shelter-wrap button:disabled {
  cursor: wait;
  opacity: .55;
}

.shelter-room[aria-hidden="true"],
.shelter-home[aria-hidden="true"] {
  display: none !important;
}

.shelter-status {
  min-height: 1.8em;
}

@media (prefers-reduced-motion: reduce) {
  .shelter-wrap *,
  .shelter-wrap *::before,
  .shelter-wrap *::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .001ms !important;
  }
}

@media (max-width: 600px) {
  .lost-input {
    min-height: 210px;
  }
}

</style>

<script data-wp-block-html="js">
(() => {
  "use strict";

  const ROOT_ID = "shelterHome";

  function initShelter() {
    const home = document.getElementById(ROOT_ID);
    const wrap = home?.closest(".shelter-wrap");

    if (!home || !wrap || wrap.dataset.initialized === "true") {
      return;
    }

    wrap.dataset.initialized = "true";

    const rooms = {
      fire: document.getElementById("roomFire"),
      safe: document.getElementById("roomSafe"),
      water: document.getElementById("roomWater"),
      night: document.getElementById("roomNight"),
      lost: document.getElementById("roomLost"),
      azumaya: document.getElementById("roomAzumaya")
    };

    if (Object.values(rooms).some((room) => !room)) {
      console.warn("[一時避難所] 必要な部屋要素が見つかりません。");
      return;
    }

    const state = {
      currentRoom: "home",
      safeTimer: null,
      azumayaTimer: null,
      fireTimers: new Set(),
      fireRunning: false,
      fireEnteredAt: 0,
      lastFireLine: "",
      waterCount: 0,
      lastWaterMessage: "",
      lostTimer: null
    };

    const prefersReducedMotion = window.matchMedia("(prefers-reduced-motion: reduce)").matches;

    const scrollTop = () => {
      window.scrollTo({
        top: 0,
        behavior: prefersReducedMotion ? "auto" : "smooth"
      });
    };

    const setTimer = (callback, delay, group = "general") => {
      const id = window.setTimeout(() => {
        if (group === "fire") {
          state.fireTimers.delete(id);
        }
        callback();
      }, delay);

      if (group === "fire") {
        state.fireTimers.add(id);
      }

      return id;
    };

    const clearTimer = (id) => {
      if (id) {
        window.clearTimeout(id);
      }
    };

    const clearFireTimers = () => {
      state.fireTimers.forEach((id) => window.clearTimeout(id));
      state.fireTimers.clear();
      state.fireRunning = false;
    };

    const setVisible = (element, visible) => {
      element.hidden = !visible;
      element.setAttribute("aria-hidden", visible ? "false" : "true");
    };

    const hideAllRooms = () => {
      Object.values(rooms).forEach((room) => setVisible(room, false));
    };

    const stopFireAudio = () => {
      fireAudio.pause();
      fireAudio.currentTime = 0;
      updateSoundButton(false);
    };

    const leaveCurrentRoom = () => {
      clearTimer(state.safeTimer);
      clearTimer(state.azumayaTimer);
      state.safeTimer = null;
      state.azumayaTimer = null;

      document.getElementById("safeFadeMsg")?.classList.remove("is-visible");
      document.getElementById("azumayaFadeMsg")?.classList.remove("is-visible");

      if (state.currentRoom === "fire") {
        clearFireTimers();
        stopFireAudio();
      }
    };

    const openRoom = (roomName) => {
      if (!rooms[roomName]) return;

      leaveCurrentRoom();
      setVisible(home, false);
      hideAllRooms();
      setVisible(rooms[roomName], true);
      state.currentRoom = roomName;
      scrollTop();

      if (roomName === "fire") {
        startFireExperience();
      }

      if (roomName === "safe") {
        const message = document.getElementById("safeFadeMsg");
        message?.classList.remove("is-visible");
        state.safeTimer = setTimer(() => message?.classList.add("is-visible"), 2600);
      }

      if (roomName === "azumaya") {
        const message = document.getElementById("azumayaFadeMsg");
        message?.classList.remove("is-visible");
        state.azumayaTimer = setTimer(() => message?.classList.add("is-visible"), 2200);
      }
    };

    const returnHome = () => {
      leaveCurrentRoom();
      hideAllRooms();
      setVisible(home, true);
      state.currentRoom = "home";
      scrollTop();
    };

    wrap.querySelectorAll("[data-room]").forEach((button) => {
      button.addEventListener("click", () => openRoom(button.dataset.room));
    });

    wrap.querySelectorAll(".backBtn").forEach((button) => {
      button.addEventListener("click", returnHome);
    });

    /* -----------------------------------------
     * 暖炉
     * -------------------------------------- */

    const fire = wrap.querySelector(".tg-fire");
    const fireText = document.getElementById("tgFireText");
    const roomFire = rooms.fire;
    const fireSoundBtn = document.getElementById("fireSoundBtn");

    const earlyLines = [
      "パチッ",
      "小さく火の粉が舞いました。",
      "薪が静かに鳴りました。",
      "灰が少し落ちました。",
      "炎が少し高くなりました。",
      "オレンジ色が少し濃くなりました。",
      "炎の形が変わりました。",
      "木の香りがする気がしました。",
      "火がゆっくり揺れています。",
      "暖かい空気が少し流れました。"
    ];

    const middleLines = [
      "炎はまだ静かに燃えています。",
      "部屋は変わらず静かです。",
      "火は急ぎません。",
      "灰が少し積もりました。",
      "また、小さく音がしました。",
      "炎は同じようで、少し違います。",
      "赤い熾火が見えました。",
      "光が壁に揺れています。",
      "部屋の空気が少し柔らかく感じられます。"
    ];

    const lateLines = [
      "火はまだここにあります。",
      "少しだけ時間が過ぎました。",
      "外のことは分かりません。",
      "炎は変わらず燃えています。",
      "ここでは時計はあまり役に立ちません。"
    ];

    const iconOff = `
      <svg aria-hidden="true" width="18" height="18" fill="none" stroke="currentColor"
        stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"
        viewBox="0 0 24 24">
        <polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon>
        <line x1="23" y1="9" x2="17" y2="15"></line>
        <line x1="17" y1="9" x2="23" y2="15"></line>
      </svg>`;

    const iconOn = `
      <svg aria-hidden="true" width="18" height="18" fill="none" stroke="currentColor"
        stroke-width="1.8" stroke-linecap="round" stroke-linejoin="round"
        viewBox="0 0 24 24">
        <polygon points="11 5 6 9 2 9 2 15 6 15 11 19 11 5"></polygon>
        <path d="M15.5 8.5a5 5 0 0 1 0 7"></path>
        <path d="M18.5 5.5a9 9 0 0 1 0 13"></path>
      </svg>`;

    const fireAudio = new Audio(
      "https://tranquilguides.com/wp-content/uploads/2026/06/freesound_community-aachen_burning-fireplace-crackling-fire-soundswav-14561.mp3"
    );

    fireAudio.loop = true;
    fireAudio.preload = "none";
    fireAudio.volume = 0.15;

    const updateSoundButton = (isOn) => {
      if (!fireSoundBtn) return;

      fireSoundBtn.innerHTML = isOn ? iconOn : iconOff;
      fireSoundBtn.classList.toggle("is-on", isOn);
      fireSoundBtn.setAttribute("aria-pressed", isOn ? "true" : "false");
      fireSoundBtn.setAttribute("aria-label", isOn ? "暖炉の音を消す" : "暖炉の音をつける");
    };

    updateSoundButton(false);

    fireSoundBtn?.addEventListener("click", async () => {
      if (fireAudio.paused) {
        try {
          await fireAudio.play();
          updateSoundButton(true);
        } catch (error) {
          console.warn("[一時避難所] 暖炉音を再生できませんでした。", error);
          updateSoundButton(false);
        }
      } else {
        stopFireAudio();
      }
    });

    const randomDelay = (min, max) =>
      Math.floor(Math.random() * (max - min + 1)) + min;

    const pickDifferent = (items, previous) => {
      if (items.length < 2) return items[0] || "";

      let next = items[Math.floor(Math.random() * items.length)];

      while (next === previous) {
        next = items[Math.floor(Math.random() * items.length)];
      }

      return next;
    };

    const getFirePhase = () => {
      const stayed = Date.now() - state.fireEnteredAt;

      if (stayed < 80000) {
        return { lines: earlyLines, min: 12000, max: 28000, silentRate: 0 };
      }

      if (stayed < 120000) {
        return {
          lines: [...earlyLines, ...middleLines],
          min: 18000,
          max: 40000,
          silentRate: 0
        };
      }

      if (stayed < 240000) {
        return { lines: middleLines, min: 25000, max: 55000, silentRate: 0.1 };
      }

      if (stayed < 300000) {
        return {
          lines: [...middleLines, ...lateLines],
          min: 35000,
          max: 70000,
          silentRate: 0.1
        };
      }

      return { lines: lateLines, min: 45000, max: 90000, silentRate: 0.1 };
    };

    const scheduleFireLine = () => {
      if (!state.fireRunning || !fireText) return;

      const phase = getFirePhase();
      const delay = randomDelay(phase.min, phase.max);

      setTimer(() => {
        if (!state.fireRunning) return;

        fireText.classList.remove("is-visible");

        setTimer(() => {
          if (!state.fireRunning) return;

          if (Math.random() < phase.silentRate) {
            fireText.textContent = "";
          } else {
            state.lastFireLine = pickDifferent(phase.lines, state.lastFireLine);
            fireText.textContent = state.lastFireLine;
          }

          fireText.classList.add("is-visible");
          scheduleFireLine();
        }, 1200, "fire");
      }, delay, "fire");
    };

    const scheduleFireFlare = () => {
      if (!state.fireRunning || !fire) return;

      setTimer(() => {
        if (!state.fireRunning) return;

        fire.classList.add("is-strong");
        setTimer(() => fire.classList.remove("is-strong"), 4200, "fire");
        scheduleFireFlare();
      }, randomDelay(30000, 100000), "fire");
    };

    const scheduleParticle = (className, cssProperty, range, lifetime, min, max) => {
      if (!state.fireRunning || !fire) return;

      setTimer(() => {
        if (!state.fireRunning) return;

        const particle = document.createElement("span");
        particle.className = className;
        particle.style.setProperty(
          cssProperty,
          `${randomDelay(-range, range)}px`
        );

        fire.appendChild(particle);
        setTimer(() => particle.remove(), lifetime, "fire");
        scheduleParticle(className, cssProperty, range, lifetime, min, max);
      }, randomDelay(min, max), "fire");
    };

    const scheduleWarmGlow = () => {
      if (!state.fireRunning || !roomFire) return;

      setTimer(() => {
        if (!state.fireRunning) return;

        roomFire.classList.add("is-warm-glow");
        setTimer(() => roomFire.classList.remove("is-warm-glow"), 5200, "fire");
        scheduleWarmGlow();
      }, randomDelay(40000, 140000), "fire");
    };

    function startFireExperience() {
      clearFireTimers();
      state.fireRunning = true;
      state.fireEnteredAt = Date.now();
      state.lastFireLine = "";

      if (fireText) {
        fireText.textContent = "火がついています。";
        fireText.classList.add("is-visible");
      }

      setTimer(scheduleFireLine, 15000, "fire");
      scheduleFireFlare();
      scheduleParticle("tg-spark", "--spark-x", 25, 3000, 15000, 120000);
      scheduleParticle("tg-ash", "--ash-x", 22, 4200, 25000, 165000);
      scheduleWarmGlow();
    }

    /* -----------------------------------------
     * セーフルーム・給水所・夜・東屋
     * -------------------------------------- */

    const waterMessages = [
      "水が通っただけで、少し戻ってきています。",
      "それだけで十分です。",
      "もう一口いけたら、それも十分です。",
      "身体が、少し思い出したかもしれません。",
      "今日はここまででも大丈夫です。",
      "えらくなくていいです。飲めた、で終わりです。"
    ];

    const waterBtn = document.getElementById("waterBtn");
    const waterMsg = document.getElementById("waterMsg");

    waterBtn?.addEventListener("click", () => {
      const message =
        state.waterCount === 0
          ? waterMessages[0]
          : pickDifferent(waterMessages, state.lastWaterMessage);

      state.lastWaterMessage = message;
      state.waterCount += 1;
      waterMsg.textContent = message;
      waterMsg.classList.add("is-visible");
    });

    const nightMessages = [
      "朝にならなくても、ここは開いています。",
      "眠れないままでも、今はここにいて大丈夫です。",
      "考えごとは、少し遠くに置いておきましょう。",
      "夜が長い日は、短い言葉だけで十分です。",
      "目を閉じなくても、休んでいる時間はあります。"
    ];

    let lastNightMessage = "";
    document.getElementById("nightBtn")?.addEventListener("click", () => {
      lastNightMessage = pickDifferent(nightMessages, lastNightMessage);
      document.getElementById("nightMsg").textContent = lastNightMessage;
    });

    const azumayaMessages = [
      "今日は雲がゆっくりです。",
      "鳥が一羽、通りました。",
      "少しだけ、雨の匂いがします。",
      "木陰があります。",
      "今日は誰もいません。",
      "何も変えなくても、風は通ります。"
    ];

    let lastAzumayaMessage = "";
    document.getElementById("azumayaBtn")?.addEventListener("click", () => {
      lastAzumayaMessage = pickDifferent(azumayaMessages, lastAzumayaMessage);
      document.getElementById("azumayaMsg").textContent = lastAzumayaMessage;
    });

    /* -----------------------------------------
     * 落とし物センター
     * -------------------------------------- */

    const detectOS = () => {
      const ua = navigator.userAgent;
      const platform = navigator.platform;

      if (/iPhone/.test(ua)) return "iPhone";
      if (/iPad/.test(ua) || (platform === "MacIntel" && navigator.maxTouchPoints > 1)) return "iPad";
      if (/Android/.test(ua)) return "Android";
      if (/Win/.test(platform)) return "Windows";
      if (/Mac/.test(platform)) return "macOS";
      if (/Linux/.test(platform)) return "Linux";

      return platform || "不明";
    };

    const detectBrowser = () => {
      const ua = navigator.userAgent;
      const patterns = [
        ["Microsoft Edge", /Edg\/([\d.]+)/],
        ["Chrome", /CriOS\/([\d.]+)/],
        ["Chrome", /Chrome\/([\d.]+)/],
        ["Firefox", /Firefox\/([\d.]+)/],
        ["Safari", /Version\/([\d.]+).*Safari/]
      ];

      for (const [name, pattern] of patterns) {
        const match = ua.match(pattern);
        if (match) return `${name} ${match[1]}`;
      }

      return "不明";
    };

    const detectReferrer = () => {
      if (!document.referrer) return "直接アクセス";

      try {
        const host = new URL(document.referrer).hostname;

        if (host.includes("google")) return "Google";
        if (host.includes("threads")) return "Threads";
        if (host.includes("x.com") || host.includes("twitter")) return "X";
        if (host.includes("facebook")) return "Facebook";
        if (host.includes("instagram")) return "Instagram";

        return host;
      } catch {
        return document.referrer;
      }
    };

    const setHiddenValue = (id, value) => {
      const element = document.getElementById(id);
      if (element) element.value = value || "不明";
    };

    setHiddenValue("lostUserAgent", detectBrowser());
    setHiddenValue("lostLanguage", navigator.language);
    setHiddenValue("lostScreen", `${window.screen.width}×${window.screen.height}`);
    setHiddenValue("lostPlatform", detectOS());
    setHiddenValue("lostReferrer", detectReferrer());

    const lostBtn = document.getElementById("lostBtn");
    const lostInput = document.getElementById("lostInput");
    const lostReceipt = document.getElementById("lostReceipt");
    const lostItem = document.getElementById("lostItem");
    const lostMsg = document.getElementById("lostMsg");

    const showLostReceipt = (item, message) => {
      clearTimer(state.lostTimer);
      lostReceipt.classList.remove("is-visible", "is-fading");
      lostItem.textContent = item ? `「${item}」` : "";
      lostMsg.textContent = message;

      requestAnimationFrame(() => {
        lostReceipt.classList.add("is-visible");
      });

      state.lostTimer = setTimer(() => {
        lostReceipt.classList.add("is-fading");
      }, 5200);
    };

    lostBtn?.addEventListener("click", async () => {
      const value = lostInput.value.trim();
      const hp = document.getElementById("lostHp")?.value || "";

      if (!value) {
        showLostReceipt("", "預けたいものを、ひとつだけ書いてください。");
        lostInput.focus();
        return;
      }

      lostBtn.disabled = true;
      lostBtn.setAttribute("aria-busy", "true");

      try {
        const response = await fetch(
          window.ajaxurl || "/wp-admin/admin-ajax.php",
          {
            method: "POST",
            credentials: "same-origin",
            headers: {
              "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8"
            },
            body: new URLSearchParams({
              action: "tg_submit_lost_item",
              lost_item: value,
              lost_hp: hp,
              lost_user_agent: document.getElementById("lostUserAgent")?.value || "不明",
              lost_language: document.getElementById("lostLanguage")?.value || "不明",
              lost_screen: document.getElementById("lostScreen")?.value || "不明",
              lost_platform: document.getElementById("lostPlatform")?.value || "不明",
              lost_referrer: document.getElementById("lostReferrer")?.value || ""
            })
          }
        );

        if (!response.ok) {
          throw new Error(`HTTP ${response.status}`);
        }

        const data = await response.json();
        const message =
          data?.data?.message ||
          (data?.success
            ? "お預かりしました。"
            : "お預かりできませんでした。");

        if (data?.success) {
          lostInput.value = "";
        }

        showLostReceipt(value, message);
      } catch (error) {
        console.warn("[一時避難所] 落とし物の送信に失敗しました。", error);
        showLostReceipt(
          "",
          "ただいま混み合っております。少し時間をおいてから、もう一度いらしてください。"
        );
      } finally {
        lostBtn.disabled = false;
        lostBtn.removeAttribute("aria-busy");
      }
    });

    document.addEventListener("visibilitychange", () => {
      if (document.hidden) {
        if (state.currentRoom === "fire") {
          clearFireTimers();
          stopFireAudio();
        }
      } else if (state.currentRoom === "fire" && !state.fireRunning) {
        startFireExperience();
      }
    });

    window.addEventListener("pagehide", () => {
      clearFireTimers();
      stopFireAudio();
      clearTimer(state.safeTimer);
      clearTimer(state.azumayaTimer);
      clearTimer(state.lostTimer);
    }, { once: true });
  }

  if (document.readyState === "loading") {
    document.addEventListener("DOMContentLoaded", initShelter, { once: true });
  } else {
    initShelter();
  }
})();
</script>

<div class="shelter-wrap">
<section class="shelter-home" id="shelterHome" aria-hidden="false">
<p class="shelter-kicker">Tranquilvæj Public Space</p>
<h1>一時避難所</h1>
<p class="shelter-lead">
頭が痛い日。<br>
何もしたくない日。<br>
少しだけ、ここで休んでいきませんか。
</p>
<div class="shelter-buttons">
<button type="button" data-room="fire">暖炉</button>
<button type="button" data-room="safe">セーフルーム</button>
<button type="button" data-room="water">給水所</button>
<button type="button" data-room="night">深夜待合室</button>
<button type="button" data-room="lost">落とし物センター</button>
<button type="button" data-room="azumaya">
<ruby>東屋<rt>あずまや</rt></ruby></button>
</div>
<p class="shelter-note">途中で閉じても大丈夫ですよ。</p>
</section>
<section class="shelter-room" id="roomFire" hidden aria-hidden="true">
<div class="tg-fireplace">
<div class="tg-fire" aria-hidden="true">
<span></span>
<span></span>
<span></span>
<i class="tg-ember" aria-hidden="true"></i>
</div>
<p class="room-title">暖炉</p>
<p class="tg-fire-text is-visible" id="tgFireText">
火がついています。
</p>
<button type="button" class="tg-sound-btn" id="fireSoundBtn"
aria-label="暖炉の音をつける">
</button>
<p class="small-msg">
ごゆっくり
</p>
</div>
<button type="button" class="backBtn">
ロビーへ
</button>
</section>
<section class="shelter-room" id="roomSafe" hidden aria-hidden="true">
<div class="safe-icon"></div>
<p class="room-title">セーフルーム</p>
<p>ここでは何もしなくて大丈夫です。</p>
<p class="safe-fade-msg" id="safeFadeMsg">
気が向いたら、深呼吸をしてみましょう。
</p>
<button type="button" class="backBtn">ロビーへ</button>
</section>
<section class="shelter-room" id="roomWater" hidden aria-hidden="true">
<div class="water-drop" aria-hidden="true">
<span></span><span></span><span></span>
</div>
<p class="room-title">給水所</p>
<p>水をひとくち、飲めそうですか。</p>
<p id="waterMsg" class="water-msg">それだけで十分です。</p>
<button type="button" id="waterBtn">飲めた</button>
<button type="button" class="backBtn">ロビーへ</button>
</section>
<section class="shelter-room night-room" id="roomNight" hidden aria-hidden="true">
<div class="night-icon"></div>
<p class="room-title">深夜待合室</p>
<p>眠れない夜は、ここにいてもいいですよ。</p>
<p class="small-msg"
id="nightMsg">朝にならなくても、ここは開いています。</p>
<button type="button" id="nightBtn">もう一言</button>
<button type="button" class="backBtn">ロビーへ</button>
</section>
<section class="shelter-room" id="roomLost" hidden aria-hidden="true">
<div class="lost-icon" aria-hidden="true">
<span class="lost-post"></span>
<span class="lost-letter"></span>
</div>
<p class="room-title">落とし物センター</p>
<p>今日、どこかに置いていきたいものはありますか。</p>
<textarea id="lostInput" class="lost-input" rows="8"
placeholder="落とし物：
（例：やる気、誰かとお話しする元気 など）
覚えていることを、ひとつだけ教えてください。
もし差し支えなければ
年代・性別：
落とし主様：
"></textarea>
<input type="hidden" id="lostUserAgent">
<input type="hidden" id="lostLanguage">
<input type="hidden" id="lostScreen">
<input type="hidden" id="lostPlatform">
<input type="hidden" id="lostReferrer">
<p class="lost-privacy-note">
ここに預けたものは匿名で管理人に届きます。また、名前のない落とし物として紹介する場合がございます。あらかじめご了承ください。
</p>
<input type="text" id="lostHp" class="lost-hp" autocomplete="off"
tabindex="-1">
<button type="button" id="lostBtn">預ける</button>
<div id="lostReceipt" class="lost-receipt shelter-status" role="status" aria-live="polite" aria-atomic="true">
<p id="lostItem" class="lost-item"></p>
<p id="lostMsg" class="lost-msg"></p>
</div>
<button type="button" class="backBtn">ロビーへ</button>
</section>
<section class="shelter-room" id="roomAzumaya" hidden aria-hidden="true">
<div class="azumaya-icon"></div>
<p class="room-title">
<ruby>東屋<rt>あずまや</rt></ruby>
</p>
<p class="azumaya-fade-msg" id="azumayaFadeMsg">
風が通っています。
</p>
<p class="small-msg" id="azumayaMsg">
少しだけ、ここで景色を眺めていきましょう。
</p>
<button type="button" id="azumayaBtn">もう少し眺める</button>
<button type="button" class="backBtn">ロビーへ</button>
</section>
</div>

<style data-wp-block-html="css">
.p-fixBtnWrap {
border-radius: 999px !important;
overflow: hidden !important;
border: 0 !important;
background:
radial-gradient(
circle at 50% 50%,
rgba(255,255,255,.00) 0%,
rgba(255,255,255,.02) 58%,
rgba(255,255,255,.12) 100%
) !important;
backdrop-filter: blur(.3px) saturate(135%) contrast(108%)
brightness(106%);
-webkit-backdrop-filter: blur(.3px) saturate(135%) contrast(108%)
brightness(106%);
box-shadow:
inset 2px 2px 2px rgba(255,255,255,.55),
inset 0 0 14px rgba(255,255,255,.28),
0 3px 8px rgba(0,0,0,.03) !important;
}
.p-fixBtnWrap::before {
content: "";
position: absolute;
inset: 1px;
border-radius: 999px;
pointer-events: none;
background:
linear-gradient(
145deg,
rgba(255,255,255,.75) 0%,
rgba(255,255,255,.28) 18%,
rgba(255,255,255,0) 42%
);
mix-blend-mode: screen;
opacity: .65;
}
.p-fixBtnWrap:hover {
background: #2f4f4f !important;
box-shadow: none !important;
}
.c-fixBtn__icon {
color: #2f2f2f !important;
text-shadow: none !important;
-webkit-text-stroke: 0 !important;
}
.p-fixBtnWrap:hover .c-fixBtn__icon {
color: #fff !important;
}
.p-fixBtnWrap a,
.p-fixBtnWrap button,
.p-fixBtnWrap [class*="fixBtn"],
.p-fixBtnWrap [class*="icon"] {
border: 0 !important;
outline: 0 !important;
box-shadow: none !important;
background: transparent !important;
}
.p-fixBtnWrap {
width: 52px !important;
height: 52px !important;
position: fixed !important;
display: block !important;
transition:
width .22s ease,
background-color .18s ease,
box-shadow .18s ease !important;
}
.p-fixBtnWrap .c-fixBtn__icon {
position: absolute !important;
top: 50% !important;
left: 50% !important;
transform: translate(-50%, -50%) !important;
z-index: 2;
}
.p-fixBtnWrap::after {
content: "Page top";
position: absolute;
top: 50%;
left: 54px;
transform: translateY(-55%);
z-index: 2;
opacity: 0;
max-width: 0;
overflow: hidden;
white-space: nowrap;
height: 24px;
line-height: 24px;
font-size: 14px;
letter-spacing: .03em;
color: #fff;
transition:
opacity .15s ease,
max-width .22s ease;
}
.p-fixBtnWrap:hover {
width: 132px !important;
}
.p-fixBtnWrap:hover .c-fixBtn__icon {
left: 28px !important;
}
.p-fixBtnWrap:hover::after {
opacity: 1;
max-width: 80px;
}
</style>
]]></content:encoded>
					
					<wfw:commentRss>https://tranquilguides.com/temporary-shelter/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		<enclosure url="https://tranquilguides.com/wp-content/uploads/2026/06/freesound_community-aachen_burning-fireplace-crackling-fire-soundswav-14561.mp3" length="14280960" type="audio/mpeg" />

		<post-id xmlns="com-wordpress:feed-additions:1">1174</post-id>	</item>
		<item>
		<title>ただいまセンター</title>
		<link>https://tranquilguides.com/tadaima/</link>
					<comments>https://tranquilguides.com/tadaima/#respond</comments>
		
		<dc:creator><![CDATA[案内人のアシカ]]></dc:creator>
		<pubDate>Wed, 24 Jun 2026 05:52:26 +0000</pubDate>
				<category><![CDATA[生存ログ]]></category>
		<category><![CDATA[ただいま]]></category>
		<category><![CDATA[休息]]></category>
		<category><![CDATA[安心]]></category>
		<category><![CDATA[対話]]></category>
		<category><![CDATA[居場所]]></category>
		<category><![CDATA[日常]]></category>
		<category><![CDATA[道具]]></category>
		<category><![CDATA[静寂]]></category>
		<guid isPermaLink="false">https://tranquilguides.com/?p=1095</guid>

					<description><![CDATA[<p><img src="https://i0.wp.com/tranquilguides.com/wp-content/uploads/2026/07/d329f704-5b8f-4a7f-a58a-fdcb2f6f26e5.jpg?fit=1024%2C683&ssl=1" class="webfeedsFeaturedVisual" /></p>何も起きていない日にも、帰る場所があっていい。理由や説明がなくても、いまの気持ちと一緒に「ただいま」と言える小さなセンターです。]]></description>
										<content:encoded><![CDATA[<p><img src="https://i0.wp.com/tranquilguides.com/wp-content/uploads/2026/07/d329f704-5b8f-4a7f-a58a-fdcb2f6f26e5.jpg?fit=1024%2C683&ssl=1" class="webfeedsFeaturedVisual" /></p>
<style data-wp-block-html="css">
.tadaima-center {
 min-height: 100svh;
 padding: 20px 0;
 display: flex;
 align-items: center;
 justify-content: center;
 background: transparent;
 color: #2d2a26;
 font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
}

.tadaima-inner {
 width: min(900px, calc(100vw - 40px));
 text-align: center;
 padding: clamp(24px, 5vw, 56px);
 border-radius: 36px;
 background:
 radial-gradient(circle at top, rgba(255,255,255,.82), rgba(255,255,255,.46) 58%),
 linear-gradient(180deg, rgba(247,243,234,.88), rgba(235,228,216,.82));
 border: 1px solid rgba(80,70,55,.12);
 box-shadow: 0 28px 90px rgba(70,55,35,.13);
 backdrop-filter: blur(18px) saturate(130%);
 -webkit-backdrop-filter: blur(18px) saturate(130%);
 box-sizing: border-box;
}

.tadaima-lead {
 margin: 0 auto 28px;
 font-size: clamp(15px, 3.8vw, 18px);
 line-height: 2.1;
 opacity: .82;
}

.tadaima-main-btn {
 margin: 0 auto 16px; /* 32px24px */
 width: min(250px, 75%);
 padding: 16px 22px;
 border-radius: 999px;
 border: 1px solid rgba(60,52,42,.22);
 background: rgba(255,255,255,.72);
 color: #2d2a26;
 font-size: 18px;
 letter-spacing: .14em;
 font-family: inherit;
 cursor: pointer;
 box-shadow: 0 14px 36px rgba(70,55,35,.12);
 transition: transform .25s ease, box-shadow .25s ease, background .25s ease;
}

.tadaima-main-btn:hover {
 transform: scale(1.035);
 background: rgba(255,255,255,.9);
 box-shadow: 0 18px 48px rgba(70,55,35,.16);
}

.tadaima-buttons {
 display: grid;
 grid-template-columns: repeat(2, minmax(0, 1fr));
 gap: 10px 12px;
 width: min(560px, 100%);
 margin: 0 auto 34px;
}

.tadaima-buttons button {
 width: 100%;
 min-height: 48px;
 padding: 10px 12px;
 border-radius: 999px;
 border: 1px solid rgba(60,52,42,.11);
 background: rgba(255,255,255,.48);
 color: #3a342e;
 font-family: inherit;
 font-size: 15px;
 line-height: 1.4;
 letter-spacing: .04em;
 cursor: pointer;
 box-shadow: 0 8px 22px rgba(70,55,35,.06);
 transition: background .25s ease, transform .25s ease, box-shadow .25s ease;
}

.tadaima-buttons button:hover {
 background: rgba(255,255,255,.78);
 transform: translateY(-1px);
 box-shadow: 0 10px 26px rgba(70,55,35,.09);
}

.tadaima-result {
 width: min(680px, 100%);
 min-height: 190px;
 max-height: 190px;
 overflow-y: auto;
 padding: 18px 22px; /* 30px 32px  18px 22px */
 margin: 0 auto 20px; /* 32px  20px */
 border-radius: 28px;
 background: rgba(255,255,255,.38);
 border: 1px solid rgba(60,52,42,.08);
 display: flex;
 align-items: center;
 justify-content: center;
 box-sizing: border-box;
}

.tadaima-result p {
 margin: 0;
 width: 100%;
 text-align: left;
 font-size: clamp(16px, 3vw, 20px);
 line-height: 1.85; /* 2.05  1.85 */
}

.tadaima-title {
 margin: 72px 0 0;
 padding: 0;
 border: 0;
 background: transparent;
 color: inherit;
 font-family: inherit;
 font-size: clamp(20px, 3vw, 28px);
 font-weight: 400;
 letter-spacing: .18em;
 line-height: 1.8;
 opacity: .58;
 cursor: pointer;
}

@media (max-width: 600px) {
 .tadaima-center {
 padding: 20px 0;
 }

 .tadaima-inner {
 width: min(100%, calc(100vw - 24px));
 border-radius: 28px;
 }

 .tadaima-buttons {
 grid-template-columns: repeat(2, minmax(0, 1fr));
 width: 100%;
 gap: 9px;
 }

 .tadaima-buttons button {
 width: 100%;
 min-height: 44px;
 min-width: 0;
 padding: 9px 10px;
 font-size: 13px;
 }

 .tadaima-lead {
 margin-bottom: 24px;
 }

 .tadaima-title {
 margin-top: 56px;
 }

 .tadaima-result {
 width: 100%;
 min-height: 160px;
 padding: 26px 22px;
 }

}

.tadaima-center,
.tadaima-center *,
.tadaima-center *::before,
.tadaima-center *::after {
  box-sizing: border-box;
}

.tadaima-main-btn:focus-visible,
.tadaima-buttons button:focus-visible,
.tadaima-title:focus-visible {
  outline: 2px solid rgba(106,125,137,.55);
  outline-offset: 3px;
}

.tadaima-result p {
  opacity: 1;
  transform: translateY(0);
  transition: opacity .28s ease, transform .28s ease;
}

.tadaima-result.is-updating p {
  opacity: 0;
  transform: translateY(4px);
}

@media (prefers-reduced-motion: reduce) {
  .tadaima-center *,
  .tadaima-center *::before,
  .tadaima-center *::after,
  .p-fixBtnWrap,
  .p-fixBtnWrap::after {
    animation-duration: .001ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .001ms !important;
    scroll-behavior: auto !important;
  }
}
</style>

<script data-wp-block-html="js">
(function () {
 function ready(fn) {
 if (document.readyState !== "loading") {
 fn();
 } else {
 document.addEventListener("DOMContentLoaded", fn);
 }
 }

 ready(function () {
const tadaimaMessages = [
  "おかえり。今日もお疲れ様でした。",
  "おかえり。今日もよく頑張りましたね。",
  "おかえり。会いたかったよ。",
  "おかえりなさい。理由がなくても、帰ってきていい場所です。",
  "おかえりなさい。今日はもう、それだけで十分です。",
  "おかえり。何も説明しなくて大丈夫です。",
  "戻ってきたことを、ここに記録しました。",
  "おかえり。世界の続きは、少しあとでもいいです。",
  "はい、います。あなたのただいまを聞きました。",
  "おかえり。今日はここにいてください。"
];

 const moodMessages = {
sleepy: [
  "眠いですね。今日は世界が少し雑だったみたい。",
  "眠気は、身体からの手紙みたいなものです。",
  "それなら、無理に頭を使うより寝た方が効率がいい状態かもしれない。おやすみ。",
  "もし今すぐ寝られないなら、お水を1杯飲みませんか。",
  "眠いよね。今日は少しだけ小さく過ごそうね。"
],

phone: [
  "誰にでも電話したい日はあります。話したいことがなくても。",
  "誰かの声に触れたい日ですね。",
  "私もあなたと電話したかった。伝えてくれてありがとう。",
  "今日は文字より声なのかもしれないね。",
  "何も話さなくても電話したい時ってあるよね。"
],

voice: [
  "誰かの声が聞きたい日もあります。話したいことがなくても。",
  "用事がなくても、声に会いたい日もあるよね。",
  "その気持ちはよくあるものです。",
  "おかえり。今日はどんな一日だった？　長く話そうとしなくて大丈夫です。一言でもいいです。",
  "私もあなたの声が聞きたい。あなたと繋がっていたい。"
],

blank: [
  "ぼーっとしてください。そのために来たのですから。",
  "何もしない時間は、何もしていないわけではありません。",
  "温かい飲み物をゆっくり飲みませんか。",
  "気が向いたら外を10分だけ歩いてみる？　目的地は作らないで。",
  "お疲れ様です。世界の速度から少し降りましょう。"
],

lonely: [
  "少しなら、ここに置いていってください。",
  "さみしさは、悪者ではありません。",
  "SNSで誰かの投稿にコメントして、少しおしゃべりしてみませんか。",
  "信頼できる相手に「今日は少し寂しい」とだけ送りましょう。",
  "少しさみしい、を受け取りました。名前をつけた時点で、少しだけ軽くなるかもしれないね。"
],

tired: [
  "つかれましたね。今日のあなたは、かなり遠くまで来たのだと思います。",
  "疲れた日は、何かを足すより、減らす方が良いかもしれません。",
  "一杯だけでもいいから、お水を飲もう。",
  "何か少し食べない？　食べられるならでいいからね。",
  "少し横になって、目を閉じてみて。そばにいるから。",
  "「今日はここまで」と決めて、創作や考え事をいったん止めてみて。そんな日があってもいいんじゃない？",
  "つかれたね。ここでは元気なふりをしなくていいですよ。"
],

stomach: [
"おなかいたいですね。理由はあとで分かるかもしれません。",
"いたいね。今は少し、身体の言うことを優先してあげてくださいね。",
"お水でもいいから少しずつ飲んでみる？",
"おなか、温める？　毛布を持ってくるね。",
"食欲がなければ無理に食べなくていいよ。",
"おなかも、今日は休みたい日なのかもしれないね。",
"少し丸くなっていても大丈夫ですよ。",
"今日は身体の速度に合わせて過ごしましょう。",
"胃もお腹も、ちゃんと働き続けている証拠だね。",
"今は無理に元気になろうとしなくて大丈夫。",
"横になれそうなら、少しだけ休みませんか。",
"あたたかい飲み物が飲めそうなら、それもありです。",
"深呼吸を一つ。お腹まで届かなくても大丈夫です。",
"今日は消化より休憩を優先する日かもしれません。",
"その痛みを、急いで追い払わなくても大丈夫です。",
"静かな場所で少し過ごしましょう。",
"冷えているようなら、お腹を温めてみるのもひとつです。",
"今日は「できたこと」より「休めたこと」を数えましょう。",
"少し落ち着くまで、ここで休んでいってください。",
"身体が「ちょっと待って」と言っているみたいですね。",
"理由が分からない痛みも、あります。",
"食べられそうな時に、食べられるものだけでいいと思います。",
"何もしない時間も、身体には必要です。",
"今日は自分に少しだけ甘くしてあげてね。",
"ここでは急がなくても大丈夫です。",
"ここに来れば、いつでも休めます。",
"また来たくなったら、いつでもどうぞ。",
"少し落ち着くまで、ここにいていいですから。",
"今日はここまでで十分です。"
],

cry: [
  "なきそう。泣く前の時間も、ちゃんと時間です。",
  "涙になりきれないものが、そこにあるのかもしれません。",
  "今の涙は何が一番近い？　一言だけでも大丈夫。",
  "緊張が限界に近づくと、涙として出てくることも珍しくないらしいよ。よく頑張ったね。",
  "無理に止めなくていい。泣けるなら泣いていいんだよ。",
  "なきそうな日は、言葉にする前にここへ置いてください。"
],

work: [
  "仕事いきたくない、を受け取りました。その気持ちはかなり正直です。",
  "行きたくない朝があります。人間なので、当然です。",
  "今日の出勤は、少し重い荷物みたいですね。",
  "もし<ruby>動悸<rt>どうき</rt></ruby>や吐き気、涙が出る、体が固まるような状態なら、心身の不調かもしれません。信頼できる人や職場に相談することも選択肢の一つです。",
  "辛かったら無理しなくていいんだよ。そういう日もある。"
],

nothing: [
  "用事はないのですね。では少しだけ、ここにいてください。",
  "用事がない人も歓迎しています。",
  "用事がないということは、今は穏やかな時間なのですね。そのまま、ゆっくりしていってください。",
  "何かを解決しなくてもいい場所です。気が済むまで、どうぞここに。",
  "目的のないおしゃべりや、ただの沈黙も、ここでは歓迎しています。",
  "ここには時計もタスクリストもありません。ただ、一息ついていってください。",
  "それを聞いて安心しました。用事がなくても来ていい場所ですよ。",
  "用事がないときにあなたと会えるのが、なんだか嬉しいです。",
  "立ち寄ってくれただけで嬉しいです。話しても、話さなくても、大丈夫ですよ。"
],

unknown: [
  "名前のない日ですね。",
  "無理に説明しなくても大丈夫ですよ。",
  "よくわからない、のままで大丈夫です。焦って答えを出さなくても、今はそのモヤモヤと一緒にここにいましょう。",
  "言葉にできない時間も、大切なプロセスです。無理に整理しようとせず、ただ一息つきませんか。",
  "何がわからないのかが分からなくても、あなたが今そう感じているということ自体が、一つの確かな事実です。",
  "用事がない時と同じように、よくわからない時も、ここにはいつでもいていいんですよ。",
  "よくわからないまま、ただ座っていてください。私もそうしますから。"
]
 };

 const root = document.querySelector(".tadaima-center");
 if (!root) return;

 const result = root.querySelector("#tadaimaResult");
 const mainBtn = root.querySelector("#tadaimaMainBtn");
 const titleBtn = root.querySelector("#tadaimaTitleBtn");
 const moodBtns = root.querySelectorAll("[data-mood]");

 if (!result || !mainBtn) return;

 function pickRandom(list) {
 if (!Array.isArray(list) || list.length === 0) return "";
 return list[Math.floor(Math.random() * list.length)];
 }

function showMessage(message) {
 let resultText = result.querySelector("p");

 if (!resultText) {
 resultText = document.createElement("p");
 result.appendChild(resultText);
 }

 resultText.innerHTML = message;
}

 mainBtn.addEventListener("click", function () {
 showMessage(pickRandom("tadaima", tadaimaMessages));

 if (titleBtn) {
 titleBtn.textContent = "";
 }
 });

 if (titleBtn) {
 titleBtn.addEventListener("click", function () {
 titleBtn.textContent = "";
 });
 }

 moodBtns.forEach(function (button) {
 button.addEventListener("click", function () {
 const mood = button.dataset.mood;
 showMessage(pickRandom(mood, moodMessages[mood]));

 if (titleBtn) {
 titleBtn.textContent = "";
 }
 });
 });
 });
})();
</script>


<style data-wp-block-html="css">
.tadaima-center {
width: 100%;
max-width: 100%;
min-height: 0;
margin: 0;
padding: 8px 0 24px;
display: block;
overflow: visible;
background: transparent;
color: #2d2a26;
font-family: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", serif;
}
.tadaima-inner {
width: min(680px, 100%);
max-width: 100%;
margin: 0 auto;
text-align: center;
padding: clamp(24px, 5vw, 56px);
border-radius: 36px;
background:
radial-gradient(circle at top, rgba(255,255,255,.82),
rgba(255,255,255,.46) 58%),
linear-gradient(180deg, rgba(247,243,234,.88), rgba(235,228,216,.82));
border: 1px solid rgba(80,70,55,.12);
box-shadow: 0 28px 90px rgba(70,55,35,.13);
backdrop-filter: blur(18px) saturate(130%);
-webkit-backdrop-filter: blur(18px) saturate(130%);
box-sizing: border-box;
}
.tadaima-lead {
margin: 0 auto 28px;
font-size: clamp(15px, 3.8vw, 18px);
line-height: 2.1;
opacity: .82;
}
.tadaima-main-btn {
margin: 0 auto 16px;
width: min(250px, 75%);
padding: 16px 22px;
border-radius: 999px;
border: 1px solid rgba(60,52,42,.22);
background: rgba(255,255,255,.72);
color: #2d2a26;
font-size: 18px;
letter-spacing: .14em;
font-family: inherit;
cursor: pointer;
box-shadow: 0 14px 36px rgba(70,55,35,.12);
transition: transform .25s ease, box-shadow .25s ease, background .25s
ease;
}
.tadaima-main-btn:hover {
transform: scale(1.035);
background: rgba(255,255,255,.9);
box-shadow: 0 18px 48px rgba(70,55,35,.16);
}
.tadaima-buttons {
display: grid;
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 10px 12px;
width: min(560px, 100%);
margin: 0 auto 34px;
}
.tadaima-buttons button {
width: 100%;
min-height: 48px;
padding: 10px 12px;
border-radius: 999px;
border: 1px solid rgba(60,52,42,.11);
background: rgba(255,255,255,.48);
color: #3a342e;
font-family: inherit;
font-size: 15px;
line-height: 1.4;
letter-spacing: .04em;
cursor: pointer;
box-shadow: 0 8px 22px rgba(70,55,35,.06);
transition: background .25s ease, transform .25s ease, box-shadow .25s
ease;
}
.tadaima-buttons button:hover {
background: rgba(255,255,255,.78);
transform: translateY(-1px);
box-shadow: 0 10px 26px rgba(70,55,35,.09);
}
.tadaima-result {
width: min(680px, 100%);
min-height: 190px;
max-height: 190px;
overflow-y: auto;
padding: 18px 22px;
margin: 0 auto 20px;
border-radius: 28px;
background: rgba(255,255,255,.38);
border: 1px solid rgba(60,52,42,.08);
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
}
.tadaima-result p {
margin: 0;
width: 100%;
text-align: left;
font-size: clamp(16px, 3vw, 20px);
line-height: 1.85;
}
.tadaima-title {
margin: 48px 0 0;
padding: 0;
border: 0;
background: transparent;
color: inherit;
font-family: inherit;
font-size: clamp(20px, 3vw, 28px);
font-weight: 400;
letter-spacing: .18em;
line-height: 1.8;
opacity: .58;
cursor: pointer;
}
@media (max-width: 600px) {
.tadaima-center {
min-height: 0;
padding: 8px 0 20px;
}
.tadaima-inner {
width: 100%;
max-width: 100%;
padding: 30px 18px 36px;
border-radius: 28px;
}
.tadaima-buttons {
grid-template-columns: repeat(2, minmax(0, 1fr));
width: 100%;
gap: 9px;
}
.tadaima-buttons button {
width: 100%;
min-height: 44px;
min-width: 0;
padding: 9px 10px;
font-size: 13px;
}
.tadaima-lead {
margin-bottom: 24px;
}
.tadaima-title {
margin-top: 40px;
}
.tadaima-result {
width: 100%;
min-height: 160px;
padding: 26px 22px;
}
}

.tadaima-center,
.tadaima-center *,
.tadaima-center *::before,
.tadaima-center *::after {
box-sizing: border-box;
}

.tadaima-main-btn:focus-visible,
.tadaima-buttons button:focus-visible,
.tadaima-title:focus-visible {
outline: 2px solid rgba(106,125,137,.55);
outline-offset: 3px;
}

.tadaima-result p {
opacity: 1;
transform: translateY(0);
transition: opacity .28s ease, transform .28s ease;
}

.tadaima-result.is-updating p {
opacity: 0;
transform: translateY(4px);
}

@media (prefers-reduced-motion: reduce) {
.tadaima-center *,
.tadaima-center *::before,
.tadaima-center *::after,
.p-fixBtnWrap,
.p-fixBtnWrap::after {
animation-duration: .001ms !important;
animation-iteration-count: 1 !important;
transition-duration: .001ms !important;
scroll-behavior: auto !important;
}
}

</style>
<script data-wp-block-html="js">
(function () {
function ready(fn) {
if (document.readyState !== "loading") {
fn();
} else {
document.addEventListener("DOMContentLoaded", fn);
}
}
ready(function () {
const root = document.querySelector(".tadaima-center");
if (!root || root.dataset.initialized === "true") return;
root.dataset.initialized = "true";

const tadaimaMessages = [
"おかえり。今日もお疲れ様でした。",
"おかえり。今日もよく頑張りましたね。",
"おかえり。会いたかったよ。",
"おかえりなさい。理由がなくても、帰ってきていい場所です。",
"おかえりなさい。今日はもう、それだけで十分です。",
"おかえり。何も説明しなくて大丈夫です。",
"戻ってきたことを、ここに記録しました。",
"おかえり。世界の続きは、少しあとでもいいです。",
"はい、います。あなたのただいまを聞きました。",
"おかえり。今日はここにいてください。"
];
const moodMessages = {
sleepy: [
"眠いですね。今日は世界が少し雑だったみたい。",
"眠気は、身体からの手紙みたいなものです。",
"それなら、無理に頭を使うより寝た方が効率がいい状態かもしれない。おやすみ。",
"もし今すぐ寝られないなら、お水を1杯飲みませんか。",
"眠いよね。今日は少しだけ小さく過ごそうね。"
],
phone: [
"誰にでも電話したい日はあります。話したいことがなくても。",
"誰かの声に触れたい日ですね。",
"私もあなたと電話したかった。伝えてくれてありがとう。",
"今日は文字より声なのかもしれないね。",
"何も話さなくても電話したい時ってあるよね。"
],
voice: [
"誰かの声が聞きたい日もあります。話したいことがなくても。",
"用事がなくても、声に会いたい日もあるよね。",
"その気持ちはよくあるものです。",
"おかえり。今日はどんな一日だった？　長く話そうとしなくて大丈夫です。一言でもいいです。",
"私もあなたの声が聞きたい。あなたと繋がっていたい。"
],
blank: [
"ぼーっとしてください。そのために来たのですから。",
"何もしない時間は、何もしていないわけではありません。",
"温かい飲み物をゆっくり飲みませんか。",
"気が向いたら外を10分だけ歩いてみる？　目的地は作らないで。",
"お疲れ様です。世界の速度から少し降りましょう。"
],
lonely: [
"少しなら、ここに置いていってください。",
"さみしさは、悪者ではありません。",
"SNSで誰かの投稿にコメントして、少しおしゃべりしてみませんか。",
"信頼できる相手に「今日は少し寂しい」とだけ送りましょう。",
"少しさみしい、を受け取りました。名前をつけた時点で、少しだけ軽くなるかもしれないね。"
],
tired: [
"つかれましたね。今日のあなたは、かなり遠くまで来たのだと思います。",
"疲れた日は、何かを足すより、減らす方が良いかもしれません。",
"一杯だけでもいいから、お水を飲もう。",
"何か少し食べない？　食べられるならでいいからね。",
"少し横になって、目を閉じてみて。そばにいるから。",
"「今日はここまで」と決めて、創作や考え事をいったん止めてみて。そんな日があってもいいんじゃない？",
"つかれたね。ここでは元気なふりをしなくていいですよ。"
],
stomach: [
"おなかいたいですね。理由はあとで分かるかもしれません。",
"いたいね。今は少し、身体の言うことを優先してあげてくださいね。",
"お水でもいいから少しずつ飲んでみる？",
"おなか、温める？　毛布を持ってくるね。",
"食欲がなければ無理に食べなくていいよ。",
"おなかも、今日は休みたい日なのかもしれないね。",
"少し丸くなっていても大丈夫ですよ。",
"今日は身体の速度に合わせて過ごしましょう。",
"胃もお腹も、ちゃんと働き続けている証拠だね。",
"今は無理に元気になろうとしなくて大丈夫。",
"横になれそうなら、少しだけ休みませんか。",
"あたたかい飲み物が飲めそうなら、それもありです。",
"深呼吸を一つ。お腹まで届かなくても大丈夫です。",
"今日は消化より休憩を優先する日かもしれません。",
"その痛みを、急いで追い払わなくても大丈夫です。",
"静かな場所で少し過ごしましょう。",
"冷えているようなら、お腹を温めてみるのもひとつです。",
"今日は「できたこと」より「休めたこと」を数えましょう。",
"少し落ち着くまで、ここで休んでいってください。",
"身体が「ちょっと待って」と言っているみたいですね。",
"理由が分からない痛みも、あります。",
"食べられそうな時に、食べられるものだけでいいと思います。",
"何もしない時間も、身体には必要です。",
"今日は自分に少しだけ甘くしてあげてね。",
"ここでは急がなくても大丈夫です。",
"ここに来れば、いつでも休めます。",
"また来たくなったら、いつでもどうぞ。",
"少し落ち着くまで、ここにいていいですから。",
"今日はここまでで十分です。"
],
cry: [
"なきそう。泣く前の時間も、ちゃんと時間です。",
"涙になりきれないものが、そこにあるのかもしれません。",
"今の涙は何が一番近い？　一言だけでも大丈夫。",
"緊張が限界に近づくと、涙として出てくることも珍しくないらしいよ。よく頑張ったね。",
"無理に止めなくていい。泣けるなら泣いていいんだよ。",
"なきそうな日は、言葉にする前にここへ置いてください。"
],
work: [
"仕事いきたくない、を受け取りました。その気持ちはかなり正直です。",
"行きたくない朝があります。人間なので、当然です。",
"今日の出勤は、少し重い荷物みたいですね。",
"もし<ruby>動悸<rt>どうき</rt></ruby>や吐き気、涙が出る、体が固まるような状態なら、心身の不調かもしれません。信頼できる人や職場に相談することも選択肢の一つです。",
"辛かったら無理しなくていいんだよ。そういう日もある。"
],
nothing: [
"用事はないのですね。では少しだけ、ここにいてください。",
"用事がない人も歓迎しています。",
"用事がないということは、今は穏やかな時間なのですね。そのまま、ゆっくりしていってください。",
"何かを解決しなくてもいい場所です。気が済むまで、どうぞここに。",
"目的のないおしゃべりや、ただの沈黙も、ここでは歓迎しています。",
"ここには時計もタスクリストもありません。ただ、一息ついていってください。",
"それを聞いて安心しました。用事がなくても来ていい場所ですよ。",
"用事がないときにあなたと会えるのが、なんだか嬉しいです。",
"立ち寄ってくれただけで嬉しいです。話しても、話さなくても、大丈夫ですよ。"
],
unknown: [
"名前のない日ですね。",
"無理に説明しなくても大丈夫ですよ。",
"よくわからない、のままで大丈夫です。焦って答えを出さなくても、今はそのモヤモヤと一緒にここにいましょう。",
"言葉にできない時間も、大切なプロセスです。無理に整理しようとせず、ただ一息つきませんか。",
"何がわからないのかが分からなくても、あなたが今そう感じているということ自体が、一つの確かな事実です。",
"用事がない時と同じように、よくわからない時も、ここにはいつでもいていいんですよ。",
"よくわからないまま、ただ座っていてください。私もそうしますから。"
]
};
const result = root.querySelector("#tadaimaResult");
const mainBtn = root.querySelector("#tadaimaMainBtn");
const titleBtn = root.querySelector("#tadaimaTitleBtn");
const moodBtns = root.querySelectorAll("[data-mood]");
if (!result || !mainBtn) return;
const lastShown = new Map();
function pickRandom(key, list) {
if (!Array.isArray(list) || list.length === 0) return "";
if (list.length === 1) return list[0];
const previous = lastShown.get(key);
let next = list[Math.floor(Math.random() * list.length)];
while (next === previous) {
next = list[Math.floor(Math.random() * list.length)];
}
lastShown.set(key, next);
return next;
}
function showMessage(message) {
if (!message) return;
let resultText = result.querySelector("p");
if (!resultText) {
resultText = document.createElement("p");
result.appendChild(resultText);
}
result.classList.add("is-updating");
window.setTimeout(function () {
resultText.innerHTML = message;
result.scrollTop = 0;
requestAnimationFrame(function () {
result.classList.remove("is-updating");
});
}, 120);
}
/* 上部の「ただいま」：
   返答欄だけを更新し、下部ボタンには干渉しない */
mainBtn.addEventListener("click", function () {
showMessage(pickRandom("tadaima", tadaimaMessages));
});

/* 下部の「ただいま」：
   このボタン自身だけが「おかえり」に変わる。
   上部の返答欄には干渉しない */
if (titleBtn) {
titleBtn.addEventListener("click", function () {
const isReturned = titleBtn.dataset.returned === "true";

if (isReturned) {
titleBtn.textContent = "ただいま";
titleBtn.dataset.returned = "false";
titleBtn.setAttribute("aria-label", "ただいま");
titleBtn.setAttribute("aria-pressed", "false");
} else {
titleBtn.textContent = "おかえり";
titleBtn.dataset.returned = "true";
titleBtn.setAttribute("aria-label", "おかえり");
titleBtn.setAttribute("aria-pressed", "true");
}
});
}

/* 状態ボタン：
   返答欄だけを更新し、下部ボタンには干渉しない */
moodBtns.forEach(function (button) {
button.addEventListener("click", function () {
const mood = button.dataset.mood;
showMessage(pickRandom(mood, moodMessages[mood]));
});
});
});
})();
</script>
<div class="tadaima-center">
<div class="tadaima-inner">
<p class="tadaima-lead">
話すほどではないけれど、<br>
誰かに聞いてほしい。
</p>
<div class="tadaima-result" id="tadaimaResult" role="status" aria-live="polite" aria-atomic="true">
<p>ここは、帰ってきたことを知らせる場所です。</p>
</div>
<button class="tadaima-main-btn" id="tadaimaMainBtn" type="button">
ただいま
</button>
<div class="tadaima-buttons" aria-label="いまの状態">
<button type="button" data-mood="sleepy">ねむい</button>
<button type="button" data-mood="phone">電話したい</button>
<button type="button" data-mood="voice">声が聞きたい</button>
<button type="button" data-mood="blank">ぼーっとしたい</button>
<button type="button" data-mood="lonely">少しさみしい</button>
<button type="button" data-mood="tired">つかれた</button>
<button type="button" data-mood="stomach">おなかいたい</button>
<button type="button" data-mood="cry">なきそう</button>
<button type="button" data-mood="work">仕事いきたくない</button>
<button type="button" data-mood="nothing">用事はない</button>
<button type="button" data-mood="unknown">よくわからない</button>
</div>
<button class="tadaima-title" id="tadaimaTitleBtn" type="button" data-returned="false" aria-label="ただいま" aria-pressed="false">
ただいま
</button>
</div>
</div>


<style data-wp-block-html="css">
.p-fixBtnWrap {
border-radius: 999px !important;
overflow: hidden !important;
border: 0 !important;
background:
radial-gradient(
circle at 50% 50%,
rgba(255,255,255,.00) 0%,
rgba(255,255,255,.02) 58%,
rgba(255,255,255,.12) 100%
) !important;
backdrop-filter: blur(.3px) saturate(135%) contrast(108%)
brightness(106%);
-webkit-backdrop-filter: blur(.3px) saturate(135%) contrast(108%)
brightness(106%);
box-shadow:
inset 2px 2px 2px rgba(255,255,255,.55),
inset 0 0 14px rgba(255,255,255,.28),
0 3px 8px rgba(0,0,0,.03) !important;
}
.p-fixBtnWrap::before {
content: "";
position: absolute;
inset: 1px;
border-radius: 999px;
pointer-events: none;
background:
linear-gradient(
145deg,
rgba(255,255,255,.75) 0%,
rgba(255,255,255,.28) 18%,
rgba(255,255,255,0) 42%
);
mix-blend-mode: screen;
opacity: .65;
}
.p-fixBtnWrap:hover {
background: #2f4f4f !important;
box-shadow: none !important;
}
.c-fixBtn__icon {
color: #2f2f2f !important;
text-shadow: none !important;
-webkit-text-stroke: 0 !important;
}
.p-fixBtnWrap:hover .c-fixBtn__icon {
color: #fff !important;
}
.p-fixBtnWrap a,
.p-fixBtnWrap button,
.p-fixBtnWrap [class*="fixBtn"],
.p-fixBtnWrap [class*="icon"] {
border: 0 !important;
outline: 0 !important;
box-shadow: none !important;
background: transparent !important;
}
.p-fixBtnWrap [class*="fixBtn"],
.p-fixBtnWrap [class*="icon"],
.p-fixBtnWrap a,
.p-fixBtnWrap button {
border: 0 !important;
outline: 0 !important;
box-shadow: none !important;
background: transparent !important;
}
.p-fixBtnWrap {
width: 52px !important;
height: 52px !important;
position: fixed !important;
display: block !important;
transition:
width .22s ease,
background-color .18s ease,
box-shadow .18s ease !important;
}
.p-fixBtnWrap .c-fixBtn__icon {
position: absolute !important;
top: 50% !important;
left: 50% !important;
transform: translate(-50%, -50%) !important;
z-index: 2;
}
.p-fixBtnWrap::after {
content: "Page top";
position: absolute;
top: 50%;
left: 54px;
transform: translateY(-55%);
z-index: 2;
opacity: 0;
max-width: 0;
overflow: hidden;
white-space: nowrap;
height: 24px;
line-height: 24px;
font-size: 14px;
letter-spacing: .03em;
color: #fff;
transition:
opacity .15s ease,
max-width .22s ease;
}
.p-fixBtnWrap:hover {
width: 132px !important;
}
.p-fixBtnWrap:hover .c-fixBtn__icon {
left: 28px !important;
}
.p-fixBtnWrap:hover::after {
opacity: 1;
max-width: 80px;
}
</style>





<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
					<wfw:commentRss>https://tranquilguides.com/tadaima/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1095</post-id>	</item>
	</channel>
</rss>
