<?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/room/feed/" rel="self" type="application/rss+xml" />
	<link>https://tranquilguides.com</link>
	<description>記憶と身体、時間と不在をめぐる、文字と体験</description>
	<lastBuildDate>Thu, 20 Aug 2026 10:30:17 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>

<image>
	<url>https://i0.wp.com/tranquilguides.com/wp-content/uploads/2026/01/cropped-IMG_3364.jpeg?fit=32%2C32&#038;ssl=1</url>
	<title>部屋 &#8211; Tranquilvæj</title>
	<link>https://tranquilguides.com</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">251661265</site>	<item>
		<title>パンくず一粒分の一日</title>
		<link>https://tranquilguides.com/after-the-steam/</link>
					<comments>https://tranquilguides.com/after-the-steam/#respond</comments>
		
		<dc:creator><![CDATA[案内人のアシカ]]></dc:creator>
		<pubDate>Fri, 24 Jul 2026 08:00:00 +0000</pubDate>
				<category><![CDATA[生存ログ]]></category>
		<category><![CDATA[コーヒー]]></category>
		<category><![CDATA[不在]]></category>
		<category><![CDATA[余白]]></category>
		<category><![CDATA[光]]></category>
		<category><![CDATA[日常]]></category>
		<category><![CDATA[時間]]></category>
		<category><![CDATA[朝]]></category>
		<category><![CDATA[本]]></category>
		<category><![CDATA[植物]]></category>
		<category><![CDATA[残されたもの]]></category>
		<category><![CDATA[湯気]]></category>
		<category><![CDATA[生活]]></category>
		<category><![CDATA[痕跡]]></category>
		<category><![CDATA[観察]]></category>
		<category><![CDATA[記憶]]></category>
		<category><![CDATA[読みもの]]></category>
		<category><![CDATA[部屋]]></category>
		<category><![CDATA[静かな]]></category>
		<category><![CDATA[風]]></category>
		<guid isPermaLink="false">https://tranquilguides.com/?p=1720</guid>

					<description><![CDATA[<p><img src="https://i0.wp.com/tranquilguides.com/wp-content/uploads/2026/07/IMG_20260723_015201.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_20260723_015201.jpg?fit=1024%2C683&ssl=1" class="webfeedsFeaturedVisual" /></p>
<h2 class="wp-block-heading">朝</h2>



<p class="wp-block-paragraph">部屋はまだ、夜の続きにあった。</p>



<p class="wp-block-paragraph">カーテンの隙間から入る光が、床の上に細い線を作っている。</p>



<p class="wp-block-paragraph">机の上には一冊の本が伏せられていた。</p>



<p class="wp-block-paragraph">読みかけなのか、読み終えたのかは分からない。</p>



<p class="wp-block-paragraph">ページの間には古い紙の栞が挟まっている。</p>



<p class="wp-block-paragraph">窓際には小さな植木鉢がある。</p>



<p class="wp-block-paragraph">土の表面は少し乾いていた。</p>



<p class="wp-block-paragraph">伸びた葉の一枚がガラスに触れている。</p>



<p class="wp-block-paragraph">風が吹くたび、微かな音を立てた。</p>



<p class="wp-block-paragraph">椅子は机から少し離れた場所に置かれている。</p>



<p class="wp-block-paragraph">戻し忘れたようにも見えた。</p>



<p class="wp-block-paragraph">ただ、そこにあるだけにも見えた。</p>



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



<p class="wp-block-paragraph">冷蔵庫が低く鳴る。</p>



<p class="wp-block-paragraph">しばらくして止まる。</p>



<p class="wp-block-paragraph">部屋にはまた、静けさが戻った。</p>



<p class="wp-block-paragraph">またしばらくして、ケトルが鳴いた。</p>



<p class="wp-block-paragraph">小さな音だった。</p>



<p class="wp-block-paragraph">眠っていた部屋が、その音だけを受け取った。</p>



<p class="wp-block-paragraph">火が止まる。</p>



<p class="wp-block-paragraph">注がれる。</p>



<p class="wp-block-paragraph">白いマグカップから、細い湯気が立ち上った。</p>



<p class="wp-block-paragraph">朝の光の中で、それは一瞬だけ形を持った。</p>



<p class="wp-block-paragraph">上へ伸びながら揺れ、薄くなり、消えていく。</p>



<p class="wp-block-paragraph">窓際のカーテンが少し揺れた。</p>



<p class="wp-block-paragraph">誰も触れていない。</p>



<p class="wp-block-paragraph">開いた窓から入った風が、部屋の中にあるものを少しだけ動かした。</p>



<p class="wp-block-paragraph">本のページが一枚だけ捲れる。</p>



<p class="wp-block-paragraph">植木の葉が揺れる。</p>



<p class="wp-block-paragraph">机の端に置かれた紙が僅かに浮く。</p>



<p class="wp-block-paragraph">そしてまた止まる。</p>



<h2 class="wp-block-heading">マグカップの隣には、小さなパンくずが一つ落ちていた。</h2>



<p class="wp-block-paragraph">床に落ちるほどではなく、片付けるほどでもない。</p>



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



<p class="wp-block-paragraph">本の横には、丸められていないレシートが置かれている。</p>



<p class="wp-block-paragraph">印刷された文字は小さく、何を買ったものなのかはもう読めないほど掠れていた。</p>



<p class="wp-block-paragraph">時間だけが佇んでいた。</p>



<p class="wp-block-paragraph">窓の外で、信号が青になる。</p>



<p class="wp-block-paragraph">自転車が一台通り過ぎる。</p>



<p class="wp-block-paragraph">少し遅れて、もう一台。</p>



<p class="wp-block-paragraph">遠ざかる音。</p>



<p class="wp-block-paragraph">車の音。</p>



<p class="wp-block-paragraph">誰かの話し声。</p>



<p class="wp-block-paragraph">それらは部屋まで届き、そしてすぐに消えた。</p>



<p class="wp-block-paragraph">昼になる。</p>



<p class="wp-block-paragraph">光の位置が変わる。</p>



<p class="wp-block-paragraph">陰影の映る壁が、ゆっくりと別の場所へ移動していく。</p>



<p class="wp-block-paragraph">時折、マグカップの底がちらつく。</p>



<p class="wp-block-paragraph">白い縁には薄い輪が残っている。</p>



<p class="wp-block-paragraph">指が触れた場所だけ、少し温度が違っていた。</p>



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



<p class="wp-block-paragraph">流しには皿が一枚伏せられている。</p>



<p class="wp-block-paragraph">洗われたばかりの表面に、小さな水滴が残っている。</p>



<p class="wp-block-paragraph">時間が経つにつれて、一つずつ消えていった。</p>



<p class="wp-block-paragraph">机の上の本は、朝と同じ場所にある。</p>



<p class="wp-block-paragraph">けれど、開かれたページだけが少し違っていた。</p>



<p class="wp-block-paragraph">誰かが読んだ跡。</p>



<p class="wp-block-paragraph">閉じる前に止めた跡。</p>



<p class="wp-block-paragraph">そのどちらなのかは分からない。</p>



<h2 class="wp-block-heading">午後</h2>



<p class="wp-block-paragraph">西日が部屋へ入ってくる。</p>



<p class="wp-block-paragraph">床の上をゆっくり移動する光。</p>



<p class="wp-block-paragraph">椅子の脚。</p>



<p class="wp-block-paragraph">植木鉢。</p>



<p class="wp-block-paragraph">机の下。</p>



<p class="wp-block-paragraph">朝から変わらないものが、光の中で少しずつ違う表情になる。</p>



<p class="wp-block-paragraph">スリッパが一つ、光の中に残っていた。</p>



<p class="wp-block-paragraph">もう一つは、机の下の影にある。</p>



<p class="wp-block-paragraph">二つは離れたまま、動かなかった。</p>



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



<p class="wp-block-paragraph">夕方になる。</p>



<p class="wp-block-paragraph">向かいの窓に明かりが灯る。</p>



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



<p class="wp-block-paragraph">また一つ。</p>



<p class="wp-block-paragraph">この部屋には、まだ誰も戻らない。</p>



<p class="wp-block-paragraph">冷蔵庫が低く鳴る。</p>



<p class="wp-block-paragraph">しばらくして止まる。</p>



<p class="wp-block-paragraph">部屋はまた静かになる。</p>



<p class="wp-block-paragraph">けれど、朝とは少し違っていた。</p>



<p class="wp-block-paragraph">湯気はもうない。</p>



<p class="wp-block-paragraph">コーヒーの香りも消えている。</p>



<p class="wp-block-paragraph">水滴も乾いている。</p>



<p class="wp-block-paragraph">けれど、机の上の本は開いたまま。</p>



<p class="wp-block-paragraph">植木の葉は窓に触れたまま。</p>



<p class="wp-block-paragraph">椅子は少し離れた場所にある。</p>



<p class="wp-block-paragraph">そこには、一日の小さな変化だけが残っていた。</p>



<h2 class="wp-block-heading">夜</h2>



<p class="wp-block-paragraph">外の光が消えていく。</p>



<p class="wp-block-paragraph">窓には部屋の中だけが映る。</p>



<p class="wp-block-paragraph">白いマグカップ。</p>



<p class="wp-block-paragraph">開いた本。</p>



<p class="wp-block-paragraph">小さな植木鉢。</p>



<p class="wp-block-paragraph">動かない椅子。</p>



<p class="wp-block-paragraph">朝からそこにあるもの。</p>



<p class="wp-block-paragraph">途中で少しだけ変わったもの。</p>



<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/after-the-steam/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1720</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>
		<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>夜を開いた回数　12日</p><p>一晩あたりの平均　0.7人/日</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-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>
		<category><![CDATA[居場所]]></category>
		<category><![CDATA[時間]]></category>
		<category><![CDATA[暖炉]]></category>
		<category><![CDATA[習慣]]></category>
		<category><![CDATA[部屋]]></category>
		<category><![CDATA[静けさ]]></category>
		<category><![CDATA[静寂]]></category>
		<guid isPermaLink="false">https://tranquilguides.com/?p=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">18:35</p>

    <p id="NightCountdownLabel" class="night-wait-label">開室まで</p>
<p
  id="NightCountdown"
  class="night-countdown"
  data-sunset-ts="1787564159">
  09:21:47</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>
	</channel>
</rss>
