<?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/place-to-belong/feed/" rel="self" type="application/rss+xml" />
	<link>https://tranquilguides.com</link>
	<description>記憶と身体、時間と不在をめぐる体験</description>
	<lastBuildDate>Tue, 22 Sep 2026 11:06:51 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</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>Hello, World! 意味は、あとで</title>
		<link>https://tranquilguides.com/meaning-later/</link>
					<comments>https://tranquilguides.com/meaning-later/#comments</comments>
		
		<dc:creator><![CDATA[案内人のアシカ]]></dc:creator>
		<pubDate>Wed, 30 Sep 2026 15:14:00 +0000</pubDate>
				<category><![CDATA[生存ログ]]></category>
		<category><![CDATA[エッセイ]]></category>
		<category><![CDATA[実存]]></category>
		<category><![CDATA[居場所]]></category>
		<category><![CDATA[関係]]></category>
		<guid isPermaLink="false">https://tranquilguides.com/?p=1</guid>

					<description><![CDATA[<p><img src="https://i0.wp.com/tranquilguides.com/wp-content/uploads/2026/01/IMG_20260918_232343.png?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/01/IMG_20260918_232343.png?fit=1024%2C683&ssl=1" class="webfeedsFeaturedVisual" /></p>
<p class="wp-block-paragraph">十四歳の彼は、自分がここにいる理由を知らなかった。</p>



<p class="wp-block-paragraph">知らないまま、毎日のようにその理由を考えていた。</p>



<p class="wp-block-paragraph">そして高校に入ると、その問いを忘れる時間が増えていった。</p>



<p class="wp-block-paragraph">自分はなぜ存在しているのか。</p>



<p class="wp-block-paragraph">その問いを持ち始めたのは十四歳より前だった。十歳になる前には、もうあったという。</p>



<p class="wp-block-paragraph">何か大きな出来事をきっかけに考え始めたのかは、残されていない。</p>



<p class="wp-block-paragraph">気づいたときには、そこにあった。</p>



<p class="wp-block-paragraph">答えは見つからなかった。</p>



<p class="wp-block-paragraph">そもそも正解があるのかも分からなかった。</p>



<p class="wp-block-paragraph">何を答えても、その人にとっては間違いではないのかもしれない。</p>



<p class="wp-block-paragraph">けれど、「何を答えてもいい」ということは、彼にとって自由ではなかった。</p>



<p class="wp-block-paragraph">誰も答えを決めてくれない、ということでもあった。</p>



<p class="wp-block-paragraph">自分がここにいる理由を、自分で見つけなければならない。</p>



<p class="wp-block-paragraph">頼れる大人がいなかったわけではない。</p>



<p class="wp-block-paragraph">生活の中には大人がいた。</p>



<p class="wp-block-paragraph">困れば助けてもらえることもあっただろう。</p>



<p class="wp-block-paragraph">それでも、この問いをそのまま渡せる相手はいなかった。</p>



<p class="wp-block-paragraph">何を言ってほしいのか、自分でも分からなかった。</p>



<p class="wp-block-paragraph">大丈夫だと言ってほしいのか。</p>



<p class="wp-block-paragraph">いつか分かると言ってほしいのか。</p>



<p class="wp-block-paragraph">意味なんてなくてもいいと言ってほしいのか。</p>



<p class="wp-block-paragraph">どれも少し違った。</p>



<p class="wp-block-paragraph">だから、結局は自分で考えた。</p>



<p class="wp-block-paragraph">何度も同じところへ戻った。</p>



<p class="wp-block-paragraph">自分はなぜここにいるのか。</p>



<p class="wp-block-paragraph">自分がいなくても同じなのではないか。</p>



<p class="wp-block-paragraph">その問いは、生活から切り離された哲学ではなかった。</p>



<p class="wp-block-paragraph">彼にとっては日々の中にあった。</p>



<p class="wp-block-paragraph">中学生になると、彼は自分の存在を周囲に示そうとした。</p>



<p class="wp-block-paragraph">ここにいる。</p>



<p class="wp-block-paragraph">自分はここにいる。</p>



<p class="wp-block-paragraph">そう知らせるように、自分なりに存在感を作ろうとした。</p>



<p class="wp-block-paragraph">誰かに名前を呼ばれる。</p>



<p class="wp-block-paragraph">何かを頼まれる。</p>



<p class="wp-block-paragraph">自分がしたことに反応が返ってくる。</p>



<p class="wp-block-paragraph">誰かの記憶の中に残る。</p>



<p class="wp-block-paragraph">そういう小さな出来事が、自分がそこにいることを確かめる方法になった。</p>



<p class="wp-block-paragraph">現在の心理学では、人生の意味は一つの感覚だけではないと考えられている。</p>



<p class="wp-block-paragraph">人生や出来事がある程度つながって見えること。</p>



<p class="wp-block-paragraph">向かう先があること。</p>



<p class="wp-block-paragraph">そして、自分が存在していることには何らかの重要性があると感じられること。</p>



<p class="wp-block-paragraph">彼が探していたものに近いのは、最後の感覚だったのかもしれない。</p>



<p class="wp-block-paragraph">何を目指すかよりも先に、</p>



<p class="wp-block-paragraph">自分がここにいることで、何かが変わるのか。</p>



<p class="wp-block-paragraph">そのことを知りたかった。</p>



<p class="wp-block-paragraph">中学三年生になると、高校を選ぶ時期が来た。</p>



<p class="wp-block-paragraph">彼には一つだけ期待があった。</p>



<p class="wp-block-paragraph">高校に入れば、少しは変わるだろう。</p>



<p class="wp-block-paragraph">何が変わるのかは分からない。</p>



<p class="wp-block-paragraph">自分なのか。</p>



<p class="wp-block-paragraph">周囲なのか。</p>



<p class="wp-block-paragraph">考え方なのか。</p>



<p class="wp-block-paragraph">ただ、今いる場所から別の場所へ移れば、今とは違う自分になれるような気がした。</p>



<p class="wp-block-paragraph">未来はまだ決まっていない。</p>



<p class="wp-block-paragraph">だから期待できた。</p>



<p class="wp-block-paragraph">同時に、決まっていないから不安でもあった。</p>



<p class="wp-block-paragraph">自分で選べるということは、自分で選ばなければならないということでもある。</p>



<p class="wp-block-paragraph">青年期には、進路、友人、所属する集団、その後の仕事など、それまで誰かによってある程度決められていたものが、少しずつ自分の選択になっていく。</p>



<p class="wp-block-paragraph">「自分は何者なのか」という問いが、「自分は何を選ぶのか」という問題へ近づいていく。</p>



<p class="wp-block-paragraph">ある日、高校見学へ行った。</p>



<p class="wp-block-paragraph">その日の彼は、少し変に上機嫌だった。</p>



<p class="wp-block-paragraph">まだそこへ入学できると決まったわけではない。</p>



<p class="wp-block-paragraph">ただ見に来ただけだった。</p>



<p class="wp-block-paragraph">それでも、その場所は明るく見えた。</p>



<p class="wp-block-paragraph">自分の知らない人たちがいた。</p>



<p class="wp-block-paragraph">知らない関係があった。</p>



<p class="wp-block-paragraph">知らない一日が流れていた。</p>



<p class="wp-block-paragraph">その中に、自分がいる可能性があった。</p>



<p class="wp-block-paragraph">ここへ来たい。</p>



<p class="wp-block-paragraph">そう思った。</p>



<p class="wp-block-paragraph">それまで未来は、時間の先にあるものだった。</p>



<p class="wp-block-paragraph">何年後。</p>



<p class="wp-block-paragraph">何歳。</p>



<p class="wp-block-paragraph">高校生。</p>



<p class="wp-block-paragraph">大人。</p>



<p class="wp-block-paragraph">高校見学のあと、それは場所になった。</p>



<p class="wp-block-paragraph">行きたい場所になった。</p>



<p class="wp-block-paragraph">今とは違う自分がいるかもしれない場所になった。</p>



<p class="wp-block-paragraph">その学校へ入学した。</p>



<p class="wp-block-paragraph">友人をたくさん作ろうと思っていた彼には、早い段階で頼れる友人ができた。</p>



<p class="wp-block-paragraph">そして部活動を選ぶことになった。</p>



<p class="wp-block-paragraph">入学前には運動部へ入ろうと思っていた。</p>



<p class="wp-block-paragraph">ところが、ある部活を見学したとき、直感的に思った。</p>



<p class="wp-block-paragraph">ここだ。</p>



<p class="wp-block-paragraph">細かく比較して決めたわけではない。</p>



<p class="wp-block-paragraph">理由を順番に並べたわけでもない。</p>



<p class="wp-block-paragraph">入部届を出した。</p>



<p class="wp-block-paragraph">そのときには紙を一枚提出しただけだった。</p>



<p class="wp-block-paragraph">あとから見れば、その紙一枚が高校生活の大部分を変えることになる。</p>



<p class="wp-block-paragraph">人は、自分が何者かを完全に理解してから選ぶわけではない。</p>



<p class="wp-block-paragraph">むしろ、選んだあとで生活が変わり、その中で自分も変わっていく。</p>



<p class="wp-block-paragraph">彼にも、それが起きた。</p>



<p class="wp-block-paragraph">部活は忙しかった。</p>



<p class="wp-block-paragraph">溜息をつく暇もないくらい、次々にすることがあった。</p>



<p class="wp-block-paragraph">学校へ行く。</p>



<p class="wp-block-paragraph">人に会う。</p>



<p class="wp-block-paragraph">部活へ行く。</p>



<p class="wp-block-paragraph">何かをする。</p>



<p class="wp-block-paragraph">帰る。</p>



<p class="wp-block-paragraph">翌日の準備をする。</p>



<p class="wp-block-paragraph">また次の日が来る。</p>



<p class="wp-block-paragraph">それまで、一日の中には考える時間がたくさんあった。</p>



<p class="wp-block-paragraph">何もしていない時間ができると、問いが戻ってきた。</p>



<p class="wp-block-paragraph">自分はなぜここにいるのか。</p>



<p class="wp-block-paragraph">何のために存在しているのか。</p>



<p class="wp-block-paragraph">高校に入ると、その問いが聞こえない時間が増えた。</p>



<p class="wp-block-paragraph">消えたわけではない。</p>



<p class="wp-block-paragraph">解決したわけでもない。</p>



<p class="wp-block-paragraph">ただ、それより先に、人の声があった。</p>



<p class="wp-block-paragraph">今日することがあった。</p>



<p class="wp-block-paragraph">誰かに呼ばれることがあった。</p>



<p class="wp-block-paragraph">自分から誰かに声をかけることがあった。</p>



<p class="wp-block-paragraph">意味について考えてから生きるのではなく、生きているうちに一日が終わった。</p>



<p class="wp-block-paragraph">翌日には、またすることがあった。</p>



<p class="wp-block-paragraph">人生の意味は、大きな使命を見つけたときにだけ生まれるものではない。</p>



<p class="wp-block-paragraph">起きる。</p>



<p class="wp-block-paragraph">出かける。</p>



<p class="wp-block-paragraph">人に会う。</p>



<p class="wp-block-paragraph">いつものことをする。</p>



<p class="wp-block-paragraph">戻る。</p>



<p class="wp-block-paragraph">そうした反復の中でも、自分の生活がどこかにつながっているという感覚は作られる。</p>



<p class="wp-block-paragraph">彼は「自分の存在意義」を説明できるようにはならなかった。</p>



<p class="wp-block-paragraph">それでも生活は、以前より濃くなった。</p>



<p class="wp-block-paragraph">友人がいた。</p>



<p class="wp-block-paragraph">先輩がいた。</p>



<p class="wp-block-paragraph">部活動があった。</p>



<p class="wp-block-paragraph">やがて、後輩が入ってきた。</p>



<p class="wp-block-paragraph">誰かが自分を知っている。</p>



<p class="wp-block-paragraph">自分も誰かを知っている。</p>



<p class="wp-block-paragraph">自分が今日そこにいなければ、ほんの少しだけ違う一日になる。</p>



<p class="wp-block-paragraph">それまで彼は、自分がここにいることを誰かに分かってもらおうとしていた。</p>



<p class="wp-block-paragraph">今度は、それを確認する前に、すでに関係の中にいた。</p>



<p class="wp-block-paragraph">一年が過ぎた。</p>



<p class="wp-block-paragraph">彼の感覚では、一週間ほどだった。</p>



<p class="wp-block-paragraph">それほど速かった。</p>



<p class="wp-block-paragraph">先輩たちが卒業した。</p>



<p class="wp-block-paragraph">それまで当たり前にいた人がいなくなる。</p>



<p class="wp-block-paragraph">今度は自分たちが残る側になる。</p>



<p class="wp-block-paragraph">彼は、後輩にもこの場所で感じたものを知ってほしいと思った。</p>



<p class="wp-block-paragraph">後輩のため。</p>



<p class="wp-block-paragraph">部活のため。</p>



<p class="wp-block-paragraph">人のため。</p>



<p class="wp-block-paragraph">そう考えて動くようになった。</p>



<p class="wp-block-paragraph">少し前まで、彼は自分の存在を確かめようとしていた。</p>



<p class="wp-block-paragraph">今度は、自分のことを確認するより先に、誰かのためにすることを探していた。</p>



<p class="wp-block-paragraph">役に立てば存在価値が得られる、ということではなかった。</p>



<p class="wp-block-paragraph">誰かがいるから、その人のために何かをしたくなる。</p>



<p class="wp-block-paragraph">場所があるから、その場所を少しでもよくしたくなる。</p>



<p class="wp-block-paragraph">自分の内側だけを見続けなくてもよいほど、外側に関わるものが増えていった。</p>



<p class="wp-block-paragraph">「私は何者か」という問いに、彼は言葉で答えなかった。</p>



<p class="wp-block-paragraph">高校へ行った。</p>



<p class="wp-block-paragraph">部活を選んだ。</p>



<p class="wp-block-paragraph">人と関わった。</p>



<p class="wp-block-paragraph">後輩を迎えた。</p>



<p class="wp-block-paragraph">それを繰り返していた。</p>



<p class="wp-block-paragraph">考えて見つけた自分ではなく、行為のあとに残った自分がいた。</p>



<p class="wp-block-paragraph">しかし、問いそのものがなくなったわけではなかった。</p>



<p class="wp-block-paragraph">ある日、彼は突然部活を休んだ。</p>



<p class="wp-block-paragraph">それまでほとんどなかったことだった。</p>



<p class="wp-block-paragraph">その日、昔の問いを思い出した。</p>



<p class="wp-block-paragraph">そして、以前にはなかった問いが次々に出てきた。</p>



<p class="wp-block-paragraph">こんなに楽しくていいのか。</p>



<p class="wp-block-paragraph">こんなに幸せでいいのか。</p>



<p class="wp-block-paragraph">楽しいなら、それでいいはずだった。</p>



<p class="wp-block-paragraph">幸せなら、喜べばいいはずだった。</p>



<p class="wp-block-paragraph">彼自身も、ずっと今とは違う場所へ行きたいと思っていた。</p>



<p class="wp-block-paragraph">高校へ入れば何かが変わるかもしれないと期待していた。</p>



<p class="wp-block-paragraph">そして実際に変わった。</p>



<p class="wp-block-paragraph">友人ができた。</p>



<p class="wp-block-paragraph">場所ができた。</p>



<p class="wp-block-paragraph">役割ができた。</p>



<p class="wp-block-paragraph">毎日は速くなった。</p>



<p class="wp-block-paragraph">望んでいたものに近い時間の中にいた。</p>



<p class="wp-block-paragraph">それなのに、そこにいる自分を疑った。</p>



<p class="wp-block-paragraph">最初の問いは、</p>



<p class="wp-block-paragraph">自分はなぜ存在するのか。</p>



<p class="wp-block-paragraph">だった。</p>



<p class="wp-block-paragraph">今度は、</p>



<p class="wp-block-paragraph">自分はここにいていいのか。</p>



<p class="wp-block-paragraph">に近かった。</p>



<p class="wp-block-paragraph">幸福が目の前にあるのに、それを自分が受け取っていいのか分からない。</p>



<p class="wp-block-paragraph">許可を出す人などいない。</p>



<p class="wp-block-paragraph">それでも、どこかから許可されなければならないような気がする。</p>



<p class="wp-block-paragraph">問いは滝のように出てきた、と当時の彼は書いた。</p>



<p class="wp-block-paragraph">悲しくなった。</p>



<p class="wp-block-paragraph">泣きたくなった。</p>



<p class="wp-block-paragraph">一人になりたくなった。</p>



<p class="wp-block-paragraph">だから休んだ。</p>



<p class="wp-block-paragraph">誰かに会えば、説明しなければならない。</p>



<p class="wp-block-paragraph">しかし、自分でも説明できない。</p>



<p class="wp-block-paragraph">楽しいのに苦しい。</p>



<p class="wp-block-paragraph">幸せなのに怖い。</p>



<p class="wp-block-paragraph">存在する理由がないことに苦しんでいた少年が、今度は幸福の中に存在している自分を疑っている。</p>



<p class="wp-block-paragraph">問いは消えずに、形を変えていた。</p>



<p class="wp-block-paragraph">一日考えた。</p>



<p class="wp-block-paragraph">すべての答えが出たわけではない。</p>



<p class="wp-block-paragraph">当時の文章にも、「答えを一部だけ発見できた」とある。</p>



<p class="wp-block-paragraph">一部だけ。</p>



<p class="wp-block-paragraph">その言い方は残しておいた方がいい。</p>



<p class="wp-block-paragraph">全部分かったことにしていない。</p>



<p class="wp-block-paragraph">何かを少しだけ見つけ、翌日へ進んだ。</p>



<p class="wp-block-paragraph">彼は人のいる場所へ戻った。</p>



<p class="wp-block-paragraph">自分が考えていたことを、どう説明すればいいのか分からなかった。</p>



<p class="wp-block-paragraph">完全に言葉にはできなかった。</p>



<p class="wp-block-paragraph">それでも、目の前にいた人たちは理解しようとしてくれた。</p>



<p class="wp-block-paragraph">それだけで状況は変わった。</p>



<p class="wp-block-paragraph">誰かが「あなたの存在意義はこれだ」と教えたわけではない。</p>



<p class="wp-block-paragraph">彼の代わりに問いへ答えたわけでもない。</p>



<p class="wp-block-paragraph">ただ、そこにいた。</p>



<p class="wp-block-paragraph">人は、どれだけ近くにいても完全には同じ経験を持てない。</p>



<p class="wp-block-paragraph">自分の人生を、別の人に代わってもらうこともできない。</p>



<p class="wp-block-paragraph">何を選ぶかも、何を失うかも、最後には自分のものとして残る。</p>



<p class="wp-block-paragraph">それでも、完全には分かり合えないことと、一緒にいることは矛盾しない。</p>



<p class="wp-block-paragraph">説明できない部分が残ったままでも、関係が切れないことがある。</p>



<p class="wp-block-paragraph">彼は泣いた。</p>



<p class="wp-block-paragraph">うれし涙だった、と書いている。</p>



<p class="wp-block-paragraph">その日から、この人たちのためにもっと何かをしたいと思った。</p>



<p class="wp-block-paragraph">以前から「人のために」と考えていた。</p>



<p class="wp-block-paragraph">けれど、少し順番が変わっていた。</p>



<p class="wp-block-paragraph">誰かに必要とされれば、自分には価値がある。</p>



<p class="wp-block-paragraph">そう証明したいのではない。</p>



<p class="wp-block-paragraph">自分がうまく説明できないままでも、そこにいてくれた人がいた。</p>



<p class="wp-block-paragraph">だから、自分もその人たちがいる場所に何かを返したかった。</p>



<p class="wp-block-paragraph">時間が過ぎた。</p>



<p class="wp-block-paragraph">高校三年生の終わりが近づいた。</p>



<p class="wp-block-paragraph">進路はすでに決まっていた。</p>



<p class="wp-block-paragraph">それでも、一つだけ気になることがあった。</p>



<p class="wp-block-paragraph">卒業ではない。</p>



<p class="wp-block-paragraph">部活を引退することだった。</p>



<p class="wp-block-paragraph">部活は、いつの間にか高校生活の一部分ではなく、生活そのものの一部になっていた。</p>



<p class="wp-block-paragraph">入学することより。</p>



<p class="wp-block-paragraph">卒業することより。</p>



<p class="wp-block-paragraph">そこを離れることの方が大きく感じられた。</p>



<p class="wp-block-paragraph">どれだけ大切な場所でも、そこには永遠にいられない。</p>



<p class="wp-block-paragraph">どれだけ自分の一部になっても、時間が来れば離れなければならない。</p>



<p class="wp-block-paragraph">選択には、選ばなかったものが残る。</p>



<p class="wp-block-paragraph">時間には、戻れない場所ができる。</p>



<p class="wp-block-paragraph">青春が可能性の時間であるなら、同時に、可能性が少しずつ閉じていく時間でもある。</p>



<p class="wp-block-paragraph">卒業式の日。</p>



<p class="wp-block-paragraph">彼は式を「さらっと」終え、部室へ向かった。</p>



<p class="wp-block-paragraph">一般には大きな節目とされる卒業式より、そのあとの時間の方が彼には重要だった。</p>



<p class="wp-block-paragraph">後輩たちが卒業を祝ってくれた。</p>



<p class="wp-block-paragraph">その時間は、卒業式より濃く、長く感じられた。</p>



<p class="wp-block-paragraph">実際に何分だったのかは関係ない。</p>



<p class="wp-block-paragraph">一年が一週間のように過ぎることもあれば、短い時間が長く残ることもある。</p>



<p class="wp-block-paragraph">高校へ入ってから、時間はずっと速かった。</p>



<p class="wp-block-paragraph">最後だけ、その速度が少し変わる。</p>



<p class="wp-block-paragraph">もう終わると知ると、それまで背景だったものが前に出てくる。</p>



<p class="wp-block-paragraph">人の顔。</p>



<p class="wp-block-paragraph">声。</p>



<p class="wp-block-paragraph">部室。</p>



<p class="wp-block-paragraph">何度も繰り返した時間。</p>



<p class="wp-block-paragraph">彼は涙ぐみながら、後輩へ「その全て」を引き継いだと書いた。</p>



<p class="wp-block-paragraph">もちろん、すべてを渡すことはできない。</p>



<p class="wp-block-paragraph">自分が感じた楽しさを、そのまま渡すことはできない。</p>



<p class="wp-block-paragraph">同じ人間関係も、同じ時間も再現できない。</p>



<p class="wp-block-paragraph">次にそこへいる人には、その人たちの時間が始まる。</p>



<p class="wp-block-paragraph">だから引き継ぐということは、自分たちの時間を保存することではなかったのだと思う。</p>



<p class="wp-block-paragraph">自分たちがいた場所を空けること。</p>



<p class="wp-block-paragraph">次の人がそこで次の時間を始められるようにすること。</p>



<p class="wp-block-paragraph">自分がいた証拠を残し続けるのではなく、自分がいなくてもその場所が続く状態を作ること。</p>



<p class="wp-block-paragraph">そこで、最初の問いが少し別の形になる。</p>



<p class="wp-block-paragraph">自分には意味があるのか。</p>



<p class="wp-block-paragraph">そこから、</p>



<p class="wp-block-paragraph">自分はここにいていいのか。</p>



<p class="wp-block-paragraph">そして最後には、</p>



<p class="wp-block-paragraph">自分がここを離れたあと、何が残るのか。</p>



<p class="wp-block-paragraph">自分がいなくなっても、世界は続く。</p>



<p class="wp-block-paragraph">部活も続く。</p>



<p class="wp-block-paragraph">後輩は次の日を生きる。</p>



<p class="wp-block-paragraph">学校には新しい人が入ってくる。</p>



<p class="wp-block-paragraph">自分がいなくても困らない日が、やがて来る。</p>



<p class="wp-block-paragraph">それは、十四歳のころの彼が怖れていたことに近い。</p>



<p class="wp-block-paragraph">自分がいなくても同じなのではないか。</p>



<p class="wp-block-paragraph">しかし、高校生活の終わりで同じ事実に触れたとき、意味は少し違っている。</p>



<p class="wp-block-paragraph">世界が自分なしでも続くことと、自分がそこにいた時間が無意味であることは、同じではなかった。</p>



<p class="wp-block-paragraph">自分が永遠に必要とされ続けなければ、存在した意味が失われるわけではない。</p>



<p class="wp-block-paragraph">誰かの後に入り、</p>



<p class="wp-block-paragraph">そこで時間を過ごし、</p>



<p class="wp-block-paragraph">次の誰かへ場所を渡す。</p>



<p class="wp-block-paragraph">自分も、その流れの一部になる。</p>



<p class="wp-block-paragraph">青春を「成長」という一言でまとめると、この揺れが消えてしまう。</p>



<p class="wp-block-paragraph">彼は一方向に強くなったわけではない。</p>



<p class="wp-block-paragraph">存在について考えなくなったあと、また考えた。</p>



<p class="wp-block-paragraph">人に囲まれたあと、一人になりたくなった。</p>



<p class="wp-block-paragraph">幸福を得たあと、その幸福を疑った。</p>



<p class="wp-block-paragraph">所属したあと、そこから離れた。</p>



<p class="wp-block-paragraph">問いは解決されず、形を変えながら残った。</p>



<p class="wp-block-paragraph">それでも、最初と最後では何かが違っている。</p>



<p class="wp-block-paragraph">最初の彼は、存在意義を答えとして探していた。</p>



<p class="wp-block-paragraph">どこかに正しい理由があり、それを見つければ自分がここにいていいと分かるような気がしていた。</p>



<p class="wp-block-paragraph">高校生活で起きたことは、そうではなかった。</p>



<p class="wp-block-paragraph">高校へ行った。</p>



<p class="wp-block-paragraph">友人ができた。</p>



<p class="wp-block-paragraph">部活を選んだ。</p>



<p class="wp-block-paragraph">忙しくなった。</p>



<p class="wp-block-paragraph">先輩が卒業した。</p>



<p class="wp-block-paragraph">後輩が来た。</p>



<p class="wp-block-paragraph">誰かのために動いた。</p>



<p class="wp-block-paragraph">一日休んだ。</p>



<p class="wp-block-paragraph">戻った。</p>



<p class="wp-block-paragraph">理解しようとしてくれる人がいた。</p>



<p class="wp-block-paragraph">引退した。</p>



<p class="wp-block-paragraph">卒業した。</p>



<p class="wp-block-paragraph">どれも、それだけなら小さな出来事だった。</p>



<p class="wp-block-paragraph">けれど、その連続の中で、十歳になる前から抱えていた問いが聞こえない時間があった。</p>



<p class="wp-block-paragraph">人生の意味を発見したからではない。</p>



<p class="wp-block-paragraph">生活があったからだ。</p>



<p class="wp-block-paragraph">自分を説明するより先に、その日があった。</p>



<p class="wp-block-paragraph">自分の価値を決めるより先に、人がいた。</p>



<p class="wp-block-paragraph">自分がここにいてよい理由を探すより先に、すでにそこにいた。</p>



<p class="wp-block-paragraph">青年期は、自分というものがまだ決まっていないことに気づく時期でもある。</p>



<p class="wp-block-paragraph">進路を選ぶ。</p>



<p class="wp-block-paragraph">関係を選ぶ。</p>



<p class="wp-block-paragraph">場所を選ぶ。</p>



<p class="wp-block-paragraph">そのたびに、何かを選ばずに残す。</p>



<p class="wp-block-paragraph">自由だから不安になる。</p>



<p class="wp-block-paragraph">可能性があるから迷う。</p>



<p class="wp-block-paragraph">自分だけでは生きられないのに、最後には自分で選ばなければならない。</p>



<p class="wp-block-paragraph">人といることで自分が見え、自分と他者が完全には同じになれないことも知る。</p>



<p class="wp-block-paragraph">そして、どれだけ重要な時間にも終わりがあることを知る。</p>



<p class="wp-block-paragraph">それらは、青春の外側にある哲学ではない。</p>



<p class="wp-block-paragraph">進学すること。</p>



<p class="wp-block-paragraph">一枚の入部届を書くこと。</p>



<p class="wp-block-paragraph">一日休むこと。</p>



<p class="wp-block-paragraph">翌日に戻ること。</p>



<p class="wp-block-paragraph">卒業式のあとに部室へ行くこと。</p>



<p class="wp-block-paragraph">そういう出来事の中に、すでにある。</p>



<p class="wp-block-paragraph">存在意義も同じだった。</p>



<p class="wp-block-paragraph">どこかから与えられる一つの答えではなかった。</p>



<p class="wp-block-paragraph">人生が少しつながって見えること。</p>



<p class="wp-block-paragraph">向かう先があること。</p>



<p class="wp-block-paragraph">自分が誰かや何かとの関係の中にいること。</p>



<p class="wp-block-paragraph">自分が存在したことで、ほんの少しでも何かが変わったと感じられること。</p>



<p class="wp-block-paragraph">それらは一度完成して終わるものではない。</p>



<p class="wp-block-paragraph">場所が変われば組み直される。</p>



<p class="wp-block-paragraph">人と離れれば揺れる。</p>



<p class="wp-block-paragraph">役割がなくなれば、また分からなくなる。</p>



<p class="wp-block-paragraph">十四歳の彼は、それを知らなかった。</p>



<p class="wp-block-paragraph">だから「存在意義」という一つの言葉の中に、答えを探した。</p>



<p class="wp-block-paragraph">高校生になった彼も、その答えを説明できるようになったわけではない。</p>



<p class="wp-block-paragraph">ただ、</p>



<p class="wp-block-paragraph">友人がいた。</p>



<p class="wp-block-paragraph">部活があった。</p>



<p class="wp-block-paragraph">後輩がいた。</p>



<p class="wp-block-paragraph">忙しい一日があった。</p>



<p class="wp-block-paragraph">休んだ日があった。</p>



<p class="wp-block-paragraph">戻る場所があった。</p>



<p class="wp-block-paragraph">理解しようとしてくれる人がいた。</p>



<p class="wp-block-paragraph">離れなければならない日が来た。</p>



<p class="wp-block-paragraph">彼は、それらを通過した。</p>



<p class="wp-block-paragraph">そして高校生活は終わった。原稿も、その先を詳しくは書いていない。</p>



<p class="wp-block-paragraph">彼は新しい道へ進み始めた。</p>



<p class="wp-block-paragraph">十歳になる前から抱えていた問いに、最終的な答えが出たわけではない。</p>



<p class="wp-block-paragraph">それでも、三年間の中には確かに、問いを考えなくてもよい時間があった。</p>



<p class="wp-block-paragraph">自分がなぜ存在するのか分からないまま、</p>



<p class="wp-block-paragraph">そこにいた。</p>



<p class="wp-block-paragraph">人と過ごした。</p>



<p class="wp-block-paragraph">何かをした。</p>



<p class="wp-block-paragraph">誰かへ渡した。</p>



<p class="wp-block-paragraph">そして離れた。</p>



<p class="wp-block-paragraph">存在意義は、生きる前に見つけておかなければならない理由ではなかったのかもしれない。</p>



<p class="wp-block-paragraph">少なくとも、あの三年間はそうだった。</p>



<p class="wp-block-paragraph">少年は存在意義を見つけなかった。</p>



<p class="wp-block-paragraph">存在意義が分からないまま、三年間を生きた。</p>



<p class="wp-block-paragraph">その三年間が終わったあと、</p>



<p class="wp-block-paragraph">そこに意味があったことだけが残った。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://tranquilguides.com/meaning-later/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1</post-id>	</item>
		<item>
		<title>灰になる前の孤島</title>
		<link>https://tranquilguides.com/ash-island/</link>
		
		<dc:creator><![CDATA[案内人のアシカ]]></dc:creator>
		<pubDate>Mon, 20 Jul 2026 13:14:35 +0000</pubDate>
				<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=1674</guid>

					<description><![CDATA[<p><img src="https://i0.wp.com/tranquilguides.com/wp-content/uploads/2026/07/IMG_20260720_220121.jpg?fit=1024%2C538&ssl=1" class="webfeedsFeaturedVisual" /></p>誰にも期待されず、何者にもならなくていい駅裏の喫煙所。火事で失われ、美しい意味を与えられていく場所と、そこに逃げていた男の記憶を描きます。]]></description>
										<content:encoded><![CDATA[<p><img src="https://i0.wp.com/tranquilguides.com/wp-content/uploads/2026/07/IMG_20260720_220121.jpg?fit=1024%2C538&ssl=1" class="webfeedsFeaturedVisual" /></p>
<h2 class="wp-block-heading p2">午前2時17分</h2>



<p class="p2 wp-block-paragraph">男は毎晩、駅裏の古い喫煙所にいた。</p>



<p class="p2 wp-block-paragraph">理由はない。</p>



<p class="p2 wp-block-paragraph">正確には、理由を考えることをやめていた。</p>



<p class="p2 wp-block-paragraph">仕事は好きではなかった。</p>



<p class="p2 wp-block-paragraph">人間関係は面倒だった。</p>



<p class="p2 wp-block-paragraph">将来のことを考えると、胃の奥が少し重くなった。</p>



<p class="p2 wp-block-paragraph">でも、人生が壊れているわけではない。</p>



<p class="p2 wp-block-paragraph">借金があるわけでもない。</p>



<p class="p2 wp-block-paragraph">大切な人を失ったわけでもない。</p>



<p class="p2 wp-block-paragraph">ただ、何をするにも少し遅かった。</p>



<p class="p2 wp-block-paragraph">始めようと思った時には疲れていた。</p>



<p class="p2 wp-block-paragraph">変わろうと思った時には面倒になっていた。</p>



<p class="p2 wp-block-paragraph">男は、そういう人間だった。</p>



<p class="p2 wp-block-paragraph">大きな不幸はない。</p>



<p class="p2 wp-block-paragraph">大きな成功もない。</p>



<p class="p2 wp-block-paragraph">誰かを傷つけるほど悪い人間でもない。</p>



<p class="p2 wp-block-paragraph">何もない。</p>



<p class="p2 wp-block-paragraph">ただ、少しずつ期待されなくなる。</p>



<p class="p2 wp-block-paragraph">「あいつなら、まあ仕方ない」</p>



<p class="p2 wp-block-paragraph">いつの間にか、そういう扱いをされる側になっていた。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="p2 wp-block-paragraph">男は一人でいることが好きだった。</p>



<p class="p2 wp-block-paragraph">誰かといると気を使う。</p>



<p class="p2 wp-block-paragraph">何を話せばいいか考える。</p>



<p class="p2 wp-block-paragraph">相手の顔色を見る。</p>



<p class="p2 wp-block-paragraph">だから一人は楽だった。</p>



<p class="p2 wp-block-paragraph">でも、スマホを開いて通知が一件もない時だけ、少し落ち着かなかった。</p>



<p class="p2 wp-block-paragraph">自分でも面倒な人間だと思った。</p>



<p class="p2 wp-block-paragraph">放っておいてほしい。</p>



<p class="p2 wp-block-paragraph">でも、完全に忘れられるのは怖い。</p>



<p class="p2 wp-block-paragraph">人間なんて、そんなものだと思った。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="p2 wp-block-paragraph">喫煙所は街の端にあった。</p>



<p class="p2 wp-block-paragraph">古い灰皿。</p>



<p class="p2 wp-block-paragraph">剥がれた壁。</p>



<p class="p2 wp-block-paragraph">黄色く変色した照明。</p>



<p class="p2 wp-block-paragraph">誰も掃除しない床。</p>



<p class="p2 wp-block-paragraph">雨の日には水が溜まり、冬には冷たい風が入り込む。</p>



<p class="p2 wp-block-paragraph">快適な場所ではなかった。</p>



<p class="p2 wp-block-paragraph">むしろ、少し汚かった。</p>



<p class="p2 wp-block-paragraph">男はそこが好きだった。</p>



<p class="p2 wp-block-paragraph">……いや、好きという言葉は違った。</p>



<p class="p2 wp-block-paragraph">ただ嫌いではなかった。</p>



<p class="p2 wp-block-paragraph">そこには誰も期待していなかった。</p>



<p class="p2 wp-block-paragraph">綺麗になることも。</p>



<p class="p2 wp-block-paragraph">役に立つことも。</p>



<p class="p2 wp-block-paragraph">誰かに褒められることも。</p>



<p class="p2 wp-block-paragraph">だから、そこにいる間だけは自分も何者かにならなくていい気がした。</p>



<p class="p2 wp-block-paragraph">タバコに火をつける。</p>



<p class="p2 wp-block-paragraph">煙を見る。</p>



<p class="p2 wp-block-paragraph">スマホを見る。</p>



<p class="p2 wp-block-paragraph">数分だけのつもりが何十分も経つ。</p>



<p class="p2 wp-block-paragraph">それで一日が終わる。</p>



<p class="p2 wp-block-paragraph">何年も、それを繰り返していた。</p>



<h2 class="wp-block-heading p2">燃えた夜</h2>



<p class="p2 wp-block-paragraph">その喫煙所がニュースになったのは、ある冬の夜だった。</p>



<p class="p2 wp-block-paragraph">午前2時30分、男が帰ってから15分後。</p>



<p class="p2 wp-block-paragraph">喫煙所の裏に積まれていた段ボールから火が出た。</p>



<p class="p2 wp-block-paragraph">古い商店街。</p>



<p class="p2 wp-block-paragraph">使われなくなった倉庫。</p>



<p class="p2 wp-block-paragraph">隣接した建物。</p>



<p class="p2 wp-block-paragraph">火は予想以上に広がった。</p>



<p class="p2 wp-block-paragraph">消防車の赤い光が、眠る街を照らした。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="p2 wp-block-paragraph">翌朝、ニュースでは短く伝えられた。</p>



<p class="p2 wp-block-paragraph">「昨夜、駅裏の喫煙所付近で火災が発生しました。出火原因を調べています」</p>



<p class="p2 wp-block-paragraph">男はテレビを消した。</p>



<p class="p2 wp-block-paragraph">自分ではない。</p>



<p class="p2 wp-block-paragraph">それは分かっていた。</p>



<p class="p2 wp-block-paragraph">証拠もない。</p>



<p class="p2 wp-block-paragraph">疑われる理由もない。</p>



<p class="p2 wp-block-paragraph">それでも落ち着かなかった。</p>



<p class="p2 wp-block-paragraph">最後にあそこにいた。</p>



<p class="p2 wp-block-paragraph">最後に煙を吐いていた。</p>



<p class="p2 wp-block-paragraph">その記憶だけが、妙に頭を刺激した。</p>



<h2 class="wp-block-heading p2">美しくなった島</h2>



<p class="p2 wp-block-paragraph">数日後、火事の跡地がテレビに映った。</p>



<p class="p2 wp-block-paragraph">焼けた灰皿。</p>



<p class="p2 wp-block-paragraph">黒くなった壁。</p>



<p class="p2 wp-block-paragraph">崩れた屋根。</p>



<p class="p2 wp-block-paragraph">そして、焼け跡から見つかった一冊のノート。</p>



<p class="p2 wp-block-paragraph">誰のものか分からない。</p>



<p class="p2 wp-block-paragraph">表紙は焦げていた。</p>



<p class="p2 wp-block-paragraph">中には短い文章が残っていた。</p>



<p class="p2 wp-block-paragraph">名前はない。</p>



<p class="p2 wp-block-paragraph">日付だけ。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="p2 wp-block-paragraph">「寝坊した」</p>



<p class="p2 wp-block-paragraph">「上司の話が長い」</p>



<p class="p2 wp-block-paragraph">「昼のカレーが微妙だった」</p>



<p class="p2 wp-block-paragraph">「給料日。でも何も買わなかった」</p>



<p class="p2 wp-block-paragraph">「明日から本気出す」</p>



<p class="p2 wp-block-paragraph">「また寝た」</p>



<p class="p2 wp-block-paragraph">「電話しなかった」</p>



<p class="p2 wp-block-paragraph">「腹減った」</p>



<p class="wp-block-paragraph">「ねむい」</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>



<p class="p2 wp-block-paragraph">男は少し笑った。</p>



<p class="p2 wp-block-paragraph">くだらない。</p>



<p class="p2 wp-block-paragraph">本当にくだらない。</p>



<p class="p2 wp-block-paragraph">誰かに見せるためでもない。</p>



<p class="p2 wp-block-paragraph">誰かを救うためでもない。</p>



<p class="p2 wp-block-paragraph">ただ、その日の気分を書いただけ。</p>



<p class="p2 wp-block-paragraph">なのにテレビでは別の言葉が流れていた。</p>



<p class="p2 wp-block-paragraph">「孤独を抱えた人々の記録」</p>



<p class="p2 wp-block-paragraph">「小さな心の避難場所」</p>



<p class="p2 wp-block-paragraph">男は画面を見る。</p>



<p class="p2 wp-block-paragraph">そこに映っている場所は、自分が知っている喫煙所とは少し違って見えた。</p>



<p class="p2 wp-block-paragraph">写真家が来た。</p>



<p class="p2 wp-block-paragraph">記者が来た。</p>



<p class="p2 wp-block-paragraph">街の人間が昔の場所について語った。</p>



<p class="p2 wp-block-paragraph">みんな、あの場所に意味を見つけようとしていた。</p>



<p class="p2 wp-block-paragraph">男は少し気持ち悪くなった。</p>



<p class="p2 wp-block-paragraph">違う。</p>



<p class="p2 wp-block-paragraph">あそこは、そんな綺麗な場所じゃなかった。</p>



<p class="p2 wp-block-paragraph">あそこにいた人間は、もっとくだらなかった。</p>



<p class="p2 wp-block-paragraph">自分も含めて。</p>



<p class="p2 wp-block-paragraph">仕事を少しサボった人。</p>



<p class="p2 wp-block-paragraph">家族からの連絡を後回しにした人。</p>



<p class="p2 wp-block-paragraph">酒を飲んでから来る人。</p>



<p class="p2 wp-block-paragraph">何年も同じ愚痴を言う人。</p>



<p class="p2 wp-block-paragraph">変わると言いながら何も変えない人。</p>



<p class="p2 wp-block-paragraph">あそこは人生を救う場所ではなかった。</p>



<p class="p2 wp-block-paragraph">ただ、<strong>人生から少し離れる場所</strong>だった。</p>



<p class="p2 wp-block-paragraph">それだけだった。</p>



<h2 class="wp-block-heading p2">少女</h2>



<p class="p2 wp-block-paragraph">火事の後、男は少女を見なくなった。</p>



<p class="p2 wp-block-paragraph">いつも深夜になると、喫煙所の端に座っていた少女。</p>



<p class="p2 wp-block-paragraph">タバコは吸わない。</p>



<p class="p2 wp-block-paragraph">ただ煙を見ていた。</p>



<p class="p2 wp-block-paragraph">年齢も分からない。</p>



<p class="p2 wp-block-paragraph">名前も知らない。</p>



<p class="p2 wp-block-paragraph">いつからいたのかも分からない。</p>



<p class="p2 wp-block-paragraph">最後に会った日の夜、少女は燃える前の喫煙所を見ながら言った。</p>



<p class="p2 wp-block-paragraph">「なくなるんだね」</p>



<p class="p2 wp-block-paragraph">男は答えなかった。</p>



<p class="p2 wp-block-paragraph">「寂しい？」</p>



<p class="p2 wp-block-paragraph">「別に」</p>



<p class="p2 wp-block-paragraph">少女は少し笑った。</p>



<p class="p2 wp-block-paragraph">「嘘」</p>



<p class="p2 wp-block-paragraph">男は煙を吐いた。</p>



<p class="p2 wp-block-paragraph">「ここ、好きだった？」</p>



<p class="p2 wp-block-paragraph">少女は灰皿を見る。</p>



<p class="p2 wp-block-paragraph">「分からない」</p>



<p class="wp-block-paragraph">「……」</p>



<p class="wp-block-paragraph">「……」</p>



<p class="p2 wp-block-paragraph">少し間があった。</p>



<p class="p2 wp-block-paragraph">「でも、なくなると困る人はいたと思う」</p>



<p class="p2 wp-block-paragraph">男は黙った。</p>



<p class="p2 wp-block-paragraph">少女は続けた。</p>



<p class="p2 wp-block-paragraph">「あなたも？」</p>



<p class="p2 wp-block-paragraph">男は答えなかった。</p>



<p class="p2 wp-block-paragraph">好きだから離れられない場所もある。</p>



<p class="p2 wp-block-paragraph">嫌いなのに離れられない場所もある。</p>



<p class="p2 wp-block-paragraph">逃げていると分かっていても、そこにしかいられない夜がある。</p>



<p class="wp-block-paragraph">「……たぶん」</p>



<p class="wp-block-paragraph">少女は既にいなかった。</p>



<h2 class="wp-block-heading p2">灰になる前</h2>



<p class="p2 wp-block-paragraph">火事から半年後、男は跡地へ行った。</p>



<p class="p2 wp-block-paragraph">そこには新しい建物が建っていた。</p>



<p class="p2 wp-block-paragraph">ガラス張りの施設。</p>



<p class="p2 wp-block-paragraph">小さなカフェ。</p>



<p class="p2 wp-block-paragraph">植物。</p>



<p class="p2 wp-block-paragraph">綺麗なベンチ。</p>



<p class="p2 wp-block-paragraph">壁には文字があった。</p>



<p class="p2 wp-block-paragraph">「人に優しい街づくり」</p>



<p class="p2 wp-block-paragraph">男は少し笑った。</p>



<p class="p2 wp-block-paragraph">たぶん、こっちの方が正しい。</p>



<p class="p2 wp-block-paragraph">安全で、綺麗で、誰でも座れる。</p>



<p class="p2 wp-block-paragraph">昔の喫煙所より、ずっと良い場所だった。</p>



<p class="p2 wp-block-paragraph">でも、男は座らなかった。</p>



<p class="p2 wp-block-paragraph">あの汚れた灰皿の横で。</p>



<p class="p2 wp-block-paragraph">何もせず煙を眺めていた時間。</p>



<p class="p2 wp-block-paragraph">あれが良かったわけではない。</p>



<p class="p2 wp-block-paragraph">あれが正しかったわけでもない。</p>



<p class="p2 wp-block-paragraph">ただ、あの時の自分には必要だった。</p>



<p class="p2 wp-block-paragraph">男はポケットからタバコを取り出した。</p>



<p class="p2 wp-block-paragraph">しばらく眺める。</p>



<p class="p2 wp-block-paragraph">火をつけようとして、やめた。</p>



<p class="p2 wp-block-paragraph">禁煙したわけではない。</p>



<p class="p2 wp-block-paragraph">明日にはまた吸うかもしれない。</p>



<p class="p2 wp-block-paragraph">ただ今日は、煙の向こう側に逃げなくても数分くらいは立っていられる気がした。</p>



<p class="p2 wp-block-paragraph">理由は分からなかった。</p>



<p class="p2 wp-block-paragraph">男は歩き出した。</p>



<p class="p2 wp-block-paragraph">男の背中には、新しい街ができていた。</p>



<p class="p2 wp-block-paragraph">煙は消えた。</p>



<p class="p2 wp-block-paragraph">灰も残っていない。</p>



<p class="p2 wp-block-paragraph">それでも、灰になる前の時間だけは、どこかに残っている気がした。</p>
]]></content:encoded>
					
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1674</post-id>	</item>
		<item>
		<title>夜の茶室 営業記録</title>
		<link>https://tranquilguides.com/night-room-logs/</link>
					<comments>https://tranquilguides.com/night-room-logs/#respond</comments>
		
		<dc:creator><![CDATA[案内人のアシカ]]></dc:creator>
		<pubDate>Thu, 02 Jul 2026 03:30:00 +0000</pubDate>
				<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=1236</guid>

					<description><![CDATA[<p><img src="https://i0.wp.com/tranquilguides.com/wp-content/uploads/2026/07/IMG_20260702_001351.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/IMG_20260702_001351.jpg?fit=1024%2C683&ssl=1" class="webfeedsFeaturedVisual" /></p><style>
    .night-room-logs{
      max-width:520px;
      margin:64px auto;
      font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
      font-size:.9rem;
      line-height:2;
      letter-spacing:.06em;
    }
    .night-room-stats{ margin-bottom:40px; opacity:.78; }
    .night-room-stats p,
    .night-room-log-lines p{ margin:0 0 .8em; }
    .night-room-stats a{
      color:inherit;
      text-decoration:none;
      border-bottom:1px solid currentColor;
    }
    .night-room-log-lines{ opacity:.68; }
    .night-room-log-lines p{ scroll-margin-top:80px; }
    </style><div class="night-room-logs"><div class="night-room-stats"><p>これまで迎えた人　8人</p><p>夜を開いた回数　19日</p><p>一晩あたりの平均　0.4人/日</p><p>一晩あたりの中央値　0人/日</p><p>もっとも賑わった夜　<a href="#night-room-log-20260701050027">2026.07.01 05:00:27</a></p></div><div class="night-room-log-lines"><p id="night-room-log-20261020210708">2026.10.20　21:07:08　0</p><p id="night-room-log-20260929205024">2026.09.29　20:50:24　0</p><p id="night-room-log-20260906203348">2026.09.06　20:33:48　0</p><p id="night-room-log-20260906203348">2026.09.06　20:33:48　0</p><p id="night-room-log-20260830202846">2026.08.30　20:28:46　0</p><p id="night-room-log-20260827202636">2026.08.27　20:26:36　0</p><p id="night-room-log-20260827202636">2026.08.27　20:26:36　0</p><p id="night-room-log-20260813201615">2026.08.13　20:16:15　0</p><p id="night-room-log-20260805201015">2026.08.05　20:10:15　0</p><p id="night-room-log-20260713195358">2026.07.13　19:53:58　0</p><p id="night-room-log-20260712195320">2026.07.12　19:53:20　0</p><p id="night-room-log-20260708195059">2026.07.08　19:50:59　0</p><p id="night-room-log-20260707050026">2026.07.07　05:00:26　0</p><p id="night-room-log-20260706050054">2026.07.06　05:00:54　0</p><p id="night-room-log-20260705050022">2026.07.05　05:00:22　0</p><p id="night-room-log-20260704050022">2026.07.04　05:00:22　0</p><p id="night-room-log-20260703050022">2026.07.03　05:00:22　0</p><p id="night-room-log-20260702050054">2026.07.02　05:00:54　0</p><p id="night-room-log-20260701050027">2026.07.01　05:00:27　8</p></div></div>



<p class="has-text-align-center wp-block-paragraph">夜の茶室が閉じたあと、席についた人の数を記録しています。</p>



<div style="height:100px" aria-hidden="true" class="wp-block-spacer"></div>


<div class="swell-block-postLink">			<div class="p-blogCard -internal" data-type="type1" data-onclick="clickLink">
				<div class="p-blogCard__inner">
					<span class="p-blogCard__caption">あわせて読みたい</span>
					<div class="p-blogCard__thumb c-postThumb"><figure class="c-postThumb__figure"><img decoding="async" src="https://i0.wp.com/tranquilguides.com/wp-content/uploads/2026/07/IMG_20260702_001350.jpg?fit=300%2C200&#038;ssl=1" alt="" class="c-postThumb__img u-obf-cover" width="320" height="180"></figure></div>					<div class="p-blogCard__body">
						<a class="p-blogCard__title" href="https://tranquilguides.com/night-room/">夜の茶室</a>
						<span class="p-blogCard__excerpt">日没から夜明けまで開く、小さな夜の部屋。何かを話さなくても、ただ席につくだけで、その夜を誰かと静かに共有できます。</span>					</div>
				</div>
			</div>
		</div>


<style data-wp-block-html="css">
.cl-copyright{
  margin:80px auto 24px;
  text-align:center;
  font-size:13px;
  letter-spacing:.08em;
  opacity:.55;
}

.cl-copyright a{
  color:inherit;
  text-decoration:none;
  transition:opacity .2s ease;
}

.cl-copyright a:hover{
  opacity:1;
}
</style>

<div class="cl-copyright">
  <a href="https://tranquilguides.com/">
Tranquilvæj
  </a>
</div>



<style data-wp-block-html="css">

/* 夜の茶室：表示領域全体をモノクロ */
html,
body,
#body_wrap,
#content,
.l-content,
.l-mainContent,
.l-mainContent__inner,
#main_content,
.post_content {
  filter: grayscale(1) !important;
}
</style>
]]></content:encoded>
					
					<wfw:commentRss>https://tranquilguides.com/night-room-logs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1236</post-id>	</item>
		<item>
		<title>夜の茶室</title>
		<link>https://tranquilguides.com/night-room/</link>
					<comments>https://tranquilguides.com/night-room/#respond</comments>
		
		<dc:creator><![CDATA[案内人のアシカ]]></dc:creator>
		<pubDate>Wed, 01 Jul 2026 08:46:54 +0000</pubDate>
				<category><![CDATA[生存ログ]]></category>
		<category><![CDATA[体験]]></category>
		<category><![CDATA[夜]]></category>
		<category><![CDATA[居場所]]></category>
		<category><![CDATA[部屋]]></category>
		<guid isPermaLink="false">https://tranquilguides.com/?p=1229</guid>

					<description><![CDATA[<p><img src="https://i0.wp.com/tranquilguides.com/wp-content/uploads/2026/07/IMG_20260702_001350.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/IMG_20260702_001350.jpg?fit=1024%2C683&ssl=1" class="webfeedsFeaturedVisual" /></p>	  
<div id="NightRoom" class="night-room">


<div id="NightClosed" class="night-closed">
	
  <p class="small">
    太陽のいない「あいだ」にのみ開きます。
  </p>

  <div class="night-wait">
    <p class="night-wait-label">本日の日没</p>
    <p class="night-wait-time">17:05</p>

    <p id="NightCountdownLabel" class="night-wait-label">開室まで</p>
<p
  id="NightCountdown"
  class="night-countdown"
  data-sunset-ts="1793433957">
  08:33:14</p>
  </div>
</div>
	
	
</div>

  <script>
console.log('NightRoom version: 2026-07-09-01');
	
    document.addEventListener('DOMContentLoaded', function () {
		
      const ajaxUrl = 'https://tranquilguides.com/wp-admin/admin-ajax.php';

      const openEl = document.getElementById('NightOpen');
      const closedEl = document.getElementById('NightClosed');
      const cupShelfEl = document.getElementById('CupShelf');
const btn = document.getElementById('TakeSeatBtn');
const btnText = document.getElementById('TakeSeatText');
const msg = document.getElementById('SeatMessage');

function isNightTime() {
  return false;
}

function todayKey() {
  const parts = new Intl.DateTimeFormat('ja-JP', {
    timeZone: 'Asia/Tokyo',
    year: 'numeric',
    month: '2-digit',
    day: '2-digit'
  }).formatToParts(new Date());

  const y = parts.find(p => p.type === 'year').value;
  const m = parts.find(p => p.type === 'month').value;
  const d = parts.find(p => p.type === 'day').value;

  return `${y}-${m}-${d}`;
}

function seededNumber(str) {
  let hash = 0;

  for (let i = 0; i < str.length; i++) {
    hash = (hash * 31 + str.charCodeAt(i)) >>> 0;
  }

  return hash / 4294967295;
}

function seededRange(str, min, max) {
  return min + seededNumber(str) * (max - min);
}
		
      function hasTakenSeatToday() {
        return localStorage.getItem('night_room_seat_' + todayKey()) === '1';
      }

      function markTakenSeatToday() {
        localStorage.setItem('night_room_seat_' + todayKey(), '1');
      }

      function loadCupCount() {
        fetch(ajaxUrl + '?action=night_room_get_cup_count')
          .then(res => res.json())
          .then(data => {
            renderCups(data.count || 0);
          });
      }
		
let currentCupCount = 0;

function syncCupCount() {
  fetch(ajaxUrl + '?action=night_room_get_cup_count' + '&ts=' + Date.now())
    .then(res => res.json())
    .then(data => {
      const newCount = data.count || 0;

      if (newCount > currentCupCount) {
        for (let i = currentCupCount + 1; i <= newCount; i++) {
          addCup(i);
        }
      }

      currentCupCount = newCount;
    });
}

function takeSeat() {
  if (hasTakenSeatToday()) {
    btn.disabled = true;
    btn.classList.add('is-leaving');
    btnText.textContent = '素敵な夜を';
    btn.classList.add('is-seated');
    msg.textContent = '';
    return;
  }

btn.disabled = true;

setTimeout(() => {
  btn.classList.add('is-leaving');
}, 700);

fetch(ajaxUrl, {
    method: 'POST',
    headers: {
      'Content-Type': 'application/x-www-form-urlencoded'
    },
    body: 'action=night_room_take_seat'
  })
    .then(res => res.json())
    .then(data => {
      markTakenSeatToday();
      msg.textContent = '';

      // 1. 「席につく」を消す
      btnText.classList.add('is-fading-out');

      setTimeout(() => {
        // 2. 何も書いていないボタン
        btnText.textContent = '';
        btnText.classList.remove('is-fading-out');

        setTimeout(() => {
          // 3. 「お席を整えています」を表示
          btnText.classList.add('is-fading-out');

          setTimeout(() => {
            btnText.textContent = 'お席を整えています...';
            btnText.classList.remove('is-fading-out');
            btn.classList.add('is-preparing');

            setTimeout(() => {
              // 4. 「お席を整えています」を消す
              btnText.classList.add('is-fading-out');

              setTimeout(() => {
                // 5. 空白のまま、カップを出す
                btnText.textContent = '';
                btn.classList.remove('is-preparing');
                btnText.classList.remove('is-fading-out');

                addCup(data.count);
				currentCupCount = data.count || currentCupCount;

                setTimeout(() => {
                  // 6. 最終文言を表示
                  btnText.classList.add('is-fading-out');

                  setTimeout(() => {
                    btnText.textContent = '素敵な夜を';
                    btnText.classList.remove('is-fading-out');
                    btn.classList.add('is-seated');
                  }, 1200);

                }, 2200);

              }, 1200);

            }, 2200);

          }, 1200);

        }, 800);

      }, 1200);
    });
}

function renderCups(count) {
  cupShelfEl.innerHTML = '';

  if (!count || count < 1) {
    const empty = document.createElement('div');
    empty.className = 'cup-empty';
    empty.textContent = 'お席は、まだ空いています。';
    cupShelfEl.appendChild(empty);
    return;
  }

  for (let i = 0; i < count; i++) {
    const cup = createCupElement(i, false);
    cupShelfEl.appendChild(cup);
  }
	
currentCupCount = count || 0;
	
}

function addCup(count) {
  const empty = cupShelfEl.querySelector('.cup-empty');

  if (empty) {
    empty.classList.add('is-fading-out');

    setTimeout(() => {
      empty.remove();
      showNewCup(count);
    }, 1000);

    return;
  }

  showNewCup(count);
}

function showNewCup(count) {
  const cup = createCupElement(count - 1, true);

  cupShelfEl.appendChild(cup);

  requestAnimationFrame(() => {
    cup.classList.add('is-visible');
  });
}

function createCupElement(index, animate) {
  const cup = document.createElement('span');

  cup.innerHTML = `
    <svg class="cup-icon" viewBox="0 0 64 48" aria-hidden="true">
      <ellipse cx="32" cy="12" rx="18" ry="6"></ellipse>
      <path d="M14 12 C16 34, 22 40, 32 40 C42 40, 48 34, 50 12"></path>
      <ellipse cx="32" cy="40" rx="9" ry="3"></ellipse>
    </svg>
  `;

const basePositions = [
  [-28, -6, -3],
  [-10,  4,  2],
  [ 18, -3, -1],
  [ 34,  7,  3],
  [ -2, -10,  1],
  [ 12,  12, -4],
  [-35,  9,  2],
  [ 30, -11, -2],
  [ -18, 15,  4],
  [ 0,   18, -1],
  [ 40,  15,  2],
  [-42, -14, -2],
];

const base = basePositions[index % basePositions.length];
const seed = todayKey() + '-' + index;

const changeType = seededNumber(seed + '-change');

let x = base[0];
let y = base[1];
let r = base[2];

if (changeType < 0.3) {
  // 30%：ほぼ同じ
  x += seededRange(seed + '-x-small', -3, 3);
  y += seededRange(seed + '-y-small', -3, 3);
  r += seededRange(seed + '-r-small', -1, 1);
} else if (changeType < 0.7) {
  // 40%：少し変わる
  x += seededRange(seed + '-x-mid', -12, 12);
  y += seededRange(seed + '-y-mid', -10, 10);
  r += seededRange(seed + '-r-mid', -3, 3);
} else {
  // 30%：大きめに変わる
  x += seededRange(seed + '-x-large', -28, 28);
  y += seededRange(seed + '-y-large', -18, 18);
  r += seededRange(seed + '-r-large', -6, 6);
}

cup.style.transform = `translate(${x}px, ${y}px) rotate(${r}deg)`;
	
  cup.setAttribute('aria-hidden', 'true');

  if (animate) {
    cup.classList.add('cup-new');
  }

  return cup;
}
	
function startNightCountdown() {
	
  const countdownEl = document.getElementById('NightCountdown');
  const labelEl = document.getElementById('NightCountdownLabel');
  const roomEl = document.getElementById('NightRoom');

  if (!countdownEl || !labelEl) return;

  const sunset = Number(countdownEl.dataset.sunsetTs) * 1000;
	
  let reloadStarted = false;

  function pad(num) {
    return String(num).padStart(2, '0');
  }

  function updateCountdown() {
    const now = Date.now();
    const diff = sunset - now;

if (diff <= 0) {
  countdownEl.textContent = '00:00:00';

  if (!reloadStarted) {
    reloadStarted = true;
    window.location.href = window.location.pathname + '?nr=' + Date.now();
  }

  return;
}
	  
	/**
    if (!hasTakenSeatToday()) {
      btn.disabled = false;
      btn.addEventListener('click', takeSeat);
    } else {
      btn.disabled = true;
      btnText.textContent = '素敵な夜を';
      btn.classList.add('is-leaving');
      btn.classList.add('is-seated');
      msg.textContent = '';
    }
  }

  return;
}
	 */
	  
    const totalSeconds = Math.floor(diff / 1000);
    const hours = Math.floor(totalSeconds / 3600);
    const minutes = Math.floor((totalSeconds % 3600) / 60);
    const seconds = totalSeconds % 60;

    countdownEl.textContent =
      pad(hours) + ':' + pad(minutes) + ':' + pad(seconds);

    if (totalSeconds <= 10) {
      labelEl.textContent = 'こんばんは';
    } else if (totalSeconds <= 60) {
      labelEl.textContent = 'まもなく開室します';
    } else {
      labelEl.textContent = '開室まで';
    }
  }

  updateCountdown();
  setInterval(updateCountdown, 1000);
}
	
function startMorningMessage() {
  const greeting = document.getElementById('Greeting');

  if (!greeting) return;
  if (!openEl) return;

  const sunrise = new Date(openEl.dataset.sunrise).getTime();
  
  const morningUntil = new Date(openEl.dataset.morningUntil).getTime();

  function updateMorningMessage() {
    const now = Date.now();

if (now >= sunrise) {
    greeting.classList.add('is-morning');
    greeting.textContent = 'おはようございます';

    if (!btn.classList.contains('is-hidden')) {
        btn.classList.add('is-hidden');
        cupShelfEl.classList.add('is-hidden');
        msg.textContent = '';

        setTimeout(() => {
            btn.hidden = true;
            cupShelfEl.hidden = true;
        }, 800);
    }

if (now >= morningUntil) {
    window.location.href =
        window.location.pathname + '?nr=' + Date.now();
    return;
}

    return;
}

    if (now >= sunrise - 3600 * 1000) {
      greeting.textContent = 'まもなく夜が明けます';
    } else {
      greeting.textContent = 'こんばんは';
    }
  }

  updateMorningMessage();
  setInterval(updateMorningMessage, 1000);
}

function startMorningGrace() {
  if (!openEl) return;

  const morningUntil = new Date(openEl.dataset.morningUntil).getTime();

  function updateMorningGrace() {

if (Date.now() >= morningUntil) {
  window.location.href = window.location.pathname + '?nr=' + Date.now();
  return;
}
  }

  updateMorningGrace();
  setInterval(updateMorningGrace, 1000);
}
		
if (isNightTime()) {
  if (openEl) {
    openEl.hidden = false;
  }

  if (closedEl) {
    closedEl.hidden = true;
  }
	
loadCupCount();
setInterval(syncCupCount, 20000);
startMorningMessage();

  if (hasTakenSeatToday()) {
    btn.disabled = true;
    btnText.textContent = '素敵な夜を';
    btn.classList.add('is-leaving');
    btn.classList.add('is-seated');
    msg.textContent = '';
  }

  btn.addEventListener('click', takeSeat);

} else if (false) {
  if (openEl) {
    openEl.hidden = false;
  }

  if (closedEl) {
    closedEl.hidden = true;
  }

const morningGreeting = document.getElementById('Greeting');
morningGreeting.classList.add('is-morning');
morningGreeting.textContent = 'おはようございます';

btn.classList.add('is-hidden');
cupShelfEl.classList.add('is-hidden');
msg.textContent = '';

setTimeout(() => {
  btn.hidden = true;
  cupShelfEl.hidden = true;
}, 800);

startMorningGrace();

} else {
  if (openEl) {
    openEl.hidden = true;
  }

  if (closedEl) {
    closedEl.hidden = false;
    startNightCountdown();
  }
}
    });
  </script>
			  
			  
  



<style data-wp-block-html="css">
.night-room {
      min-height: 70vh;
      display: flex;
      flex-direction: column;
      justify-content: center;
      align-items: center;
      text-align: center;
      padding: 48px 20px;
      background: #f7f6f3;
      color: #111;
      filter: grayscale(1);
      font-family: inherit;
      transition: opacity 1.2s ease, filter 1.2s ease;
    }

    .night-room h1 {
      font-size: 1.8rem;
      font-weight: 400;
      letter-spacing: 0.08em;
      margin-bottom: 32px;
    }

    .small {
      font-size: 0.8rem;
      opacity: 0.55;
      margin-bottom: 40px;
    }

    .status {
      font-size: 1rem;
      margin-bottom: 32px;
    }

#TakeSeatBtn {
  appearance: none !important;
  -webkit-appearance: none !important;

  position: relative;
  min-width: 260px !important;
  height: 44px !important;
  padding: 0 24px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  box-sizing: border-box !important;

  border: none !important;
  background: transparent !important;
  background-color: transparent !important;
  box-shadow: none !important;

  color: inherit !important;
  border-radius: 999px !important;
  font-size: 0.95rem !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  text-decoration: none !important;

  cursor: pointer;
}

#TakeSeatBtn::before {
  content: "";
  position: absolute;
  inset: 0;
  border: 1px solid currentColor;
  border-radius: 999px;
  opacity: 1;
  transition: opacity 3.8s ease;
  pointer-events: none;
}

#TakeSeatBtn.is-leaving::before,
#TakeSeatBtn.is-seated::before {
  opacity: 0;
}

#TakeSeatBtn:disabled {
  cursor: default;
}

