<?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/diagnosis/feed/" rel="self" type="application/rss+xml" />
	<link>https://tranquilguides.com</link>
	<description>心地よい暮らしの始め方</description>
	<lastBuildDate>Tue, 23 Jun 2026 12:26:27 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://tranquilguides.com/wp-content/uploads/2026/01/cropped-IMG_3364-32x32.jpeg</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/season-within/</link>
					<comments>https://tranquilguides.com/season-within/#respond</comments>
		
		<dc:creator><![CDATA[案内人のアシカ]]></dc:creator>
		<pubDate>Mon, 22 Jun 2026 13:04:15 +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=1015</guid>

					<description><![CDATA[<p><img src="https://tranquilguides.com/wp-content/uploads/2026/06/IMG_20260622_214957-1024x576.png" class="webfeedsFeaturedVisual" /></p>これは診断というより観察のための装置です。いくつかの問いに答えながら、今の「心の現在地」を季節として描き出します。春、夏、秋、冬。どれが良いでも悪いでもありません。いま自分がどの季節にいるのかを静かに見つめるための記録です。]]></description>
										<content:encoded><![CDATA[<p><img src="https://tranquilguides.com/wp-content/uploads/2026/06/IMG_20260622_214957-1024x576.png" class="webfeedsFeaturedVisual" /></p>
<style data-wp-block-html="css">
.l-header,.l-footer,#wpadminbar{display:none!important;}

body{
  background:#fbfbfd;
  color:#0f172a;
}

.tq-season{
  max-width:920px;
  margin:0 auto;
  padding:54px 20px;
}

.stage{animation:stageIn .6s ease forwards;opacity:0;transform:translateY(8px);}
@keyframes stageIn{to{opacity:1;transform:none;}}

h1,h2{margin:0;letter-spacing:.02em;}
.lead{margin:14px 0 24px;color:#6b7280;line-height:1.85;}

.header{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;margin-bottom:18px;}
.progress{font-weight:800;letter-spacing:.05em;opacity:.95;color:#111827;}
.sub{color:#6b7280;font-size:.92rem;line-height:1.6;}

.question{font-size:1.18rem;font-weight:800;line-height:1.45;margin-top:6px;}

.options{
  margin-top:16px;
  display:grid;
  gap:12px;
}

.options input[type="radio"]{
  position:absolute;
  opacity:0;
  pointer-events:none;
}

.options label{
  border:1px solid rgba(17,24,39,.14);
  background:
    radial-gradient(160px 90px at 10% 20%, rgba(17,24,39,.05), rgba(17,24,39,0) 70%),
    linear-gradient(180deg, rgba(255,255,255,1), rgba(248,250,252,1));
  border-radius:16px;
  padding:13px 14px;
  cursor:pointer;
  box-shadow: 0 16px 46px rgba(15,23,42,.08);
  transition: transform .15s ease, border-color .15s ease, background .3s ease;
}

.options label:hover{
  transform: translateY(-1px);
  border-color: rgba(17,24,39,.24);
}

.options label:has(input[type="radio"]:checked){
  border-color: rgba(17,24,39,.38);
  background:
    radial-gradient(230px 140px at 10% 20%, rgba(17,24,39,.06), rgba(17,24,39,0) 70%),
    linear-gradient(180deg, rgba(255,255,255,1), rgba(243,244,246,1));
  transform: translateY(-1px);
}

.stage-actions{margin-top:18px;display:flex;justify-content:flex-start;gap:12px;}

.primary,.ghost{
  border-radius:14px;
  padding:11px 16px;
  border:1px solid transparent;
  cursor:pointer;
  font-weight:800;
  letter-spacing:.03em;
}

.primary{
  background: linear-gradient(180deg, rgba(17,24,39,.98), rgba(17,24,39,.82));
  color:#fff;
  border-color: rgba(17,24,39,.24);
}

.primary:hover{background: linear-gradient(180deg, rgba(17,24,39,.98), rgba(17,24,39,.74));}

.ghost{
  background: rgba(17,24,39,.02);
  color: #111827;
  border-color: rgba(17,24,39,.14);
}
.ghost:hover{background: rgba(17,24,39,.04);}

.result-card{
  margin-top:16px;
  display:flex;
  gap:16px;
  align-items:stretch;
  background: linear-gradient(180deg, rgba(255,255,255,1), rgba(248,250,252,1));
  border:1px solid rgba(17,24,39,.14);
  border-radius:18px;
  padding:16px;
}

.visual{
  width:42%;
  min-height:240px;
  border-radius:14px;
  background: linear-gradient(180deg,#e5e7eb,#f3f4f6);
  box-shadow: inset 0 0 0 1px rgba(17,24,39,.12);
  position:relative;
  overflow:hidden;
}

.visual::after{
  content:"";
  position:absolute;
  inset:-40% -20% auto -20%;
  height:70%;
  background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.36), rgba(255,255,255,0) 60%);
  transform: rotate(-12deg);
}

.text{flex:1;display:flex;flex-direction:column;gap:8px;justify-content:center;}
.season{font-size:1.4rem;font-weight:900;letter-spacing:.06em;margin:0;color:#111827;}
.phase{margin:0;color:#4b5563;font-weight:800;}
.desc{margin:0;color:#374151;line-height:1.8;white-space:pre-wrap;}

.actions{
  margin-top:18px;
  display:grid;
  grid-template-columns: repeat(2,minmax(0,1fr));
  gap:12px;
}

@media (max-width: 720px){
  .header{flex-direction:column;align-items:flex-start;}
  .result-card{flex-direction:column;}
  .visual{width:100%;}
  .actions{grid-template-columns: 1fr;}
}

#tq-start{
  text-align:center;
}

#tq-start .primary{
  display:inline-flex;
  margin:0 auto;
}

.quiz-footer{
  margin-top:18px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.quiz-footer .stage-actions{
  margin-top:0;
}

.quiz-footer .progress{
  text-align:right;
}

#tq-quiz > .sub{
  margin-top:12px;
}

/* 質問文 */
.question{
  text-align:center;
}

/* 選択肢全体 */
.options{
  max-width:680px;
  margin:16px auto 0;
}

/* 選択肢の文字 */
.options label{
  text-align:center;
}
</style>

<script data-wp-block-html="js">
(function(){
  const cycle = ['spring','summer','autumn','winter'];

const storyImages = {
  spring: 'https://tranquilguides.com/wp-content/uploads/2026/06/IMG_20260622_215004.png',
  summer: 'https://tranquilguides.com/wp-content/uploads/2026/06/IMG_20260622_215012.png',
  autumn: 'https://tranquilguides.com/wp-content/uploads/2026/06/IMG_20260622_215018.png',
  winter: 'https://tranquilguides.com/wp-content/uploads/2026/06/IMG_20260622_215026.png'
};

  const seasons = {
    spring:{
      label:'春',
      phase:'芽吹き期（若葉）',
      summary:'形になる前の衝動が、土の下で静かに動く。',
      desc:`芽が動き始めています。まだ外に見せられる形がない時期に焦ると、芽そのものを踏みます。


・思考より感覚が先に立つ
・やることは多いのに、最初の一手に迷う
・他人の完成品が目に入り、比較で気持ちが削れる


・試作を1つ（15〜30分）作る。完成でなく“証拠”を残す
・観た/読んだ/感じたをメモし、入力を断線させない
・睡眠を削らない（春の芽は睡眠で強くなる）


・SNSで完成品を眺めて落ち込む
・初回の試作を完璧にしようとする
・「自分はダメだ」と確定させる言葉


試作が3つ溜まったら、外へ広げる準備（夏）に移る。`,
      c1:'#f6f8f9', c2:'#dfeee1'
    },
    summer:{
      label:'夏',
      phase:'拡張期（水面）',
      summary:'外へ向かう勢いが強い。広げるほど、輪郭が薄くもなる。',
      desc:`動く、会う、見せる。勢いは武器ですが、勢いに任せると燃料切れが来ます。


・予定が増え、外側の刺激が濃くなる
・「やれる気がする」が「やり過ぎ」になりやすい
・停止が悪に見えて、休む判断が遅れる


・予定の間に“何もしない枠”を入れる（5〜10分でも効く）
・見せた/話した内容を記録し、何が刺さったかを残す
・水分と食事を軽視しない（身体が先に折れる）


・ついでに予定を増やす
・疲れの放置（無視は加速の翌日を潰す）
・機嫌で決める重大事項


「この勢いを残したい」と思ったら、整えて意味に変える（秋）。`,
      c1:'#f7faff', c2:'#d3e7ff'
    },
    autumn:{
      label:'秋',
      phase:'収穫期（落葉）',
      summary:'回収と整理。手に入れるより、要らないものを降ろす。',
      desc:`経験から意味を取り出す季節です。続けるのが偉いのではなく、残すべきものを選べるのが強さになります。


・頭の中に「未整理の棚」が増えがち
・量はあるのに成果が見えづらい
・手放す判断が先送りされる


・棚卸し（10分）で“残す/捨てる”を決める
・成果は小さくていいから形にする（1枚、1行、1案）
・定期的に振り返りを書く（意味は振り返りで固まる）


・形だけの作業を続ける
・心の消耗を“根性”で押し通す
・何でもかんでも後で整理する


「手が軽くなった」と感じたら、静かな点検と再起動（冬）へ。`,
      c1:'#f9f2e6', c2:'#e0b78a'
    },
    winter:{
      label:'冬',
      phase:'休眠期（雪景色）',
      summary:'静けさは空白ではない。次の準備が内側で進む。',
      desc:`動けないのではなく、動かないのを選ぶ時期です。静けさは空白ではなく、仕込みの時間です。


・外側の刺激に反応しづらい
・自己批判が増えやすい（“何もしていない”錯覚）
・身体が先に疲れている


・休むことを予定にする
・低刺激の入力（散歩、少しの文章、静かな音）
・信頼できる人と短く話す（言語化で固まる）


・過剰な自己批判
・無理な予定追加
・焦りを埋めるために買う/食べる/見続ける


「少し動けそう」を感じたら、芽吹きの準備（春）へ。`,
      c1:'#f6f8fb', c2:'#cfddee'
    }
  };

  const hybrids = {
    'spring-summer':{
      label:'春と夏の境界',
      phase:'端境期（伸びる準備）',
      summary:'芽が伸び始める。勢いは必要だが、根を乾かしてはいけない。',
      desc:`「動きたい」気配が出てきました。ここで“勢いだけ”になると、根が乾いて折れます。


・増やす前に、増やす基準を作る
・最初の一歩を大きくしない


・小さなルーティンを固定する（朝/夜に1つ）
・土台になる習慣を数える（睡眠、食事、入力）


・見栄のための拡張
・睡眠の削り`,
      c1: seasons.spring.c1, c2: seasons.summer.c2
    },
    'summer-autumn':{
      label:'夏と秋の境界',
      phase:'端境期（整える勢い）',
      summary:'勢いを失ったのではなく、輪郭ができてきた。今は回収の準備。',
      desc:`進む力はあります。ただ、散らかったまま進むと、疲れるだけで終わります。


・自分の成果を“残せる形”に落とす
・終わりを作らないと次へ進めない


・記録を残す（何が刺さったかを言語化）
・次に繋げるための型を作る（テンプレ）


・未消化の積み上げ
・先延ばしでスッキリを買う`,
      c1: seasons.summer.c1, c2: seasons.autumn.c2
    },
    'autumn-winter':{
      label:'秋と冬の境界',
      phase:'端境期（静かに片付ける）',
      summary:'整理が終わり、静けさの器を作っている。止まって見えるのは自然。',
      desc:`降ろすものを降ろし、静かな器を作っています。


・空白を怖がらない
・大きな成果より、壊れない生活


・休息の設計（週に1回、何もしない日を作る）
・身体の回復を優先する


・空白の恐怖から予定で埋める`,
      c1: seasons.autumn.c1, c2: seasons.winter.c2
    },
    'spring-winter':{
      label:'冬と春の境界',
      phase:'端境期（再起動前）',
      summary:'静けさの底で芽が動き始めている。まだ形が見えなくて当然。',
      desc:`止まっていた時間は無駄ではなく、再起動の仕込みです。


・急発進しない
・正しい過去との比較にする（周回ではなく今の体調）


・小さな行動を“やり切る経験”にする
・気圧の低い予定から再開


・急発進
・過去の自分との雑な比較`,
      c1: seasons.winter.c1, c2: seasons.spring.c2
    }
  };

  const questions = [
    {q:'最近よく見上げるものは？',options:[
      {label:'若葉や木の芽',value:'spring'},
      {label:'空の広さ',value:'summer'},
      {label:'木の色の変化',value:'autumn'},
      {label:'雲の重さ',value:'winter'}
    ]},
    {q:'休日にしたくなることは？',options:[
      {label:'新しいことを始める準備',value:'spring'},
      {label:'外へ出て動く',value:'summer'},
      {label:'整理してまとめる',value:'autumn'},
      {label:'ひとりで静かに過ごす',value:'winter'}
    ]},
    {q:'失ったものを思い出す頻度は？',options:[
      {label:'今はあまり考えない',value:'spring'},
      {label:'思い出すより今を優先',value:'summer'},
      {label:'ときどき立ち止まる',value:'autumn'},
      {label:'よく思い出す',value:'winter'}
    ]},
    {q:'新しい予定を入れたい？',options:[
      {label:'少しずつ入れたい',value:'spring'},
      {label:'積極的に入れたい',value:'summer'},
      {label:'必要な分だけにしたい',value:'autumn'},
      {label:'今は入れたくない',value:'winter'}
    ]},
    {q:'一人の時間は足りている？',options:[
      {label:'やや足りていない',value:'spring'},
      {label:'足りている',value:'summer'},
      {label:'足りているが考える時間が欲しい',value:'autumn'},
      {label:'足りていない（静けさが必要）',value:'winter'}
    ]}
  ];

  let answers = new Array(questions.length).fill(null);
  let idx = 0;
  let lastResult = null;
  let initialized = false;

  function bgGradient(a, b){
    if (!b) return `linear-gradient(180deg,${seasons[a].c1},${seasons[a].c2})`;
    const left = seasons[a];
    const right = seasons[b];
    return `linear-gradient(90deg,${left.c1},${left.c2} 50%,${right.c1} 50%,${right.c2})`;
  }

  function areAdjacent(a, b){
    const ia = cycle.indexOf(a);
    const ib = cycle.indexOf(b);
    const diff = Math.abs(ia - ib);
    return diff === 1 || diff === cycle.length - 1;
  }

  function buildRecordText(){
    if (!lastResult) return '';
    const t = new Date().toLocaleString('ja-JP', { timeZone: 'Asia/Tokyo' });
    const url = window.location.href;
    let txt = `[心の季節診断] ${t}\n`;
    txt += `結果: ${lastResult.label} / ${lastResult.phase}\n`;
    txt += `要約: ${lastResult.summary}\n`;
    txt += `URL: ${url}\n\n`;
    txt += '回答: ';
    txt += answers.map((v, i) => {
      const q = questions[i];
      const o = q.options.find(x => x.value === v);
      return `\n${i+1}. ${q.q} -> ${o?.label || ''}`;
    }).join('');
    txt += '\n\n---\n現時点の自分のために残したいこと: \n';
    txt += '（この空欄は無理に埋めないでください）';
    return txt;
  }

  async function writeClipboard(txt){
    if (navigator.clipboard && navigator.clipboard.writeText){
      await navigator.clipboard.writeText(txt);
      return true;
    }
    const ta = document.createElement('textarea');
    ta.value = txt;
    ta.style.position = 'fixed';
    ta.style.left = '-9999px';
    ta.style.top = '0';
    document.body.appendChild(ta);
    ta.focus();
    ta.select();
    const ok = document.execCommand('copy');
    ta.remove();
    return ok;
  }

  async function copyRecord(copyBtn){
    const txt = buildRecordText();
    const ok = await writeClipboard(txt);
    if (!copyBtn) return;
    copyBtn.textContent = ok ? 'コピーしました' : 'コピーできませんでした';
    setTimeout(() => { copyBtn.textContent = '結果と記録をコピー'; }, 1600);
    return ok;
  }

  async function shareRecord(copyBtn){
    const txt = buildRecordText();
    const url = window.location.href;
    if (navigator.share){
      try {
        await navigator.share({ title: '心の季節診断', text: txt, url });
        return;
      } catch (e){ /* canceled */ }
    }
    await copyRecord(copyBtn);
    alert('共有に対応していないため、結果をコピーしました。');
  }

  function wrapTextJP(ctx, text, x, y, maxWidth, lineHeight){
    const paras = (text || '').split('\n');
    for (const para of paras){
      if (!para.trim()) {
        y += lineHeight;
        continue;
      }
      let line = '';
      for (const ch of Array.from(para)){
        const testLine = line + ch;
        if (ctx.measureText(testLine).width > maxWidth && line){
          ctx.fillText(line, x, y);
          line = ch;
          y += lineHeight;
        } else {
          line = testLine;
        }
      }
      ctx.fillText(line, x, y);
      y += lineHeight;
    }
    return y;
  }

  async function drawStory(lastResult, storyCanvas){
    if (!lastResult || !storyCanvas) return null;
    const ctx = storyCanvas.getContext('2d');
    const w = storyCanvas.width;
    const h = storyCanvas.height;

const seasonKey = Object.keys(seasons).find(
  key => seasons[key].label === lastResult.label
);

if (seasonKey && storyImages[seasonKey]) {
  const img = new Image();

  await new Promise(resolve => {
    img.onload = resolve;
    img.src = storyImages[seasonKey];
  });

  ctx.drawImage(img, 0, 0, w, h);
}

    ctx.fillStyle = '#1f2937';
    ctx.font = 'bold 68px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI"';
    ctx.fillText('心の季節診断', 60, 210);

    ctx.font = 'bold 140px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI"';
    ctx.fillText(lastResult.label, 60, 400);

    ctx.font = 'bold 44px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI"';
    ctx.fillText(lastResult.phase, 60, 480);

    ctx.fillStyle = '#1f2937)';
    ctx.font = '36px system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI"';
    wrapTextJP(ctx, lastResult.summary, 60, 560, w-120, 52);

    return storyCanvas.toDataURL('image/png');
  }

async function shareStory(lastResult, storyCanvas){
  const dataUrl = await drawStory(lastResult, storyCanvas);
  if (!dataUrl) return;

  const res = await fetch(dataUrl);
  const blob = await res.blob();

  const file = new File(
    [blob],
    'kokoro-season-story.png',
    { type: 'image/png' }
  );

  if (navigator.canShare && navigator.canShare({ files: [file] })) {
    try {
      await navigator.share({
        files: [file],
        title: '心の季節診断',
        text: '心の季節診断の結果画像'
      });
      return;
    } catch (e) {
      // キャンセル時は何もしない
      return;
    }
  }

  const a = document.createElement('a');
  a.href = dataUrl;
  a.download = 'kokoro-season-story.png';
  document.body.appendChild(a);
  a.click();
  a.remove();

  alert('画像を保存できる形式で開きました。iPhoneでは長押し、または共有から保存してください。');
}

  function init(){
    const start = document.getElementById('tq-start');
    const startBtn = document.getElementById('tq-start-btn');
    const quiz = document.getElementById('tq-quiz');
    const progress = document.getElementById('tq-progress');
    const qEl = document.getElementById('tq-question');
    const optEl = document.getElementById('tq-options');
    const prevBtn = document.getElementById('tq-prev');

    const result = document.getElementById('tq-season-result');
    const visual = document.getElementById('tq-season-visual');
    const nameEl = document.getElementById('tq-season-name');
    const phaseEl = document.getElementById('tq-season-phase');
    const descEl = document.getElementById('tq-season-desc');

    const copyBtn = document.getElementById('tq-copy');
    const shareBtn = document.getElementById('tq-share');
    const storyBtn = document.getElementById('tq-story');
    const retryBtn = document.getElementById('tq-retry');
    const storyCanvas = document.getElementById('tq-story-canvas');

    if (!start || !startBtn || !quiz || initialized) return;
    initialized = true;

    function showResult(counts){
      const entries = Object.entries(counts).sort((a,b)=>{
        if (b[1] !== a[1]) return b[1] - a[1];
        return cycle.indexOf(a[0]) - cycle.indexOf(b[0]);
      });

      const topCount = entries[0][1];
      const topKeys = entries.filter(([k,v])=>v === topCount).map(([k])=>k);

      let res;

      if (topKeys.length === 1){
        const k = topKeys[0];
        res = { ...seasons[k] };
visual.style.backgroundImage = `url(${storyImages[k]})`;
visual.style.backgroundSize = 'cover';
visual.style.backgroundPosition = 'center';
      } else if (topKeys.length === 2 && areAdjacent(topKeys[0], topKeys[1])) {
        const ordered = [...topKeys].sort((a,b)=>cycle.indexOf(a)-cycle.indexOf(b));
        const key = `${ordered[0]}-${ordered[1]}`;
        const h = hybrids[key];
        res = { ...h };
visual.style.backgroundImage = `url(${storyImages[ordered[0]]})`;
visual.style.backgroundSize = 'cover';
visual.style.backgroundPosition = 'center';
        if (!res.c1) res.c1 = (seasons[ordered[0]]||{}).c1;
        if (!res.c2) res.c2 = (seasons[ordered[1]]||{}).c2;
      } else {
        res = {
          label:'循環の交差点',
          phase:'混ざり合う季節',
          summary:'季節が分かれているのは、揺れている証拠。結論より観察を優先。',
          desc:`「これだ」と言い切れないのは、鋭さが足りないからではありません。
回っている要素が多いだけです。そして多くの場合、あなたは止められないのではなく、同時進行で混ざっている。


・選択がまだ決めつけになっていない
・複数の自分を持てる（柔軟性）


・記録を残す
・休む
・外圧の低い人間関係の中にいる


・一発逆転の行動
・焦りの自己合理化
・誰かの尺度をそのまま採用する`,
          c1:'#f1f3f5', c2:'#dce3ea'
        };
visual.style.backgroundImage = `url(${storyImages.winter})`;
visual.style.backgroundSize = 'cover';
visual.style.backgroundPosition = 'center';
      }

      lastResult = res;
      nameEl.textContent = res.label;
      phaseEl.textContent = res.phase;
      descEl.textContent = res.desc;

      quiz.hidden = true;
      result.hidden = false;
      result.scrollIntoView({ behavior:'smooth' });
    }

    function render(i){
      const qu = questions[i];
      progress.textContent = `${i+1} / ${questions.length}`;
      qEl.textContent = qu.q;
      optEl.innerHTML = '';

      qu.options.forEach(o => {
        const label = document.createElement('label');
        const input = document.createElement('input');
        input.type = 'radio';
        input.name = 'tq-q';
        input.value = o.value;
        if (answers[i] === o.value) input.checked = true;

        input.addEventListener('change', () => {
          answers[i] = o.value;
          if (idx < questions.length - 1){
            idx++;
            render(idx);
          } else {
            const counts = {spring:0,summer:0,autumn:0,winter:0};
            answers.forEach(v => counts[v]++);
            showResult(counts);
          }
        });

        label.appendChild(input);
        label.append(o.label);
        optEl.appendChild(label);
      });

      prevBtn.hidden = false;
    }

    startBtn.addEventListener('click', () => {
      answers = new Array(questions.length).fill(null);
      idx = 0;
      lastResult = null;
      start.hidden = true;
      quiz.hidden = false;
      render(idx);
      quiz.scrollIntoView({behavior:'smooth'});
    });

prevBtn.addEventListener('click', () => {

  if (idx === 0){

    quiz.hidden = true;
    start.hidden = false;

    start.scrollIntoView({
      behavior:'smooth'
    });

    return;
  }

  idx--;
  render(idx);

});

    if (copyBtn) copyBtn.addEventListener('click', () => copyRecord(copyBtn));
    if (shareBtn) shareBtn.addEventListener('click', () => shareRecord(copyBtn));
    if (storyBtn) storyBtn.addEventListener('click', () => shareStory(lastResult, storyCanvas));

    if (retryBtn) retryBtn.addEventListener('click', () => {
      answers = new Array(questions.length).fill(null);
      idx = 0;
      lastResult = null;

      nameEl.textContent = '';
      phaseEl.textContent = '';
      descEl.textContent = '';
      visual.style.backgroundImage = '';
      result.hidden = true;

      start.hidden = false;
      quiz.hidden = true;
      start.scrollIntoView({behavior:'smooth'});
    });
  }

  function run(){
    if (document.readyState === 'loading'){
      document.addEventListener('DOMContentLoaded', init);
    } else {
      function wait(){
        if (document.getElementById('tq-start')) return init();
        requestAnimationFrame(wait);
      }
      wait();
    }
  }

  run();
})();
</script>

<div class="tq-season">
  <div id="tq-start" class="stage">
    <h1>心の季節診断</h1>
    <p class="lead">
      いまの「心の現在地」を季節として描き出します。これは診断というより、観察のための装置です。
      選択した瞬間に次へ進み、後戻りは「もどる」でできます。
    </p>
    <button type="button" id="tq-start-btn" class="primary">診断をはじめる</button>
  </div>

<div id="tq-quiz" class="stage" hidden>
  <div id="tq-question" class="question"></div>
  <div id="tq-options" class="options"></div>

  <div class="quiz-footer">
    <div class="stage-actions">
      <button type="button" id="tq-prev" class="ghost">もどる</button>
    </div>
    <div id="tq-progress" class="progress"></div>
  </div>

  <div class="sub">回答すると自動で進みます。迷ったら近いほうで。</div>
</div>
  <section id="tq-season-result" class="stage" aria-live="polite" hidden>
    <h2 class="h2">あなたの心の季節</h2>
    <div class="result-card">
      <div class="visual" id="tq-season-visual" aria-hidden="true"></div>
      <div class="text">
        <p class="season" id="tq-season-name"></p>
        <p class="phase" id="tq-season-phase"></p>
        <p class="desc" id="tq-season-desc"></p>
      </div>
    </div>

    <div class="actions" id="tq-result-actions">
      <button type="button" class="primary" id="tq-copy">結果と記録をコピー</button>
      <button type="button" class="primary" id="tq-share">結果をシェア</button>
      <button type="button" class="primary" id="tq-story">ストーリーズ用画像を保存</button>
      <button type="button" class="ghost" id="tq-retry">もう一度診断する</button>
    </div>
  </section>

  <canvas id="tq-story-canvas" width="1080" height="1920" hidden aria-hidden="true"></canvas>
</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/">
Return to 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;
}
</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>



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

#breadcrumb {
  display: none !important;
}
</style>
]]></content:encoded>
					
					<wfw:commentRss>https://tranquilguides.com/season-within/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1015</post-id>	</item>
	</channel>
</rss>
