/* 全校舎共通のスタイル（Tailwindで書けない部分だけ） */

body {
  font-family: "Noto Sans JP", "Hiragino Sans", "Hiragino Kaku Gothic ProN", sans-serif;
  -webkit-tap-highlight-color: transparent;
  font-feature-settings: "palt";
  letter-spacing: 0.02em;
}
.no-scrollbar::-webkit-scrollbar { display: none; }
.no-scrollbar { scrollbar-width: none; }

/* 読み込み時 */
@keyframes rise {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: none; }
}
.rise { animation: rise .5s ease-out both; animation-delay: var(--d, 0ms); }

/* タブ切り替え時 */
@keyframes slideFromRight { from { opacity: 0; transform: translateX(24px); } to { opacity: 1; transform: none; } }
@keyframes slideFromLeft  { from { opacity: 0; transform: translateX(-24px); } to { opacity: 1; transform: none; } }
.panel.in-right { animation: slideFromRight .32s ease-out both; }
.panel.in-left  { animation: slideFromLeft  .32s ease-out both; }

/* タブの下線 */
#tab-indicator { transition: transform .3s cubic-bezier(.3,.8,.3,1), width .3s cubic-bezier(.3,.8,.3,1); }

/* ボトムシート */
#sheet { transition: transform .35s cubic-bezier(.3,.8,.3,1); }
#sheet-backdrop { transition: opacity .3s ease; }

/* 赤マーカー */
.marker { background: linear-gradient(transparent 58%, #f9d9db 58%); padding: 0 1px; }

/* タブの右端・左端のフェード（タブに続きがあることを示したい） */
.tab-fade { transition: opacity .2s ease; }

/* 見出しの頭につける赤い縦棒 */
.bar-head { position: relative; padding-left: 12px; }
.bar-head::before {
  content: ""; position: absolute; left: 0; top: .25em; bottom: .25em;
  width: 4px; background: #a8232a;
}

@media (prefers-reduced-motion: reduce) {
  .rise, .panel.in-right, .panel.in-left { animation: none; }
  #tab-indicator, #sheet, #sheet-backdrop { transition: none; }
}