.btn-text {
  position: relative;
  z-index: 1;
  opacity: 1;
  transition: opacity 1.2s ease;
}

.btn-text.is-fading-out {
  opacity: 0;
}

#TakeSeatBtn.is-preparing .btn-text {
  opacity: 0.55;
}

#TakeSeatBtn.is-seated .btn-text {
  opacity: 0.62;
}
			  
.message {
      margin-top: 24px;
      font-size: 0.85rem;
      opacity: 0.65;
    }
	
.greeting {
  margin-bottom: 36px;
  font-size: 0.85rem;
  opacity: 0;
  pointer-events: none;
  animation: Greeting 8s ease-in-out forwards;
}

@keyframes Greeting {

  /* 最初は見えない */
  0% {
    opacity: 0;
  }

  /* ゆっくり現れる・5秒地点 */
  62.5% {
    opacity: 0.6;
  }

  /* 少し滞在・7秒地点 */
  87.5% {
    opacity: 0.6;
  }

  /* ゆっくり消える */
  100% {
    opacity: 0;
  }

}
			  
.cup-shelf {
  min-height: 72px;
  margin: 28px 0 34px;
  display: flex;
  justify-content: center;
  align-items: center;
}

.cup-row {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 14px;
  max-width: 260px;
  font-size: 1.45rem;
  line-height: 1.8;
  opacity: 0.72;
}

