/**
 * UI / 共通デザイン / CSS
 * 目的：配色・各ページ・レスポンシブ・ゲームHUDの装飾。後方のルールが優先されるため同じセレクターを検索してから編集する。
 * 依存：app.cssの後。PHPが生成するクラスとID
 * 管理：Simple Custom CSS and JS。有効／無効はこのプラグイン、画面と順序はCore、二重出力の防止はGuardが管理する。
 * 保守：識別子・読み込み順を維持し、変更後は対象画面とスマホ幅を確認する。
 */
/* 部屋とはっけんノートの共通装飾。既存のデータ・動きの基本ルールはapp.cssに残す。 */
#ivyr-app.storybook{--ink:#304638;--muted:#3f4f36;--green:#32614b;--yellow:#f6d771;--sage:#e6f1df;--line:#dedfca;background:radial-gradient(ellipse at 0 8%,#e8f2df 0,transparent 32%),radial-gradient(ellipse at 100% 36%,#ffeadb 0,transparent 32%),#fffaf0}
#ivyr-app.storybook .site-header{background:#fffdf5;border-bottom:2px solid #e9e4d3}
#ivyr-app.storybook .header-inner{height:94px;gap:var(--s-5)}
#ivyr-app.storybook .brand{color:#365d43}
#ivyr-app.storybook .brand>svg{background:#e5f0d5;border-radius:var(--r-m);padding:var(--s-2);width:42px;height:42px;transform:rotate(-8deg)}
#ivyr-app.storybook .desktop-nav{gap:var(--s-2)}
#ivyr-app.storybook .desktop-nav a{height:auto;min-height:46px;padding:var(--s-3) var(--s-4);gap:var(--s-2);border-radius:var(--r-l);font-family:IvyRound,IvyRoundRest,sans-serif;font-size:var(--fs-2)}
#ivyr-app.storybook .desktop-nav a svg{width:18px;height:18px}
#ivyr-app.storybook .desktop-nav a[aria-current=page]{background:#e7f0d9;box-shadow:var(--sh-1)}
#ivyr-app.storybook .desktop-nav a[aria-current=page]::after{display:none}
#ivyr-app.storybook .status-pill{background:#fff1ce;color:#745d27;border-color:#ebdca9}
#ivyr-app.storybook .main-wrap{padding-top:var(--s-6)}
#ivyr-app.storybook .room-heading,#ivyr-app.storybook .page-heading{position:relative;background:#fffdf5;border:1px solid #eee5d0;border-radius:var(--r-l);padding:var(--s-6) var(--s-6);margin-bottom:var(--s-6);overflow:hidden;isolation:isolate}
#ivyr-app.storybook .room-heading::after,#ivyr-app.storybook .page-heading::after{content:'';position:absolute;z-index:-1;right:7%;top:22px;width:145px;height:145px;border-radius:var(--r-full);background:#ffe8a4;box-shadow:var(--sh-3);opacity:.65;pointer-events:none}
#ivyr-app.storybook h1{font-size:clamp(30px,3.2vw,44px);line-height:1.5;letter-spacing:.035em}
#ivyr-app.storybook .eyebrow{font-family:IvyRound,IvyRoundRest,sans-serif;font-size:var(--fs-1);letter-spacing:.09em;color:#5d6b52}
#ivyr-app.storybook .page-intro{font-size:var(--fs-2);color:#3f4f36;line-height:1.95;margin-top:var(--s-3)}
#ivyr-app.storybook .date-label{background:#ffffffdb;padding:var(--s-3) var(--s-4);border-radius:var(--r-l);color:#3f4f36;align-self:flex-start;margin-top:var(--s-4)}
#ivyr-app.storybook .home-grid{gap:var(--s-5);align-items:start}
#ivyr-app.storybook .room-stage{background:#fffdf8;border:1px solid #e6dfca;padding:var(--s-3);border-radius:var(--r-l);box-shadow:var(--sh-3)}
#ivyr-app.storybook .room-scene{border-radius:var(--r-l)}
#ivyr-app.storybook .scene-label{border:2px solid #fff;border-radius:var(--r-m);box-shadow:var(--sh-1)}
#ivyr-app.storybook .speech{border:2px solid #fff;box-shadow:var(--sh-1);border-radius:23px 23px 23px 4px}
#ivyr-app.storybook .play-heading{display:flex;gap:var(--s-3);align-items:center;padding:var(--s-4) var(--s-2) var(--s-1)}
#ivyr-app.storybook .play-heading>span{display:grid;place-items:center;background:#ffe8a4;color:#745420;width:42px;height:42px;flex-shrink:0;border-radius:var(--r-full);font-size:var(--fs-6)}
#ivyr-app.storybook .play-heading h2{font-size:var(--fs-5);margin:0 0 var(--s-2)}
#ivyr-app.storybook .play-heading p{font-size:var(--fs-1);color:var(--muted)}
#ivyr-app.storybook .room-stage .room-actions{gap:var(--s-3);margin:var(--s-3) var(--s-1) var(--s-2)}
#ivyr-app.storybook .room-stage .room-actions button{border:1px solid #ddcfb0;background:#fff2cc;color:#55492e;border-radius:var(--r-l);min-height:58px;font-family:IvyRound,IvyRoundRest,sans-serif;font-size:var(--fs-2);box-shadow:var(--sh-1);transition:transform .18s,box-shadow .18s;gap:var(--s-2)}
#ivyr-app.storybook .room-actions button:nth-child(3n+2){background:#e7f1df;border-color:#cfdfc2;box-shadow:var(--sh-1);color:#365740}
#ivyr-app.storybook .room-actions button:nth-child(3n){background:#ffe9de;border-color:#efd2c4;box-shadow:var(--sh-1);color:#754e3d}
#ivyr-app.storybook .room-actions button:active{transform:translateY(3px);box-shadow:var(--sh-1)}
#ivyr-app.storybook .discovery-panel{background:#fff4d7;border:2px solid #efdfb9;border-radius:var(--r-l);gap:var(--s-4);padding:var(--s-5);position:relative;box-shadow:var(--sh-1);justify-content:flex-start}
#ivyr-app.storybook .discovery-panel::before{content:'';position:absolute;top:-9px;right:28px;width:70px;height:23px;background:#d1e6becc;transform:rotate(8deg);border-left:3px dotted #f8f7df;border-right:3px dotted #f8f7df}
#ivyr-app.storybook .discovery-panel p{color:#655f46}
#ivyr-app.storybook .discovery-photo{height:180px;border:6px solid #fffdfa;border-radius:var(--r-l);box-shadow:var(--sh-2);transform:rotate(-2deg)}
#ivyr-app.storybook .button{border-radius:var(--r-m);min-height:46px;box-shadow:var(--sh-1)}
#ivyr-app.storybook .button.primary{border:1px solid #dbbe62;box-shadow:var(--sh-1)}
#ivyr-app.storybook .room-foot{flex-wrap:wrap;margin-top:var(--s-3);color:#3f4f36}
#ivyr-app.storybook .room-foot>span:last-child{font-size:var(--fs-1)}
#ivyr-app.storybook .expression-library{background:#f0edf9;border:1px solid #dad4e8;border-radius:var(--r-l);margin-top:var(--s-2);color:#514c68;box-shadow:var(--sh-1)}
#ivyr-app.storybook .expression-library summary{font:700 16px/1.7 IvyRound,IvyRoundRest,sans-serif;min-height:44px}
#ivyr-app.storybook .scene-weather-note{font-size:var(--fs-1);line-height:1.8}
#ivyr-app.storybook .discovery-trail{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4);margin:var(--s-6) 0}
#ivyr-app.storybook .discovery-trail a{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-5) var(--s-4);background:#eaf2e0;border:1px solid #d3dfc6;border-radius:var(--r-l);box-shadow:var(--sh-1);transition:transform var(--t-base)}
#ivyr-app.storybook .discovery-trail a:nth-child(2){background:#fff0d2;border-color:#eeddb9;box-shadow:var(--sh-1)}
#ivyr-app.storybook .discovery-trail a:nth-child(3){background:#e6f0f3;border-color:#d0e0e4;box-shadow:var(--sh-1)}
#ivyr-app.storybook .trail-icon{display:grid;place-items:center;background:#fffaf0;width:42px;height:42px;border-radius:var(--r-m);flex-shrink:0}
#ivyr-app.storybook .discovery-trail small{display:block;font-size:var(--fs-1);color:#56644e}
#ivyr-app.storybook .discovery-trail strong{display:block;font:700 18px/1.7 IvyRound,IvyRoundRest,sans-serif}
#ivyr-app.storybook .discovery-trail a>span:last-child{margin-left:auto}
#ivyr-app.storybook .observation-strip{border-radius:var(--r-l);background:#fffdf8}
#ivyr-app.storybook .section-head h2{font-size:var(--fs-5);margin:0 0 var(--s-2)}
#ivyr-app.storybook .entry-card{border-radius:var(--r-l);border:1px solid #dedfc9;box-shadow:var(--sh-1)}
#ivyr-app.storybook .entry-placeholder{position:relative;background:#e8f0d6;gap:0;align-content:center}
#ivyr-app.storybook .entry-card:nth-child(2) .entry-placeholder{background:#f9e5cd}
#ivyr-app.storybook .entry-card:nth-child(3) .entry-placeholder{background:#deedf0}
#ivyr-app.storybook .entry-placeholder>svg{padding:var(--s-3);width:74px;height:74px;background:#fffdf2;border-radius:var(--r-l);color:#69834e;transform:rotate(-8deg);box-shadow:var(--sh-1)}
#ivyr-app.storybook .lesson-sticker{font-family:IvyRound,IvyRoundRest,sans-serif;font-size:var(--fs-1);color:#53664a;margin-top:var(--s-3);text-align:center}
#ivyr-app.storybook .learning-grid .entry-cover{height:158px}
#ivyr-app.storybook .entry-copy h3{font-family:IvyRound,IvyRoundRest,sans-serif;line-height:1.7}
#ivyr-app.storybook .diary-photo-grid{gap:var(--s-3);background:#fffcf3;padding:var(--s-3);border:1px solid #e6dfca;border-radius:var(--r-l)}
#ivyr-app.storybook .diary-photo{border-radius:var(--r-m);transition:filter var(--t-base)}
#ivyr-app.storybook .journal-filter{background:#eaf1e1;border-radius:var(--r-l)}
#ivyr-app.storybook .article-card{border-radius:var(--r-l);box-shadow:var(--sh-1)}
#ivyr-app.storybook .article-prose h2{padding:var(--s-4) var(--s-4);background:#eef3df;border-radius:var(--r-l);border-left:5px solid #a8bd7b}
#ivyr-app.storybook .article-prose details{background:#fff0d2;padding:var(--s-4) var(--s-5);border-radius:var(--r-l);margin:var(--s-5) 0}
#ivyr-app.storybook .graph-panel{border-radius:var(--r-l);border-top:7px solid #d8e8d1;box-shadow:var(--sh-1)}
#ivyr-app.storybook .graph-controls{background:#f6f7ed;padding:var(--s-4);border-radius:var(--r-l)}
#ivyr-app.storybook .segmented button{background:#fffdf7;min-height:46px;border-radius:var(--r-m)}
#ivyr-app.storybook .segmented button[aria-pressed=true]{background:#dceccc;border-color:#517342;box-shadow:var(--sh-1)}
#ivyr-app.storybook .learning-note{background:#fff0d1;border:1px dashed #c7b980;border-radius:var(--r-l)}
#ivyr-app.storybook .site-footer{border-top:2px dashed #d4dabe;color:#566b49;padding-top:var(--s-6)}
#ivyr-app.storybook .mobile-nav{background:#fffdf5;border-top:2px solid #e2e2cb}
#ivyr-app.storybook .mobile-nav a[aria-current=page]{background:#e4eed6;border-radius:var(--r-m);color:#355a36}
@media(hover:hover){#ivyr-app.storybook .desktop-nav a:hover{background:#f3eddb}#ivyr-app.storybook .discovery-trail a:hover{transform:translateY(-3px)}#ivyr-app.storybook .diary-photo:hover{filter:brightness(1.04)}}
@media(max-width:1100px){#ivyr-app.storybook .desktop-nav a{padding:var(--s-2);font-size:var(--fs-1)}#ivyr-app.storybook .desktop-nav a svg{display:none}#ivyr-app.storybook .brand{font-size:var(--fs-5)}#ivyr-app.storybook .room-stage .room-actions button{font-size:var(--fs-1)}#ivyr-app.storybook .discovery-trail a{padding:var(--s-4) var(--s-3);gap:var(--s-2)}#ivyr-app.storybook .discovery-trail strong{font-size:var(--fs-2)}#ivyr-app.storybook .trail-icon{width:34px;height:34px}}
@media(max-width:800px){#ivyr-app.storybook .header-inner{height:76px}#ivyr-app.storybook .main-wrap{padding:var(--s-5) var(--s-4) var(--s-6)}#ivyr-app.storybook .room-heading,#ivyr-app.storybook .page-heading{padding:var(--s-5) var(--s-5);border-radius:var(--r-l)}#ivyr-app.storybook h1{font-size:clamp(22px,6.2vw,29px)}#ivyr-app.storybook .page-intro{font-size:var(--fs-2)}#ivyr-app.storybook .room-heading::after,#ivyr-app.storybook .page-heading::after{right:-55px;top:15px;width:115px;height:115px;opacity:.4}#ivyr-app.storybook .room-stage{padding:var(--s-2);border-radius:var(--r-l)}#ivyr-app.storybook .room-scene{border-radius:var(--r-l)}#ivyr-app.storybook .play-heading{padding:var(--s-4) var(--s-2) var(--s-1)}#ivyr-app.storybook .play-heading h2{font-size:var(--fs-3)}#ivyr-app.storybook .play-heading p{font-size:var(--fs-1)}#ivyr-app.storybook .room-stage .room-actions{gap:var(--s-2);margin:var(--s-3) var(--s-1) var(--s-2)}#ivyr-app.storybook .room-stage .room-actions button{flex-direction:column;gap:var(--s-1);min-height:67px;font-size:var(--fs-1);padding:var(--s-2) var(--s-1);border-radius:var(--r-m)}#ivyr-app.storybook .discovery-panel h2 br{display:none}#ivyr-app.storybook .discovery-trail{grid-template-columns:1fr;gap:var(--s-3)}#ivyr-app.storybook .discovery-trail a{padding:var(--s-4) var(--s-5)}#ivyr-app.storybook .discovery-trail strong{font-size:var(--fs-3)}#ivyr-app.storybook .section-head h2{font-size:var(--fs-5)}#ivyr-app.storybook .diary-photo-grid{gap:var(--s-1);padding:var(--s-2);border-radius:var(--r-l)}#ivyr-app.storybook .diary-photo{border-radius:var(--r-s)}#ivyr-app.storybook .graph-panel{padding:var(--s-4) var(--s-3)}#ivyr-app.storybook .graph-controls{padding:var(--s-4) var(--s-3)}#ivyr-app.storybook .site-footer{margin-inline:var(--s-4)}}
@media(max-width:380px){#ivyr-app.storybook .brand{font-size:var(--fs-4)}#ivyr-app.storybook .brand>svg{width:32px;height:32px}#ivyr-app.storybook h1{font-size:var(--fs-5)}#ivyr-app.storybook .header-inner{padding-inline:var(--s-4);gap:var(--s-2)}}

/* 9月10日の日記写真を参考に、背の高い段状のバジルを描く。 */
#ivyr-app.storybook .ivy-body>svg{overflow:visible}
#ivyr-app.storybook .ivy-character{width:240px;height:240px;margin-left:-120px}
#ivyr-app.storybook .plant-reference{font-size:var(--fs-1);color:#56644e;margin:var(--s-3) var(--s-1) 0;text-align:center}
#ivyr-app.storybook .plant-reference a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:800px){#ivyr-app.storybook .ivy-character{width:210px;height:210px;margin-left:-105px}#ivyr-app.storybook .room-scene .speech{top:51px;right:10px;max-width:135px;font-size:var(--fs-1);padding:var(--s-3) var(--s-3)}}

/* 日付別の形状は投稿の設定を使い、経過日数だけから成長を推測しない。 */
#ivyr-app.storybook .plant-timeline{margin:var(--s-4) var(--s-1);padding:var(--s-4);border-radius:var(--r-l);background:#f2f5e7;color:#465a3c}
#ivyr-app.storybook .plant-timeline label{font-weight:700;display:block;margin-bottom:var(--s-2)}
#ivyr-app.storybook .plant-timeline>div{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center}
#ivyr-app.storybook .plant-timeline input{font:inherit;padding:var(--s-2);border:1px solid #abb99a;border-radius:var(--r-m);min-height:44px;max-width:100%;min-width:0}
#ivyr-app.storybook .plant-timeline .plant-reference{text-align:left;margin:var(--s-3) 0 var(--s-1)}
#ivyr-app.storybook .plant-timeline small{display:block;font-size:var(--fs-1)}

#ivyr-app .botanical-leaf{transform-box:fill-box;transform-origin:50% 100%;animation:botanical-flutter 5.7s var(--ease) infinite}
@keyframes botanical-flutter{0%,100%{rotate:-1deg}50%{rotate:2deg}}
#ivyr-app .reduced-motion .botanical-leaf,#ivyr-app.reduced-motion .botanical-leaf,#ivyr-app.paused .botanical-leaf{animation:none!important}
@media(prefers-reduced-motion:reduce){#ivyr-app .botanical-leaf{animation:none!important}}
#ivyr-app .plant-comparison{display:flex;align-items:center;gap:var(--s-3);margin-top:var(--s-3);font-size:var(--fs-1)}
#ivyr-app .plant-comparison img{width:74px;height:96px;object-fit:contain;background:#fffdf7;border-radius:var(--r-s)}

/* トップは観測とふれあい、ノートは長文を読む構成にする。 */
#ivyr-app.storybook .wonder-lab{margin-top:var(--s-6)}
#ivyr-app.storybook .wonder-lab .section-head p:not(.eyebrow){color:#58664e;font-size:var(--fs-2);margin-top:var(--s-3)}
#ivyr-app.storybook .wonder-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5);align-items:start}
#ivyr-app.storybook .wonder-card{padding:var(--s-5);background:#edf3df;border:1px solid #d3dec4;border-radius:var(--r-l);box-shadow:var(--sh-1)}
#ivyr-app.storybook .wonder-card:nth-child(2){background:#fff0da;border-color:#e8dbbd}
#ivyr-app.storybook .wonder-card:nth-child(3){background:#e7f1f3;border-color:#cfdee0}
#ivyr-app.storybook .wonder-icon{display:grid;place-items:center;width:46px;height:46px;border-radius:var(--r-m);background:#fffcf3;margin-bottom:var(--s-4);color:#627f43}
#ivyr-app.storybook .wonder-icon svg{width:27px;height:27px}
#ivyr-app.storybook .wonder-card h3{font-family:IvyRound,IvyRoundRest,sans-serif;font-size:var(--fs-4);line-height:1.6;margin:var(--s-2) 0 var(--s-3)}
#ivyr-app.storybook .wonder-card p{font-size:var(--fs-2);line-height:1.9}
#ivyr-app.storybook .wonder-aha{margin-top:var(--s-4);padding-top:var(--s-4);border-top:1px dashed #adb99d}
#ivyr-app.storybook .wonder-card strong{font-size:inherit;font-weight:700}
/* 文の途中で使う太字は行の中に置く。独立した行にするのは、証拠の箱と「考え方のたね」だけ。 */
#ivyr-app.storybook .wonder-card :is(.thinking-key,.wonder-evidence strong){display:block;font-size:var(--fs-2);margin:var(--s-3) 0}
#ivyr-app.storybook .wonder-card a{display:block;text-decoration:underline;text-underline-offset:4px;padding:var(--s-3) 0;font-size:var(--fs-2)}
@media(max-width:800px){#ivyr-app.storybook .wonder-grid{grid-template-columns:1fr;gap:var(--s-4)}#ivyr-app.storybook .wonder-card{padding:var(--s-5)}}

#ivyr-app.storybook .wonder-evidence{padding:var(--s-3);background:#fffdf4;border-radius:var(--r-m);border:1px dashed #c5cbb4;margin:var(--s-4) 0}
#ivyr-app.storybook .wonder-evidence strong{margin:var(--s-1) 0 0}
#ivyr-app.storybook .wonder-card .aha-line{font-family:IvyRound,IvyRoundRest,sans-serif;font-weight:700;font-size:var(--fs-4);color:#355d39;line-height:1.6;margin:0 0 var(--s-3)}
#ivyr-app.storybook .wonder-card .thinking-key{padding:var(--s-3);background:#fffdf4;border-left:4px solid #9bb376;border-radius:0 12px 12px 0;line-height:1.8}
#ivyr-app.storybook .wonder-card .wonder-caution{font-size:var(--fs-1);color:#58624f;margin:var(--s-3) 0}
/* 体験模型は自動再生せず、観測機器の操作には使わない。 */
#ivyr-app.storybook .wonder-progress{display:inline-block;padding:var(--s-3) var(--s-4);border-radius:var(--r-l);background:#e8efd9;color:#425d38;font-size:var(--fs-2);margin-bottom:var(--s-5)}
#ivyr-app.storybook .mini-experiment{background:#fffdf6;border:1px solid #d9decb;border-radius:var(--r-l);padding:var(--s-4);margin:var(--s-4) 0}
#ivyr-app.storybook .mini-experiment[hidden],#ivyr-app.storybook .wonder-progress[hidden]{display:none}
#ivyr-app.storybook .experiment-step{font-size:var(--fs-1);font-weight:700;margin-bottom:var(--s-4)}
#ivyr-app.storybook .mini-experiment small{font-size:var(--fs-1);line-height:1.7;color:#5c6553;display:block;margin-top:var(--s-3)}
#ivyr-app.storybook .mini-experiment label{display:flex;justify-content:space-between;font-size:var(--fs-2);font-weight:700;gap:var(--s-3)}
#ivyr-app.storybook .mini-experiment input[type=range]{width:100%;min-height:44px;accent-color:#648347;cursor:pointer}
#ivyr-app.storybook .water-model{display:flex;justify-content:space-around;gap:var(--s-3);text-align:center;font-size:var(--fs-1);margin:var(--s-3) 0 var(--s-4)}
#ivyr-app.storybook .water-model>div{flex:1;min-width:0}
#ivyr-app.storybook .water-vessel,#ivyr-app.storybook .soil-vessel{height:80px;border:3px solid #9eafa6;border-top:0;border-radius:0 0 15px 15px;display:grid;place-items:center;margin-top:var(--s-3);background:linear-gradient(0deg,#e5eff0 8%,transparent 8%);font-weight:700;font-size:var(--fs-4)}
#ivyr-app.storybook .soil-vessel{border-color:#bbab8a;background:repeating-linear-gradient(45deg,#f0e7d2 0 8px,#e6dcc5 8px 16px)}
#ivyr-app.storybook .soil-vessel.revealed{background:#655239;color:#fff8df}
#ivyr-app.storybook .mini-experiment .button{font-size:var(--fs-1);width:100%;justify-content:center;padding:var(--s-3) var(--s-1)}
#ivyr-app.storybook .experiment-result{border-left:3px solid #95ad67;padding-left:var(--s-3);font-weight:700;font-size:var(--fs-2);margin:var(--s-4) 0 var(--s-2)}
#ivyr-app.storybook .light-model{position:relative;padding:var(--s-4) 0 var(--s-5) var(--s-6);margin-bottom:var(--s-3)}
#ivyr-app.storybook .light-axis{position:absolute;left:0;top:18px;font-size:var(--fs-1);writing-mode:vertical-rl}
#ivyr-app.storybook .light-area{height:90px;border-left:2px solid #9c9c78;border-bottom:2px solid #9c9c78;display:flex;align-items:flex-end;background:repeating-linear-gradient(0deg,transparent 0 17px,#e8e5cd 17px 18px)}
#ivyr-app.storybook #light-fill{width:100%;height:10%;background:#e7b54bc4;border-top:2px solid #ba892d}
#ivyr-app.storybook .light-time{text-align:center;font-size:var(--fs-1);margin-top:var(--s-1)}
#ivyr-app.storybook .experiment-meters{display:flex;gap:var(--s-2);font-size:var(--fs-1)}
#ivyr-app.storybook .experiment-meters>span{flex:1;text-align:center;background:#f1f1e5;border-radius:var(--r-s);padding:var(--s-2) var(--s-1)}
#ivyr-app.storybook .experiment-meters b{display:block;font-size:var(--fs-2);margin-top:var(--s-1)}
#ivyr-app.storybook .camera-model{border-radius:var(--r-m);background:#eaf0df;overflow:hidden;margin:var(--s-3) 0}
#ivyr-app.storybook .camera-model svg{display:block;width:100%;height:160px}
@media(min-width:801px) and (max-width:1100px){#ivyr-app.storybook .wonder-grid{grid-template-columns:1fr}#ivyr-app.storybook .wonder-card{display:grid;grid-template-columns:1fr 1fr;gap:0 var(--s-5)}#ivyr-app.storybook .wonder-card .mini-experiment{grid-column:2;grid-row:1 / span 6}#ivyr-app.storybook .wonder-card .wonder-aha{grid-column:1 / -1}}

#ivyr-app.storybook .wonder-card:nth-child(3n+1){background:#edf3df;border-color:#d3dec4}
#ivyr-app.storybook .wonder-card:nth-child(3n+2){background:#fff0da;border-color:#e8dbbd}
#ivyr-app.storybook .wonder-card:nth-child(3n){background:#e7f1f3;border-color:#cfdee0}
#ivyr-app.storybook .temperature-bars{height:110px;display:flex;justify-content:center;gap:var(--s-6);align-items:stretch;border-bottom:2px solid #bac3a8;margin-bottom:var(--s-3)}
#ivyr-app.storybook .temperature-bars>div{display:flex;align-items:flex-end;width:45px}
#ivyr-app.storybook .temperature-bars i{display:block;width:100%;background:#7daebb;border-radius:8px 8px 0 0}
#ivyr-app.storybook .temperature-bars>div:last-child i{background:#d79760}
#ivyr-app.storybook .cause-lines{display:grid;grid-template-columns:45px 1fr;align-items:center;font-size:var(--fs-1);gap:var(--s-2);margin:var(--s-4) 0}
#ivyr-app.storybook .cause-lines svg{width:100%;height:45px;fill:none;stroke:#c39c40;stroke-width:3}
#ivyr-app.storybook .cause-lines svg:last-child{stroke:#b57f69}
#ivyr-app.storybook .missing-chart{display:block;width:100%;height:150px;margin-bottom:var(--s-3)}
#ivyr-app.storybook .missing-chart text{font-size:var(--fs-1);fill:#546349}
#ivyr-app.storybook .mini-experiment .experiment-meters+.button{margin-top:var(--s-3)}
/* 小さい画面の読みやすさと主要機能への移動距離を調整する。 */
#ivyr-app.storybook .mobile-nav a{color:#526247;font-size:var(--fs-1)}
#ivyr-app.storybook .manage-link,#ivyr-app.storybook .keep-word,#ivyr-app.storybook #photo-position{white-space:nowrap}
#ivyr-app.storybook h1{overflow-wrap:normal;text-wrap:pretty}
#ivyr-app.storybook [id]{scroll-margin-top:110px}
#ivyr-app.storybook .room-shortcuts{display:flex;gap:var(--s-3);flex-wrap:wrap;margin:0 0 var(--s-5)}
#ivyr-app.storybook .lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-5)}
#ivyr-app.storybook .lesson-grid .entry-card{display:grid;grid-template-columns:100px minmax(0,1fr);align-items:stretch}
#ivyr-app.storybook .lesson-grid .entry-cover{height:auto;min-height:100%;border-radius:0}
#ivyr-app.storybook .lesson-grid .entry-placeholder{padding:var(--s-3)}
#ivyr-app.storybook .lesson-grid .entry-placeholder>svg{width:42px;height:42px}
#ivyr-app.storybook .entry-copy h2{font-size:var(--fs-4);line-height:1.6;margin:var(--s-2) 0 var(--s-3);text-wrap:pretty}
#ivyr-app.storybook .entry-copy p{font-size:var(--fs-2);line-height:1.9}
#ivyr-app.storybook .reading-toc{padding:var(--s-5) var(--s-5);background:#f0f3e8;border-radius:var(--r-m);margin-bottom:var(--s-6)}
#ivyr-app.storybook .reading-toc h2{margin:0 0 var(--s-3);padding:0;border:0;background:none;font-size:var(--fs-4)}
#ivyr-app.storybook .reading-toc ol{padding-left:var(--s-5);margin:0}
#ivyr-app.storybook .reading-toc a,#ivyr-app.storybook .toc-return a{display:inline-flex;align-items:center;min-height:44px}
#ivyr-app.storybook .toc-return{font-size:var(--fs-2);margin:var(--s-5) 0}
#ivyr-app.storybook .wonder-picker{display:flex;flex-wrap:wrap;gap:var(--s-2);margin:var(--s-5) 0}
#ivyr-app.storybook .wonder-picker button{min-height:44px;flex:1 1 110px}
#ivyr-app.storybook .wonder-picker button[aria-pressed=true]{background:#dfecc9;border-color:#526247}
#ivyr-app.storybook .wonder-grid.is-selectable{grid-template-columns:minmax(0,1fr);max-width:780px;margin:auto}
#ivyr-app.storybook .wonder-grid.is-selectable .wonder-card{display:block}
#ivyr-app.storybook .wonder-grid.is-selectable .wonder-card[hidden]{display:none}
#ivyr-app.storybook .graph-options{margin:var(--s-4) 0}
#ivyr-app.storybook .graph-options>h3{font-size:var(--fs-4);margin:0 0 var(--s-2);min-height:48px;padding:var(--s-3) var(--s-4);border:1px solid #a9b99b;border-radius:var(--r-m);font-weight:700}
#ivyr-app.storybook #graph-selection{display:block;font-size:var(--fs-2);font-weight:400;margin-top:var(--s-1)}
#ivyr-app.storybook .pagination{flex-wrap:wrap;gap:var(--s-2)}
#ivyr-app.storybook .pagination>*{min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;white-space:nowrap}
#ivyr-app.storybook .gallery-pagination{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:var(--s-2)}
#ivyr-app.storybook .gallery-pagination .button{padding:var(--s-3) var(--s-2);font-size:var(--fs-2);white-space:nowrap;min-height:44px}
#ivyr-app.storybook .plant-timeline a,#ivyr-app.storybook .journal-filter>a,#ivyr-app.storybook .observation-strip>.text-link{min-height:44px;display:inline-flex;align-items:center}
#ivyr-app.storybook .room-foot>span:last-child{font-size:var(--fs-1)}
#ivyr-app.storybook .article-prose{overflow-wrap:anywhere}
@media(max-width:800px){
#ivyr-app.storybook .lesson-grid{grid-template-columns:1fr}
#ivyr-app.storybook .lesson-grid .entry-card{grid-template-columns:64px minmax(0,1fr)}
#ivyr-app.storybook .lesson-grid .entry-copy{padding:var(--s-4) var(--s-4)}
#ivyr-app.storybook .entry-copy h2{font-size:var(--fs-3)}
#ivyr-app.storybook .lesson-grid .entry-placeholder>svg{width:30px;height:30px}
#ivyr-app.storybook .data-heading{padding:var(--s-4) var(--s-5);margin-bottom:var(--s-4)}
#ivyr-app.storybook .data-heading h1{font-size:var(--fs-5)}
#ivyr-app.storybook .data-heading .eyebrow{display:none}
#ivyr-app.storybook .data-heading .page-intro{margin-top:var(--s-2)}
#ivyr-app.storybook .data-heading+details{padding:var(--s-3) var(--s-4);margin-bottom:var(--s-4)}
#ivyr-app.storybook .reading-toc{padding:var(--s-4)}
#ivyr-app.storybook .article-prose h2{font-size:var(--fs-4);padding:var(--s-3);line-height:1.65;text-wrap:pretty}
#ivyr-app.storybook .article-prose{line-height:1.9}
#ivyr-app.storybook .header-inner{gap:var(--s-2)}
#ivyr-app.storybook .header-end{gap:var(--s-2)}
#ivyr-app.storybook .manage-link{font-size:var(--fs-1);min-height:44px;display:flex;align-items:center}
#ivyr-app.storybook .page-heading h1{line-height:1.6}
}
@media(max-width:380px){
#ivyr-app.storybook .lesson-grid .entry-card{grid-template-columns:1fr}
#ivyr-app.storybook .lesson-grid .entry-cover{display:none}
#ivyr-app.storybook .room-heading{padding:var(--s-5) var(--s-4)}
#ivyr-app.storybook .header-end .status-pill{font-size:var(--fs-1);padding:var(--s-2) var(--s-3)}
#ivyr-app.storybook .data-heading h1{font-size:var(--fs-5)}
}
/* 記事とグラフの領域を分け、展開後も間隔を保つ。 */
#ivyr-app.storybook .data-heading+details.article-card{margin-bottom:var(--s-5)}
#ivyr-app.storybook .lesson-grid .entry-placeholder>svg{padding:0;box-shadow:none;background:none;border-radius:0;transform:none}
@media(max-width:800px){
#ivyr-app.storybook .data-heading+details.article-card{margin-bottom:var(--s-4)}
#ivyr-app.storybook .graph-options{margin:var(--s-3) 0}
#ivyr-app.storybook .graph-summary{margin:var(--s-2) 0;font-size:var(--fs-2)}
#ivyr-app.storybook .main-wrap:has(.graph-panel)>.observation-sync-status{font-size:var(--fs-1);line-height:1.7}
}

/* Ivyとのふれあいを先に置き、補足情報は後から読めるようにする。 */
#ivyr-app.storybook .room-heading{padding:var(--s-4) var(--s-5);margin-bottom:var(--s-3)}
#ivyr-app.storybook .room-heading h1{font-size:clamp(24px,2.6vw,34px);line-height:1.5}
#ivyr-app.storybook .room-heading .page-intro{margin-top:var(--s-1);font-size:var(--fs-2);text-wrap:pretty}
#ivyr-app.storybook .room-shortcuts{margin-bottom:var(--s-4)}
#ivyr-app.storybook .room-stage .scene-weather-note{margin:var(--s-2) var(--s-1) 0;font-size:var(--fs-1)}
#ivyr-app.storybook .room-stage .play-heading{padding:var(--s-3) var(--s-1) 0}
#ivyr-app.storybook .room-stage .play-heading>span{display:none}
#ivyr-app.storybook .room-stage .play-heading h2{font-size:var(--fs-5);margin:0 0 var(--s-2)}
#ivyr-app.storybook .more-play,#ivyr-app.storybook .plant-history{border-top:1px solid var(--line);margin:var(--s-4) var(--s-1) 0;padding-top:var(--s-1)}
#ivyr-app.storybook .more-play>summary,#ivyr-app.storybook .plant-history>summary,#ivyr-app.storybook .reading-toc summary{cursor:pointer;min-height:44px;padding:var(--s-3) 0;font-weight:700}
#ivyr-app.storybook .reading-toc summary{font-size:var(--fs-3)}
#ivyr-app.storybook .reading-toc summary span{font-size:var(--fs-2);font-weight:400;white-space:nowrap}
#ivyr-app.storybook .entry-copy p{ text-wrap:pretty }
#ivyr-app.storybook .section-head h2{word-break:normal;text-wrap:balance}
@media(max-width:800px){
#ivyr-app.storybook .main-wrap:has(.room-stage){padding-top:var(--s-3)}
#ivyr-app.storybook .main-wrap:has(.room-stage)>.observation-sync-status{font-size:var(--fs-1);line-height:1.6;margin:0 0 var(--s-2)}
#ivyr-app.storybook .room-heading{padding:var(--s-3) var(--s-4);border-radius:var(--r-l)}
#ivyr-app.storybook .room-heading h1{font-size:var(--fs-5);letter-spacing:0}
#ivyr-app.storybook .room-heading .page-intro{font-size:var(--fs-1);line-height:1.7}
#ivyr-app.storybook .room-stage{padding:var(--s-2);border-radius:var(--r-l)}
#ivyr-app.storybook .room-stage .room-scene{height:310px}
#ivyr-app.storybook .room-stage .ivy-character{bottom:20px}
#ivyr-app.storybook .room-stage .speech{top:46px;padding:var(--s-2) var(--s-3);font-size:var(--fs-1);max-width:138px}
#ivyr-app.storybook .room-stage .scene-label{top:12px;left:12px}
#ivyr-app.storybook .room-stage .room-actions{margin:var(--s-2) 0;gap:var(--s-2)}
#ivyr-app.storybook .room-stage .room-actions button{min-height:46px;padding:var(--s-2) var(--s-1);font-size:var(--fs-1);gap:var(--s-1)}
#ivyr-app.storybook .reading-toc{padding:var(--s-2) var(--s-4);margin-bottom:var(--s-5)}
#ivyr-app.storybook .lesson-grid .entry-card{grid-template-columns:1fr}
#ivyr-app.storybook .lesson-grid .entry-cover{display:none}
#ivyr-app.storybook .entry-copy h2{font-size:var(--fs-3);text-wrap:balance}
}
@media(max-width:800px){
#ivyr-app.storybook .room-stage .ivy-character{width:190px;height:190px;margin-left:-95px}
#ivyr-app.storybook .room-stage .room-actions button{flex-direction:row;line-height:1.4}
#ivyr-app.storybook .room-shortcuts{margin-bottom:var(--s-3)}
}
#ivyr-app.storybook .reading-toc>details{margin:0;padding:0;border:0;background:transparent;border-radius:0}

/* 状態文の読みやすさ、グラフ優先の配置、写真の連続閲覧を調整する。 */
#ivyr-app.storybook .diary-loader{text-align:center;padding:var(--s-5) 0 var(--s-6)}
#ivyr-app.storybook .diary-loader p{font-size:var(--fs-2);line-height:1.7}
#ivyr-app.storybook .diary-loader [hidden]{display:none}
#ivyr-app.storybook .diary-loader [aria-disabled=true]{opacity:.6;pointer-events:none}
#ivyr-app.storybook .graph-panel+details.article-card{max-width:none;margin:var(--s-5) 0}
#ivyr-app.storybook .graph-head{align-items:center}
#ivyr-app.storybook .graph-head p{margin:0;font-size:var(--fs-2);line-height:1.7}
#ivyr-app.storybook .graph-summary{font-size:var(--fs-2)}
#ivyr-app.storybook .observation-sync-status{font-size:var(--fs-2);line-height:1.7}
@media(max-width:800px){
#ivyr-app.storybook .main-wrap:has(.room-stage)>.observation-sync-status{font-size:var(--fs-2);line-height:1.6}
#ivyr-app.storybook .room-stage .scene-weather-note{font-size:var(--fs-2);line-height:1.6}
#ivyr-app.storybook .data-heading{padding:var(--s-3) var(--s-4);margin-bottom:var(--s-4)}
#ivyr-app.storybook .data-heading h1{font-size:var(--fs-5);margin:0}
#ivyr-app.storybook .data-heading .page-intro{font-size:var(--fs-2);margin-top:var(--s-1)}
#ivyr-app.storybook .graph-panel+details.article-card{margin:var(--s-4) 0}
#ivyr-app.storybook .room-shortcuts a{font-size:var(--fs-2)}
}
@media(max-width:800px) and (max-height:780px){
#ivyr-app.storybook .room-stage .room-scene{height:260px}
#ivyr-app.storybook .room-stage .ivy-character{width:155px;height:155px;margin-left:-77.5px;bottom:16px}
#ivyr-app.storybook .room-heading{padding:var(--s-3) var(--s-4)}
}
/* 窓辺の全画面表示はscene.jsと連携する。右下ボタン、または2本指の開閉操作を使う。 */
#ivyr-app .room-scene{touch-action:pan-x pan-y}
#ivyr-app .room-scene .ivy-character{transition:scale var(--t-base) var(--ease-out)}
#ivyr-app .room-scene.is-pinching .ivy-character{scale:var(--ivy-pinch,1);transition:none}
#ivyr-app .room-scene .scene-fullscreen-toggle{position:absolute;z-index:5;right:12px;bottom:12px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:2px solid #fff;border-radius:var(--r-m);background:#fffdf4e6;color:#304638;box-shadow:var(--sh-1)}
#ivyr-app .room-scene .scene-fullscreen-toggle:hover{background:#fff}
/* 自動で動く窓辺を止める操作。全画面ボタンと反対側に置き、タッチ領域を確保する。 */
#ivyr-app .room-scene .room-motion-toggle{position:absolute;z-index:5;left:12px;bottom:12px;min-height:44px;padding:var(--s-2) var(--s-3);border:2px solid #fff;border-radius:var(--r-m);background:#fffdf4;color:#304638;font-size:var(--fs-2);line-height:1.5;box-shadow:var(--sh-1)}
#ivyr-app .room-scene .room-motion-toggle[hidden]{display:none}
#ivyr-app .room-scene .room-motion-toggle:focus-visible{outline:3px solid #8b4d16;outline-offset:3px}
html.ivyr-scene-locked,html.ivyr-scene-locked body{overflow:hidden;overscroll-behavior:none}
/* ログイン時のWordPressバーより手前に表示する。最も高い植物の先端と吹き出し・画面端が重ならないよう、縦画面では鉢下に88px以上の操作余白を確保する。 */
#ivyr-app.storybook .room-stage .room-scene.is-fullscreen{--ivy-floor:max(10vh,88px);--ivy-size:min(86vw,(100vh - var(--ivy-floor) - 130px) / 1.37,620px);position:fixed;inset:0;z-index:100000;width:auto;height:auto;margin:0;border-radius:0;box-shadow:none;touch-action:none;overscroll-behavior:contain;animation:ivy-scene-open var(--t-base) var(--ease-out)}
@supports(height:1dvh){#ivyr-app.storybook .room-stage .room-scene.is-fullscreen{--ivy-floor:max(10dvh,88px);--ivy-size:min(86vw,(100dvh - var(--ivy-floor) - 130px) / 1.37,620px)}}
#ivyr-app.storybook .room-stage .room-scene.is-fullscreen .ivy-character{left:50%;width:var(--ivy-size);height:var(--ivy-size);margin-left:calc(var(--ivy-size) / -2);bottom:calc(var(--ivy-floor) - var(--ivy-size) * .055)}
#ivyr-app.storybook .room-stage .room-scene.is-fullscreen .speech{top:calc(24px + env(safe-area-inset-top));left:16px;right:16px;width:fit-content;max-width:min(calc(100% - 32px),440px);margin:0 auto;padding:var(--s-3) var(--s-4);font-size:clamp(15px,2.2vmin,19px);text-wrap:balance;word-break:auto-phrase}
#ivyr-app.storybook .room-stage .room-scene.is-fullscreen .scene-label{top:auto;left:calc(16px + env(safe-area-inset-left));bottom:calc(16px + env(safe-area-inset-bottom));font-size:var(--fs-1)}
#ivyr-app.storybook .room-stage .room-scene.is-fullscreen .scene-fullscreen-toggle{right:calc(16px + env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom));width:48px;height:48px}
@media(orientation:landscape){
#ivyr-app.storybook .room-stage .room-scene.is-fullscreen{--ivy-floor:10vh;--ivy-size:min(60vw,(100vh - var(--ivy-floor) - 24px) / 1.37,620px)}
#ivyr-app.storybook .room-stage .room-scene.is-fullscreen .speech{left:auto;right:calc(5vw + env(safe-area-inset-right));max-width:min(36vw,380px);margin:0}
}
@supports(height:1dvh){@media(orientation:landscape){#ivyr-app.storybook .room-stage .room-scene.is-fullscreen{--ivy-floor:10dvh;--ivy-size:min(60vw,(100dvh - var(--ivy-floor) - 24px) / 1.37,620px)}}}
@keyframes ivy-scene-open{from{opacity:0}}
/* 日本語の改行、本文幅、操作領域、写真一覧、タブレットの間隔を調整する。 */
#ivyr-app{line-break:strict}
#ivyr-app h1,#ivyr-app h2,#ivyr-app h3,#ivyr-app .speech,#ivyr-app .room-actions button span,#ivyr-app summary,#ivyr-app .button,#ivyr-app .aha-line,#ivyr-app .thinking-key,#ivyr-app .entry-card strong,#ivyr-app .wonder-evidence strong{word-break:auto-phrase}
#ivyr-app p,#ivyr-app li,#ivyr-app small,#ivyr-app figcaption,#ivyr-app dd{text-wrap:pretty}
#ivyr-app .observation-cell strong{white-space:nowrap}
/* 日本語本文の1行をおおむね35〜45文字に収める。 */
#ivyr-app .article-card>p,#ivyr-app .article-prose p,#ivyr-app .article-prose li,#ivyr-app .graph-panel>p,#ivyr-app .learning-note p,#ivyr-app .wonder-card>p,#ivyr-app .entry-copy p,#ivyr-app .page-intro,#ivyr-app .observation-text p{max-width:38em}
/* 操作対象は少なくとも24pxを確保する。 */
#ivyr-app .back-link{display:inline-flex;align-items:center;min-height:24px}
#ivyr-app .text-link{min-height:24px}
#ivyr-app .room-foot a{display:inline-block;padding-block:var(--s-1)}
/* 動きの切替をリンクではなくボタンとして表示する。 */
#ivyr-app .quiet-button{border:1px solid var(--line);background:#fffdf7;border-radius:var(--r-full);padding:var(--s-2) var(--s-4);text-decoration:none}
#ivyr-app .quiet-button:hover{background:#fff}
/* 写真一覧の列数を画面幅に追従させる。 */
#ivyr-app .diary-photo-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-2)}
@media(min-width:601px){#ivyr-app .diary-photo-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-3)}}
@media(min-width:1024px){#ivyr-app .diary-photo-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
/* タブレットでは余白を広げ、記事カードを2列にする。 */
@media(min-width:601px) and (max-width:800px){#ivyr-app.storybook .main-wrap{padding-left:var(--s-5);padding-right:var(--s-5)}}
@media(min-width:900px){#ivyr-app.storybook .lesson-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#ivyr-app.storybook .lesson-grid .entry-card{grid-template-columns:100px minmax(0,1fr)}}
/* 狭いスマートフォンでは操作を2列にし、ラベルの折返しと植物への重なりを防ぐ。 */
@media(max-width:400px){
#ivyr-app.storybook .room-stage .room-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
#ivyr-app.storybook .room-stage .room-actions button:last-child:nth-child(odd){grid-column:1/-1}
#ivyr-app .room-actions button span{white-space:nowrap}
#ivyr-app.storybook .room-stage .speech{top:12px;right:8px;max-width:120px}
#ivyr-app.storybook .room-stage .ivy-character{left:40%}
}
#ivyr-app.storybook .temperature-bars i{transition:height var(--t-base) var(--ease-out)}
#ivyr-app .wonder-card p{max-width:38em}
#ivyr-app .article-prose small,#ivyr-app .plant-timeline small,#ivyr-app .mini-experiment small,#ivyr-app .wonder-card small{max-width:34em}
#ivyr-app .wonder-picker button{white-space:nowrap}
#ivyr-app .mini-experiment small,#ivyr-app .experiment-result,#ivyr-app .wonder-evidence{text-wrap:balance}
#ivyr-app .article-prose p>small:only-child{display:block;max-width:34em}

/* 広い画面では空いていた横幅を使う。320〜899pxの基本構成は維持する。 */

/* ページ見出しの横に説明を置く。装飾の円が本文に重ならない列を確保する。 */
@media(min-width:900px){
  #ivyr-app.storybook .page-heading{padding-block:var(--s-5);margin-bottom:var(--s-5)}
  #ivyr-app.storybook .page-heading:has(>.page-intro){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,23em) 165px;column-gap:var(--s-6);row-gap:0;align-items:center}
  #ivyr-app.storybook .page-heading:has(>.page-intro)>*{grid-column:1}
  #ivyr-app.storybook .page-heading:has(>.page-intro)>.page-intro{grid-column:2;grid-row:1 / span 5;align-self:center;margin-top:0;max-width:none}
}

/* 十分な幅がある場合、ノートのカードを3列にする。 */
@media(min-width:1240px){
  #ivyr-app.storybook .lesson-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5)}
}

/* 長文記事では目次を本文の横へ固定する。同じ目次へ戻るリンクの繰返しは抑える。 */
@media(min-width:1180px){
  #ivyr-app .article-card:has(.reading-toc){max-width:1140px}
  #ivyr-app .article-prose:has(.reading-toc){max-width:none;display:grid;grid-template-columns:minmax(0,720px) minmax(0,1fr);column-gap:var(--s-7);row-gap:0;align-items:start}
  #ivyr-app .article-prose:has(.reading-toc)>*{grid-column:1}
  /* グリッド内ではマージンが相殺されないため、間隔は片側で管理する。 */
  #ivyr-app .article-prose:has(.reading-toc)>*{margin-top:0}
  #ivyr-app .article-prose:has(.reading-toc)>h2{margin-top:var(--s-3)}
  #ivyr-app.storybook .article-prose>.reading-toc{grid-column:2;grid-row:1 / span 60;position:sticky;top:24px;align-self:start;margin:0}
  #ivyr-app.storybook .article-prose>.toc-return{display:none}
}

/* グラフ下の注記と補足カードを並べ、広いパネル内の余白を活用する。 */
@media(min-width:1000px){
  #ivyr-app.storybook .graph-panel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s-6);row-gap:0}
  #ivyr-app.storybook .graph-panel>*{grid-column:1 / -1}
  #ivyr-app.storybook .graph-panel>.graph-summary{max-width:none}
  #ivyr-app.storybook .graph-panel>#graph-message{grid-column:1}
  #ivyr-app.storybook .graph-panel>.graph-note{grid-column:2;margin-top:var(--s-3)}
  #ivyr-app.storybook .main-wrap:has(.graph-panel){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s-5);row-gap:0;align-items:start}
  #ivyr-app.storybook .main-wrap:has(.graph-panel)>*{grid-column:1 / -1}
  /* 観測カードとノートの誘いを左右に分けていたが、その間に全幅の要素（取得リンク・
     注記・制作リンク）が入るため、自動配置では同じ段に並ばず、カードの右とノートの
     左が空白の段になっていた（2026-10-06）。画面末尾は1列のまま読ませ、
     広い幅はカードの中（最新の記録）と取得リンクで使う。 */
  #ivyr-app.storybook .main-wrap:has(.graph-panel)>.learning-note{margin-top:var(--s-5)}
}

/* 実験の模型と説明を2列で並べる。 */
@media(min-width:1100px){
  #ivyr-app.storybook .wonder-grid.is-selectable{max-width:1120px}
  #ivyr-app.storybook .wonder-grid.is-selectable .wonder-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,440px);column-gap:var(--s-6);row-gap:0;align-items:start}
  #ivyr-app.storybook .wonder-grid.is-selectable .wonder-card>*{grid-column:1}
  #ivyr-app.storybook .wonder-grid.is-selectable .wonder-card>.mini-experiment{grid-column:2;grid-row:1 / span 40;margin-top:0;align-self:start}
  #ivyr-app.storybook .wonder-grid.is-selectable .wonder-card[hidden]{display:none}
}

/* 広い画面で空白だけになる余分なパディングを抑える。 */
@media(min-width:900px){
  #ivyr-app .main-wrap{padding-bottom:var(--s-7)}
  #ivyr-app .observation-strip{margin-bottom:var(--s-6)}
  #ivyr-app.storybook .wonder-lab{margin-top:var(--s-5)}
}

/* 気孔の模型：開口に合わせて2つの孔辺細胞を膨らませる。 */
#ivyr-app.storybook .stoma-figure{display:block;width:100%;max-width:260px;margin:0 auto 12px;height:auto}
@media(prefers-reduced-motion:reduce){#ivyr-app.storybook .stoma-figure ellipse{transition:none}}

/* The editor-only "管理" link kept its 44px target only below 800px. Meet 24px everywhere. */
@media(min-width:801px){
  #ivyr-app.storybook .manage-link{display:inline-flex;align-items:center;min-height:24px}
}
/* SVGのd属性をCSSでトランジションしない。初期値noneでChromeのパスが消えるため。 */
#ivyr-app.storybook .stoma-figure ellipse{transition:cx var(--t-base) var(--ease-out)}
@media(prefers-reduced-motion:reduce){#ivyr-app.storybook .stoma-figure ellipse{transition:none}}

/* ---- 記事内の図解・表・グラフ・吹き出し（2026-09-25）---- */
#ivyr-app .article-prose figure{margin:0 0 var(--s-5);max-width:none}
#ivyr-app.storybook .article-prose figure{background:#fffdf5;border:1px solid #e6e2cf;border-radius:var(--r-l);padding:var(--s-4) var(--s-4) var(--s-4)}
/* 図内文字はviewBoxとともに拡縮するため、図幅を220〜320pxに制限し、本文との文字サイズ差を抑える。 */
#ivyr-app .article-prose figure svg{display:block;width:100%;height:auto;margin-inline:auto}
#ivyr-app .article-prose .chart-svg{max-width:320px}
#ivyr-app.storybook .article-prose figure:has(.chart-svg){max-width:392px;margin-inline:auto}
#ivyr-app.storybook .article-prose figure p:has(.chart-svg){margin:0}
#ivyr-app.storybook .article-prose figcaption{font-size:var(--fs-2);color:#5c6553;line-height:1.8;margin-top:var(--s-3);max-width:42em;text-wrap:pretty}
#ivyr-app.storybook .article-prose figure .figure-lead{font-size:var(--fs-2);font-weight:700;color:#3f5136;margin:0 0 var(--s-3);line-height:1.7}

#ivyr-app .article-prose .table-wrap{margin:0 0 var(--s-5);overflow-x:auto;-webkit-overflow-scrolling:touch}
#ivyr-app.storybook .article-prose table{border-collapse:collapse;width:100%;min-width:300px;font-size:var(--fs-2);line-height:1.75}
#ivyr-app.storybook .article-prose caption{caption-side:top;text-align:left;font-size:var(--fs-2);font-weight:700;color:#3f5136;padding-bottom:var(--s-2)}
#ivyr-app.storybook .article-prose th,#ivyr-app.storybook .article-prose td{border-bottom:1px solid #e2dfcb;padding:var(--s-2) var(--s-3);text-align:left;vertical-align:top}
#ivyr-app.storybook .article-prose thead th{background:#eef3e2;border-bottom:2px solid #c6d4ac;white-space:nowrap}
#ivyr-app.storybook .article-prose tbody th{font-weight:700;white-space:nowrap}
#ivyr-app.storybook .article-prose .num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
#ivyr-app.storybook .article-prose tbody tr:nth-child(even){background:#fffdf5}

#ivyr-app .article-prose .ivy-balloon{display:grid;grid-template-columns:44px minmax(0,1fr);gap:var(--s-3);align-items:start;margin:0 0 var(--s-5)}
#ivyr-app.storybook .article-prose .ivy-balloon::before{content:'';width:44px;height:44px;border-radius:var(--r-full);border:1px solid #e0bd44;background:#f6d45b url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23335c33' stroke-width='1.9' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 4C9 2 3 8 5 16c7 5 15-1 15-12ZM5 20 15 10'/%3E%3C/svg%3E") center/24px no-repeat}
#ivyr-app.storybook .article-prose .ivy-balloon>p{position:relative;margin:0;background:#fff6d9;border:1px solid #ecd9a4;border-radius:var(--r-m);padding:var(--s-4) var(--s-4);font-size:var(--fs-2);line-height:1.9;max-width:38em}
#ivyr-app.storybook .article-prose .ivy-balloon>p::before{content:'';position:absolute;left:-7px;top:17px;width:12px;height:12px;background:#fff6d9;border-left:1px solid #ecd9a4;border-bottom:1px solid #ecd9a4;transform:rotate(45deg)}

@media(max-width:600px){
  #ivyr-app.storybook .article-prose figure{padding:var(--s-4) var(--s-3) var(--s-3);border-radius:var(--r-m)}
  #ivyr-app.storybook .article-prose th,#ivyr-app.storybook .article-prose td{padding:var(--s-2) var(--s-2)}
  #ivyr-app.storybook .article-prose table{font-size:var(--fs-2)}
  #ivyr-app .article-prose .ivy-balloon{grid-template-columns:36px minmax(0,1fr);gap:var(--s-2)}
  #ivyr-app.storybook .article-prose .ivy-balloon::before{width:36px;height:36px;background-size:20px}
}

/* 記事の図：文字はHTML側に置き、SVGは絵だけにする（SVG内の文字は画面幅で縮むため） */
#ivyr-app.storybook .article-prose .fig-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3)}
#ivyr-app.storybook .article-prose .fig-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2)}
#ivyr-app.storybook .article-prose .fig-grid-3 .fig-cell{padding:var(--s-2)}
#ivyr-app.storybook .article-prose .fig-grid-3 .fig-cell .fig-cell-title{font-size:var(--fs-1);margin-bottom:var(--s-2)}
#ivyr-app.storybook .article-prose .fig-cell{background:#fffdf8;border:1px solid #e3e0cc;border-radius:var(--r-m);padding:var(--s-3)}
/* 図内ラベルは文書の見出しではないため、見出し階層へ加えない。 */
#ivyr-app.storybook .article-prose .fig-cell .fig-cell-title{margin:0 0 var(--s-2);font-size:var(--fs-2);line-height:1.6;text-align:center;color:#3f5136;font-weight:700}
#ivyr-app.storybook .article-prose .fig-cell>p{margin:var(--s-2) 0 0;font-size:var(--fs-1);line-height:1.7;text-align:center;color:#5c6553}
#ivyr-app.storybook .article-prose .fig-cell svg{max-width:none}
#ivyr-app.storybook .article-prose .fig-legend{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-4);margin:var(--s-3) 0 0;font-size:var(--fs-1);color:#5c6553}
/* この凡例では色見本だけに系列色を使い、ラベルは読みやすい文字色を維持する。 */
#ivyr-app.storybook .article-prose .fig-legend span{display:inline-flex;align-items:center;gap:var(--s-2);--k:#5c6553}
#ivyr-app.storybook .article-prose .fig-legend span::before{content:'';width:20px;height:4px;border-radius:var(--r-xs);background:var(--k);flex:none}
#ivyr-app.storybook .article-prose .fig-legend .k-line{--k:#c28e3b}
#ivyr-app.storybook .article-prose .fig-legend .k-area{--k:#e9d9a8}
#ivyr-app.storybook .article-prose .fig-legend .k-green{--k:#557e42}
#ivyr-app.storybook .article-prose .fig-legend .k-blue{--k:#6f9fad}
#ivyr-app.storybook .article-prose .fig-legend .k-dash::before{background:repeating-linear-gradient(90deg,var(--k) 0 6px,transparent 6px 10px)}
#ivyr-app.storybook .article-prose .flow-steps{list-style:none;margin:0;padding:0}
#ivyr-app.storybook .article-prose .flow-steps li{background:#f4f7ec;border:1px solid #ccd9b6;border-radius:var(--r-m);padding:var(--s-3) var(--s-4);font-size:var(--fs-2);line-height:1.7;text-align:center;text-wrap:pretty}
#ivyr-app.storybook .article-prose .flow-steps li+li{margin-top:var(--s-6);position:relative}
#ivyr-app.storybook .article-prose .flow-steps li+li::before{content:'';position:absolute;left:50%;top:-24px;width:2px;height:14px;background:#7d9a5c;transform:translateX(-50%)}
#ivyr-app.storybook .article-prose .flow-steps li+li::after{content:'';position:absolute;left:50%;top:-15px;width:9px;height:9px;border-right:2px solid #7d9a5c;border-bottom:2px solid #7d9a5c;transform:translateX(-50%) rotate(45deg)}
#ivyr-app.storybook .article-prose .flow-steps li:first-child,#ivyr-app.storybook .article-prose .flow-steps li:last-child{background:#e6f0d8;border-color:#b9cd98;font-weight:700}

/* グラフエリアの全画面表示（ivyの窓辺と同じ操作） */
#ivyr-app .chart-container{position:relative}
/* グラフ初期化前のcanvas既定幅（300px）も親枠に収め、細い画面の横はみ出しを防ぐ。 */
#ivyr-app .chart-container canvas{display:block;max-width:100%}
#ivyr-app.storybook .chart-container .chart-fullscreen-toggle{position:absolute;z-index:5;right:6px;top:6px;display:grid;place-items:center;width:44px;height:44px;padding:0;border:2px solid #fff;border-radius:var(--r-m);background:#fffdf4e6;color:#3f5136;cursor:pointer;box-shadow:var(--sh-1)}
#ivyr-app.storybook .chart-container .chart-fullscreen-toggle:hover{background:#fff}
#ivyr-app.storybook .chart-container.is-fullscreen{position:fixed;inset:0;z-index:100000;width:auto;height:auto;margin:0;padding:16px calc(16px + env(safe-area-inset-right)) calc(16px + env(safe-area-inset-bottom)) calc(16px + env(safe-area-inset-left));background:#fffdf8;border-radius:0;touch-action:none;overscroll-behavior:contain;animation:ivy-scene-open var(--t-base) var(--ease-out)}
#ivyr-app.storybook .chart-container.is-fullscreen canvas{width:100%!important;height:100%!important}
#ivyr-app.storybook .chart-container.is-fullscreen .chart-fullscreen-toggle{right:calc(16px + env(safe-area-inset-right));top:calc(16px + env(safe-area-inset-top));width:48px;height:48px}

/* 全画面のivyであそぶシューティング */
#ivyr-app.storybook .ivy-game-challenges{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3);margin:var(--s-4) 0 var(--s-2);padding:0;border:0;background:none}
#ivyr-app.storybook .ivy-game-challenges>p{grid-column:1/-1;margin:0 0 var(--s-1);color:#324b35}
#ivyr-app.storybook .ivy-game-challenges>p>span{display:block;font-size:10px;font-weight:800;letter-spacing:.13em;color:#6b7759}
#ivyr-app.storybook .ivy-game-challenges>p>strong{font-size:var(--fs-4);line-height:1.8}
#ivyr-app.storybook .ivy-game-challenges>button{--level-accent:#5e763b;display:flex;flex-direction:column;min-width:0;width:100%;margin:0;padding:0;overflow:hidden;border:1px solid #bdcbaa;border-radius:var(--r-m);background:#f4f7e8;color:#304733;font-family:inherit;text-align:left;cursor:pointer;box-shadow:var(--sh-1);transition:transform .18s,box-shadow .18s}
#ivyr-app.storybook .ivy-game-challenges>.ivy-game-challenge-2{--level-accent:#ffd080;background:#273633;color:#fff2d7;border-color:#a68c56;box-shadow:var(--sh-1)}
#ivyr-app.storybook .ivy-game-challenges>.ivy-game-challenge-3{--level-accent:#ff95b0;background:#2a102d;color:#fff2ef;border-color:#e85d8d;box-shadow:var(--sh-1)}
#ivyr-app.storybook .ivy-game-challenges>.ivy-game-challenge-4{--level-accent:#ffc06c;background:#180e20;color:#fff4e1;border-color:#f59c47;box-shadow:var(--sh-1)}
#ivyr-app.storybook .ivy-game-challenge-4 .flight-level-badge{background:#ffb35a;color:#291327}
#ivyr-app.storybook .ivy-game-challenges>button:hover{transform:translateY(-3px);box-shadow:var(--sh-2)}
#ivyr-app.storybook .ivy-game-challenges>button:focus-visible{outline:3px solid #a96412;outline-offset:4px}
#ivyr-app.storybook .flight-level-art{display:block;position:relative;width:100%;overflow:hidden}
#ivyr-app.storybook .flight-level-art svg{display:block;width:100%;height:auto}
#ivyr-app.storybook .flight-level-badge{position:absolute;top:10px;left:10px;padding:var(--s-1) var(--s-2);border-radius:var(--r-xs);background:#f7ffe5;color:#3b532b;font-size:10px;font-weight:800;line-height:1.5}
#ivyr-app.storybook .ivy-game-challenge-2 .flight-level-badge{background:#ffd080;color:#35280c}
#ivyr-app.storybook .ivy-game-challenge-3 .flight-level-badge{background:#ee416f;color:#fff;letter-spacing:.1em}
#ivyr-app.storybook .flight-level-copy{display:flex;flex:1;flex-direction:column;width:100%;box-sizing:border-box;padding:var(--s-4)}
#ivyr-app.storybook .flight-level-top{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2)}
#ivyr-app.storybook .flight-level-top strong{font-size:clamp(22px,2.5vw,30px);line-height:1.3;letter-spacing:.03em}
#ivyr-app.storybook .flight-level-dots{color:var(--level-accent);font-size:var(--fs-1);letter-spacing:.07em;white-space:nowrap}
#ivyr-app.storybook .flight-level-world{margin-top:var(--s-1);color:var(--level-accent);font-size:var(--fs-1);font-weight:700}
#ivyr-app.storybook .flight-level-description{margin:var(--s-3) 0 var(--s-2);font-size:var(--fs-1);line-height:1.7}
#ivyr-app.storybook .flight-level-copy small{display:block;margin:0 0 var(--s-3);font-size:10px;line-height:1.7;opacity:.85}
#ivyr-app.storybook .flight-level-action{display:flex;align-items:center;justify-content:space-between;margin-top:auto;padding-top:var(--s-3);border-top:1px solid currentColor;font-size:var(--fs-2);font-weight:800}
@media(max-width:620px){
 #ivyr-app.storybook .ivy-game-challenges{grid-template-columns:minmax(0,1fr);gap:var(--s-3)}
 #ivyr-app.storybook .ivy-game-challenges>button{flex-direction:row;align-items:stretch;padding:0;gap:0}
 #ivyr-app.storybook .flight-level-art{flex:0 0 34%;width:34%}
 #ivyr-app.storybook .flight-level-art svg{height:100%;width:100%;position:absolute;object-fit:cover}
 #ivyr-app.storybook .flight-level-badge{top:8px;left:5px;right:5px;padding:var(--s-1);font-size:9px;text-align:center;letter-spacing:0}
 #ivyr-app.storybook .flight-level-copy{min-width:0;padding:var(--s-3)}
 #ivyr-app.storybook .flight-level-top strong{font-size:var(--fs-5)}
 #ivyr-app.storybook .flight-level-description{margin:var(--s-2) 0;font-size:var(--fs-1)}
 #ivyr-app.storybook .flight-level-copy small{margin-bottom:var(--s-2);font-size:10px}
 #ivyr-app.storybook .flight-level-action{padding-top:var(--s-2);font-size:var(--fs-1)}
}
@media(prefers-reduced-motion:reduce){#ivyr-app.storybook .ivy-game-challenges>button{transition:none}}
#ivyr-app.storybook.reduced-motion .ivy-game-challenges>button{transition:none}

#ivyr-app.storybook .room-scene .ivy-game-launch{position:absolute;z-index:6;left:50%;bottom:20px;transform:translateX(-50%);min-height:48px;padding:var(--s-3) var(--s-5);border:2px solid #fff;border-radius:var(--r-full);background:#fffdf4;color:#3f5136;font-size:var(--fs-2);font-weight:700;cursor:pointer;box-shadow:var(--sh-2)}
#ivyr-app.storybook .room-scene .ivy-game{position:absolute;inset:0;z-index:7;display:grid;grid-template-rows:auto minmax(0,1fr) 48px auto;gap:var(--s-3);padding:var(--s-4) max(16px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(16px,env(safe-area-inset-left));padding-top:max(12px,env(safe-area-inset-top));touch-action:none;overflow:hidden;background:radial-gradient(ellipse at 50% 30%,#436153,#213d36 75%);color:#fffbed}
#ivyr-app.storybook .room-scene .ivy-game[data-tier="1"]{background:radial-gradient(ellipse at 50% 30%,#303754,#101c2f 75%)}
#ivyr-app.storybook .room-scene .ivy-game[data-tier="2"]{background:radial-gradient(ellipse at 50% 30%,#582f64,#201328 75%)}
/* ゲーム表示サイズの切替中も、同じモーダル内でゲーム状態を保つ。 */
#ivyr-app.storybook .room-stage .room-scene.is-fullscreen.is-playing{height:100vh;height:100dvh;bottom:auto}
#ivyr-app.storybook .room-stage .room-scene.is-fullscreen.is-playing.is-game-windowed{inset:12px max(12px,calc((100vw - 900px)/2)) auto;height:calc(100vh - 24px);height:calc(100dvh - 24px);border-radius:var(--r-l);box-shadow:var(--sh-1);animation:none}
#ivyr-app.storybook .ivy-game[data-tier="1"] .ivy-game-chapter{color:#baf7ef}
#ivyr-app.storybook .ivy-game[data-tier="2"] .ivy-game-chapter{color:#ffd3f2}
#ivyr-app.storybook .ivy-game[data-tier="1"] .ivy-game-hud{background:#18273d;border-color:#6079a1}
#ivyr-app.storybook .ivy-game[data-tier="2"] .ivy-game-hud{background:#33203e;border-color:#976f9d}
#ivyr-app.storybook .ivy-game-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s-2) var(--s-4);width:min(100%,680px);justify-self:center;align-items:center}
#ivyr-app.storybook .ivy-game-heading{min-width:0;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--s-1) var(--s-4)}
#ivyr-app.storybook .ivy-game-eyebrow{font-size:var(--fs-1);font-weight:700;letter-spacing:.12em;line-height:1.5;color:#dae6ba}
#ivyr-app.storybook .ivy-game-heading>strong{font-size:var(--fs-3);line-height:1.4;color:#fffbed}
#ivyr-app.storybook .ivy-game-hud-controls{display:flex;gap:var(--s-2)}
#ivyr-app.storybook .ivy-game-hud-controls button{min-height:44px;padding:var(--s-2) var(--s-3);border:1px solid #829787;border-radius:var(--r-s);background:#1a302a;color:#fffbed;font-size:var(--fs-1);line-height:1.5;font-weight:700;cursor:pointer}
#ivyr-app.storybook .ivy-game-hud{grid-column:1/-1;display:flex;align-items:center;gap:var(--s-2) var(--s-5);flex-wrap:wrap;padding:var(--s-2) var(--s-3);border:1px solid #647d67;border-radius:var(--r-m);background:#142e27;font-size:var(--fs-1);line-height:1.4;color:#d2dfc7}
#ivyr-app.storybook .ivy-game-hud>span{display:inline-flex;align-items:baseline;gap:var(--s-2);white-space:nowrap}
#ivyr-app.storybook .ivy-game-hud b{font-size:var(--fs-2);font-variant-numeric:tabular-nums;letter-spacing:.03em;color:#fff4ce}
#ivyr-app.storybook .ivy-game-hud .ivy-game-hp{margin-left:auto;color:#ffc794;font-size:var(--fs-4);line-height:1;letter-spacing:.08em}
#ivyr-app.storybook .ivy-game-route{grid-column:1/-1;display:grid;grid-template-columns:1fr auto;gap:var(--s-1) var(--s-3);align-items:center;color:#e1e8ce;font-size:var(--fs-1);line-height:1.4}
#ivyr-app.storybook .ivy-game-progress{grid-column:1/-1;display:block;height:3px;overflow:hidden;border-radius:var(--r-xs);background:#102c26}
#ivyr-app.storybook .ivy-game-progress i{display:block;height:100%;width:0;background:#e3c875;border-radius:var(--r-xs)}
#ivyr-app.storybook .ivy-game-field{position:relative;min-width:0;min-height:0;display:grid;place-items:center;overflow:visible}
#ivyr-app.storybook .ivy-game-canvas{display:block;max-width:100%;max-height:100%;border-radius:var(--r-s);box-shadow:var(--sh-3);touch-action:none}
#ivyr-app.storybook .ivy-game-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);width:min(100%,680px);justify-self:center}
#ivyr-app.storybook .ivy-game-guide{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-1) var(--s-4);max-width:calc(100% - 90px)}
#ivyr-app.storybook .ivy-game-help{flex-basis:100%;margin:0;color:#f3f1de;font-size:var(--fs-1);line-height:1.6;text-align:left}
#ivyr-app.storybook .ivy-game-auto{display:inline-flex;align-items:center;gap:var(--s-2);min-height:30px;padding:var(--s-1) var(--s-2);border:1px solid #839684;border-radius:var(--r-s);font-size:var(--fs-1);color:#fffbed;line-height:1.5;cursor:pointer}
#ivyr-app.storybook .ivy-game-auto input{width:17px;height:17px;margin:0;accent-color:#e3c875;cursor:pointer}
#ivyr-app.storybook .ivy-game-bell-tip{font-size:var(--fs-1);color:#dbe4ca;line-height:1.5}
#ivyr-app.storybook .ivy-game-weapon{padding:var(--s-1) var(--s-2);border-radius:var(--r-s);background:#456548;color:#fff8cb;font-size:var(--fs-1);font-weight:700;line-height:1.5}
#ivyr-app.storybook .ivy-game-shot{display:flex;flex:none;flex-direction:column;align-items:center;justify-content:center;gap:0;width:82px;height:82px;border:3px solid #fff6cb;border-radius:var(--r-full);background:linear-gradient(145deg,#ffe7a4,#eabb52);color:#483c21;font-size:var(--fs-1);font-weight:700;line-height:1.3;cursor:pointer;box-shadow:var(--sh-2);touch-action:none;-webkit-user-select:none;user-select:none}
#ivyr-app.storybook .ivy-game-shot>span{font-size:var(--fs-6);line-height:1.1}
#ivyr-app.storybook .ivy-game-shot:active{transform:translateY(3px);box-shadow:var(--sh-1);background:#ffe9a9}
#ivyr-app.storybook .ivy-game-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
#ivyr-app.storybook .ivy-game-notice{display:flex;align-items:center;justify-self:center;width:min(100%,680px);height:48px;pointer-events:none}
#ivyr-app.storybook .ivy-game-banner{margin:0;width:100%;padding:var(--s-1) var(--s-3);border:1px solid #adbd92;border-radius:var(--r-s);background:#fffcec;color:#2e4634;font-size:var(--fs-1);line-height:1.5;text-align:center;text-wrap:pretty;pointer-events:none}
#ivyr-app.storybook .ivy-game-over,#ivyr-app.storybook .ivy-game-pause-panel{position:absolute;inset:0;z-index:4;display:grid;place-items:center;padding:var(--s-5);background:#122d29d9}
#ivyr-app.storybook .ivy-game-panel{width:min(100%,360px);padding:var(--s-6) var(--s-5);background:#fffbed;border:2px solid #c6d0a9;border-radius:var(--r-l);text-align:center;box-shadow:var(--sh-3)}
#ivyr-app.storybook .ivy-game-panel .ivy-game-eyebrow{color:#526943;font-size:var(--fs-1)}
#ivyr-app.storybook .ivy-game-panel h2{margin:var(--s-3) 0;color:#304b35;font-size:var(--fs-5);line-height:1.6}
#ivyr-app.storybook .ivy-game-panel p{margin:var(--s-3) 0 var(--s-5);color:#4c6248;font-size:var(--fs-2);line-height:1.8}
#ivyr-app.storybook .ivy-game-panel button{min-height:44px;margin:var(--s-1);padding:var(--s-3) var(--s-5);border:1px solid #7c9869;border-radius:var(--r-m);background:#e8efcf;color:#304b35;font-size:var(--fs-2);font-weight:700;cursor:pointer}
#ivyr-app.storybook .ivy-game-panel .ivy-game-resume,#ivyr-app.storybook .ivy-game-panel .ivy-game-again{background:#35573b;color:#fffbed}
#ivyr-app.storybook .ivy-game-over-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s-2)}
#ivyr-app.storybook .ivy-game button:focus-visible,#ivyr-app.storybook .ivy-game input:focus-visible,#ivyr-app.storybook .ivy-game-entry:focus-visible{outline:3px solid #ffdc75;outline-offset:4px}
#ivyr-app.storybook .ivy-game [hidden],#ivyr-app.storybook .ivy-game[hidden],#ivyr-app.storybook .room-scene .ivy-game-launch[hidden]{display:none}
#ivyr-app.storybook .room-scene.is-playing>.speech,#ivyr-app.storybook .room-scene.is-playing>.scene-label,#ivyr-app.storybook .room-scene.is-playing>.ivy-character,#ivyr-app.storybook .room-scene.is-playing>.scene-fullscreen-toggle{visibility:hidden;pointer-events:none}
@media(max-width:600px){
 #ivyr-app.storybook .room-scene .ivy-game{gap:var(--s-2);padding-inline:max(10px,env(safe-area-inset-left)) max(10px,env(safe-area-inset-right));padding-top:max(8px,env(safe-area-inset-top))}
 #ivyr-app.storybook .ivy-game-header{gap:var(--s-2) var(--s-2)}
 #ivyr-app.storybook .ivy-game-heading{gap:0}
 #ivyr-app.storybook .ivy-game-heading>.ivy-game-eyebrow{font-size:10px;letter-spacing:.06em;flex-basis:100%}
 #ivyr-app.storybook .ivy-game-heading>strong{font-size:var(--fs-2)}
 #ivyr-app.storybook .ivy-game-hud-controls{gap:var(--s-1)}
 #ivyr-app.storybook .ivy-game-hud-controls button{padding:var(--s-2) var(--s-2);min-height:44px}
 #ivyr-app.storybook .ivy-game-hud{gap:var(--s-2) var(--s-3);padding:var(--s-2) var(--s-2)}
 #ivyr-app.storybook .ivy-game-hud>span{gap:var(--s-1)}
 #ivyr-app.storybook .ivy-game-hud b{font-size:var(--fs-2)}
 #ivyr-app.storybook .ivy-game-hud .ivy-game-hp{font-size:var(--fs-3)}
 #ivyr-app.storybook .ivy-game-bell-tip{display:none}
 #ivyr-app.storybook .ivy-game-entry{padding:var(--s-3);gap:var(--s-3)}
 #ivyr-app.storybook .ivy-game-entry small{max-width:18em}
}
@media(max-height:500px) and (orientation:landscape){
 #ivyr-app.storybook .room-scene .ivy-game{grid-template-columns:minmax(130px,1fr) minmax(0,2fr) minmax(110px,1fr);grid-template-rows:48px minmax(0,1fr);gap:var(--s-2) var(--s-4);padding:var(--s-3)}
 #ivyr-app.storybook .ivy-game-notice{grid-column:1/-1;grid-row:1}
 #ivyr-app.storybook .ivy-game-header{grid-column:1;grid-row:2;align-self:start;display:flex;flex-direction:column;align-items:stretch;gap:var(--s-2)}
 #ivyr-app.storybook .ivy-game-hud{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-2)}
 #ivyr-app.storybook .ivy-game-hud>span:first-child,#ivyr-app.storybook .ivy-game-hud>span:nth-child(4),#ivyr-app.storybook .ivy-game-hud .ivy-game-hp{grid-column:1/-1}
 #ivyr-app.storybook .ivy-game-hud .ivy-game-hp{margin-left:0}
 #ivyr-app.storybook .ivy-game-field{grid-column:2;grid-row:2;align-self:stretch;width:100%;height:100%}
 #ivyr-app.storybook .ivy-game-controls{grid-column:3;grid-row:2;flex-direction:column;align-self:end;gap:var(--s-4)}
 #ivyr-app.storybook .ivy-game-guide{max-width:none;gap:var(--s-2)}
 #ivyr-app.storybook .ivy-game-help{font-size:var(--fs-1)}
 #ivyr-app.storybook .ivy-game-bell-tip{display:none}
 #ivyr-app.storybook .ivy-game-hud-controls{flex-wrap:wrap}
}
#ivyr-app.storybook .ivy-game-hud-controls .ivy-game-fullscreen{display:grid;place-items:center;flex:none;width:44px;min-height:44px;padding:0}
/* 拡大時はゲームフィールドを画面いっぱいにし、HUDと操作部をその上へ重ねる。 */
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game{display:block;padding:0}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-field{position:absolute;inset:0;width:100%;height:100%;display:block}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-canvas{border-radius:0;box-shadow:none}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-header{position:absolute;z-index:2;top:max(8px,env(safe-area-inset-top));left:max(8px,env(safe-area-inset-left));right:max(8px,env(safe-area-inset-right));width:auto;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:var(--s-1);pointer-events:none}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-heading{display:none}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-hud-controls{grid-column:2;grid-row:1;flex-wrap:nowrap;pointer-events:auto}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-hud{grid-column:1;grid-row:1;display:flex;gap:var(--s-1) var(--s-2);padding:var(--s-1) var(--s-2);background:#142e27c9;font-size:var(--fs-1)}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-hud b{font-size:var(--fs-1)}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-hud .ivy-game-hp{font-size:var(--fs-3);margin-left:0}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-route{padding:var(--s-1) var(--s-2);border-radius:var(--r-xs);background:#142e27b8}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-controls{position:absolute;z-index:2;bottom:max(12px,env(safe-area-inset-bottom));left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));width:auto;flex-direction:row;align-items:end;pointer-events:none}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-help,#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-bell-tip{display:none}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-guide{max-width:calc(100% - 90px)}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-auto{min-height:44px;background:#142e27d9;pointer-events:auto}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-shot{pointer-events:auto;opacity:.85}
#ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-notice{position:absolute;z-index:2;left:15%;right:15%;bottom:110px;width:auto;height:auto;pointer-events:none}
@media(max-width:600px){
 #ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-header{grid-template-columns:1fr}
 #ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-hud-controls{grid-column:1;justify-self:end}
 #ivyr-app.storybook .room-scene.is-playing:not(.is-game-windowed) .ivy-game-hud{grid-column:1;grid-row:2}
}
@media(prefers-reduced-motion:reduce){#ivyr-app.storybook .ivy-game-shot:active{transform:none}}

/* ゲームガイド専用の装飾。他ページへ適用しない。 */
#ivyr-app.storybook .flight-guide{--flight-paper:#fffdf5;--flight-ink:#304638;--flight-muted:#3f4f36;--flight-line:#dce0ce;max-width:1120px;min-width:0;margin:0 auto;color:var(--flight-ink);font-size:var(--fs-3);line-height:1.9;overflow-wrap:anywhere}
#ivyr-app.storybook .flight-guide *,#ivyr-app.storybook .flight-guide *::before,#ivyr-app.storybook .flight-guide *::after{box-sizing:border-box}
#ivyr-app.storybook .flight-guide :is(h1,h2,h3,h4){font-family:IvyRound,system-ui,sans-serif;color:var(--flight-ink);text-wrap:balance}
#ivyr-app.storybook .flight-guide h1{margin:var(--s-4) 0 var(--s-5);font-size:clamp(28px,3.6vw,42px);line-height:1.5;letter-spacing:.015em}
#ivyr-app.storybook .flight-guide h1 .flight-guide-subtitle{display:block;margin-top:var(--s-3);color:#62724e;font-size:var(--fs-3);line-height:1.6;letter-spacing:.08em}
#ivyr-app.storybook .flight-guide h2{margin:var(--s-2) 0 var(--s-4);font-size:clamp(24px,3vw,32px);line-height:1.55;letter-spacing:.025em}
#ivyr-app.storybook .flight-guide h3{margin:0 0 var(--s-3);font-size:var(--fs-4);line-height:1.6}
#ivyr-app.storybook .flight-guide h4{margin:0 0 var(--s-2);font-size:var(--fs-3);line-height:1.6}
#ivyr-app.storybook .flight-guide p{margin:0 0 1em}
#ivyr-app.storybook .flight-guide p:last-child{margin-bottom:0}
#ivyr-app.storybook .flight-guide a:not(.button){color:#32614b;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
#ivyr-app.storybook .flight-guide :is(a,button,summary):focus-visible{outline:3px solid #92671c;outline-offset:5px}
#ivyr-app.storybook .flight-guide :is(section,nav,footer,[id]){scroll-margin-block-start:105px}
#ivyr-app.storybook .flight-guide kbd{padding:var(--s-1) var(--s-2);border:1px solid #cbd1bf;border-bottom-width:2px;border-radius:var(--r-xs);background:#fffdf5;font:inherit;font-size:.875em;white-space:nowrap}
#ivyr-app.storybook .flight-guide .flight-guide-kicker{margin:0;color:#586d45;font:700 11px/1.7 IvyRound,system-ui,sans-serif;letter-spacing:.12em}
#ivyr-app.storybook .flight-guide-hero{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:var(--s-5) var(--s-6);padding:clamp(24px,4vw,42px);border:1px solid #e3dcc4;border-radius:var(--r-l);background:linear-gradient(135deg,#fffdf5,#f6efdc);box-shadow:var(--sh-1)}
#ivyr-app.storybook .flight-guide-hero-copy{min-width:0}
#ivyr-app.storybook .flight-guide-hero .back-link{display:inline-flex;align-items:center;min-height:44px;margin-bottom:var(--s-3);font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-lead{max-width:35em;color:#4b624e;font-size:var(--fs-3);line-height:1.95}
#ivyr-app.storybook .flight-guide-hero-art{position:relative;margin:0;min-width:0}
#ivyr-app.storybook .flight-guide-hero-art img{display:block;width:100%;height:auto;border:1px solid #698777;border-radius:var(--r-l);box-shadow:var(--sh-3)}
#ivyr-app.storybook .flight-guide-hero-art figcaption{position:absolute;left:16px;right:16px;bottom:14px;padding:var(--s-2) var(--s-3);border:1px solid #c1d3b652;border-radius:var(--r-m);background:#173b30e8;color:#fff7dd;font-size:var(--fs-1);line-height:1.7;text-align:center}
#ivyr-app.storybook .flight-guide-actions{display:flex;flex-wrap:wrap;gap:var(--s-3);margin-top:var(--s-5)}
#ivyr-app.storybook .flight-guide .button{display:inline-flex;align-items:center;justify-content:center;gap:var(--s-2);max-width:100%;min-height:48px;padding:var(--s-3) var(--s-4);border:1px solid #c3cfb4;border-radius:var(--r-m);background:#edf3e3;color:#304e38;font:700 14px/1.6 IvyRound,system-ui,sans-serif;text-align:center;text-decoration:none;white-space:normal;cursor:pointer;box-shadow:var(--sh-1)}
#ivyr-app.storybook .flight-guide .button.primary{border-color:#d2b455;background:#f6d771;color:#443a20;box-shadow:var(--sh-1)}
#ivyr-app.storybook .flight-guide-facts{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5);margin:0;padding:var(--s-5) 0 0;border-top:1px solid #dedbc4;list-style:none}
#ivyr-app.storybook .flight-guide-facts li{display:flex;align-items:baseline;gap:var(--s-3);flex-wrap:wrap;font-size:var(--fs-1);color:#627058}
#ivyr-app.storybook .flight-guide-facts strong{font-size:var(--fs-3);color:#415b3e}
#ivyr-app.storybook .flight-guide-toc{margin:var(--s-6) 0 0;padding:var(--s-3) 0;border-top:1px solid var(--flight-line);border-bottom:1px solid var(--flight-line)}
#ivyr-app.storybook .flight-guide-toc ol{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:var(--s-2);margin:0;padding:0;list-style:none;counter-reset:flight-toc}
#ivyr-app.storybook .flight-guide-toc li{min-width:0;counter-increment:flight-toc}
#ivyr-app.storybook .flight-guide-toc a{display:flex;align-items:center;justify-content:center;gap:var(--s-2);min-height:44px;padding:var(--s-2) var(--s-1);font-weight:700;font-size:var(--fs-2);line-height:1.7}
#ivyr-app.storybook .flight-guide-toc a::before{content:counter(flight-toc,decimal-leading-zero);flex:none;color:#887740;font-size:10px;font-variant-numeric:tabular-nums}
#ivyr-app.storybook .flight-guide-section{min-width:0;margin-top:var(--s-8)}
#ivyr-app.storybook .flight-guide-intro{max-width:48em;color:var(--flight-muted)}
#ivyr-app.storybook .flight-guide-quick{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5);margin:var(--s-6) 0 0;padding:0;list-style:none}
#ivyr-app.storybook .flight-guide-quick li{display:flex;gap:var(--s-4);padding:var(--s-5) 0;border-top:3px solid #bacb99}
#ivyr-app.storybook .flight-guide-number{display:grid;place-items:center;flex:none;width:32px;height:32px;border-radius:var(--r-full);background:#e4ecd1;color:#52643b;font:700 16px/1 IvyRound,system-ui,sans-serif}
#ivyr-app.storybook .flight-guide-quick h3{font-size:var(--fs-3)}
#ivyr-app.storybook .flight-guide-quick p{font-size:var(--fs-2);color:var(--flight-muted);line-height:1.85}
#ivyr-app.storybook .flight-guide-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4);margin:var(--s-2) 0 var(--s-5);align-items:start}
#ivyr-app.storybook .flight-guide-controls details{min-width:0;border:1px solid var(--flight-line);border-radius:var(--r-m);background:var(--flight-paper)}
#ivyr-app.storybook .flight-guide-controls summary{min-height:52px;padding:var(--s-4) var(--s-5);font-weight:700;font-size:var(--fs-2);cursor:pointer}
#ivyr-app.storybook .flight-guide-controls dl{display:grid;grid-template-columns:4em minmax(0,1fr);gap:var(--s-4);margin:0;padding:var(--s-2) var(--s-5) var(--s-5);font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-controls dt{min-width:0;margin:0;font-weight:700;color:#45603e}
#ivyr-app.storybook .flight-guide-controls dd{min-width:0;margin:0}
#ivyr-app.storybook .flight-guide .flight-guide-note{margin-top:var(--s-5);color:var(--flight-muted);font-size:var(--fs-2);line-height:1.9}
#ivyr-app.storybook .flight-guide-start{display:flex;justify-content:space-between;align-items:center;gap:var(--s-4);margin-top:var(--s-5);padding:var(--s-5) var(--s-5);border-radius:var(--r-l);background:#eaf0dd}
#ivyr-app.storybook .flight-guide-start strong{font:700 17px/1.6 IvyRound,system-ui,sans-serif}
#ivyr-app.storybook .flight-guide-start p{margin:var(--s-1) 0 0;font-size:var(--fs-2);color:#5e7056}
#ivyr-app.storybook .flight-guide-start .button{flex:none}
#ivyr-app.storybook .flight-guide-story-layout{display:grid;grid-template-columns:1.15fr 1fr;gap:var(--s-6);align-items:center}
#ivyr-app.storybook .flight-guide-story{max-width:48em;font-size:var(--fs-2);line-height:2}
#ivyr-app.storybook .flight-guide-story blockquote{margin:var(--s-5) 0;padding:var(--s-4) var(--s-5);border:0;border-left:3px solid #b8a766;background:#f5edcf;color:#4b5738;font:700 17px/1.9 IvyRound,system-ui,sans-serif}
#ivyr-app.storybook .flight-guide-map{margin:0;min-width:0}
#ivyr-app.storybook .flight-guide-map-stages,#ivyr-app.storybook .flight-guide-map-endpoints{display:none}
#ivyr-app.storybook .flight-guide-map img{display:block;width:100%;height:auto;border:1px solid #e5dcc2;border-radius:var(--r-l);background:#fffdf5}
#ivyr-app.storybook .flight-guide-map figcaption{margin:var(--s-3) 0 0;color:var(--flight-muted);font-size:var(--fs-1);line-height:1.8;text-align:center}
#ivyr-app.storybook .flight-guide-section-heading{display:flex;justify-content:space-between;gap:var(--s-5);align-items:end;margin-top:var(--s-6)}
#ivyr-app.storybook .flight-guide-section-heading h3{margin:var(--s-1) 0 0;font-size:var(--fs-5)}
#ivyr-app.storybook .flight-guide-section-heading>p{flex:none;margin:0;color:#687258;font-size:var(--fs-1)}
#ivyr-app.storybook .flight-guide-chapters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5);margin:var(--s-5) 0 0;padding:0;list-style:none}
#ivyr-app.storybook .flight-guide-chapters>li{min-width:0;overflow:hidden;border:1px solid #cfdbc1;border-radius:var(--r-l);background:#f4f7ea}
#ivyr-app.storybook .flight-guide-chapters>li:nth-child(2){border-color:#38565a;background:#1e393e;color:#e4efe6}
#ivyr-app.storybook .flight-guide-chapters>li:nth-child(3){border-color:#624b6f;background:#352c44;color:#f0e6ed}
#ivyr-app.storybook .flight-guide-chapter-copy{padding:var(--s-5)}
#ivyr-app.storybook .flight-guide-chapter-copy h3{margin:var(--s-3) 0 var(--s-2);font-size:var(--fs-5)}
#ivyr-app.storybook .flight-guide-chapter-copy p{font-size:var(--fs-2);line-height:1.9}
#ivyr-app.storybook .flight-guide-chapters>li:nth-child(n+2) :is(h3,small){color:#f4efd4}
#ivyr-app.storybook .flight-guide-chapters>li:nth-child(n+2) .flight-guide-tag{background:#ffffff15;color:#dce9c1}
#ivyr-app.storybook .flight-guide-route-list{display:grid;gap:var(--s-1);margin:var(--s-5) 0;padding:0;list-style:none;counter-reset:flight-route;font-size:var(--fs-1)}
#ivyr-app.storybook .flight-guide-route-list li{display:flex;gap:var(--s-3);counter-increment:flight-route}
#ivyr-app.storybook .flight-guide-route-list li::before{content:counter(flight-route,decimal-leading-zero);opacity:.65;font-variant-numeric:tabular-nums}
#ivyr-app.storybook .flight-guide-chapter-copy small{display:block;padding-top:var(--s-4);border-top:1px solid #7d98784d;font-size:var(--fs-1);color:#526747;line-height:1.8}
#ivyr-app.storybook .flight-guide-tag{display:inline-block;padding:var(--s-1) var(--s-2);border-radius:var(--r-xs);background:#e8edd8;color:#546444;font-size:var(--fs-1);font-weight:700;line-height:1.7;letter-spacing:.035em}
#ivyr-app.storybook .flight-guide-art-slice{--slice:0;position:relative;overflow:hidden;min-width:0;aspect-ratio:10/7}
#ivyr-app.storybook .flight-guide-art-slice img{position:absolute;top:50%;left:0;display:block;width:300%;max-width:none;height:auto;transform:translate(calc(var(--slice)*-33.333333%),-50%)}
#ivyr-app.storybook .flight-guide-art-slice.slice-2{--slice:1}
#ivyr-app.storybook .flight-guide-art-slice.slice-3{--slice:2}
#ivyr-app.storybook .flight-guide-art-slice.slice-4{--slice:3}
#ivyr-app.storybook .flight-guide-art-slice.slice-5{--slice:4}
#ivyr-app.storybook .flight-guide-art-slice.slice-6{--slice:5}
#ivyr-app.storybook .flight-guide-world{aspect-ratio:4/2.65;border-bottom:1px solid #8396794d}
#ivyr-app.storybook .flight-guide-challenge{display:grid;grid-template-columns:1fr auto;gap:var(--s-6);align-items:center;margin-top:var(--s-6);padding:var(--s-6);border:1px solid #d7cae0;border-radius:var(--r-l);background:#f2eaf1}
#ivyr-app.storybook .flight-guide-challenge .flight-guide-kicker{color:#7c516b}
#ivyr-app.storybook .flight-guide-challenge h3{margin:var(--s-2) 0 var(--s-2)}
#ivyr-app.storybook .flight-guide-challenge p{max-width:37em;font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-loadout{padding:var(--s-2) 0 var(--s-2) var(--s-6);border-left:1px solid #d6c5d3}
#ivyr-app.storybook .flight-guide-loadout strong{display:block;color:#66445f;font:700 21px/1.6 IvyRound,system-ui,sans-serif}
#ivyr-app.storybook .flight-guide-loadout span{display:block;margin:var(--s-1) 0;color:#765e70;font-size:var(--fs-1)}
#ivyr-app.storybook .flight-guide-loadout a{display:inline-flex;align-items:center;gap:var(--s-3);min-height:44px;font-size:var(--fs-2);font-weight:700}
#ivyr-app.storybook .flight-guide-growth{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5);margin:var(--s-5) 0 var(--s-5);padding:0;list-style:none}
#ivyr-app.storybook .flight-guide-growth li{min-width:0;padding:0 var(--s-5) var(--s-5);border:1px solid #d8deca;border-radius:var(--r-l);background:var(--flight-paper)}
#ivyr-app.storybook .flight-guide-growth .flight-guide-art-slice{aspect-ratio:10/9;margin:0 -5px var(--s-3)}
#ivyr-app.storybook .flight-guide-growth h3{margin:var(--s-3) 0 var(--s-2);font-size:var(--fs-4)}
#ivyr-app.storybook .flight-guide-growth p{font-size:var(--fs-2);color:var(--flight-muted)}
#ivyr-app.storybook .flight-guide-health{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-5);padding:var(--s-5) var(--s-5);border-radius:var(--r-m);background:#f4eddc}
#ivyr-app.storybook .flight-guide-health p{margin:0;font-size:var(--fs-2);line-height:1.9}
#ivyr-app.storybook .flight-guide-health strong{display:block;margin-bottom:var(--s-1);color:#695239}
#ivyr-app.storybook .flight-guide-bell-order{display:flex;flex-wrap:wrap;gap:var(--s-3);align-items:center;margin:var(--s-5) 0;color:#7a865d}
#ivyr-app.storybook .flight-guide-bell-order span{display:grid;place-items:center;min-width:48px;height:44px;padding:0 var(--s-3);border:1px solid #b5c298;border-radius:var(--r-m);background:#e4edd2;color:#43613c;font-weight:700;font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-bell-order span:nth-of-type(2){border-color:#a2c4c7;background:#e1eff1;color:#375e6b}
#ivyr-app.storybook .flight-guide-bell-order span:nth-of-type(3){border-color:#d3bf76;background:#fff1bf;color:#6e581e}
#ivyr-app.storybook .flight-guide-bell-order span:nth-of-type(4){border-color:#cbb797;background:#f0e3cd;color:#6c5438}
#ivyr-app.storybook .flight-guide-items{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-5);margin:var(--s-5) 0}
#ivyr-app.storybook .flight-guide-items article{min-width:0;padding:var(--s-5) 0 0;border-top:2px solid #abc491}
#ivyr-app.storybook .flight-guide-items article:nth-child(2){border-color:#94bdc4}
#ivyr-app.storybook .flight-guide-items article:nth-child(3){border-color:#d5b650}
#ivyr-app.storybook .flight-guide-items article:nth-child(4){border-color:#b6a084}
#ivyr-app.storybook .flight-guide-items .token{display:grid;place-items:center;width:36px;height:36px;margin-bottom:var(--s-3);border-radius:var(--r-m);background:#e5efcf;color:#3f653d;font:700 16px/1 IvyRound,system-ui,sans-serif}
#ivyr-app.storybook .flight-guide-items article:nth-child(2) .token{background:#e0eff0;color:#326371}
#ivyr-app.storybook .flight-guide-items article:nth-child(3) .token{background:#fff0c2;color:#745a1f}
#ivyr-app.storybook .flight-guide-items article:nth-child(4) .token{background:#f2e5ca;color:#6a5030}
#ivyr-app.storybook .flight-guide-items h3{font-size:var(--fs-3)}
#ivyr-app.storybook .flight-guide-items p{font-size:var(--fs-2);line-height:1.85;color:var(--flight-muted)}
#ivyr-app.storybook .flight-guide-items strong{color:var(--flight-ink)}
#ivyr-app.storybook .flight-guide-care{display:grid;grid-template-columns:1.2fr 1fr;gap:var(--s-6);margin-top:var(--s-6);padding:var(--s-6);border:1px solid #d0dfd4;border-radius:var(--r-l);background:#edf4ea}
#ivyr-app.storybook .flight-guide-care h3{margin-top:var(--s-2)}
#ivyr-app.storybook .flight-guide-care p{font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-reactions{padding:var(--s-1) 0 var(--s-1) var(--s-6);border-left:1px solid #cbdac8}
#ivyr-app.storybook .flight-guide-reactions a{display:inline-flex;align-items:center;gap:var(--s-2);min-height:44px;font-size:var(--fs-1)}
#ivyr-app.storybook .flight-guide-enemies{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4);margin:var(--s-6) 0;padding:0;list-style:none}
#ivyr-app.storybook .flight-guide-enemies li{min-width:0;padding:var(--s-4) var(--s-5) var(--s-5);border:1px solid #dce0cf;border-radius:var(--r-l);background:var(--flight-paper)}
#ivyr-app.storybook .flight-guide-enemy-art{width:124px;max-width:100%;margin:0 auto 8px;aspect-ratio:5/6}
#ivyr-app.storybook .flight-guide-enemy-art img{width:600%;transform:translate(calc(var(--slice)*-16.666667%),-50%)}
#ivyr-app.storybook .flight-guide-enemies h3{margin-bottom:var(--s-2);font-size:var(--fs-3)}
#ivyr-app.storybook .flight-guide-enemies p{margin-top:var(--s-3);font-size:var(--fs-2);line-height:1.9;color:var(--flight-muted)}
#ivyr-app.storybook .flight-guide-bosses{margin-top:var(--s-6);padding:var(--s-6);border:1px solid #5d4968;border-radius:var(--r-l);background:#352a43;color:#eee6ee}
#ivyr-app.storybook .flight-guide-bosses :is(h3,h4){color:#fff3dd}
#ivyr-app.storybook .flight-guide-bosses .flight-guide-kicker{color:#dfb8d0}
#ivyr-app.storybook .flight-guide-boss-copy{max-width:47em}
#ivyr-app.storybook .flight-guide-boss-copy h3{margin-top:var(--s-2);font-size:var(--fs-5)}
#ivyr-app.storybook .flight-guide-boss-copy p{font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-boss-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5);margin:var(--s-5) 0;padding:0;list-style:none;text-align:center}
#ivyr-app.storybook .flight-guide-boss-list .flight-guide-art-slice{width:100%;max-width:210px;margin:0 auto;aspect-ratio:10/9}
#ivyr-app.storybook .flight-guide-boss-list p{color:#dfd2e3;font-size:var(--fs-1)}
#ivyr-app.storybook .flight-guide-boss-note{padding-top:var(--s-4);border-top:1px solid #6c5874;color:#e0d6e4;font-size:var(--fs-1);line-height:1.9}
#ivyr-app.storybook .flight-guide-field-notes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-6);margin-top:var(--s-6)}
#ivyr-app.storybook .flight-guide-field-notes section{padding:var(--s-5);border-left:3px solid #bacda7;background:#f0f4e8}
#ivyr-app.storybook .flight-guide-field-notes h3{margin:var(--s-3) 0 var(--s-2)}
#ivyr-app.storybook .flight-guide-field-notes p{font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-faq{display:grid;gap:var(--s-3);margin-top:var(--s-5)}
#ivyr-app.storybook .flight-guide-faq details{min-width:0;border:1px solid var(--flight-line);border-radius:var(--r-m);background:var(--flight-paper)}
#ivyr-app.storybook .flight-guide-faq summary{min-height:48px;padding:var(--s-4) var(--s-5);color:#35533d;font-weight:700;font-size:var(--fs-2);line-height:1.8;cursor:pointer}
#ivyr-app.storybook .flight-guide-faq summary::marker{color:#7b8d5b}
#ivyr-app.storybook .flight-guide-faq details[open] summary{border-bottom:1px solid #e5e5d5}
#ivyr-app.storybook .flight-guide-faq details p{margin:0;padding:var(--s-4) var(--s-5) var(--s-5);font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-end{margin-top:var(--s-8);padding:clamp(28px,5vw,48px);border:1px solid #355942;border-radius:var(--r-l);background:#294d3d;text-align:center;box-shadow:var(--sh-1)}
#ivyr-app.storybook .flight-guide-end h2{color:#fff9df}
#ivyr-app.storybook .flight-guide-end p{max-width:36em;margin:0 auto 24px;color:#e8f0dd;font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-end .flight-guide-kicker{margin-bottom:0;color:#e6dfa8}
#ivyr-app.storybook .flight-guide-end :is(a,button):focus-visible{outline-color:#fff0ad}
#ivyr-app.storybook .flight-guide-end a.flight-guide-top{display:block;width:fit-content;min-height:44px;margin:18px auto 0;padding:var(--s-3);color:#dae9cd;font-size:var(--fs-1)}
@media(hover:hover){
 #ivyr-app.storybook .flight-guide .button:hover{filter:brightness(.97)}
 #ivyr-app.storybook .flight-guide-faq summary:hover,#ivyr-app.storybook .flight-guide-controls summary:hover{background:#f2f6e8;border-radius:var(--r-m)}
 #ivyr-app.storybook .flight-guide-toc a:hover{background:#eaf0df;border-radius:var(--r-s)}
}
@media(max-width:900px){
 #ivyr-app.storybook .flight-guide-hero-art figcaption{position:static;margin-top:var(--s-3)}
 #ivyr-app.storybook .flight-guide-hero{grid-template-columns:1fr 1fr;gap:var(--s-5);padding:var(--s-6)}
 #ivyr-app.storybook .flight-guide-facts li{gap:var(--s-1)}
 #ivyr-app.storybook .flight-guide-story-layout{grid-template-columns:1fr}
 #ivyr-app.storybook .flight-guide-map{max-width:620px}
 #ivyr-app.storybook .flight-guide-chapter-copy{padding:var(--s-4)}
 #ivyr-app.storybook .flight-guide-chapter-copy h3{font-size:var(--fs-4)}
 #ivyr-app.storybook .flight-guide-chapters{gap:var(--s-4)}
 #ivyr-app.storybook .flight-guide-items{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:700px){
 #ivyr-app.storybook .flight-guide-hero{grid-template-columns:1fr;padding:var(--s-5)}
 #ivyr-app.storybook .flight-guide-hero-art{max-width:460px;width:100%;justify-self:center}
 #ivyr-app.storybook .flight-guide-hero-art img{border-radius:var(--r-l)}
 #ivyr-app.storybook .flight-guide-facts{gap:var(--s-3);padding-top:var(--s-5)}
 #ivyr-app.storybook .flight-guide-facts li{display:block;font-size:10px}
 #ivyr-app.storybook .flight-guide-facts strong{display:block;font-size:var(--fs-2);margin-bottom:var(--s-1)}
 #ivyr-app.storybook .flight-guide-toc ol{grid-template-columns:repeat(3,minmax(0,1fr))}
 #ivyr-app.storybook .flight-guide-toc a{font-size:var(--fs-1);gap:var(--s-1)}
 #ivyr-app.storybook .flight-guide-section{margin-top:var(--s-7)}
 #ivyr-app.storybook .flight-guide-quick{grid-template-columns:1fr;gap:0}
 #ivyr-app.storybook .flight-guide-quick li{padding:var(--s-5) 0;border-top-width:1px}
 #ivyr-app.storybook .flight-guide-controls{grid-template-columns:1fr;gap:var(--s-3)}
 #ivyr-app.storybook .flight-guide-start{align-items:stretch;flex-direction:column;padding:var(--s-5)}
 #ivyr-app.storybook .flight-guide-map-stages{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-2);margin:0 0 var(--s-3);padding:0;list-style:none;font-size:var(--fs-2);font-weight:700;text-align:center}
 #ivyr-app.storybook .flight-guide-map-illustration{position:relative;overflow:hidden;aspect-ratio:3/1;border:1px solid #e5dcc2;border-radius:var(--r-l);background:#fffdf5}
 #ivyr-app.storybook .flight-guide-map-illustration img{position:absolute;top:-25%;left:0;border:0;border-radius:0}
 #ivyr-app.storybook .flight-guide-map-endpoints{display:block;margin-top:var(--s-3);font-size:var(--fs-2);color:var(--flight-ink)}
 #ivyr-app.storybook .flight-guide-section-heading{display:block;margin-top:var(--s-6)}
 #ivyr-app.storybook .flight-guide-section-heading>p{margin-top:var(--s-2)}
 #ivyr-app.storybook .flight-guide-chapters{grid-template-columns:1fr;gap:var(--s-5)}
 #ivyr-app.storybook .flight-guide-world{aspect-ratio:2/1}
 #ivyr-app.storybook .flight-guide-chapter-copy{padding:var(--s-5)}
 #ivyr-app.storybook .flight-guide-chapter-copy h3{font-size:var(--fs-5)}
 #ivyr-app.storybook .flight-guide-challenge{grid-template-columns:1fr;gap:var(--s-5);padding:var(--s-5)}
 #ivyr-app.storybook .flight-guide-loadout{padding:var(--s-4) 0 0;border-left:0;border-top:1px solid #d6c5d3}
 #ivyr-app.storybook .flight-guide-growth{grid-template-columns:1fr;gap:var(--s-4)}
 #ivyr-app.storybook .flight-guide-growth li{display:grid;grid-template-columns:110px minmax(0,1fr);gap:var(--s-2) var(--s-4);align-content:center;padding:var(--s-5)}
 #ivyr-app.storybook .flight-guide-growth .flight-guide-art-slice{grid-column:1;grid-row:1/4;align-self:center;aspect-ratio:10/9;margin:0}
 #ivyr-app.storybook .flight-guide-growth .flight-guide-tag{justify-self:start}
 #ivyr-app.storybook .flight-guide-growth h3{margin:0;font-size:var(--fs-3)}
 #ivyr-app.storybook .flight-guide-growth p{margin:0;font-size:var(--fs-2)}
 #ivyr-app.storybook .flight-guide-health,#ivyr-app.storybook .flight-guide-care,#ivyr-app.storybook .flight-guide-field-notes{grid-template-columns:1fr;gap:var(--s-5)}
 #ivyr-app.storybook .flight-guide-care{padding:var(--s-5)}
 #ivyr-app.storybook .flight-guide-reactions{padding:var(--s-5) 0 0;border-left:0;border-top:1px solid #cbdac8}
 #ivyr-app.storybook .flight-guide-enemies{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3)}
 #ivyr-app.storybook .flight-guide-enemies li{padding:var(--s-3) var(--s-4) var(--s-5)}
 #ivyr-app.storybook .flight-guide-enemies h3{font-size:var(--fs-3)}
 #ivyr-app.storybook .flight-guide-enemy-art{width:110px}
 #ivyr-app.storybook .flight-guide-bosses{padding:var(--s-5) var(--s-5)}
 #ivyr-app.storybook .flight-guide-boss-list{grid-template-columns:1fr;gap:var(--s-5)}
 #ivyr-app.storybook .flight-guide-boss-list li{display:grid;grid-template-columns:84px minmax(0,1fr);gap:var(--s-1) var(--s-3);text-align:left;align-content:center}
 #ivyr-app.storybook .flight-guide-boss-list .flight-guide-art-slice{grid-row:1/3;align-self:center}
 #ivyr-app.storybook .flight-guide-boss-list h4{font-size:var(--fs-3)}
 #ivyr-app.storybook .flight-guide-boss-list p{font-size:var(--fs-2)}
 #ivyr-app.storybook .flight-guide-boss-copy h3{font-size:var(--fs-5)}
}
@media(max-width:380px){
 #ivyr-app.storybook .flight-guide-hero{padding:var(--s-5) var(--s-4)}
 #ivyr-app.storybook .flight-guide h1{font-size:var(--fs-5)}
 #ivyr-app.storybook .flight-guide-actions{flex-direction:column}
 #ivyr-app.storybook .flight-guide-growth li{grid-template-columns:84px minmax(0,1fr);gap:var(--s-2) var(--s-3);padding:var(--s-4)}
 #ivyr-app.storybook .flight-guide-enemies{gap:var(--s-3)}
 #ivyr-app.storybook .flight-guide-enemies li{padding-inline:var(--s-3)}
 #ivyr-app.storybook .flight-guide-items{gap:var(--s-4)}
 #ivyr-app.storybook .flight-guide-bell-order{gap:var(--s-2)}
 #ivyr-app.storybook .flight-guide-bell-order span{min-width:40px;padding:0 var(--s-2)}
}
/* ゲーム入口の直下に、タッチしやすい独立リンクを置く。 */
#ivyr-app.storybook .ivy-game-guide-link{display:flex;align-items:center;justify-content:center;min-width:0;min-height:44px;margin:var(--s-1) 0 var(--s-3);padding:var(--s-2) var(--s-3);color:#3e6144;font-size:var(--fs-2);line-height:1.7;text-align:center;text-decoration:underline;text-underline-offset:4px;overflow-wrap:anywhere}
#ivyr-app.storybook .ivy-game-guide-link:focus-visible{outline:3px solid #92671c;outline-offset:3px;border-radius:var(--r-s)}

/* 音声設定は一時停止パネルへ配置し、プレイ中のフィールドを覆わない。 */
#ivyr-app.storybook .ivy-game-audio-settings{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-3);text-align:left;margin:var(--s-4) 0;color:#304b35;font-size:var(--fs-1)}
#ivyr-app.storybook .ivy-game-audio-settings label{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);min-height:44px}
#ivyr-app.storybook .ivy-game-audio-settings input[type=range]{width:100%;min-width:0}
#ivyr-app.storybook .ivy-game-audio-settings small{grid-column:1/-1}
#ivyr-app.storybook .ivy-game-pause-panel,#ivyr-app.storybook .ivy-game-over{overflow:auto}
#ivyr-app.storybook .ivy-game-panel{max-height:100%;overflow:auto}
#ivyr-app.storybook .ivy-game-hud-controls .ivy-game-sound{font-size:10px;padding-inline:var(--s-2)}

#ivyr-app.storybook .ivy-game-buddy{font-size:var(--fs-1);padding:var(--s-1) var(--s-2);border-radius:var(--r-xs);background:#17382ad9;color:#d9f4c5}
#ivyr-app.storybook .ivy-game-combo{font-weight:800;font-size:var(--fs-2);color:#fff0ac;background:#593f24dd;border-radius:var(--r-s);padding:var(--s-1) var(--s-2)}
#ivyr-app.storybook .ivy-game-combo:empty{display:none}
#ivyr-app.storybook .ivy-game-loadout{display:grid;gap:var(--s-1);color:#304b35;font-size:var(--fs-2);text-align:left}
#ivyr-app.storybook .ivy-game-loadout select{min-height:44px;width:100%;font:inherit;border:1px solid #7c9869;border-radius:var(--r-s);background:#fffef5;color:#304b35}

#ivyr-app.storybook .ivy-game-parts{grid-column:1/-1;font-size:var(--fs-1);color:#e2efc5}
#ivyr-app.storybook .ivy-game-parts:empty{display:none}

#ivyr-app.storybook .ivy-game-ranking{margin:var(--s-3) 0;padding:var(--s-3) var(--s-4);background:#fffbed;border:1px solid #bccca6;border-radius:var(--r-m);color:#304b35}
#ivyr-app.storybook .ivy-game-ranking summary{min-height:44px;cursor:pointer;font-weight:700}
#ivyr-app.storybook .ivy-game-ranking p{font-size:var(--fs-1);line-height:1.7}
#ivyr-app.storybook .ivy-game-ranking select{min-height:44px;max-width:100%;margin-left:var(--s-3);font:inherit}
#ivyr-app.storybook .ivy-game-rank-rows{white-space:pre-wrap;overflow-wrap:anywhere;font-family:inherit;font-size:var(--fs-2);line-height:1.9}
#ivyr-app.storybook .ivy-game-panel .ivy-game-score-detail{font-size:var(--fs-1);line-height:1.6;margin:var(--s-2) 0}

/* 難易度、Buddyの寿命、ボスの回避方法を見分けやすくする。 */
#ivyr-app.storybook .flight-guide-mode-heading{margin:var(--s-7) 0 var(--s-5)}
#ivyr-app.storybook .flight-guide-mode-heading h3{margin:var(--s-2) 0 var(--s-3);font-size:var(--fs-5)}
#ivyr-app.storybook .flight-guide-modes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4);margin-bottom:var(--s-5)}
#ivyr-app.storybook .flight-guide-mode{--mode-accent:#365c36;min-width:0;padding:var(--s-5);border:1px solid #bdccaa;border-top:4px solid var(--mode-accent);border-radius:var(--r-l);background:#f1f6e8;color:#304638}
#ivyr-app.storybook .flight-guide-mode.medium{--mode-accent:#f6ce8c;border-color:#687360;background:#283e36;color:#edf4e8}
#ivyr-app.storybook .flight-guide-mode.hard{--mode-accent:#ffb0cb;border-color:#86617e;background:#39283f;color:#fff0f5}
#ivyr-app.storybook .flight-guide-mode.ultra{--mode-accent:#ffd18a;border-color:#b48a50;background:radial-gradient(ellipse at top right,#573542,transparent 75%),#1d1824;color:#fff3df}
#ivyr-app.storybook .flight-guide-mode .flight-guide-mode-level{display:flex;justify-content:space-between;gap:var(--s-3);align-items:center;margin-bottom:var(--s-4);color:var(--mode-accent);font-weight:800;font-size:var(--fs-5)}
#ivyr-app.storybook .flight-guide-mode-level span:last-child{font-size:var(--fs-2);letter-spacing:.12em}
#ivyr-app.storybook .flight-guide-mode :is(h3,h4){margin:0 0 var(--s-3);color:inherit;font-size:var(--fs-3);line-height:1.7}
#ivyr-app.storybook .flight-guide-mode p{font-size:var(--fs-2);line-height:1.85}
#ivyr-app.storybook .flight-guide-mode dl{display:grid;grid-template-columns:auto 1fr;gap:var(--s-2) var(--s-4);margin:var(--s-5) 0 0;padding-top:var(--s-4);border-top:1px solid currentColor;font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-mode :is(dt,dd){margin:0}
#ivyr-app.storybook .flight-guide-mode dd{font-weight:700;text-align:right}
#ivyr-app.storybook .flight-guide-buddy-panel{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:var(--s-5);margin:var(--s-5) 0;padding:var(--s-6);border:1px solid #bacdbb;border-radius:var(--r-l);background:#edf4ed}
#ivyr-app.storybook .flight-guide-buddy-panel h3{margin:var(--s-2) 0 var(--s-3)}
#ivyr-app.storybook .flight-guide-buddy-panel p{font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-buddy-clock{padding:var(--s-5);border-radius:var(--r-m);background:#294639;color:#f8f2d7;text-align:center}
#ivyr-app.storybook .flight-guide-buddy-clock>strong{display:block;font-size:48px;line-height:1.3;color:#ffe2a1;font-variant-numeric:tabular-nums}
#ivyr-app.storybook .flight-guide-buddy-clock strong span{display:block;margin:var(--s-1) 0 var(--s-4);font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-buddy-clock b{color:#ffe2a1}
#ivyr-app.storybook .flight-guide-buddy-types{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4);margin:0}
#ivyr-app.storybook .flight-guide-buddy-types>div{border-top:2px solid #a9b990;padding-top:var(--s-3)}
#ivyr-app.storybook .flight-guide-buddy-types dt{font-weight:800;font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-buddy-types dd{margin:var(--s-2) 0 0;font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-buddy-note{grid-column:1/-1;padding-top:var(--s-4);border-top:1px solid #bdcebd}
#ivyr-app.storybook .flight-guide-pressure{margin-top:var(--s-6);padding:var(--s-5) var(--s-6);border-left:4px solid #a65d48;border-radius:0 18px 18px 0;background:#f7eadd}
#ivyr-app.storybook .flight-guide-pressure h3{margin:var(--s-2) 0 var(--s-3)}
#ivyr-app.storybook .flight-guide-pressure p{font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-ultimate{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4);list-style:none;padding:var(--s-5) 0;margin:0;border-top:1px solid #806788}
#ivyr-app.storybook .flight-guide-ultimate strong{display:block;font-size:var(--fs-6);color:#ffe2a1;line-height:1.4;font-variant-numeric:tabular-nums}
#ivyr-app.storybook .flight-guide-ultimate strong span{display:block;font-size:var(--fs-2);color:#fff1e4;margin:var(--s-2) 0 var(--s-3)}
#ivyr-app.storybook .flight-guide-ultimate p{font-size:var(--fs-2)}
@media(max-width:600px){
 #ivyr-app.storybook .flight-guide-modes{grid-template-columns:1fr}
 #ivyr-app.storybook .flight-guide-mode{padding:var(--s-5) var(--s-5)}
 #ivyr-app.storybook .flight-guide-buddy-panel{grid-template-columns:1fr;padding:var(--s-5) var(--s-5);gap:var(--s-5)}
 #ivyr-app.storybook .flight-guide-buddy-clock{display:grid;grid-template-columns:80px minmax(0,1fr);gap:var(--s-4);align-items:center;text-align:left}
 #ivyr-app.storybook .flight-guide-buddy-clock strong span{margin-bottom:0}
 #ivyr-app.storybook .flight-guide-buddy-types{grid-template-columns:1fr;gap:var(--s-3)}
 #ivyr-app.storybook .flight-guide-ultimate{grid-template-columns:1fr}
 #ivyr-app.storybook .flight-guide-ultimate li{display:grid;grid-template-columns:100px minmax(0,1fr);gap:var(--s-4);align-items:center}
 #ivyr-app.storybook .flight-guide-pressure{padding:var(--s-5) var(--s-5)}
}

/* ガイドはゲーム画像を先に見せ、その下に短い説明を置く。 */
#ivyr-app.storybook .flight-guide{--flight-paper:#fffdf6;--flight-ink:#273f35;--flight-muted:#526457}
#ivyr-app.storybook .flight-guide-hero{position:relative;isolation:isolate;overflow:hidden;grid-template-columns:1fr 1.1fr;gap:var(--s-5);padding:var(--s-6) var(--s-7) var(--s-5);border:1px solid #4b6b5f;background:#182e2a;color:#fff5d7;border-radius:var(--r-l);box-shadow:var(--sh-3)}
#ivyr-app.storybook .flight-guide-hero::before{content:"";position:absolute;z-index:-1;inset:0;background:radial-gradient(ellipse at 80% 20%,#7d88524d,transparent 65%)}
#ivyr-app.storybook .flight-guide-hero h1{font-size:clamp(34px,4.5vw,57px);line-height:1.3;letter-spacing:.025em;color:#fff5d7;margin:var(--s-5) 0}
#ivyr-app.storybook .flight-guide-hero h1 .flight-guide-subtitle{font-size:var(--fs-2);color:#c5d9bd;margin-top:var(--s-5);letter-spacing:.03em}
#ivyr-app.storybook .flight-guide-hero :is(.flight-guide-kicker,.back-link){color:#d6dfa9}
#ivyr-app.storybook .flight-guide-hero .flight-guide-lead{color:#e0e9d5;font-size:var(--fs-2);line-height:2}
#ivyr-app.storybook .flight-guide-hero .button:not(.primary){background:#ffffff0a;border-color:#93a58c;color:#eef2dd;box-shadow:none}
#ivyr-app.storybook .flight-guide-hero-art{align-self:stretch;display:flex;align-items:center}
#ivyr-app.storybook .flight-guide-hero-art img{border-radius:var(--r-l);border-color:#a4b38065;box-shadow:var(--sh-3);aspect-ratio:960/760;object-fit:cover}
#ivyr-app.storybook .flight-guide-hero-art figcaption{left:14px;right:14px;bottom:25px;text-align:left;background:#102a25e8;border:0;padding:var(--s-3) var(--s-4);font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-hero-art figcaption span{display:block;font:700 10px/1.7 system-ui;letter-spacing:.2em;color:#d9dda7}
#ivyr-app.storybook .flight-guide-facts{gap:var(--s-3);border-color:#849d7055;padding-top:var(--s-5)}
#ivyr-app.storybook .flight-guide-facts li{justify-content:center;color:#d2decb;font-size:var(--fs-2)}
#ivyr-app.storybook .flight-guide-facts strong{font:500 32px/1.2 system-ui;color:#f2d787}
#ivyr-app.storybook .flight-guide-toc ol{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 var(--s-5)}
#ivyr-app.storybook .flight-guide-toc a{justify-content:flex-start;padding:var(--s-3) var(--s-2)}
#ivyr-app.storybook .flight-guide-section{margin-top:var(--s-8)}
#ivyr-app.storybook .flight-guide-mode-heading{margin:0 0 var(--s-5)}
#ivyr-app.storybook .flight-guide-mode-heading h2{font-size:clamp(26px,3.4vw,38px)}
#ivyr-app.storybook .flight-guide-modes{grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--s-3)}
#ivyr-app.storybook .flight-guide-mode{padding:0;overflow:hidden;border-top-width:1px;border-radius:var(--r-m)}
#ivyr-app.storybook .flight-guide-mode-art{position:relative;overflow:hidden;aspect-ratio:5/4;background:#243b32}
#ivyr-app.storybook .flight-guide-mode-art img{position:absolute;max-width:none;width:300%;height:auto;left:0;bottom:0}
#ivyr-app.storybook .flight-guide-mode-art.world-1 img{left:-100%}
#ivyr-app.storybook .flight-guide-mode-art.world-2 img{left:-200%}
#ivyr-app.storybook .flight-guide-mode-art::after{content:"";position:absolute;inset:0;background:linear-gradient(transparent 50%,#0c201acc)}
#ivyr-app.storybook .flight-guide-mode-art span{position:absolute;z-index:1;bottom:12px;left:16px;right:10px;color:#fff1c1;font:700 10px/1.6 system-ui;letter-spacing:.1em}
#ivyr-app.storybook .flight-guide-mode.ultra .flight-guide-mode-art{filter:sepia(.35)}
#ivyr-app.storybook .flight-guide-mode.ultra{outline:1px solid #d6a457;outline-offset:2px}
#ivyr-app.storybook .flight-guide-mode-body{padding:var(--s-5) var(--s-4)}
#ivyr-app.storybook .flight-guide-mode .flight-guide-mode-level{font-size:var(--fs-5);gap:var(--s-1)}
#ivyr-app.storybook .flight-guide-mode-level span:last-child{font-size:10px;letter-spacing:0}
#ivyr-app.storybook .flight-guide-mode :is(h3,h4){font-size:var(--fs-3);color:inherit;text-wrap:wrap}
#ivyr-app.storybook .flight-guide-mode-body>p:not(.flight-guide-mode-level){margin-bottom:0}
#ivyr-app.storybook .flight-guide-mode dl{grid-template-columns:1fr;gap:var(--s-1);font-size:var(--fs-1)}
#ivyr-app.storybook .flight-guide-mode dd{text-align:left;font-size:var(--fs-2);margin-bottom:var(--s-3)}
#ivyr-app.storybook .flight-guide-flock{display:flex;justify-content:center;align-items:center;gap:var(--s-3);flex-wrap:wrap;margin:var(--s-5) 0 0;padding:var(--s-6) var(--s-4);background:#29483c;color:#ecf0c4;border-radius:18px 18px 0 0}
#ivyr-app.storybook .flight-guide-flock span{display:grid;place-items:center;width:48px;height:48px;border:1px solid #c6d3a0;border-radius:var(--r-full);font:600 16px/1 system-ui}
#ivyr-app.storybook .flight-guide-flock .flock-leader{width:60px;height:60px;border-radius:var(--r-l);background:#e5d29a;color:#294437}
#ivyr-app.storybook .flight-guide-flock i{font-size:var(--fs-5);font-style:normal}
#ivyr-app.storybook .flight-guide-flock b{flex-basis:100%;margin-top:var(--s-2);text-align:center;font-size:var(--fs-2);font-weight:500}
#ivyr-app.storybook .flight-guide-buddy-panel{margin-top:0;border-radius:0 0 18px 18px;border-top:0}
#ivyr-app.storybook .flight-guide-buddy-clock{border:1px solid #8d9f6c}
#ivyr-app.storybook .flight-guide-pressure{background:#f5e6d5;border-color:#9b5d47}
#ivyr-app.storybook .flight-guide-bosses{display:grid;grid-template-columns:1fr 1fr;gap:var(--s-5) var(--s-6);background:#282436;padding:var(--s-6)}
#ivyr-app.storybook .flight-guide-boss-copy,#ivyr-app.storybook .flight-guide-boss-list,#ivyr-app.storybook .flight-guide-boss-note{grid-column:1/-1}
#ivyr-app.storybook .flight-guide-safe-map{margin:0;min-width:0}
#ivyr-app.storybook .flight-guide-safe-map svg{display:block;width:100%;height:auto}
#ivyr-app.storybook .flight-guide-safe-map figcaption{margin-top:var(--s-3);font-size:var(--fs-1);color:#e2d3e2;line-height:1.8}
#ivyr-app.storybook .flight-guide-ultimate{grid-template-columns:1fr;gap:var(--s-3);padding:0;border:0}
#ivyr-app.storybook .flight-guide-ultimate li{display:grid;grid-template-columns:100px minmax(0,1fr);gap:var(--s-4);align-items:center;border-bottom:1px solid #796481;padding-bottom:var(--s-2)}
#ivyr-app.storybook .flight-guide-ultimate strong{font-size:var(--fs-6)}
#ivyr-app.storybook .flight-guide-boss-note{margin:0;padding-top:var(--s-4);font-size:var(--fs-2)}
@media(max-width:900px){
 #ivyr-app.storybook .flight-guide-modes{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-5)}
 #ivyr-app.storybook .flight-guide-mode-art{aspect-ratio:2/1}
 #ivyr-app.storybook .flight-guide-mode-art img{top:auto;bottom:0}
 #ivyr-app.storybook .flight-guide-mode :is(h3,h4),#ivyr-app.storybook .flight-guide-mode-body>p:not(.flight-guide-mode-level){min-height:0}
 #ivyr-app.storybook .flight-guide-hero{grid-template-columns:1fr;padding:var(--s-6)}
 #ivyr-app.storybook .flight-guide-hero-art{max-width:620px;width:100%;margin:auto}
 #ivyr-app.storybook .flight-guide-hero-art figcaption{bottom:14px}
}
@media(max-width:600px){
 #ivyr-app.storybook .flight-guide-hero{padding:var(--s-5) var(--s-5) var(--s-5);gap:var(--s-5)}
 #ivyr-app.storybook .flight-guide-hero h1{font-size:var(--fs-7)}
 #ivyr-app.storybook .flight-guide-facts{gap:var(--s-2)}
 #ivyr-app.storybook .flight-guide-facts li{flex-direction:column;align-items:center;gap:var(--s-1);text-align:center;font-size:var(--fs-1)}
 #ivyr-app.storybook .flight-guide-facts strong{font-size:var(--fs-5)}
 #ivyr-app.storybook .flight-guide-toc ol{grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--s-3)}
 #ivyr-app.storybook .flight-guide-toc a{font-size:var(--fs-1)}
 #ivyr-app.storybook .flight-guide-modes{grid-template-columns:1fr;gap:var(--s-5)}
 #ivyr-app.storybook .flight-guide-mode-body{padding:var(--s-5)}
 #ivyr-app.storybook .flight-guide-mode dl{grid-template-columns:auto 1fr;gap:var(--s-2) var(--s-3)}
 #ivyr-app.storybook .flight-guide-mode dd{text-align:right;margin:0}
 #ivyr-app.storybook .flight-guide-flock{gap:var(--s-2);padding:var(--s-5) var(--s-3)}
 #ivyr-app.storybook .flight-guide-flock span{width:33px;height:33px;font-size:var(--fs-1)}
 #ivyr-app.storybook .flight-guide-flock .flock-leader{width:43px;height:43px;font-size:var(--fs-1);border-radius:var(--r-m)}
 #ivyr-app.storybook .flight-guide-flock i{font-size:var(--fs-2)}
 #ivyr-app.storybook .flight-guide-bosses{grid-template-columns:1fr;padding:var(--s-5) var(--s-5)}
 #ivyr-app.storybook .flight-guide-section{margin-top:var(--s-7)}
}

#ivyr-app.storybook .flight-guide .flight-guide-hero a.back-link{color:#d6dfa9}
#ivyr-app.storybook .flight-guide-hero-art{flex-direction:column;justify-content:center}
#ivyr-app.storybook .flight-guide-hero-art figcaption{position:static;width:100%;margin-top:var(--s-3);background:transparent;padding:0 var(--s-1);color:#e2e7ce}
@media(max-width:380px){
 #ivyr-app.storybook .flight-guide-flock{gap:var(--s-1)}
 #ivyr-app.storybook .flight-guide-flock span{width:29px;height:29px;font-size:var(--fs-1)}
 #ivyr-app.storybook .flight-guide-flock .flock-leader{width:37px;height:37px}
 #ivyr-app.storybook .flight-guide-flock i{font-size:10px}
 #ivyr-app.storybook .flight-guide-hero h1{font-size:var(--fs-6)}
}

/* 展開した本文と見出しの左右余白をそろえる。 */
#ivyr-app.storybook .flight-guide-controls details>p{margin:0;padding:var(--s-1) var(--s-5) var(--s-5);font-size:var(--fs-2);line-height:1.9}
#ivyr-app.storybook .flight-guide-controls details[open]>summary{border-bottom:1px solid var(--flight-line);margin-bottom:var(--s-4)}
#ivyr-app.storybook .flight-guide-mode-body{padding:var(--s-5)}
#ivyr-app.storybook .flight-guide-mode dl{margin-top:var(--s-4);padding-top:var(--s-4)}
@media(min-width:601px) and (max-width:1100px){
 #ivyr-app.storybook .flight-guide-modes{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* 敵図鑑のイラストは実ゲームと同じ描画処理を使う。 */
#ivyr-app.storybook .flight-guide .catalog-special-art img{width:300%;height:auto;left:0;transform:translate(calc(var(--slice)*-33.333333%),-50%)}
#ivyr-app.storybook .flight-guide-enemies .catalog-special-art{width:170px;aspect-ratio:10/9}
#ivyr-app.storybook .flight-guide-enemies .catalog-counter{padding-top:var(--s-3);border-top:1px solid var(--flight-line);margin-top:var(--s-4)}
#ivyr-app.storybook .catalog-counter strong{display:inline-block;margin-right:var(--s-2);font-size:var(--fs-1);color:#526b3c}
#ivyr-app.storybook .catalog-behaviors{margin:var(--s-6) 0 var(--s-5)}
#ivyr-app.storybook .catalog-behaviors>h3{margin-top:var(--s-2);font-size:var(--fs-5)}
#ivyr-app.storybook .catalog-ai-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4);margin-top:var(--s-5)}
#ivyr-app.storybook .catalog-ai-grid article{min-width:0;padding:var(--s-5);border:1px solid var(--flight-line);border-radius:var(--r-m);background:#fffdf5}
#ivyr-app.storybook .catalog-ai-grid h4{display:flex;align-items:center;gap:var(--s-3);margin-bottom:var(--s-3)}
#ivyr-app.storybook .catalog-ai-grid h4 span{flex:none;display:inline-block;min-width:36px;padding:var(--s-1) var(--s-2);border-radius:var(--r-xs);background:#e5ecd8;font-size:var(--fs-1);text-align:center}
#ivyr-app.storybook .catalog-ai-grid p{font-size:var(--fs-2);line-height:1.85}
#ivyr-app.storybook .catalog-projectiles{margin:var(--s-5) 0;border:1px solid var(--flight-line);border-radius:var(--r-m);background:#fffdf5}
#ivyr-app.storybook .catalog-projectiles summary{padding:var(--s-4) var(--s-5);min-height:48px;font-weight:700;cursor:pointer}
#ivyr-app.storybook .catalog-projectiles dl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-4) var(--s-5);margin:0;padding:var(--s-1) var(--s-5) var(--s-5)}
#ivyr-app.storybook .catalog-projectiles dl>div{min-width:0;border-top:1px solid var(--flight-line);padding-top:var(--s-3)}
#ivyr-app.storybook .catalog-projectiles dt{font-weight:700;font-size:var(--fs-2)}
#ivyr-app.storybook .catalog-projectiles dd{margin:var(--s-2) 0 0;font-size:var(--fs-2)}
#ivyr-app.storybook .catalog-projectiles>p{padding:0 var(--s-5) var(--s-5);font-size:var(--fs-2)}
#ivyr-app.storybook .catalog-boss-hp{margin:var(--s-4) 0;padding:var(--s-3);border:1px solid #806d8a;border-radius:var(--r-s);background:#ffffff08;text-align:left;font-size:var(--fs-2)}
#ivyr-app.storybook .catalog-boss-hp>div{display:flex;justify-content:space-between;gap:var(--s-3)}
#ivyr-app.storybook .catalog-boss-hp dt,#ivyr-app.storybook .catalog-boss-hp dd{margin:0}
#ivyr-app.storybook .catalog-boss-hp dd{font-weight:700;font-variant-numeric:tabular-nums}
#ivyr-app.storybook .flight-guide-boss-list>li>p{font-size:var(--fs-2);text-align:left}
@media(max-width:600px){
 #ivyr-app.storybook .catalog-ai-grid,#ivyr-app.storybook .catalog-projectiles dl{grid-template-columns:1fr}
}

/* 主要操作はIvyの近くに置き、参考情報は専用の章へ分ける。 */
#ivyr-app .desktop-nav{gap:var(--s-4)}
#ivyr-app .room-shortcuts{flex-wrap:wrap}
#ivyr-app .discovery-panel{justify-content:flex-start}
#ivyr-app .discovery-panel>h2{font-size:var(--fs-4)}
#ivyr-app .discovery-panel .observation-strip{display:block;width:100%;padding:0 0 var(--s-5);margin:0 0 var(--s-3);border:0;border-bottom:1px solid #c8d2bd;border-radius:0;background:none}
#ivyr-app .observation-strip h2{font-size:var(--fs-5);line-height:1.5;margin:0 0 var(--s-2)}
#ivyr-app .observation-values{display:grid;gap:var(--s-3);margin:var(--s-4) 0}
#ivyr-app .observation-cell{border:0;padding:0;gap:var(--s-4)}
#ivyr-app .observation-cell>span{display:flex;flex:1;align-items:baseline;justify-content:space-between;gap:var(--s-2);font-size:var(--fs-2)}
#ivyr-app .observation-cell strong{font-size:var(--fs-4);color:#243e32}
#ivyr-app #observation-status{font-size:var(--fs-2);line-height:1.7;color:#3f4f36}
#ivyr-app #observation-status[data-stale=true]{color:#864219}
#ivyr-app .garden-flight-hub{margin:var(--s-7) 0;padding:var(--s-6);background:#edf2e5;border:1px solid #c6d3b9;border-radius:var(--r-l);scroll-margin-top:var(--s-5)}
#ivyr-app .garden-flight-hub .section-head{margin-bottom:var(--s-5)}
#ivyr-app .game-resource-links{display:flex;gap:var(--s-3) var(--s-5);flex-wrap:wrap;margin-top:var(--s-4)}
#ivyr-app .game-resource-links a,#ivyr-app .guide-return a{display:inline-flex;align-items:center;min-height:44px;text-decoration:underline;text-underline-offset:4px}
#ivyr-app .guide-page-heading{padding:var(--s-5) 0 var(--s-5);border-bottom:1px solid #bdcbb4}
#ivyr-app .guide-page-heading h1{font-size:clamp(25px,3.4vw,40px);line-height:1.45;margin:var(--s-3) 0}
#ivyr-app .guide-page-heading p:last-child{max-width:760px;font-size:var(--fs-3);line-height:1.8}
#ivyr-app #guide-menu{position:sticky;top:0;z-index:12;background:#fffaf1f5;backdrop-filter:blur(12px);padding:var(--s-2) 0;border-bottom:1px solid #cdd5c1}
#ivyr-app .guide-chapters,#ivyr-app .topic-nav{display:flex;flex-wrap:wrap;gap:var(--s-2)}
#ivyr-app .guide-chapters a,#ivyr-app .topic-nav a{display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:var(--s-2) var(--s-4);border:1px solid #b9c7b0;border-radius:var(--r-s);color:#294936;font-size:var(--fs-2);font-weight:700;background:#fffef9}
#ivyr-app .guide-chapters a[aria-current=page],#ivyr-app .topic-nav a[aria-current=page]{background:#294936;color:#fff;border-color:#294936}
#ivyr-app .flight-guide-section{margin-top:var(--s-6);padding-top:var(--s-2);scroll-margin-top:126px}
#ivyr-app .flight-guide-section>.flight-guide-kicker{display:none}
#ivyr-app .flight-guide-section p{font-size:var(--fs-2);line-height:1.85}
#ivyr-app .flight-guide-section h2{font-size:clamp(23px,2.8vw,32px)}
#ivyr-app .guide-next{padding:var(--s-5) 0;border-top:1px solid #bccbb5;margin-top:var(--s-5)}
#ivyr-app .guide-next h2{font-size:var(--fs-5)}
#ivyr-app .guide-next ul{padding-left:var(--s-5);line-height:1.9;margin:var(--s-4) 0}
#ivyr-app .guide-next .text-link{display:inline-flex;min-height:44px;align-items:center;margin-left:var(--s-4)}
#ivyr-app .catalog-behaviors{padding:0;border:1px solid #c6d2bd;border-radius:var(--r-m);margin:var(--s-5) 0;overflow:hidden}
#ivyr-app .catalog-behaviors>summary{padding:var(--s-4);cursor:pointer;font-weight:700}
#ivyr-app .catalog-behaviors>section{padding:var(--s-5)}
#ivyr-app .topic-nav{margin:0 0 var(--s-5)}
#ivyr-app .lesson-grid .entry-cover{display:none}
#ivyr-app .lesson-grid .entry-card{display:block;box-shadow:none;border-bottom:3px solid #c1ceb6}
#ivyr-app .lesson-grid .entry-copy{padding:var(--s-5)}
#ivyr-app .lesson-grid .entry-copy h2{font-size:var(--fs-4);line-height:1.6}
#ivyr-app .lesson-grid .entry-copy p{font-size:var(--fs-2);line-height:1.85}
#ivyr-app .article-context{border-bottom:1px solid #ccd6c3;padding-bottom:var(--s-5);margin-bottom:var(--s-5);color:#445a45;font-size:var(--fs-2);line-height:1.8}
#ivyr-app .article-context p+p{margin-top:var(--s-3);font-size:var(--fs-3)}
#ivyr-app .article-context a,#ivyr-app .related-reading a,#ivyr-app .diary-caption a{text-decoration:underline;text-underline-offset:4px}
#ivyr-app .related-reading{margin-top:var(--s-6);padding-top:var(--s-5);border-top:1px solid #c1ceb6}
#ivyr-app .related-reading h2{font-size:var(--fs-5)}
#ivyr-app .related-reading ul{padding-left:var(--s-5);line-height:1.9}
#ivyr-app .related-reading a{display:inline-block;padding:var(--s-2) 0}
#ivyr-app .diary-entry{min-width:0;border:1px solid #c5d0ba;border-radius:var(--r-m);overflow:hidden;background:#fffdf8}
#ivyr-app .diary-entry .diary-photo{width:100%;border:0;border-radius:0;display:block}
#ivyr-app .diary-caption{display:flex;flex-direction:column;gap:var(--s-1);padding:var(--s-4) var(--s-4);font-size:var(--fs-2)}
#ivyr-app .diary-caption a{min-height:44px;display:flex;align-items:center;font-weight:700}
#ivyr-app a:focus-visible,#ivyr-app button:focus-visible,#ivyr-app summary:focus-visible{outline:3px solid #315d42;outline-offset:4px}
@media(min-width:801px){#ivyr-app .garden-flight-hub .ivy-game-challenges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}#ivyr-app .garden-flight-hub .ivy-game-challenges>p{grid-column:1/-1}#ivyr-app .garden-flight-hub .ivy-game-challenges>button{min-width:0}}
@media(max-width:800px){
 #ivyr-app .mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr));padding-left:var(--s-1);padding-right:var(--s-1)}
 #ivyr-app .mobile-nav a{padding:var(--s-1) var(--s-1);font-size:var(--fs-1)}
 #ivyr-app .room-shortcuts .button{font-size:var(--fs-2);padding:var(--s-3) var(--s-3)}
 #ivyr-app .room-stage .play-heading{margin-top:var(--s-4)}
 #ivyr-app .room-stage .play-heading h2{font-size:var(--fs-4)}
 #ivyr-app .garden-flight-hub{padding:var(--s-4);margin:var(--s-6) 0}
 #ivyr-app .garden-flight-hub .section-head{display:block}
 #ivyr-app .garden-flight-hub .section-head .button{margin-top:var(--s-3)}
 #ivyr-app .guide-page-heading{padding:0 0 var(--s-4)}
 #ivyr-app .guide-page-heading p:last-child{font-size:var(--fs-2)}
 #ivyr-app .guide-chapters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-1)}
 #ivyr-app .guide-chapters a{padding:var(--s-2) var(--s-1);font-size:var(--fs-1)}
 #ivyr-app .flight-guide-section{margin-top:var(--s-5)}
 #ivyr-app .guide-next .text-link{margin-left:0;display:flex}
 #ivyr-app .topic-nav a{padding:var(--s-2) var(--s-3)}
 #ivyr-app .lesson-grid .entry-copy{padding:var(--s-5)}
 #ivyr-app .lesson-grid .entry-copy h2{font-size:var(--fs-4)}
 #ivyr-app .diary-caption{padding:var(--s-3);font-size:var(--fs-1)}
 #ivyr-app .diary-photo-grid{gap:var(--s-4)}
}
#ivyr-app.storybook .guide-chapters a[aria-current=page],#ivyr-app.storybook .topic-nav a[aria-current=page]{color:#fff}
#ivyr-app .chapter-index{display:flex;flex-wrap:wrap;gap:var(--s-2) var(--s-5);padding:var(--s-4) 0;border-bottom:1px solid #c3cfb9}
#ivyr-app .chapter-index a{min-height:44px;display:flex;align-items:center;text-decoration:underline}
#ivyr-app .difficulty-comparison{border-collapse:collapse;width:100%;font-size:var(--fs-2);margin:var(--s-4) 0}
#ivyr-app .difficulty-comparison caption{text-align:left;font-size:var(--fs-2);margin-bottom:var(--s-3)}
#ivyr-app .difficulty-comparison th,#ivyr-app .difficulty-comparison td{padding:var(--s-4) var(--s-3);text-align:left;border-bottom:1px solid #c3cfb9;white-space:nowrap}
#ivyr-app .difficulty-comparison thead{background:#e9efdf}
#ivyr-app .reading-start{margin:0 0 var(--s-5);padding:var(--s-4) var(--s-5);border-left:3px solid #648154;background:#edf2e4;font-size:var(--fs-2);line-height:1.8}
#ivyr-app .reading-start a{text-decoration:underline}
#ivyr-app .catalog-search{margin-top:var(--s-5)}
#ivyr-app .catalog-search label{display:block;font-weight:700;margin-bottom:var(--s-2)}
#ivyr-app .catalog-search input{width:min(100%,480px);min-height:48px;padding:var(--s-3);border:1px solid #9cad90;border-radius:var(--r-s);font-size:var(--fs-3);background:#fff}
#ivyr-app .catalog-search p{font-size:var(--fs-2);margin-top:var(--s-2)}
#ivyr-app [data-enemy][hidden]{display:none}
@media(max-width:400px){#ivyr-app .difficulty-comparison th,#ivyr-app .difficulty-comparison td{padding:var(--s-3) var(--s-2);font-size:var(--fs-2)}}
#ivyr-app .desktop-nav a[aria-current=location],#ivyr-app .mobile-nav a[aria-current=location]{color:#2e613f;background:#eaf0e2;border-radius:var(--r-m);font-weight:700}

/* 記事一覧には専用セレクターを使い、旧100pxタイルの指定を引き継がない。 */
#ivyr-app.storybook .notebook{max-width:1180px;margin:auto}
#ivyr-app.storybook .notebook-heading{display:flex;align-items:end;justify-content:space-between;gap:var(--s-6);padding:var(--s-2) 0 var(--s-5);border-bottom:1px solid #bdc8b5;margin-bottom:var(--s-6)}
#ivyr-app.storybook .notebook-heading h1{font-size:var(--fs-7);letter-spacing:.02em;margin:0}
#ivyr-app.storybook .notebook-heading>p{font-size:var(--fs-2);line-height:1.9;color:#50604e;margin:0}
#ivyr-app.storybook .notebook-opening{display:grid;grid-template-columns:minmax(0,2.1fr) minmax(240px,1fr);gap:var(--s-6);margin-bottom:var(--s-7)}
#ivyr-app.storybook .note-link{display:grid;grid-template-columns:116px minmax(0,1fr);gap:var(--s-5);color:#294331;text-decoration:none;min-width:0;height:100%}
#ivyr-app.storybook .note-art{display:grid;place-items:center;align-self:start;border-radius:var(--r-m);background:#e4ecd8;overflow:hidden;aspect-ratio:1}
#ivyr-app.storybook .note-art-water{background:#e0ece6}
#ivyr-app.storybook .note-art-light{background:#f4ead0}
#ivyr-app.storybook .note-art-science{background:#e5ead7}
#ivyr-app.storybook .note-art-observe{background:#ece8dc}
#ivyr-app.storybook .editorial-art{width:100%;height:100%;display:block}
#ivyr-app.storybook .note-copy{min-width:0}
#ivyr-app.storybook .note-meta{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);color:#53664c;font-size:var(--fs-1);font-weight:700;line-height:1.6;margin:0 0 var(--s-2)}
#ivyr-app.storybook .note-meta span{font-weight:400;white-space:nowrap}
#ivyr-app.storybook .note-copy h3{font-size:var(--fs-4);line-height:1.65;margin:0 0 var(--s-2);text-wrap:pretty;word-break:normal;overflow-wrap:anywhere}
#ivyr-app.storybook .note-deck{font-size:var(--fs-2);line-height:1.9;color:#4a5b48;margin:0}
#ivyr-app.storybook .note-cta{display:flex;justify-content:space-between;align-items:center;min-height:44px;margin-top:var(--s-2);font-size:var(--fs-2);font-weight:700}
#ivyr-app.storybook .note-feature{border-radius:var(--r-l);background:#e8eee0;overflow:hidden}
#ivyr-app.storybook .note-feature .note-link{grid-template-columns:minmax(190px,.9fr) minmax(0,1.1fr);gap:0;align-items:center}
#ivyr-app.storybook .note-feature .note-art{border-radius:0;align-self:stretch;aspect-ratio:auto;background:#dbe8d9;padding:var(--s-3)}
#ivyr-app.storybook .note-feature .note-copy{padding:var(--s-6)}
#ivyr-app.storybook .note-feature h2{font-size:var(--fs-5);line-height:1.55;margin:0 0 var(--s-2);letter-spacing:.015em}
#ivyr-app.storybook .note-feature .note-deck{font-size:var(--fs-2)}
#ivyr-app.storybook .note-feature .note-cta{border-top:1px solid #bccbb4;margin-top:var(--s-5);padding-top:var(--s-3)}
#ivyr-app.storybook .reading-route{padding:var(--s-3) 0 0 var(--s-5);border-left:1px solid #cbd2bf}
#ivyr-app.storybook .reading-route h2{font-size:var(--fs-4);line-height:1.6;margin:0 0 var(--s-2)}
#ivyr-app.storybook .reading-route ol{list-style:none;counter-reset:route;margin:0;padding:0}
#ivyr-app.storybook .reading-route li{counter-increment:route;border-top:1px solid #d4dacb;position:relative;padding-left:var(--s-6)}
#ivyr-app.storybook .reading-route li:before{content:'0' counter(route);position:absolute;left:0;top:16px;font-size:var(--fs-1);color:#687d59}
#ivyr-app.storybook .reading-route a{display:block;padding:var(--s-3) 0;color:#314e37;text-decoration:none}
#ivyr-app.storybook .reading-route strong{font-size:var(--fs-2);display:block}
#ivyr-app.storybook .reading-route a span{display:block;font-size:var(--fs-1);line-height:1.8;margin-top:var(--s-1);color:#576653}
#ivyr-app.storybook .notebook-list-heading{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);margin-bottom:var(--s-4)}
#ivyr-app.storybook .notebook-list-heading h2{font-size:var(--fs-5);margin:0 0 var(--s-2)}
#ivyr-app.storybook .notebook-list-heading>span{font-size:var(--fs-1);white-space:nowrap;color:#576653}
#ivyr-app.storybook .notebook .topic-nav{gap:var(--s-2);margin-bottom:var(--s-3)}
#ivyr-app.storybook .notebook .topic-nav a{border-radius:var(--r-l);padding:var(--s-2) var(--s-4);font-size:var(--fs-2)}
#ivyr-app.storybook .note-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:var(--s-6)}
#ivyr-app.storybook .note-item{min-width:0;padding:var(--s-5) 0;border-bottom:1px solid #cbd3c0}
#ivyr-app.storybook .note-item,#ivyr-app.storybook .note-feature{position:relative}
#ivyr-app.storybook .note-copy h2 a,#ivyr-app.storybook .note-copy h3 a{color:inherit;text-decoration:none}
#ivyr-app.storybook .note-copy h2 a::after,#ivyr-app.storybook .note-copy h3 a::after{content:"";position:absolute;inset:0}
#ivyr-app.storybook .note-copy h2 a:focus-visible,#ivyr-app.storybook .note-copy h3 a:focus-visible{outline:3px solid #2f5236;outline-offset:3px}
#ivyr-app.storybook .notebook-close{display:flex;gap:var(--s-4) var(--s-6);align-items:center;flex-wrap:wrap;margin-top:var(--s-7);padding:var(--s-5) 0;border-top:2px solid #638452}
#ivyr-app.storybook .notebook-close h2{font-size:var(--fs-4);margin:0 0 var(--s-2)}
#ivyr-app.storybook .notebook-close p{font-size:var(--fs-2);line-height:1.8;margin:0}
#ivyr-app.storybook .notebook-close>div{display:flex;gap:var(--s-5);margin-left:auto}
#ivyr-app.storybook .notebook-close a{font-size:var(--fs-2);font-weight:700;min-height:44px;display:inline-flex;align-items:center}
@media(hover:hover){#ivyr-app.storybook .note-link:hover h2 a,#ivyr-app.storybook .note-link:hover h3 a,#ivyr-app.storybook .reading-route a:hover strong{text-decoration:underline;text-underline-offset:5px}}
/* トップの部屋・観測パネルの配置を定義する。 */
#ivyr-app.storybook[data-page=room] .main-wrap{padding-top:var(--s-5)}
#ivyr-app.storybook[data-page=room] .room-heading{background:none;border:0;border-radius:0;padding:0;margin:0 0 var(--s-5);overflow:visible}
#ivyr-app.storybook[data-page=room] .room-heading:after{display:none}
#ivyr-app.storybook[data-page=room] .room-heading h1{font-size:var(--fs-6);letter-spacing:.015em}
#ivyr-app.storybook[data-page=room] .room-heading .page-intro{font-size:var(--fs-2);margin-top:var(--s-1)}
#ivyr-app.storybook[data-page=room] .date-label{background:none;margin:0;padding:0}
#ivyr-app.storybook[data-page=room] .home-grid{grid-template-columns:minmax(0,1fr) 300px;gap:var(--s-6)}
#ivyr-app.storybook[data-page=room] .room-stage{padding:0;border:0;border-radius:var(--r-l);box-shadow:none;background:transparent}
#ivyr-app.storybook[data-page=room] .room-scene:not(.is-fullscreen){height:400px;border-radius:var(--r-l)}
#ivyr-app.storybook[data-page=room] .room-scene:not(.is-fullscreen) .ivy-character{width:260px;height:260px;margin-left:-130px;bottom:22px}
#ivyr-app.storybook[data-page=room] .room-scene:not(.is-fullscreen) .speech{top:45px;right:22px;font-size:var(--fs-2);max-width:185px;padding:var(--s-3) var(--s-4)}
#ivyr-app.storybook[data-page=room] .play-heading{padding:var(--s-3) 0 0}
#ivyr-app.storybook[data-page=room] .room-actions{margin:var(--s-3) 0;gap:var(--s-3)}
#ivyr-app.storybook[data-page=room] .room-actions button{min-height:48px}
#ivyr-app.storybook .home-observation{min-width:0;border-top:3px solid #66844f;padding-top:var(--s-4)}
#ivyr-app.storybook .home-observation .observation-strip{display:block;border:0;border-radius:0;padding:0;margin:0 0 var(--s-5);background:none}
#ivyr-app.storybook .home-observation .observation-strip .eyebrow{display:none}
#ivyr-app.storybook .home-observation .observation-strip h2{font-size:var(--fs-5);margin:0 0 var(--s-2)}
#ivyr-app.storybook .home-observation .observation-values{gap:var(--s-3);margin:var(--s-5) 0}
#ivyr-app.storybook .home-observation .observation-cell strong{font-size:var(--fs-5)}
#ivyr-app.storybook .home-observation #observation-status{font-size:var(--fs-1);line-height:1.8;margin:var(--s-3) 0 0}
#ivyr-app.storybook .home-observation .observation-strip>.text-link{font-size:var(--fs-2);min-height:44px;display:flex;align-items:center;justify-content:flex-start}
#ivyr-app.storybook .home-photo{border-top:1px solid #cad3bd;padding-top:var(--s-4)}
#ivyr-app.storybook .home-photo>div{display:flex;align-items:center;justify-content:space-between;gap:var(--s-2);margin-bottom:var(--s-3)}
#ivyr-app.storybook .home-photo h2{font-size:var(--fs-5);margin:0 0 var(--s-2)}
#ivyr-app.storybook .home-photo time{font-size:var(--fs-1);color:#5d6b52}
#ivyr-app.storybook .home-photo-link{display:flex;align-items:center;gap:var(--s-4);font-size:var(--fs-2);font-weight:700;text-decoration:none;line-height:1.7}
#ivyr-app.storybook .home-photo img{width:105px;height:90px;object-fit:cover;border-radius:var(--r-s);flex-shrink:0}
#ivyr-app.storybook .home-album-link{display:flex;align-items:center;min-height:44px;font-size:var(--fs-2);margin-top:var(--s-2)}
#ivyr-app.storybook .room-tools{margin-top:var(--s-4);border:0}
#ivyr-app.storybook .room-tools>summary{cursor:pointer;padding:var(--s-3) 0;min-height:44px;font-size:var(--fs-2);font-weight:700}
#ivyr-app.storybook .room-tools-body{padding:0 var(--s-2) var(--s-4)}
#ivyr-app.storybook .room-tools .expression-library{border-radius:var(--r-m);box-shadow:none;margin-top:var(--s-3)}
#ivyr-app.storybook .room-tools .room-foot{display:flex;flex-wrap:wrap;margin:var(--s-3) 0;font-size:var(--fs-1)}
#ivyr-app.storybook .room-tools .room-foot>span:first-child{display:none}
#ivyr-app.storybook .home-reads{margin:var(--s-7) 0 var(--s-6)}
#ivyr-app.storybook .home-reads>header{display:flex;gap:var(--s-5);align-items:end;justify-content:space-between;padding-bottom:var(--s-3);border-bottom:1px solid #bdc9b3}
#ivyr-app.storybook .home-reads h2{font-size:var(--fs-5);margin:0 0 var(--s-2)}
#ivyr-app.storybook .home-reads>header>a{font-size:var(--fs-2);min-height:44px;display:flex;align-items:center;white-space:nowrap}
#ivyr-app.storybook .home-read-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-5)}
#ivyr-app.storybook .home-read-list .note-link{grid-template-columns:86px minmax(0,1fr);gap:var(--s-4)}
#ivyr-app.storybook .home-read-list .note-copy h3{font-size:var(--fs-3);line-height:1.7}
#ivyr-app.storybook .home-read-list .note-meta span,#ivyr-app.storybook .home-read-list .note-deck{display:none}
#ivyr-app.storybook .home-lab{border:1px solid #c4d1b8;border-radius:var(--r-m);background:#edf2e5;margin:var(--s-5) 0 0}
#ivyr-app.storybook .home-lab .wonder-lab{padding:var(--s-5);margin:0}
/* ゲーム専用ページでも既存の全画面表示ホストを維持する。 */
#ivyr-app.storybook .game-page .game-stage{padding:0;border:0;box-shadow:none;background:none}
#ivyr-app.storybook .game-page .room-scene:not(.is-fullscreen){display:none}
#ivyr-app.storybook .game-page .garden-flight-hub{margin:0;padding:0;border:0;border-radius:0;background:none}
#ivyr-app.storybook .game-page .garden-flight-hub h1{font-size:var(--fs-7)}
#ivyr-app.storybook .game-page .ivy-game-challenges>p{display:none}
/* 記事本文の読み幅・導入・出典表示を調整する。 */
#ivyr-app.storybook[data-page=lesson] .main-wrap{max-width:1000px}
#ivyr-app.storybook[data-page=lesson] .page-heading{padding:var(--s-3) 0 var(--s-5);border:0;border-radius:0;background:none;margin-bottom:var(--s-4)}
#ivyr-app.storybook[data-page=lesson] .page-heading:after{display:none}
#ivyr-app.storybook[data-page=lesson] .page-heading h1{font-size:clamp(26px,3.3vw,38px);max-width:820px;line-height:1.6}
#ivyr-app.storybook[data-page=lesson] .article-card{padding:0;border:0;border-radius:0;box-shadow:none;background:transparent}
#ivyr-app.storybook[data-page=lesson] .article-context{border:0;padding-bottom:0;font-size:var(--fs-1);margin-bottom:var(--s-5)}
#ivyr-app.storybook[data-page=lesson] .article-context>p{font-size:var(--fs-1);color:#586a51}
#ivyr-app.storybook[data-page=lesson] .lesson-hero{max-width:780px;margin:var(--s-5) auto}
#ivyr-app.storybook[data-page=lesson] .lesson-hero img{display:block;width:100%;height:auto;border-radius:var(--r-m)}
#ivyr-app.storybook[data-page=lesson] .lesson-hero figcaption{margin-top:var(--s-2);font-size:var(--fs-1);line-height:1.6;color:var(--muted);text-align:center}
#ivyr-app.storybook .article-takeaway{border-left:3px solid #739159;background:#eaf0e1;padding:var(--s-4) var(--s-5);margin-top:var(--s-4)}
#ivyr-app.storybook .article-takeaway>span{font-size:var(--fs-1);font-weight:700;letter-spacing:.08em;color:#4d673e}
#ivyr-app.storybook .article-takeaway>p{font-size:var(--fs-3);line-height:1.9;margin:var(--s-2) 0 0}
#ivyr-app.storybook[data-page=lesson] .article-prose{max-width:780px;font-size:var(--fs-3);line-height:1.95;margin:auto}
#ivyr-app.storybook[data-page=lesson] .lesson-share{max-width:780px;margin:var(--s-7) auto;padding-top:var(--s-5);border-top:1px solid var(--line);text-align:center}
#ivyr-app.storybook[data-page=lesson] .lesson-share p{margin:var(--s-3) 0 0;font-size:var(--fs-1);color:var(--muted);line-height:1.7}
/* 目次用の列幅を明示する。本文の読み幅の上限を、目次を含むグリッド全体には適用しない。 */
@media(min-width:1180px){
 #ivyr-app.storybook[data-page=lesson] .main-wrap{max-width:1200px}
 #ivyr-app.storybook[data-page=lesson] .article-prose:has(.reading-toc){max-width:1060px;grid-template-columns:minmax(0,1fr) 300px;column-gap:var(--s-7)}
}

#ivyr-app.storybook .reading-evidence{font-size:var(--fs-2);border-block:1px solid #d1d9c6;margin:var(--s-3) 0 var(--s-5);padding:var(--s-1) 0;color:#53664c}
#ivyr-app.storybook .reading-evidence summary{min-height:44px;cursor:pointer;padding:var(--s-3) 0}
#ivyr-app.storybook .reading-evidence p{padding:0 var(--s-3) var(--s-3);font-size:var(--fs-2)}
@media(max-width:1050px){
 #ivyr-app.storybook .notebook-opening{grid-template-columns:minmax(0,1fr) 260px;gap:var(--s-5)}
 #ivyr-app.storybook .note-feature .note-link{grid-template-columns:1fr}
 #ivyr-app.storybook .note-feature .note-art{height:180px;padding:0}
 #ivyr-app.storybook .note-feature .note-copy{padding:var(--s-5)}
 #ivyr-app.storybook .note-list{column-gap:var(--s-5)}
 #ivyr-app.storybook .note-link{grid-template-columns:86px minmax(0,1fr);gap:var(--s-4)}
 #ivyr-app.storybook .home-read-list .note-link{grid-template-columns:1fr}
 #ivyr-app.storybook .home-read-list .note-art{height:100px;aspect-ratio:auto}
}
@media(max-width:800px){
 #ivyr-app.storybook .notebook-heading{display:block;padding:0 0 var(--s-4);margin-bottom:var(--s-5)}
 #ivyr-app.storybook .notebook-heading h1{font-size:var(--fs-6)}
 #ivyr-app.storybook .notebook-heading>p{font-size:var(--fs-2);margin-top:var(--s-3)}
 #ivyr-app.storybook .notebook-opening{grid-template-columns:1fr;gap:var(--s-5);margin-bottom:var(--s-6)}
 #ivyr-app.storybook .note-feature .note-link{grid-template-columns:160px minmax(0,1fr)}
 #ivyr-app.storybook .note-feature .note-art{height:100%;min-height:210px}
 #ivyr-app.storybook .note-feature h2{font-size:var(--fs-5)}
 #ivyr-app.storybook .reading-route{border-left:0;padding:0}
 #ivyr-app.storybook .reading-route h2{font-size:var(--fs-4);display:none}
 #ivyr-app.storybook .reading-route ol{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}
 #ivyr-app.storybook .reading-route li{padding-left:0;padding-top:var(--s-5)}
 #ivyr-app.storybook .reading-route li:before{top:7px}
 #ivyr-app.storybook .reading-route a{padding:var(--s-2) 0}
 #ivyr-app.storybook .reading-route strong{font-size:var(--fs-2)}
 #ivyr-app.storybook .reading-route a span{font-size:var(--fs-1)}
 #ivyr-app.storybook .note-list{grid-template-columns:1fr}
 #ivyr-app.storybook .note-link{grid-template-columns:100px minmax(0,1fr);gap:var(--s-4)}
 #ivyr-app.storybook .note-copy h3{font-size:var(--fs-4)}
 #ivyr-app.storybook .notebook-list-heading{display:block}
 #ivyr-app.storybook .notebook-list-heading h2{font-size:var(--fs-5)}
 #ivyr-app.storybook .notebook-list-heading>span{display:block;margin-top:var(--s-2)}
 #ivyr-app.storybook .notebook-close{display:block;margin-top:var(--s-5)}
 #ivyr-app.storybook .notebook-close p{margin-top:var(--s-2)}
 #ivyr-app.storybook .notebook-close>div{margin:var(--s-3) 0 0}
 #ivyr-app.storybook[data-page=room] .home-grid{grid-template-columns:1fr;gap:var(--s-5)}
 #ivyr-app.storybook[data-page=room] .room-heading h1{font-size:var(--fs-5)}
 #ivyr-app.storybook[data-page=room] .room-heading .page-intro{font-size:var(--fs-1)}
 #ivyr-app.storybook[data-page=room] .room-scene:not(.is-fullscreen){height:310px}
 #ivyr-app.storybook[data-page=room] .room-scene:not(.is-fullscreen) .ivy-character{width:195px;height:195px;margin-left:-97.5px;bottom:18px}
 #ivyr-app.storybook[data-page=room] .room-scene:not(.is-fullscreen) .speech{top:48px;right:10px;max-width:135px;font-size:var(--fs-1);padding:var(--s-3)}
 #ivyr-app.storybook .home-observation .observation-values{grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-3);margin:var(--s-4) 0}
 #ivyr-app.storybook .home-observation .observation-cell{display:block}
 #ivyr-app.storybook .home-observation .observation-cell>svg{display:none}
 #ivyr-app.storybook .home-observation .observation-cell>span{display:block;font-size:var(--fs-1)}
 #ivyr-app.storybook .home-observation .observation-cell strong{display:block;font-size:var(--fs-3);margin-top:var(--s-2)}
 #ivyr-app.storybook .home-photo-link img{width:80px;height:66px}
 #ivyr-app.storybook .home-photo>div{margin-bottom:var(--s-3)}
 #ivyr-app.storybook .home-photo .home-album-link{margin-top:var(--s-3)}
 #ivyr-app.storybook .home-reads{margin-top:var(--s-6)}
 #ivyr-app.storybook .home-reads>header{display:block}
 #ivyr-app.storybook .home-reads h2{font-size:var(--fs-5)}
 #ivyr-app.storybook .home-read-list{grid-template-columns:1fr;gap:0}
 #ivyr-app.storybook .home-read-list .note-link{grid-template-columns:76px minmax(0,1fr);gap:var(--s-4)}
 #ivyr-app.storybook .home-read-list .note-art{height:auto;aspect-ratio:1}
 #ivyr-app.storybook .home-read-list .note-item{padding:var(--s-4) 0}
 #ivyr-app.storybook .home-lab .wonder-lab{padding:var(--s-3)}
 #ivyr-app.storybook .game-page .ivy-game-challenges{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:500px){
 #ivyr-app.storybook .note-feature .note-link{grid-template-columns:1fr}
 #ivyr-app.storybook .note-feature .note-art{height:150px;min-height:0}
 #ivyr-app.storybook .note-feature .note-copy{padding:var(--s-5)}
 #ivyr-app.storybook .note-feature h2{font-size:var(--fs-5);margin-top:var(--s-2)}
 #ivyr-app.storybook .note-feature .note-cta{margin-top:var(--s-4)}
 #ivyr-app.storybook .reading-route ol{grid-template-columns:1fr;gap:0}
 #ivyr-app.storybook .reading-route li{padding:0 0 0 var(--s-6)}
 #ivyr-app.storybook .reading-route li:before{top:15px}
 #ivyr-app.storybook .reading-route a{padding:var(--s-3) 0}
 #ivyr-app.storybook .reading-route a span{display:none}
 #ivyr-app.storybook .note-list .note-link{grid-template-columns:1fr;gap:var(--s-3)}
 #ivyr-app.storybook .note-list .note-art{display:none}
 #ivyr-app.storybook .note-item{padding:var(--s-5) 0}
 #ivyr-app.storybook .note-copy h3{font-size:var(--fs-4)}
 #ivyr-app.storybook .note-deck{font-size:var(--fs-2)}
}

@media(max-width:620px){#ivyr-app.storybook .game-page .ivy-game-challenges{grid-template-columns:minmax(0,1fr)}}

/* トップの観測プレビューも、データページと同じ操作と数値表を使う。 */
#ivyr-app.storybook .home-graph{margin-top:var(--s-6);padding-top:var(--s-6);border:0}
#ivyr-app.storybook .home-graph .section-head{margin-bottom:var(--s-4)}
#ivyr-app.storybook .home-graph .section-head h2{font-size:var(--fs-5);margin:0 0 var(--s-2)}
#ivyr-app.storybook .home-graph .chart-container:not(.is-fullscreen){height:320px}
#ivyr-app.storybook .notebook-experiment-link{margin:0 0 var(--s-5);font-size:var(--fs-2)}
#ivyr-app.storybook[data-page=learn] .home-lab{margin-top:var(--s-6)}
@media(max-width:600px){#ivyr-app.storybook .home-graph .chart-container:not(.is-fullscreen){height:270px}#ivyr-app.storybook .home-graph .section-head{display:block}#ivyr-app.storybook .home-graph .section-head>.text-link{display:inline-flex;margin-top:var(--s-3)}#ivyr-app.storybook .home-graph .section-head h2{font-size:var(--fs-5);margin:0 0 var(--s-2)}}

/* 目的ごとに展開領域を分け、操作メニューを入れ子にしない。 */
#ivyr-app.storybook .room-tools>details{margin:0;padding:0;border:0;border-radius:0;background:none}
#ivyr-app.storybook .room-tools>details+details{border-top:1px solid #dce1d3}
#ivyr-app.storybook .room-tools>details>summary{display:flex;align-items:center;gap:var(--s-3);min-height:58px;padding:var(--s-3) var(--s-1);list-style:none;cursor:pointer;font-size:var(--fs-2);font-weight:700}
#ivyr-app.storybook .room-tools>details>summary::-webkit-details-marker{display:none}
#ivyr-app.storybook .room-tools>details>summary:after{content:'＋';margin-left:auto;font-size:var(--fs-3);font-weight:400;color:#6b7b5c}
#ivyr-app.storybook .room-tools>details[open]>summary:after{content:'−'}
#ivyr-app.storybook .room-tools summary small{font-size:var(--fs-1);font-weight:400;color:#5c6c54}
#ivyr-app.storybook .room-tools summary:focus-visible{outline:2px solid #58764a;outline-offset:2px}
#ivyr-app.storybook .room-tools .more-play .room-actions{margin:0 0 var(--s-4);gap:var(--s-2)}
#ivyr-app.storybook .room-tools .more-play .room-actions button{background:#fffdf5;box-shadow:none;border:1px solid #ced8c3;border-radius:var(--r-s);min-height:44px;font-size:var(--fs-2)}
#ivyr-app.storybook .room-tools .plant-timeline{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:var(--s-4) var(--s-5);margin:0 0 var(--s-4);padding:var(--s-4);border-radius:var(--r-m);background:#f0f4e8}
#ivyr-app.storybook .room-tools .plant-timeline>div{display:block}
#ivyr-app.storybook .plant-date-controls>div{display:flex;flex-wrap:wrap;gap:var(--s-2);align-items:center}
#ivyr-app.storybook .plant-date-controls label{font-size:var(--fs-2)}
#ivyr-app.storybook .plant-date-controls input{width:154px;background:#fffef9;font-size:var(--fs-2)}
#ivyr-app.storybook .plant-date-controls .button{font-size:var(--fs-2);padding:var(--s-3) var(--s-3);box-shadow:none;border-radius:var(--r-s)}
#ivyr-app.storybook .plant-date-controls a{font-size:var(--fs-1)}
#ivyr-app.storybook .plant-reference-block .plant-reference{margin:0 0 var(--s-2);font-size:var(--fs-1);line-height:1.7}
#ivyr-app.storybook .plant-reference-block .plant-reference a{min-height:0}
#ivyr-app.storybook .plant-reference-block .plant-comparison{display:flex;margin:0;gap:var(--s-3);line-height:1.6;font-size:var(--fs-1)}
#ivyr-app.storybook .plant-reference-block img{width:54px;height:66px;object-fit:cover;border-radius:var(--r-xs)}
#ivyr-app.storybook .room-tools .plant-reproduction-note{grid-column:1/-1;max-width:none;font-size:var(--fs-1);line-height:1.8;padding-top:var(--s-3);border-top:1px solid #d6dfc8}
#ivyr-app.storybook .room-tools .plant-timeline>a{grid-column:1/-1;font-size:var(--fs-1)}
#ivyr-app.storybook .room-display-body{padding:0 var(--s-1) var(--s-4)}
#ivyr-app.storybook .motion-setting{display:flex;justify-content:space-between;align-items:center;gap:var(--s-3);font-size:var(--fs-2);margin-bottom:var(--s-3)}
#ivyr-app.storybook .room-display-body .scene-weather-note{margin:var(--s-2) 0;line-height:1.8}
#ivyr-app.storybook .expression-source{font-size:var(--fs-1);margin:var(--s-3) 0 0}
#ivyr-app.storybook .expression-source a{display:inline-flex;align-items:center;min-height:44px}
@media(max-width:600px){
 #ivyr-app.storybook .room-tools>details>summary{flex-wrap:wrap;gap:var(--s-1) var(--s-2);position:relative;padding-right:var(--s-6)}
 #ivyr-app.storybook .room-tools summary small{flex-basis:100%}
 #ivyr-app.storybook .room-tools>details>summary:after{position:absolute;right:4px;top:17px}
 #ivyr-app.storybook .room-tools .plant-timeline{grid-template-columns:minmax(0,1fr);gap:var(--s-4);padding:var(--s-4)}
 #ivyr-app.storybook .plant-reference-block{border-top:1px solid #d6dfc8;padding-top:var(--s-3)}
 #ivyr-app.storybook .room-tools .more-play .room-actions{grid-template-columns:repeat(2,minmax(0,1fr))}
}

#ivyr-app.storybook .observation-evidence{margin-top:var(--s-5);padding-top:var(--s-5);border-top:1px solid #d4ddc9;font-size:var(--fs-2);line-height:1.8}
#ivyr-app.storybook .observation-evidence h2{font-size:var(--fs-5);margin:0 0 var(--s-2)}
#ivyr-app.storybook .observation-evidence .evidence-note{font-size:var(--fs-1);color:#3f4f36}
#ivyr-app.storybook .observation-evidence summary{min-height:44px;padding-block:var(--s-3);cursor:pointer;font-weight:700}
#ivyr-app.storybook .observation-evidence table{width:100%;border-collapse:collapse;font-size:var(--fs-2)}
#ivyr-app.storybook .observation-evidence th,#ivyr-app.storybook .observation-evidence td{padding:var(--s-2);text-align:left;border-bottom:1px solid #d4ddc9;white-space:nowrap}
#ivyr-app.storybook .observation-evidence caption{text-align:left;padding:var(--s-3) 0;font-weight:700}
#ivyr-app.storybook .diary-record-summary{font-size:var(--fs-2);line-height:1.9;margin:var(--s-3) 0 var(--s-5)}

#ivyr-app.storybook .graph-date-context{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);padding:var(--s-4) var(--s-4);background:#eef3e6;border-radius:var(--r-m);margin:var(--s-3) 0;font-size:var(--fs-2);line-height:1.8}
#ivyr-app.storybook .graph-date-context[hidden]{display:none}
#ivyr-app.storybook .graph-date-context p{margin:0}
#ivyr-app.storybook .graph-date-context button{flex-shrink:0}
@media(max-width:600px){#ivyr-app.storybook .graph-date-context{display:block}#ivyr-app.storybook .graph-date-context button{margin-top:var(--s-3)}}

/* トップのふれあいボタンは間隔と押し心地をそろえ、区切り線を入れない。 */
#ivyr-app.storybook[data-page=room] .room-stage .room-actions{gap:var(--s-3);margin-inline:0}
#ivyr-app.storybook[data-page=room] .room-stage .room-actions button{--touch-bg:#fff3d6;--touch-edge:#e5d4aa;--touch-ink:#61502d;background:var(--touch-bg);color:var(--touch-ink);border:1px solid var(--touch-edge);border-radius:var(--r-m);min-height:56px;padding:var(--s-3) var(--s-3);gap:var(--s-3);font-size:var(--fs-2);line-height:1.4;box-shadow:0 2px 0 var(--touch-edge),inset 0 1px 0 #ffffffb3;transition:transform var(--t-fast) var(--ease),box-shadow var(--t-fast) var(--ease)}
#ivyr-app.storybook[data-page=room] .room-stage .room-actions button:nth-child(3n+2){--touch-bg:#eaf3e3;--touch-edge:#cbdcbe;--touch-ink:#365740}
#ivyr-app.storybook[data-page=room] .room-stage .room-actions button:nth-child(3n){--touch-bg:#ffede4;--touch-edge:#ebcfc1;--touch-ink:#754e3d}
#ivyr-app.storybook[data-page=room] .room-stage .room-actions button svg{width:19px;height:19px;flex-shrink:0;box-sizing:content-box;padding:var(--s-2);border-radius:var(--r-full);background:#ffffff9c}
#ivyr-app.storybook[data-page=room] .room-stage .room-actions button:focus-visible{outline:3px solid #446b48;outline-offset:4px}
#ivyr-app.storybook[data-page=room] .room-stage .room-actions button:active{transform:translateY(2px);box-shadow:inset 0 2px 4px #30483112}
#ivyr-app.storybook[data-page=room] .room-tools .more-play .room-actions{margin-bottom:0}
#ivyr-app.storybook[data-page=room] .room-tools .more-play .room-actions button{min-height:52px;font-size:var(--fs-2)}
@media(hover:hover) and (pointer:fine){#ivyr-app.storybook[data-page=room] .room-stage .room-actions button:hover{transform:translateY(-2px);box-shadow:var(--sh-2)}#ivyr-app.storybook[data-page=room] .room-stage .room-actions button:active{transform:translateY(2px);box-shadow:inset 0 2px 4px #30483112}}
@media(max-width:600px){#ivyr-app.storybook[data-page=room] .room-stage .room-actions button{padding:var(--s-2) var(--s-2);gap:var(--s-2);font-size:var(--fs-1)}#ivyr-app.storybook[data-page=room] .room-stage .room-actions button svg{width:17px;height:17px;padding:var(--s-1)}}
@media(prefers-reduced-motion:reduce){#ivyr-app.storybook[data-page=room] .room-stage .room-actions button{transition:none}}

#ivyr-app.storybook[data-page=room] .room-tools .more-play{border:0;margin:0;padding:0}

#ivyr-app.storybook[data-page=room] .room-stage>.room-actions{margin-bottom:0}
#ivyr-app.storybook[data-page=room] .room-stage>.room-tools{margin-top:var(--s-3)}
#ivyr-app.storybook[data-page=room] .room-tools .more-play .room-actions{margin:0;gap:var(--s-3)}

/* 320px級の画面では補助表示を次の行へ送り、管理リンクまで画面内に収める。 */
@media(max-width:380px){
 #ivyr-app.storybook .header-inner{height:auto;min-height:72px;flex-wrap:wrap;padding-top:var(--s-3);padding-bottom:var(--s-3)}
 #ivyr-app.storybook .header-end{flex:1 1 100%;justify-content:space-between;min-width:0}
}

/* フライト番付：順位・名前・得点を同じ列で比較。装飾は上位3件に限定する。 */
#ivyr-app.storybook .ivy-game-ranking{padding:0 var(--s-5) var(--s-5);background:repeating-linear-gradient(0deg,#70452205 0px,#70452205 1px,transparent 1px,transparent 4px),linear-gradient(90deg,#d9bc82,#f5e9c9 5%,#f5e9c9 95%,#d9bc82);border:1px solid #a88750;border-top:10px ridge #796044;border-bottom:10px ridge #796044;border-radius:var(--r-xs);box-shadow:0 5px 0 #342b2022,inset 0 0 28px #92703f24;color:#392f24}
#ivyr-app.storybook .ivy-game-ranking>summary{font-size:var(--fs-5);line-height:1.8;margin:0 -24px;padding:var(--s-4) var(--s-5);border-bottom:3px double #a78e5b;background:#e8d5a5;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;letter-spacing:.15em;color:#392b1d}

#ivyr-app.storybook .flight-rank-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--s-4);margin:var(--s-4) 0}
#ivyr-app.storybook .flight-rank-intro{margin:0;font-size:var(--fs-2);color:#6e5d43;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;}
#ivyr-app.storybook .flight-rank-filter{display:flex;align-items:center;gap:var(--s-2);font-size:var(--fs-1);flex-shrink:0}
#ivyr-app.storybook .flight-rank-filter select{margin:0;padding:var(--s-2) var(--s-6) var(--s-2) var(--s-3);border:1px solid #967547;border-radius:var(--r-xs);background:#fff4d7;color:#392f24}
#ivyr-app.storybook .flight-rank-count{margin:var(--s-2) 0;color:#6e5d43}
#ivyr-app.storybook .ivy-game-rank-rows{list-style:none;padding:0;margin:0;white-space:normal;font-family:inherit}
#ivyr-app.storybook .flight-rank-row{display:grid;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:var(--s-4);padding:var(--s-4) var(--s-4);border-bottom:1px solid #ac926066;min-height:74px;box-sizing:border-box}
#ivyr-app.storybook .flight-rank-top{margin:0;border:0;border-bottom:1px solid #ac926088;border-radius:0;background:transparent}
#ivyr-app.storybook .flight-rank-top-1{background:linear-gradient(90deg,#bc873323,transparent);border-color:#ac926088}
#ivyr-app.storybook .flight-rank-top-2{background:#fff5d52b;border-color:#ac926088}
#ivyr-app.storybook .flight-rank-top-3{background:transparent;border-color:#ac926088}
#ivyr-app.storybook .flight-rank-place{font-size:var(--fs-5);font-weight:800;font-family:"Yu Mincho","Hiragino Mincho ProN",serif;color:#6d5739;font-variant-numeric:tabular-nums;text-align:center}
#ivyr-app.storybook .flight-rank-top-1 .flight-rank-place{color:#a23e2b;border:2px solid #a23e2b;border-radius:var(--r-xs);line-height:1.5;transform:rotate(-5deg)}
#ivyr-app.storybook .flight-rank-identity{min-width:0}
#ivyr-app.storybook .flight-rank-name{display:block;font-size:var(--fs-3);line-height:1.5;overflow-wrap:anywhere;color:#392f24;font-family:"Yu Mincho","Hiragino Mincho ProN",serif}
#ivyr-app.storybook .flight-rank-meta{display:block;margin-top:var(--s-1);font-size:var(--fs-2);line-height:1.5;color:#6e5d43}
#ivyr-app.storybook .flight-rank-score{font-size:var(--fs-5);line-height:1.2;font-variant-numeric:tabular-nums;letter-spacing:-.025em;white-space:nowrap;text-align:right;color:#544630}
/* 得点の強調は順位に比例。色だけに頼らず文字サイズ・太さにも段差を付ける。 */
#ivyr-app.storybook .flight-rank-top-1 .flight-rank-score{font-size:var(--fs-7);font-weight:900;color:#a03926;text-shadow:0 1px 0 #fff9df}
#ivyr-app.storybook .flight-rank-top-2 .flight-rank-score{font-size:var(--fs-6);font-weight:800;color:#544630}
#ivyr-app.storybook .flight-rank-top-3 .flight-rank-score{font-size:var(--fs-6);font-weight:800;color:#735033}
#ivyr-app.storybook .flight-rank-score small{font-size:var(--fs-1);font-weight:400;letter-spacing:0;margin-left:var(--s-1)}
#ivyr-app.storybook .flight-rank-note{margin:var(--s-4) 0 var(--s-2);color:#6e5d43}
#ivyr-app.storybook .flight-rank-help>summary{font-size:var(--fs-1);font-weight:400;min-height:32px}
#ivyr-app.storybook .flight-rank-empty{padding:var(--s-6) var(--s-4);background:#fff4d566;border:1px dashed #a88b55;border-radius:var(--r-xs);text-align:center}
#ivyr-app.storybook .flight-rank-empty[hidden]{display:none}
@media(max-width:600px){
 #ivyr-app.storybook .ivy-game-ranking{padding:0 var(--s-3) var(--s-4)}
 #ivyr-app.storybook .ivy-game-ranking>summary{margin:0 -12px;padding:var(--s-3);font-size:var(--fs-4)}
 #ivyr-app.storybook .flight-rank-toolbar{align-items:flex-start;flex-direction:column;gap:var(--s-3)}

 /* 小画面は名前と得点を同じ段、補足を下段に並べて縦の占有を抑える。 */
 #ivyr-app.storybook .flight-rank-row{grid-template-columns:26px minmax(0,1fr) auto;gap:var(--s-1) var(--s-2);padding:var(--s-3) var(--s-1)}
 #ivyr-app.storybook .flight-rank-identity{display:contents}
 #ivyr-app.storybook .flight-rank-name{grid-column:2;grid-row:1;font-size:var(--fs-3)}
 #ivyr-app.storybook .flight-rank-meta{grid-column:2 / 4;margin:0}
 #ivyr-app.storybook .flight-rank-toolbar{flex-direction:row;align-items:center;flex-wrap:wrap;gap:var(--s-2)}
 #ivyr-app.storybook .flight-rank-intro{font-size:var(--fs-2)}
 #ivyr-app.storybook .flight-rank-place{grid-row:1 / 4;font-size:var(--fs-4)}
 #ivyr-app.storybook .flight-rank-score{grid-column:3;grid-row:1;font-size:var(--fs-4);text-align:right}
 #ivyr-app.storybook .flight-rank-top-1 .flight-rank-score{font-size:var(--fs-6)}
 #ivyr-app.storybook .flight-rank-top-2 .flight-rank-score{font-size:var(--fs-5)}
 #ivyr-app.storybook .flight-rank-top-3 .flight-rank-score{font-size:var(--fs-5)}
}

/* ゲームの入口のみ和紙と墨で統一。本編のHUD・他ページの配色には影響させない。 */
#ivyr-app.storybook[data-page=play]{--ink:#392f24;--muted:#6e5d43;--green:#784932;--line:#c5ad80;background:radial-gradient(ellipse at 80% 0,#dac09244,transparent 65%),#f8efd9;color:#392f24}
#ivyr-app.storybook[data-page=play] .site-header,#ivyr-app.storybook[data-page=play] .mobile-nav{background:#f6ebcf;border-color:#bca477}
#ivyr-app.storybook[data-page=play] .brand,#ivyr-app.storybook[data-page=play] .desktop-nav a,#ivyr-app.storybook[data-page=play] .site-footer{color:#51412e}
#ivyr-app.storybook[data-page=play] .desktop-nav a[aria-current=page]{background:#e8d3a6;box-shadow:var(--sh-1);border-radius:var(--r-xs)}
#ivyr-app.storybook .game-page .section-head{padding:var(--s-5) 0;border-bottom:3px double #bda171;margin-bottom:var(--s-5)}
#ivyr-app.storybook .game-page .section-head h1{font-family:"Yu Mincho","Hiragino Mincho ProN",serif;color:#392f24;letter-spacing:.04em}
#ivyr-app.storybook .game-page .section-head .eyebrow{color:#91452f;letter-spacing:.16em}
#ivyr-app.storybook .game-page .section-head .button{background:#f1dfb7;border:1px solid #a78954;border-radius:var(--r-xs);box-shadow:var(--sh-1);color:#523b25}
#ivyr-app.storybook .game-page .ivy-game-challenges{gap:var(--s-4);margin-top:0}
#ivyr-app.storybook .game-page .ivy-game-challenges>button{--level-accent:#536a3e;border:1px solid #ab9160;border-top:5px solid #678051;border-radius:var(--r-xs);background:#f7ebcb;color:#392f24;box-shadow:var(--sh-1)}
#ivyr-app.storybook .game-page .ivy-game-challenges>.ivy-game-challenge-2{--level-accent:#86602a;border-top-color:#a27e37}
#ivyr-app.storybook .game-page .ivy-game-challenges>.ivy-game-challenge-3{--level-accent:#973c2d;border-top-color:#973c2d;background:#f0dfbc}
#ivyr-app.storybook .game-page .ivy-game-challenges>.ivy-game-challenge-4{--level-accent:#8c3229;border-top-color:#3f2e29;background:#e8d3b0}
#ivyr-app.storybook .game-page .flight-level-art{background:#e5d4ae;border-bottom:1px solid #bca477}
#ivyr-app.storybook .flight-level-picture{display:block;width:100%;height:auto;aspect-ratio:3/2}
#ivyr-app.storybook .game-page .flight-level-badge{background:#fff3d4;color:#59432b;border:1px solid #a88c55;border-radius:var(--r-xs)}
#ivyr-app.storybook .game-page .ivy-game-challenge-3 .flight-level-badge,#ivyr-app.storybook .game-page .ivy-game-challenge-4 .flight-level-badge{background:#903b2e;color:#fff5dc;border-color:#903b2e}
#ivyr-app.storybook .game-page .flight-level-top strong{font-family:"Yu Mincho","Hiragino Mincho ProN",serif}
#ivyr-app.storybook .game-page .flight-level-description{font-size:var(--fs-2)}
#ivyr-app.storybook .game-page .flight-level-copy small{font-size:var(--fs-1);opacity:1}
#ivyr-app.storybook .game-page .flight-level-action{color:var(--level-accent);border-top:1px solid #bca477}
#ivyr-app.storybook .flight-art-note{font-size:var(--fs-1);color:#6e5d43;margin:var(--s-3) 0 var(--s-5)}
#ivyr-app.storybook .game-page .game-resource-links{padding:var(--s-4) 0;border-top:3px double #bda171;border-bottom:1px solid #bda171;gap:var(--s-3) var(--s-6)}
#ivyr-app.storybook .game-page .game-resource-links a{color:#784932}
@media(max-width:620px){
 #ivyr-app.storybook .game-page .ivy-game-challenges>button{flex-direction:column}
 #ivyr-app.storybook .game-page .flight-level-art{width:100%;flex:auto}
 #ivyr-app.storybook .game-page .flight-level-picture{max-height:180px;object-fit:contain}
 #ivyr-app.storybook .game-page .section-head{padding-top:var(--s-2)}
 #ivyr-app.storybook .game-page .flight-level-copy{padding:var(--s-4)}
}

/* 長い名前・桁数の多い得点でも、得点が名前欄を押し潰さない。 */
@media(max-width:600px){
 #ivyr-app.storybook .flight-rank-row{grid-template-columns:26px minmax(80px,1fr) minmax(0,auto)}
 #ivyr-app.storybook .flight-rank-score{white-space:normal;overflow-wrap:anywhere;max-width:130px}
}
#ivyr-app.storybook[data-page=play] .mobile-nav a[aria-current=page]{background:#e8d3a6;color:#613e2a}

/* スマホでは得点を独立した段へ。桁の途中で改行せず読み取れる幅を確保する。 */
@media(max-width:600px){
 #ivyr-app.storybook .flight-rank-name{grid-column:2 / 4}
 #ivyr-app.storybook .flight-rank-score{grid-column:2 / 4;grid-row:2;max-width:none;white-space:nowrap;text-align:left}
 #ivyr-app.storybook .flight-rank-place{grid-row:1 / 5}
 #ivyr-app.storybook .flight-rank-top-1 .flight-rank-score{font-size:var(--fs-5)}
 #ivyr-app.storybook .flight-rank-top-2 .flight-rank-score{font-size:var(--fs-5)}
 #ivyr-app.storybook .flight-rank-top-3 .flight-rank-score{font-size:var(--fs-4)}
}

/* 本文の1行を読める長さに収める（2026-09-30 デザイン監査 共2）。
   日本語は1行35〜45字が上限。1280pxでは注記が95字まで伸びていた。
   1em＝全角1文字なので 42em ≒ 42字。表・カードの中は横幅が決まっているため対象外。 */
@media (min-width:900px){
 #ivyr-app :is(p,dd,blockquote,.evidence-note,.graph-note,.graph-summary):not(td *):not(th *):not(figure *):not([class*="card"] *){max-width:42em}
 #ivyr-app .article-prose li{max-width:42em}
}

/* 記事の中の見出しは、上の余白を段落の下余白にまかせる（隣り合う余白は重なるため
   見た目は変わらない）。関連記事の見出しだけ上余白0で書式が割れていたのをそろえる。 */
#ivyr-app.storybook .article-prose h2,
#ivyr-app.storybook .related-reading h2{margin:0 0 var(--s-2)}

/* 音源の出所。表記が必須の素材を足したときにも、ここへ書き足せば足りる。 */
#ivyr-app .ivy-game-credit{display:block;margin-top:var(--s-2);padding-top:var(--s-2);border-top:1px solid #d7ddcc;color:#5d6b52;font-size:var(--fs-1);line-height:1.7;word-break:break-all}

/* フライト番付の整理（2026-10-01）。選んで消す／すべて消す。
   消す操作は2回押しで確かめるので、1回目は色を変えて「次で消える」と分かるようにする。 */
#ivyr-app .flight-rank-toolbar{flex-wrap:wrap;gap:var(--s-3)}
#ivyr-app .ivy-game-rank-manage{margin-left:auto;min-height:40px;padding:var(--s-2) var(--s-4);border:1px solid #c4d1b8;border-radius:var(--r-s);background:#fffdf7;color:#3f4f36;font-size:var(--fs-1);font-weight:700}
#ivyr-app .flight-rank-manage-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--s-2);margin:var(--s-3) 0;padding:var(--s-3);border:1px solid #d7ddcc;border-radius:var(--r-m);background:#f6f3e8}
#ivyr-app .flight-rank-manage-hint{flex:1 1 14em;margin:0;font-size:var(--fs-1);color:#5d6b52;line-height:1.7}
#ivyr-app .flight-rank-manage-bar button{min-height:40px;padding:var(--s-2) var(--s-4);border:1px solid #c4d1b8;border-radius:var(--r-s);background:#fffdf7;color:#3f4f36;font-size:var(--fs-1);font-weight:700}
#ivyr-app .flight-rank-manage-bar button:disabled{opacity:.5}
#ivyr-app .ivy-game-rank-del-pick,#ivyr-app .ivy-game-rank-del-all{border-color:#c08a5a;color:#8a4a1c}
#ivyr-app .ivy-game-rank-del-pick:not(:disabled):hover,#ivyr-app .ivy-game-rank-del-all:hover{background:#fdf1e4}
#ivyr-app .flight-rank-pick{width:20px;height:20px;margin-right:var(--s-2);accent-color:#8a4a1c;flex:none}
/* 整理中はチェック欄のぶん列を1つ増やす。3列固定のままだと順位・名前・点数の配置が崩れる。 */
#ivyr-app.storybook .ivy-game-rank-rows.is-managing .flight-rank-row{grid-template-columns:28px 44px minmax(0,1fr) auto}
@media(max-width:800px){#ivyr-app.storybook .ivy-game-rank-rows.is-managing .flight-rank-row{grid-template-columns:24px 26px minmax(0,1fr) auto}}
#ivyr-app .ivy-game-rank-rows.is-managing .flight-rank-row{outline:1px dashed #c8cfbb;outline-offset:2px}

/* 観察記事の入口と記録用紙。既存の本文幅・配色を引き継ぐ。 */
#ivyr-app .note-art .note-thumbnail{display:block;width:100%;height:100%;min-height:140px;object-fit:cover;border-radius:inherit}
#ivyr-app .question-routes{margin:var(--s-6) 0;padding:var(--s-5);background:#f5f3e7;border:1px solid #d5dec8;border-radius:var(--r-l)}
#ivyr-app .question-routes ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-3);padding:0;list-style:none}
#ivyr-app .question-routes a{display:block;height:100%;padding:var(--s-3);border:1px solid #c5d2b8;border-radius:var(--r-m);background:#fffdf7;text-decoration:none}
#ivyr-app .question-routes a span{display:block;font-size:var(--fs-1);margin-top:var(--s-2)}
#ivyr-app .topic-introduction{margin:var(--s-4) 0;max-width:42em}
#ivyr-app .article-feedback{margin:var(--s-5) 0;padding:var(--s-4);border:1px solid #c5d2b8;border-radius:var(--r-m)}
#ivyr-app .article-feedback>div{display:flex;gap:var(--s-3);flex-wrap:wrap}
#ivyr-app .article-correction,#ivyr-app .development-context{font-size:var(--fs-1);margin:var(--s-4) 0;line-height:1.8}
#ivyr-app .observation-sheet td{min-height:2.5em;padding:var(--s-4)}
#ivyr-app .editorial-evidence img{display:block;max-width:100%;height:auto;margin-inline:auto}
#ivyr-app .article-prose img{max-width:100%;height:auto}
#ivyr-app .observation-sheet table{width:100%;table-layout:fixed;border-collapse:collapse}
#ivyr-app .observation-sheet th,#ivyr-app .observation-sheet td{overflow-wrap:anywhere;border:1px solid #c5d2b8;padding:var(--s-3)}
#ivyr-app.storybook .observation-sheet .article-prose table{min-width:0}
#ivyr-app.storybook .observation-sheet .article-prose th,#ivyr-app.storybook .observation-sheet .article-prose td{white-space:normal;position:static}
#ivyr-app .observation-sheet p{overflow-wrap:anywhere}
#ivyr-app .data-downloads{display:flex;flex-wrap:wrap;gap:var(--s-3) var(--s-5);margin:var(--s-4) 0}
@media(max-width:600px){#ivyr-app .question-routes ul{grid-template-columns:minmax(0,1fr)}#ivyr-app .question-routes{padding:var(--s-3)}}
@media print{
 body:has(.observation-sheet){background:#fff!important;color:#000!important}
 body:has(.observation-sheet) [aria-label="制作・開発者"]{display:none!important}
 body:has(.observation-sheet) .site-header,body:has(.observation-sheet) .site-footer,body:has(.observation-sheet) .mobile-nav,body:has(.observation-sheet) .back-link,body:has(.observation-sheet) .observation-sync-status,body:has(.observation-sheet) [data-observation-print],body:has(.observation-sheet) #wpadminbar{display:none!important}
 body:has(.observation-sheet) #ivyr-app,body:has(.observation-sheet) .main-wrap,body:has(.observation-sheet) .article-card{margin:0!important;padding:0!important;max-width:none!important;box-shadow:none!important;border:0!important}
 body:has(.observation-sheet) #ivyr-app,body:has(.observation-sheet) .page-heading,#ivyr-app.storybook .observation-sheet,#ivyr-app.storybook .observation-sheet h2{background:#fff!important;color:#000!important;border-radius:0!important}
 body:has(.observation-sheet) .page-heading{padding:0!important;margin:0 0 12pt!important;border:0!important}
 body:has(.observation-sheet) .page-heading::before,body:has(.observation-sheet) .page-heading::after{display:none!important}
 body:has(.observation-sheet) h1{font-size:18pt!important;line-height:1.4!important}
 #ivyr-app.storybook .observation-sheet .article-prose{max-width:none;font-size:10pt;line-height:1.5}
 #ivyr-app.storybook .observation-sheet h2{font-size:12pt;margin:10pt 0 5pt;padding:0;border:0;break-after:avoid}
 #ivyr-app.storybook .observation-sheet p{margin:6pt 0}
 #ivyr-app .observation-sheet table{width:100%;border-collapse:collapse}
 #ivyr-app .observation-sheet th,#ivyr-app .observation-sheet td{border:1px solid #555;padding:8px}
 #ivyr-app .observation-sheet tr{break-inside:avoid}
 #ivyr-app .observation-sheet .table-scroll{overflow:visible}
}

/* 記事末の「まとめ」。本文の続きではなく、読み終わりの区分表として囲む。
   表の文字はサイト共通の12pxだと要点が読みにくいので、段の14pxへ上げる。 */
#ivyr-app .editorial-summary{margin:var(--s-7) 0 var(--s-6);padding:var(--s-5) var(--s-5) var(--s-4);background:#f6f8f1;border:1px solid #d9e2cd;border-radius:var(--r-m)}
#ivyr-app .editorial-summary>h2{margin-top:0}
#ivyr-app .editorial-summary table{margin:var(--s-4) 0;font-size:var(--fs-2)}
#ivyr-app .editorial-summary th,#ivyr-app .editorial-summary td{white-space:normal;vertical-align:top;line-height:1.85;padding:var(--s-3) var(--s-2)}
#ivyr-app .editorial-summary thead th{background:#eaf0e0;position:static}
#ivyr-app .editorial-summary tbody th{background:transparent;width:10em;font-weight:700}
#ivyr-app .editorial-summary>p:last-child{margin:0;font-size:var(--fs-2);color:var(--muted)}
@media(max-width:600px){#ivyr-app .editorial-summary{padding:var(--s-4)}#ivyr-app .editorial-summary tbody th,#ivyr-app .editorial-summary tbody td{display:block;width:auto;border-bottom:0}#ivyr-app .editorial-summary tbody td{padding-top:0;padding-bottom:var(--s-4);border-bottom:1px solid var(--line)}#ivyr-app .editorial-summary tbody tr:last-child td{border-bottom:0}}

/* 記事の終わりに置くITブログへの案内。本文の出典リンクと混ざらないよう囲みにする。 */
#ivyr-app .article-studio{max-width:720px;margin:var(--s-7) auto var(--s-5);padding:var(--s-5);background:#fffdf7;border:1px solid #dce3d2;border-radius:var(--r-m)}
#ivyr-app .article-studio__title{font-size:var(--fs-4);margin:0 0 var(--s-3)}
#ivyr-app .article-studio__lead{margin:0 0 var(--s-4);font-size:var(--fs-2);color:var(--muted);line-height:1.9}
#ivyr-app .article-studio__note{margin:var(--s-3) 0 0;font-size:var(--fs-1);color:var(--muted)}

/* まとめの区分表は、狭い画面では見出し行を隠して1件ずつ縦に読ませる。区分は各行の見出しで分かる。 */
@media(max-width:600px){#ivyr-app .editorial-summary thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}

/* はっけんノートの棚。読む順番を見せるので、番号と一行の説明を添えて縦に並べる。 */
#ivyr-app .note-shelf{margin:0 0 var(--s-8)}
#ivyr-app .note-shelf__heading{display:flex;align-items:baseline;gap:var(--s-4);flex-wrap:wrap;margin:0 0 var(--s-5);padding-bottom:var(--s-3);border-bottom:1px solid var(--line)}
#ivyr-app .note-shelf__heading h3{display:flex;align-items:baseline;gap:var(--s-3);margin:0;font:700 var(--fs-5)/1.5 IvyRound,IvyRoundRest,sans-serif}
#ivyr-app .note-shelf__number{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:var(--r-full);background:#e8eee1;color:#3f6b48;font:700 var(--fs-2)/1 IvySans,IvySansRest,sans-serif}
#ivyr-app .note-shelf__heading p{margin:0;font-size:var(--fs-2);color:var(--muted)}
#ivyr-app .note-shelf:first-of-type .note-shelf__heading{border-bottom-color:#9fb08c}
@media(max-width:600px){#ivyr-app .note-shelf{margin-bottom:var(--s-7)}#ivyr-app .note-shelf__heading h3{font-size:var(--fs-4)}}

/* 棚の目次。スクロールする前に「何がどこにあるか」を見せるので、1行を詰めて6行を1画面に収める。 */
#ivyr-app .shelf-index{margin:var(--s-5) 0 var(--s-6);padding:var(--s-5);background:#fffefa;border:1px solid var(--line);border-radius:var(--r-l)}
#ivyr-app .shelf-index>h2{margin:0 0 var(--s-4);font:700 var(--fs-4)/1.5 IvyRound,IvyRoundRest,sans-serif}
#ivyr-app .shelf-index ol{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-1) var(--s-5)}
#ivyr-app .shelf-index li{border-top:1px solid #edf0e7}
#ivyr-app .shelf-index li:first-child,#ivyr-app .shelf-index li:nth-child(2){border-top:0}
#ivyr-app .shelf-index a{display:flex;align-items:center;gap:var(--s-3);padding:var(--s-3) var(--s-1);min-height:44px}
#ivyr-app .shelf-index a:hover strong{text-decoration:underline;text-underline-offset:3px}
#ivyr-app .shelf-index__no{flex:none;display:grid;place-items:center;width:26px;height:26px;border-radius:var(--r-full);background:#e8eee1;color:#3f6b48;font:700 var(--fs-1)/1 IvySans,IvySansRest,sans-serif}
#ivyr-app .shelf-index__body{display:flex;flex-direction:column;min-width:0;flex:1}
#ivyr-app .shelf-index__body strong{font-size:var(--fs-2);font-weight:700;color:var(--ink)}
#ivyr-app .shelf-index__body span{font-size:var(--fs-1);color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
#ivyr-app .shelf-index__count{flex:none;font-size:var(--fs-1);color:var(--muted)}
@media(max-width:700px){#ivyr-app .shelf-index{padding:var(--s-4)}#ivyr-app .shelf-index ol{grid-template-columns:minmax(0,1fr);gap:0}#ivyr-app .shelf-index li:nth-child(2){border-top:1px solid #edf0e7}}
/* 一覧の後ろへ移した導線は、記事より控えめに。 */
#ivyr-app .notebook-collection+.question-routes{margin-top:var(--s-6)}

/* 「今月の一本」。一覧の後ろに置く1枚なので、2カラムの notebook-opening とは別に組む。 */
#ivyr-app .notebook-pick{margin:var(--s-7) 0 var(--s-6)}
#ivyr-app .notebook-pick>.eyebrow{margin-bottom:var(--s-3)}
#ivyr-app .notebook-pick .note-feature{max-width:100%}

/* 記事ごとの絵の下地。隣り合うカードが同じ色にならないように振り分ける。 */
#ivyr-app .note-art-planter{background:#eae3cd}
#ivyr-app .note-art-guide{background:#e6ead9}
#ivyr-app .note-art-calendar{background:#e9e3d2}
#ivyr-app .note-art-taxonomy{background:#e2ecd7}
#ivyr-app .note-art-stages{background:#edeadb}
#ivyr-app .note-art-nutrition{background:#eae6d0}
#ivyr-app .note-art-harvest{background:#e1eadf}
#ivyr-app .note-art-yellow{background:#eeead2}
#ivyr-app .note-art-glossary{background:#e7e9df}
#ivyr-app .note-art-wilt{background:#e3ebe4}
#ivyr-app .note-art-photos{background:#e8ead8}
#ivyr-app .note-art-lamp{background:#f2ebd5}
.note-art-measure{background:#dde8ea}

/* おへやのパネルの見出し。画面では既存の配置を変えず、読み上げと見出しの順番だけを整える。 */
#ivyr-app .ivy-panel__heading{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}

/* フッターと記事末の単独リンクは、指で押せる高さを確保する。文中のリンクは対象にしない。 */
#ivyr-app .site-footer p a,#ivyr-app .site-studio__link,#ivyr-app .article-correction a,#ivyr-app .observation-downloads a{display:inline-block;padding:9px 2px;min-height:20px}
#ivyr-app .site-footer p{margin:var(--s-1) 0}

/* 観測データ（?ivy=data）の末尾の整理（2026-10-06）。
   「最新の記録」は定義リストの既定書式のままで、項目名と値が段違いに並んでいた。
   吸い上げの区画（.ivy-uptake-facts）と同じ「小さな項目名＋大きな値」にそろえ、
   広い画面では5項目を横一列に読ませる。狭い画面は項目名と値の2列に戻す。 */
#ivyr-app .main-wrap>details.article-card>summary{font-size:var(--fs-4);font-weight:700;color:#2f3b28}
#ivyr-app .main-wrap>details.article-card>dl{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:var(--s-2) var(--s-5);margin:var(--s-5) 0;padding:var(--s-4) var(--s-5);background:#f6f8f1;border:1px solid #e3eada;border-radius:var(--r-m)}
#ivyr-app .main-wrap>details.article-card>dl>dt{margin:0;font-size:var(--fs-2);color:#55634a;align-self:center}
#ivyr-app .main-wrap>details.article-card>dl>dd{margin:0;max-width:none;font-size:var(--fs-4);font-weight:700;color:#2f3b28;font-variant-numeric:tabular-nums}
@media(min-width:1000px){
 #ivyr-app .main-wrap>details.article-card>dl{grid-template-columns:none;grid-template-rows:auto auto;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:var(--s-1) var(--s-5);padding:var(--s-5)}
 #ivyr-app .main-wrap>details.article-card>dl>dt{align-self:end;font-size:var(--fs-1)}
}
/* カードの中の案内リンクは本文と同じ色・太さで、リンクと分からなかった。 */
#ivyr-app .main-wrap>details.article-card p a{color:var(--green);text-decoration:underline;text-underline-offset:3px}
/* 取得リンクは素の文字列に見えていた。押せる大きさ（44px）の囲みにして、
   カードとのあいだに区切り線を引く。 */
#ivyr-app .data-downloads{margin:var(--s-6) 0 var(--s-3);padding-top:var(--s-5);border-top:1px solid var(--line);gap:var(--s-3)}
#ivyr-app .data-downloads a{display:inline-flex;align-items:center;gap:var(--s-2);min-height:44px;padding:var(--s-3) var(--s-5);background:#fffef9;border:1px solid #dce3d2;border-radius:var(--r-s);font-size:var(--fs-2);font-weight:700;color:var(--ink);text-decoration:none}
#ivyr-app .data-downloads a:hover{filter:brightness(.97)}