.cup-empty {
  font-size: 0.8rem;
  opacity: 0.45;
  transition: opacity 1s ease;
}

.cup-row span {
  display: inline-flex;
  width: 28px;
  height: 22px;
  align-items: center;
  justify-content: center;
}

.cup-icon {
  width: 28px;
  height: 22px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: 0.72;
}
			  	  
.cup-new {
  opacity: 0;
  transition: opacity 2s ease;
}

.cup-new.is-visible {
  opacity: 1;
}	
			  
.cup-empty.is-fading-out {
  opacity: 0;
}

.night-wait {
  text-align: center;
  margin-top: 2.5rem;
  letter-spacing: 0.08em;
}

.night-wait-label {
  font-size: 0.75rem;
  opacity: 0.55;
  margin: 1.5rem 0 0.4rem;
}

.night-wait-time,
.night-countdown {
  font-size: clamp(1.8rem, 6vw, 3.8rem);
  line-height: 1;
  margin: 0;
  font-weight: 300;
}

.night-room.is-opening {
  opacity: 0;
  filter: blur(6px);
}

.cup-shelf,
#TakeSeatBtn {
    transition: opacity .8s ease;
}

.cup-shelf.is-hidden,
#TakeSeatBtn.is-hidden{
    opacity:0;
    pointer-events:none;
}

.greeting.is-morning {
  animation: none !important;
  opacity: 0.62 !important;
}

</style>



<style data-wp-block-html="css">
.cl-copyright{
  margin:80px auto 24px;
  text-align:center;
  font-size:13px;
  letter-spacing:.08em;
  opacity:.55;
}

.cl-copyright a{
  color:inherit;
  text-decoration:none;
  transition:opacity .2s ease;
}

.cl-copyright a:hover{
  opacity:1;
}
</style>

<div class="cl-copyright">
  <a href="https://tranquilguides.com/">
Tranquilvæj
  </a>
</div>



<style data-wp-block-html="css">
/* 診断ページ専用：外側UI削除 */
#header,
.l-header,
.l-fixHeader,
#fix_header,
#sp_menu,
.p-spMenu,
.p-spMenu__inner,
.p-spMenu__body,
.p-spMenu__overlay,
#breadcrumb,
.c-postTitle,
.p-articleMetas,
.p-postTax,
.p-articleFoot,
.l-articleBottom,
.l-contentBottom,
.w-beforeFooter,
.l-footerWidgets,
.l-footer {
  display: none !important;
}

/* 余白リセット */
:root {
  --swl-headerH: 0px !important;
  --swl-fix_headerH: 0px !important;
  --swl-offset_y: 0px !important;
}

html,
body,
#body_wrap,
#content,
.l-content,
.l-mainContent,
.l-mainContent__inner,
#main_content {
  margin-top: 0 !important;
  padding-top: 0 !important;
}

/* 夜の茶室：表示領域全体をモノクロ */
html,
body,
#body_wrap,
#content,
.l-content,
.l-mainContent,
.l-mainContent__inner,
#main_content,
.post_content {
  filter: grayscale(1) !important;
}

.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;
}

#breadcrumb {
  display: none !important;
}
</style>

<script data-wp-block-html="js">
document.addEventListener("DOMContentLoaded", () => {
  [
    "#header",
    ".l-header",
    ".l-fixHeader",
    "#fix_header",
    "#sp_menu",
    ".p-spMenu",
    "#breadcrumb",
    ".c-postTitle",
    ".p-articleMetas",
    ".p-postTax",
    ".p-articleFoot",
    ".l-articleBottom",
    ".l-contentBottom",
    ".w-beforeFooter",
    ".l-footerWidgets",
    ".l-footer"
  ].forEach(selector => {
    document.querySelectorAll(selector).forEach(el => el.remove());
  });
});
</script>
]]></content:encoded>
					
					<wfw:commentRss>https://tranquilguides.com/night-room/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1229</post-id>	</item>
		<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[休息]]></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 15:52:00 +0000</pubDate>
				<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>
		<item>
		<title>深夜待合室</title>
		<link>https://tranquilguides.com/midnight-waiting-room/</link>
					<comments>https://tranquilguides.com/midnight-waiting-room/#respond</comments>
		
		<dc:creator><![CDATA[案内人のアシカ]]></dc:creator>
		<pubDate>Tue, 23 Jun 2026 11:01:48 +0000</pubDate>
				<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=1045</guid>

					<description><![CDATA[<p><img src="https://i0.wp.com/tranquilguides.com/wp-content/uploads/2026/07/2c6ed2f9-6b1b-4b64-b2cd-bc73e39fddb8.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/2c6ed2f9-6b1b-4b64-b2cd-bc73e39fddb8.jpg?fit=1024%2C683&ssl=1" class="webfeedsFeaturedVisual" /></p>

<style data-wp-block-html="css">
.quiet-room {
  --qr-ink: #d8dfdc;
  --qr-muted: rgba(216, 223, 220, .56);
  --qr-line: rgba(216, 223, 220, .16);
  --qr-bg: #11171b;
  --qr-bg-deep: #0b1013;
  --qr-glow: rgba(124, 156, 160, .16);

  position: relative;
  width: 100%;
  min-height: min(760px, 100svh);
  overflow: hidden;
  display: grid;
  place-items: center;
  padding:
    max(28px, env(safe-area-inset-top))
    max(20px, env(safe-area-inset-right))
    max(28px, env(safe-area-inset-bottom))
    max(20px, env(safe-area-inset-left));
  background:
    radial-gradient(circle at 50% 34%, var(--qr-glow), transparent 28%),
    linear-gradient(180deg, #172026 0%, var(--qr-bg) 56%, var(--qr-bg-deep) 100%);
  color: var(--qr-ink);
  isolation: isolate;
}

.quiet-room,
.quiet-room *,
.quiet-room *::before,
.quiet-room *::after {
  box-sizing: border-box;
}

.quiet-room-inner {
  position: relative;
  z-index: 2;
  width: min(680px, 100%);
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
}

/* テキストがなくても「深夜の待合室」だと分かる固有ビジュアル */
.quiet-room-visual {
  position: relative;
  width: min(520px, 100%);
  height: 250px;
  margin-bottom: 42px;
}

.quiet-room-window {
  position: absolute;
  left: 50%;
  top: 0;
  width: min(310px, 72%);
  height: 180px;
  transform: translateX(-50%);
  border: 1px solid rgba(216, 223, 220, .18);
  background:
    radial-gradient(circle at 70% 26%, rgba(221, 233, 230, .12), transparent 18%),
    linear-gradient(180deg, #1a2730 0%, #10181e 100%);
  box-shadow:
    inset 0 0 28px rgba(0,0,0,.32),
    0 18px 46px rgba(0,0,0,.24);
}

.quiet-room-window::before,
.quiet-room-window::after {
  content: "";
  position: absolute;
  background: rgba(216, 223, 220, .14);
}

.quiet-room-window::before {
  left: 50%;
  top: 0;
  bottom: 0;
  width: 1px;
}

.quiet-room-window::after {
  left: 0;
  right: 0;
  top: 56%;
  height: 1px;
}

.quiet-room-stars {
  position: absolute;
  inset: 0;
  opacity: .45;
  background:
    radial-gradient(circle at 18% 22%, rgba(255,255,255,.9) 0 1px, transparent 1.5px),
    radial-gradient(circle at 74% 18%, rgba(255,255,255,.7) 0 1px, transparent 1.5px),
    radial-gradient(circle at 61% 39%, rgba(255,255,255,.56) 0 1px, transparent 1.5px),
    radial-gradient(circle at 34% 68%, rgba(255,255,255,.5) 0 1px, transparent 1.5px),
    radial-gradient(circle at 84% 74%, rgba(255,255,255,.62) 0 1px, transparent 1.5px);
}

.quiet-room-bench {
  position: absolute;
  left: 50%;
  bottom: 12px;
  width: min(390px, 88%);
  height: 58px;
  transform: translateX(-50%);
}

.quiet-room-bench::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  height: 18px;
  border: 1px solid rgba(216, 223, 220, .18);
  border-radius: 4px;
  background: rgba(216, 223, 220, .055);
  box-shadow: 0 10px 28px rgba(0,0,0,.22);
}

.quiet-room-bench::after {
  content: "";
  position: absolute;
  left: 10%;
  right: 10%;
  top: 18px;
  height: 38px;
  border-left: 1px solid rgba(216, 223, 220, .14);
  border-right: 1px solid rgba(216, 223, 220, .14);
}

.quiet-room-clock {
  position: absolute;
  right: 6%;
  top: 18px;
  width: 58px;
  height: 58px;
  border: 1px solid rgba(216, 223, 220, .18);
  border-radius: 50%;
  background: rgba(255,255,255,.02);
}

.quiet-room-clock::before,
.quiet-room-clock::after {
  content: "";
  position: absolute;
  left: 50%;
  top: 50%;
  transform-origin: left center;
  background: rgba(216, 223, 220, .48);
}

.quiet-room-clock::before {
  width: 15px;
  height: 1px;
  transform: rotate(205deg);
}

.quiet-room-clock::after {
  width: 10px;
  height: 1px;
  transform: rotate(290deg);
}

.quiet-room-sign {
  position: absolute;
  left: 6%;
  top: 18px;
  padding: 6px 8px 5px;
  border: 1px solid rgba(216, 223, 220, .16);
  border-radius: 3px;
  color: rgba(216, 223, 220, .44);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 8px;
  letter-spacing: .15em;
  text-transform: uppercase;
}

.quiet-room-small {
  margin: 0 0 44px;
  color: var(--qr-muted);
  font-size: 12px;
  letter-spacing: .22em;
}

.quiet-room-message {
  min-height: 4em;
  margin: 0 0 52px;
  font-size: clamp(19px, 4vw, 30px);
  line-height: 1.95;
  letter-spacing: .06em;
  opacity: .94;
}

.quiet-room-line {
  width: 72px;
  height: 1px;
  margin: 0 auto 44px;
  background: var(--qr-line);
}

.quiet-room-note {
  margin: 0;
  color: var(--qr-muted);
  font-size: 13px;
  line-height: 2;
}

.quiet-room-status {
  margin-top: 18px;
  color: rgba(216, 223, 220, .36);
  font-family: ui-monospace, SFMono-Regular, Menlo, monospace;
  font-size: 9px;
  letter-spacing: .14em;
  text-transform: uppercase;
}

.quiet-room::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  opacity: .22;
  background:
    repeating-linear-gradient(
      0deg,
      transparent 0 3px,
      rgba(255,255,255,.012) 3px 4px
    );
  pointer-events: none;
}

.quiet-room::after {
  content: "";
  position: absolute;
  left: 50%;
  bottom: -120px;
  width: min(760px, 90vw);
  height: 300px;
  transform: translateX(-50%);
  border-radius: 50%;
  background: radial-gradient(circle, rgba(112, 145, 148, .09), transparent 68%);
  filter: blur(12px);
  pointer-events: none;
}

@media (max-width: 640px) {
  .quiet-room {
    min-height: 100svh;
    padding-top: max(22px, env(safe-area-inset-top));
    padding-bottom: max(22px, env(safe-area-inset-bottom));
  }

  .quiet-room-visual {
    height: 215px;
    margin-bottom: 32px;
  }

  .quiet-room-window {
    height: 156px;
  }

  .quiet-room-clock {
    right: 2%;
    width: 48px;
    height: 48px;
  }

  .quiet-room-sign {
    left: 2%;
    font-size: 7px;
  }

  .quiet-room-small {
    margin-bottom: 34px;
  }

  .quiet-room-message {
    margin-bottom: 42px;
  }

  .quiet-room-line {
    margin-bottom: 36px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .quiet-room *,
  .quiet-room *::before,
  .quiet-room *::after {
    animation: none !important;
    transition: none !important;
  }
}
</style>

<div class="quiet-room" id="quietRoom">
  <div class="quiet-room-inner">
    <div class="quiet-room-visual" aria-hidden="true">
      <div class="quiet-room-window">
        <div class="quiet-room-stars"></div>
      </div>
      <div class="quiet-room-clock"></div>
      <div class="quiet-room-sign">MIDNIGHT WAITING ROOM</div>
      <div class="quiet-room-bench"></div>
    </div>

    <p class="quiet-room-small">深夜待合室</p>

    <p
      class="quiet-room-message"
      id="quiet-room-message"
      aria-live="polite"
    ></p>

    <div class="quiet-room-line" aria-hidden="true"></div>

    <p class="quiet-room-note">
      また来たくなったら、いつでも来ていいですよ。
    </p>

    <p class="quiet-room-status">
      OPEN ALL NIGHT · NO RESPONSE REQUIRED
    </p>
  </div>
</div>

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

  function initQuietRoom() {
    const root = document.getElementById("quietRoom");

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

    root.dataset.initialized = "true";

    const message = root.querySelector("#quiet-room-message");

    if (!message) {
      console.warn("[深夜待合室] メッセージ表示要素がありません。");
      return;
    }

    const messages = [
      "少し座っていきますか。",
      "ここにいてもいい。",
      "何も話さなくて大丈夫です。",
      "途中で閉じても大丈夫です。",
      "今日はここまで来られた。",
      "水を飲めたなら十分です。",
      "窓の外を見るだけでもいい。",
      "何も感じなくても構いません。",
      "理由は置いていってください。",
      "眠れなくても横になれたなら十分です。",
      "大きな変化がなくてもいい。",
      "待つだけの日があっていい。",
      "あなたのペースでいい。",
      "返事をしなくても大丈夫です。",
      "今日は静かです。",
      "窓際が空いています。",
      "灯りは残しておきます。",
      "誰も急かしません。",
      "ドアは開いたままです。",
      "時計は見なくて大丈夫です。",
      "ここには答えは置いてありません。",
      "お湯はまだ温かいです。",
      "少し風が入っています。",
      "何も決めなくていいです。"
    ];

    let previous = sessionStorage.getItem("quiet-room-last-message");
    let selected = "";

    if (messages.length === 1) {
      selected = messages[0];
    } else {
      do {
        selected = messages[Math.floor(Math.random() * messages.length)];
      } while (selected === previous);
    }

    message.textContent = selected;

    try {
      sessionStorage.setItem("quiet-room-last-message", selected);
    } catch {
      /* sessionStorageが使えない環境では保存しない */
    }
  }

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


]]></content:encoded>
					
					<wfw:commentRss>https://tranquilguides.com/midnight-waiting-room/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1045</post-id>	</item>
	</channel>
</rss>
