/* 大人の通知表の世界（B2・BRIEF §16）。値は _design/ab/tsuchihyo-emo/akapen-B2/final/（theme.json・src/build.cjs・comps F_1〜F_5）から採った。
   色はミントと赤ペンの2系統だけ。赤は赤ペン（評定の丸・担任のひとこと・担任印・ごほうびのハンコ・「勉強」の取り消し線・ペンの絵）にだけ使い、注意や警告には使わない。
   所見の長文は濃い紺（赤が続いて警告に見えないように）。斜めの縞・シール・付せん・方眼は使わない（うるささ控えめ）。
   間隔は 4・8・12・16・24・32・48 の段だけ。縦型LP（PCでも430pxの1列）。前の版は _archive/tsuchihyo-emo-2026-10-17/。 */
body[data-world="tsuchihyo"] {
  --t-bg: #F3FBF8;
  --t-mint: #3CB894;
  --t-mintS: #1A8262;   /* 白い文字が乗るミント（白との比 4.76） */
  --t-mintD: #166F54;   /* 小見出し・ラベル */
  --t-mintL: #CDEFE3;
  --t-mintLL: #E7F7F0;
  --t-cover: #BFE8D9;
  --t-ink: #1D2A2A;
  --t-sub: #4F5D5A;
  --t-rule: #D5E7DF;
  --t-red: #D9302A;
  --t-pen: #2B3A55;     /* 所見の長文 */
  --t-cream: #FFF6DC;
  --t-s1: 4px; --t-s2: 8px; --t-s3: 12px; --t-s4: 16px; --t-s5: 24px; --t-s6: 32px; --t-s7: 48px;
  --t-maru: "Zen Maru Gothic", "Zen Kaku Gothic New", sans-serif;
  --t-body: "Zen Kaku Gothic New", "Noto Sans JP", sans-serif;
  --t-hand: "Klee One", "Zen Kaku Gothic New", cursive;
  --t-ease: cubic-bezier(.2, .7, .2, 1);
  --t-card: 0 10px 24px -20px rgba(20, 80, 60, .55);
  --bg: var(--t-bg);
  --ink: var(--t-ink);
  --sub: var(--t-sub);
  --acc: var(--t-mintLL);
  --opt-hover: var(--t-mintLL);
  --fact-bg: var(--t-mintLL);
  --mine: var(--t-mint);
  --pattern: none;
  --sans: var(--t-body);
  font-family: var(--t-body);
  color: var(--t-ink);
}
/* 縦型LP: PCでも横に広げず、430pxの1列を中央に。左右は少し濃いミントの地 */
@media (min-width: 480px) {
  html:has(body[data-world="tsuchihyo"]) { min-height: 100%; background: #DCEFE7 radial-gradient(circle at 50% 30%, #EAF7F1 0, #DCEFE7 45%, #C9E7DA 100%) fixed; }
  body[data-world="tsuchihyo"] { max-width: 430px; margin: 0 auto; min-height: 100vh; box-shadow: 0 0 0 1px rgba(20, 80, 60, .08), 0 24px 60px -20px rgba(20, 80, 60, .35); }
}

/* ── ヘッダー（入口ではキービジュアルの中にロゴがあるので、押せる所だけ重ねる） */
[data-world="tsuchihyo"] .hdr { height: 52px; }
[data-world="tsuchihyo"] .hdr__logo { height: 20px; }
[data-world="tsuchihyo"] .hdr__fuda { font-family: var(--t-maru); font-weight: 900; font-size: 14px; color: var(--t-mintD); }
[data-world="tsuchihyo"][data-screen="entry"] .hdr { position: absolute; left: 0; right: 0; top: 0; height: 0; padding: 0; overflow: visible; z-index: 4; }
[data-world="tsuchihyo"][data-screen="entry"] .hdr__home { position: absolute; left: 8px; top: 8px; width: 44px; height: 44px; opacity: 0; }
[data-world="tsuchihyo"][data-screen="entry"] .hdr__fuda { display: none; }
[data-world="tsuchihyo"] .wrap { padding: 0 var(--t-s4); }

/* ── 表紙（二つ折りの外側。左が背） */
.t-cover { position: relative; background: var(--t-cover); border-radius: 8px 18px 18px 8px; padding: var(--t-s4) var(--t-s5) var(--t-s4) 36px; box-shadow: 0 1px 0 rgba(255, 255, 255, .7) inset, 0 22px 36px -26px rgba(20, 80, 60, .7); color: var(--t-ink); text-align: left; }
.t-cover::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 16px; border-radius: 8px 0 0 8px; background: linear-gradient(90deg, #A9DCC9, #B7E3D3 60%, rgba(0, 0, 0, .07)); }
.t-cover__term { font-family: var(--t-maru); font-weight: 700; font-size: 15px; line-height: 1.5; color: var(--t-mintD); letter-spacing: .06em; }
.t-cover__label { background: #fff; border-radius: 14px; margin-top: var(--t-s3); padding: var(--t-s3) var(--t-s4) var(--t-s4); text-align: center; box-shadow: 0 0 0 2px var(--t-ink); }
.t-cover__t .sm { display: block; font-family: var(--t-maru); font-weight: 900; font-size: 20px; line-height: 1.5; letter-spacing: .14em; }
.t-cover__t .big { display: block; font-family: var(--t-maru); font-weight: 900; font-size: 56px; line-height: 1.3; margin: .2em -.22em .2em 0; letter-spacing: .22em; }
.t-cover__fix { display: flex; align-items: center; justify-content: center; gap: var(--t-s3); margin-top: var(--t-s1); }
.t-cover__fix .old { position: relative; font-family: var(--t-maru); font-weight: 700; font-size: 18px; line-height: 1.5; color: #6F807C; }
.t-cover__strike { position: absolute; left: -6px; top: calc(50% - 6px); width: calc(100% + 12px); height: 12px; color: var(--t-red); }
.t-strike, .t-ring { display: block; width: 100%; height: 100%; overflow: visible; }
.t-cover__fix .pill { display: inline-block; background: var(--t-mintS); color: #fff; font-family: var(--t-maru); font-weight: 900; font-size: 19px; line-height: 1.5; border-radius: 999px; padding: 4px 18px; letter-spacing: .06em; }
.t-cover__name { display: flex; align-items: baseline; gap: var(--t-s3); margin-top: var(--t-s4); font-family: var(--t-maru); font-weight: 700; font-size: 14px; line-height: 1.5; color: var(--t-mintD); }
.t-cover__nm { flex: 1; border-bottom: 1.5px solid var(--t-mintD); height: 28px; font-family: var(--t-hand); font-weight: 600; font-size: 20px; color: var(--t-ink); line-height: 28px; padding-left: 6px; }

/* ── 入口のキービジュアル（540×720 の版を縮める。地は画像、文字・表紙はHTML） */
.t-kv { position: relative; margin: 0; aspect-ratio: 3 / 4; overflow: hidden; background: var(--t-mintL); }
.t-kv .kv-in { position: absolute; left: 0; top: 0; width: 540px; height: 720px; transform-origin: 0 0; }
.t-kv__plate { position: absolute; inset: 0; width: 100%; height: 100%; }
.t-kv .kv { position: absolute; left: 0; top: 0; width: 540px; height: 720px; }
.t-kv .kv__logo { position: absolute; left: 28px; top: 26px; height: 24px; width: auto; }
.t-kv .kv__free { position: absolute; right: 28px; top: 22px; font-family: var(--t-maru); font-weight: 900; font-size: 16px; line-height: 1.5; color: var(--t-mintD); background: #fff; border-radius: 999px; padding: 4px 14px; }
.t-kv .kv__cv { position: absolute; left: 62px; width: 404px; top: 96px; transform: rotate(-3deg); }
.t-kv .t-cover { padding: 20px 28px 20px 42px; }
.t-kv .t-cover__term { font-size: 17px; }
.t-kv .t-cover__label { padding: 14px 20px 18px; }
.t-kv .t-cover__t .sm { font-size: 24px; }
.t-kv .t-cover__t .big { font-size: 66px; }
.t-kv .t-cover__fix .old { font-size: 21px; }
.t-kv .t-cover__fix .pill { font-size: 23px; padding: 5px 22px; }
.t-kv .t-cover__name { font-size: 16px; }
.t-kv .kv__star { position: absolute; left: 418px; top: 80px; width: 56px; height: 56px; transform: rotate(12deg); }
.t-kv .kv__pen { position: absolute; left: 344px; top: 384px; width: 190px; height: auto; transform: rotate(-4deg); }
.t-kv .kv__copy { position: absolute; left: 30px; right: 30px; top: 536px; }
.t-kv .kv__copy p { font-family: var(--t-maru); font-weight: 900; font-size: 25px; line-height: 1.5; letter-spacing: .01em; }
.t-kv .kv__copy p + p { color: var(--t-mintD); }
.t-kv .kv__meta { position: absolute; left: 30px; top: 646px; display: flex; gap: 8px; }
.t-kv .kv__meta > span { font-family: var(--t-maru); font-weight: 900; font-size: 16px; line-height: 1.5; background: var(--t-ink); color: #fff; border-radius: 999px; padding: 5px 14px; }
/* 入口の動き（motion.md の1）: 表紙が上がる → 赤ペンが入る → 「勉強」に線 → 札。文字・バッジ・1時間目は最初から動かさない */
.t-kv .kv__cv > .t-cover { animation: tkvCover .5s var(--t-ease) both; }
.t-kv .kv__pen { animation: tkvPen .5s .3s var(--t-ease) both; }
.t-kv .t-cover__strike path { stroke-dasharray: 1; animation: tkvStrike .45s .8s var(--t-ease) both; }
.t-kv .t-cover__fix .pill { animation: tkvPill .3s 1.25s var(--t-ease) both; }
@keyframes tkvCover { from { opacity: 0; translate: 0 12px; } }
@keyframes tkvPen { from { opacity: 0; translate: 24px 16px; } }
@keyframes tkvStrike { from { stroke-dashoffset: 1; } to { stroke-dashoffset: 0; } }
@keyframes tkvPill { from { opacity: 0; scale: .96; } }

.t-entry__body { padding-top: var(--t-s3); padding-bottom: var(--t-s7); }
.t-entry__sub { font-size: 15px; color: var(--t-sub); line-height: 1.7; margin: var(--t-s4) var(--t-s1) 0; }
/* 入口の1問目を最初の画面に（R1 P1-1・R3 P1-3・2026-10-20）: キービジュアルは幅いっぱいのまま、高さを画面の高さで抑える（上下を切る）。
   何の通知表かの説明（sub）は1問目の下へ（観点の箱は 4.14.2 で外した） */
.t-entry { --kv-res: 166px; }
.t-entry.has-intro { --kv-res: 226px; }
@media (max-width: 374px) { .t-entry { --kv-res: 196px; } .t-entry.has-intro { --kv-res: 256px; } } /* 幅の狭い端末は1問目の見出しが1行増える */
.t-entry .t-kv { width: 100%; max-height: calc(100vh - var(--kv-res)); max-height: calc(100svh - var(--kv-res)); min-height: 220px; } /* 幅はいっぱいのまま、高さだけ抑える（dom.js の fitKv が上下を切る） */
.t-entry .qblock { display: flex; flex-direction: column; }
.t-entry .t-prog { display: contents; }
.t-entry .t-tt { padding-top: var(--t-s2); }
.t-entry .opts { margin-top: var(--t-s3); }
.t-entry .kv-cap { background: var(--t-mintLL); color: var(--t-ink); border-bottom: 1.5px solid var(--t-mint); font-family: var(--t-maru); }
.t-entry__honest { font-size: 14px; color: var(--t-sub); margin: var(--t-s3) var(--t-s1) 0; }
[data-world="tsuchihyo"] .resume { margin: 0 0 var(--t-s4); border: 0; box-shadow: inset 0 0 0 1.5px var(--t-ink); background: #fff; font-weight: 700; border-radius: 999px; }

/* ── 質問（1時間目の帯＋時間割＋問い）。点数・丸・ハンコ・評定は出さない。縞は使わない */
.t-q { background: #fff; border-radius: 22px; overflow: hidden; box-shadow: 0 10px 24px -18px rgba(20, 80, 60, .5); padding-bottom: var(--t-s4); }
.t-q .qblock > :not(.t-prog) { margin-left: var(--t-s4); margin-right: var(--t-s4); }
.t-prog__band { display: block; background: var(--t-mintS); color: #fff; font-family: var(--t-maru); font-weight: 900; font-size: 16px; line-height: 1.5; padding: 10px var(--t-s4); }
.t-tt { display: grid; grid-template-columns: repeat(var(--n, 9), 1fr); gap: 4px; padding: var(--t-s3) var(--t-s4) 0; }
.t-tt li { height: 26px; border-radius: 7px; display: flex; align-items: center; justify-content: center; font-family: var(--t-maru); font-weight: 700; font-size: 14px; color: #55665F; background: var(--t-mintLL); transition: background-color .2s, color .2s; }
.t-tt li.is-done { background: var(--t-mintS); color: #fff; }
.t-tt li.is-now { background: #fff; color: var(--t-mintD); box-shadow: inset 0 0 0 2px var(--t-mint); }
[data-world="tsuchihyo"] .qt { font-size: 20px; font-weight: 700; line-height: 1.55; margin-top: var(--t-s3); }
[data-world="tsuchihyo"] .qn { font-size: 14px; color: var(--t-sub); margin-top: var(--t-s1); line-height: 1.65; }
[data-world="tsuchihyo"] .opts { gap: 10px; margin-top: var(--t-s3); }
[data-world="tsuchihyo"] .opt { min-height: 56px; padding: 12px var(--t-s4); border: 0; border-radius: 16px; background: var(--t-bg); box-shadow: inset 0 0 0 1.5px #4F9A84; font-weight: 500; font-size: 16px; } /* 枠線は白いカードとの比 3.3（部品の見分けに 3:1。R3 P2-1）。押すと濃いミントの2px */
[data-world="tsuchihyo"] .opt.is-on { background: var(--t-mintLL); box-shadow: inset 0 0 0 2px var(--t-mint); font-weight: 700; }
[data-world="tsuchihyo"] .back { font-size: 14px; font-weight: 500; color: var(--t-sub); margin-bottom: var(--t-s2); }
[data-world="tsuchihyo"] .back::before { border-width: 0 0 1.5px 1.5px; width: 7px; height: 7px; }
[data-world="tsuchihyo"] .qscreen { padding-top: 0; padding-bottom: var(--t-s7); }

/* ── ひらいた通知表（結果の1画面目） */
.t-res { padding-bottom: 0; }
.t-made { font-family: var(--t-maru); font-weight: 700; font-size: 15px; line-height: 1.6; color: var(--t-mintD); margin: var(--t-s1) var(--t-s1) var(--t-s2); }
.t-sheet { position: relative; background: #fff; border-radius: 8px 20px 20px 8px; padding: var(--t-s4) var(--t-s4) var(--t-s4) 28px; box-shadow: 0 16px 30px -22px rgba(20, 80, 60, .6); }
.t-sheet::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 12px; border-radius: 8px 0 0 8px; background: linear-gradient(90deg, var(--t-cover), #B2E1D0 70%, rgba(0, 0, 0, .08)); }
.t-sheet__hd { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: 0 var(--t-s2); border-bottom: 2px solid var(--t-ink); padding-bottom: 6px; }
.t-sheet__hd > b { font-family: var(--t-maru); font-weight: 900; font-size: 17px; line-height: 1.5; white-space: nowrap; }
.t-sheet__hd > b > em { font-style: normal; color: var(--t-mintD); font-size: 14px; margin-left: 6px; }
.t-sheet__hd > span { font-size: 14px; color: var(--t-sub); line-height: 1.5; white-space: nowrap; margin-left: auto; }
.t-sheet__who { display: flex; justify-content: space-between; align-items: baseline; flex-wrap: wrap; gap: 0 var(--t-s2); font-size: 14px; color: var(--t-sub); padding-top: var(--t-s1); line-height: 1.6; }
.t-sheet__who i { font-style: normal; font-family: var(--t-hand); font-weight: 600; color: var(--t-ink); font-size: 18px; margin-left: var(--t-s2); border-bottom: 1.5px solid var(--t-rule); padding: 0 10px 0 4px; }
.t-sogo { display: grid; grid-template-columns: 30px minmax(0, 1fr) 100px; align-items: center; column-gap: var(--t-s2); margin-top: var(--t-s4); border-radius: 14px; box-shadow: inset 0 0 0 1.5px var(--t-ink); padding: 10px 0 10px 10px; min-height: 76px; }
.t-sogo__lb { font-family: var(--t-maru); font-weight: 900; font-size: 15px; writing-mode: vertical-rl; letter-spacing: .3em; justify-self: center; color: var(--t-mintD); }
.t-sogo__h { font-family: var(--t-maru); font-weight: 900; font-size: 25px; line-height: 1.3; }
.t-sogo__h.is-long { font-size: 21px; }
.t-sogo__h .ln { display: block; }
.t-badge { position: relative; width: 100px; height: 100px; justify-self: end; color: var(--t-red); transform: rotate(8deg); filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .14)); margin: -6px -14px -18px 0; }
.t-badge__s, .t-badge__s svg { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
.t-badge__t { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; font-family: var(--t-maru); font-weight: 900; color: #fff; font-size: 15px; line-height: 1.2; }
.t-badge.is-l3 .t-badge__t { font-size: 14px; line-height: 1.25; }
.t-badge__t .ln { display: block; white-space: nowrap; }
.t-rec { width: 100%; border-collapse: separate; border-spacing: 0; margin-top: var(--t-s3); border-radius: 14px; border: 1.5px solid var(--t-ink); overflow: hidden; }
.t-rec thead th { background: var(--t-mintLL); font-family: var(--t-maru); font-weight: 900; font-size: 14px; line-height: 1.6; color: var(--t-mintD); padding: var(--t-s1) var(--t-s3); text-align: left; border-bottom: 1.5px solid var(--t-ink); }
.t-rec .g { text-align: center; width: 56px; border-left: 1.5px solid var(--t-ink); }
.t-rec tbody th, .t-rec tbody td { padding: 5px var(--t-s3); border-bottom: 1px solid var(--t-rule); vertical-align: middle; text-align: left; font-weight: 400; }
.t-rec tbody td.g { text-align: center; }
.t-rec tbody tr:last-child > * { border-bottom: 0; }
.t-rec .s { display: block; font-family: var(--t-maru); font-weight: 900; font-size: 15px; line-height: 1.5; }
.t-rec .k { display: block; font-size: 14px; color: var(--t-sub); line-height: 1.5; }
.t-rec td.g b { position: relative; display: inline-flex; width: 34px; height: 34px; align-items: center; justify-content: center; font-family: var(--t-hand); font-weight: 600; color: var(--t-red); font-size: 21px; line-height: 1; }
.t-ring__w { position: absolute; inset: 0; color: var(--t-red); }
.t-memo { margin-top: var(--t-s3); border-radius: 14px; box-shadow: inset 0 0 0 1.5px var(--t-ink); padding: var(--t-s2) 56px var(--t-s3) var(--t-s3); position: relative; }
.t-memo__lb, .t-shoken__lb { font-family: var(--t-maru); font-weight: 900; font-size: 14px; line-height: 1.6; color: var(--t-mintD); }
.t-memo__hw { font-family: var(--t-hand); font-weight: 600; color: var(--t-red); font-size: 19px; line-height: 1.6; }
.t-inkan { position: absolute; right: var(--t-s3); bottom: var(--t-s3); width: 36px; height: 36px; border: 2px solid var(--t-red); border-radius: 6px; color: var(--t-red); font-family: var(--t-maru); font-weight: 900; font-size: 14px; line-height: 1.05; display: flex; align-items: center; justify-content: center; transform: rotate(-6deg); opacity: .9; writing-mode: vertical-rl; }
/* キャラ（総合のハンコの下。ハンコは下へ18pxはみ出すので、その分あけて重ねない） */
.t-chara { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 var(--t-s2); margin-top: 24px; padding: 0 var(--t-s1); font-family: var(--t-maru); line-height: 1.5; }
.t-chara__lb { font-size: 14px; font-weight: 700; color: var(--t-mintD); }
.t-chara__n { font-size: 20px; font-weight: 900; color: var(--t-ink); background: linear-gradient(transparent 64%, rgba(217, 48, 42, .18) 64%); }
/* まず、いいところ（総合の一言の下・寄り添いの前） */
.t-praise { margin: var(--t-s3) var(--t-s1) 0; }
.t-praise__h { display: inline-block; font-family: var(--t-maru); font-weight: 900; font-size: 14px; line-height: 1.6; color: #fff; background: var(--t-mintS); border-radius: 999px; padding: 0 var(--t-s3); }
.t-praise__p { font-size: 16px; font-weight: 500; line-height: 1.7; margin-top: var(--t-s1); }
.t-care { margin: var(--t-s3) var(--t-s1) 0; }
.t-care__h { font-family: var(--t-maru); font-weight: 900; font-size: 17px; line-height: 1.5; }
.t-care__p { font-size: 15px; font-weight: 500; color: var(--t-sub); line-height: 1.6; }
.t-hwk { margin-top: var(--t-s3); background: var(--t-mintS); color: #fff; border-radius: 24px; padding: var(--t-s3) 18px var(--t-s4); }
.t-hwk__h { display: flex; justify-content: space-between; align-items: center; }
.t-hwk__h > b { font-family: var(--t-maru); font-weight: 900; font-size: 15px; line-height: 1.5; }
.t-hwk__h > span { background: #fff; color: var(--t-mintD); border-radius: 10px; padding: 0 var(--t-s2); font-size: 14px; font-weight: 700; line-height: 1.6; }
.t-hwk__task { font-size: 18px; font-weight: 700; line-height: 1.5; margin-top: var(--t-s1); }
.t-btn { display: flex; align-items: center; justify-content: center; width: 100%; height: 50px; margin-top: var(--t-s2); border: 0; border-radius: 999px; font-weight: 700; font-size: 17px; letter-spacing: .02em; cursor: pointer; }
.t-btn--white { background: #fff; color: var(--t-ink); }

/* 結果の山場（motion.md の3）。.is-anim のときだけ「書く前」の形にする（動きを減らす設定では付かない） */
.t-sheet.is-anim .t-ring path { stroke-dasharray: 1; stroke-dashoffset: 1; }
.t-sheet.is-anim .t-ring.is-draw path { stroke-dashoffset: 0; transition: stroke-dashoffset .22s var(--t-ease); }
.t-sheet.is-anim .t-badge { opacity: 0; }
.t-sheet.is-anim .t-badge.is-press { opacity: 1; animation: tPress .35s var(--t-ease); }
@keyframes tPress { from { opacity: 0; scale: 1.12; rotate: 6deg; } }
.t-sheet.is-sink { animation: tSink .12s ease-out; }
@keyframes tSink { from { translate: 0 1px; } }
.t-sheet.is-anim .t-memo .t-inkan { opacity: 0; transition: opacity .2s; }
.t-sheet.is-anim .t-memo .t-inkan.is-in { opacity: .9; }
.t-sheet.is-anim .t-memo__hw { color: transparent; }
.t-memo__hw .t-w { display: block; width: fit-content; position: relative; color: var(--t-red); clip-path: inset(0 100% 0 0); }
.t-memo__hw .t-w.is-w { animation: tWrite .4s linear forwards; }
@keyframes tWrite { to { clip-path: inset(0 0 0 0); } }
.t-open-cover { position: fixed; inset: 0; z-index: 50; display: grid; place-items: center; background: var(--t-bg); perspective: 1200px; animation: tFade .15s both; transition: background-color .5s; }
.t-open-cover__in { width: min(390px, 86vw); transform-origin: left center; transition: transform .5s var(--t-ease), opacity .5s; }
.t-open-cover.is-go { background: transparent; pointer-events: none; }
.t-open-cover.is-go .t-open-cover__in { transform: rotateY(-160deg); opacity: 0; }
@keyframes tFade { from { opacity: 0; } }

/* ── 通知表の2ページ目（出席・生活のようす／担任の所見／次のハンコまで） */
.t-page2 { margin-top: var(--t-s5); }
.t-page2 .t-sheet__hd b { font-size: 16px; }
.t-att { width: 100%; table-layout: fixed; border-collapse: separate; border-spacing: 0; margin-top: var(--t-s3); border-radius: 14px; border: 1.5px solid var(--t-ink); overflow: hidden; }
.t-att caption { caption-side: top; text-align: left; font-family: var(--t-maru); font-weight: 900; font-size: 14px; line-height: 1.6; color: var(--t-mintD); padding-bottom: 6px; }
.t-att th { background: var(--t-mintLL); font-weight: 500; font-size: 14px; color: var(--t-sub); text-align: left; padding: var(--t-s2) var(--t-s3); width: 40%; border-bottom: 1px solid var(--t-rule); line-height: 1.5; vertical-align: middle; }
.t-att td { font-family: var(--t-hand); font-weight: 600; font-size: 17px; color: var(--t-ink); padding: var(--t-s2) var(--t-s3); border-bottom: 1px solid var(--t-rule); border-left: 1px solid var(--t-rule); line-height: 1.5; }
.t-att tr:last-child > * { border-bottom: 0; }
.t-att.is-pend td { opacity: 0; }
.t-att.is-in td { opacity: 1; transition: opacity .15s; }
.t-att.is-in tr:nth-child(2) td { transition-delay: .23s; }
.t-att.is-in tr:nth-child(3) td { transition-delay: .46s; }
.t-shoken { margin-top: var(--t-s4); border-radius: 14px; box-shadow: inset 0 0 0 1.5px var(--t-ink); padding: var(--t-s2) var(--t-s3) 56px; position: relative; }
.t-shoken__txt { font-family: var(--t-hand); font-weight: 600; color: var(--t-pen); font-size: 17px; line-height: 34px; margin-top: 2px; background-image: linear-gradient(transparent 33px, var(--t-rule) 33px); background-size: 100% 34px; }
.t-nl { display: flex; align-items: center; gap: var(--t-s2); margin-top: var(--t-s3); font-family: var(--t-maru); font-weight: 700; font-size: 15px; line-height: 1.6; color: var(--t-mintD); }
.t-nl i { flex: none; width: 20px; height: 20px; border-radius: 50%; background: var(--t-red); }
.t-kanten { display: grid; gap: var(--t-s3); }
.t-kanten dt { font-family: var(--t-maru); font-weight: 900; font-size: 15px; line-height: 1.5; }
.t-kanten dd { font-size: 15px; line-height: 1.75; margin-top: 2px; }

/* ── 区切りの見出し・本文 */
[data-world="tsuchihyo"] .t-res .sec { margin-top: var(--t-s7); }
[data-world="tsuchihyo"] .t-res .t-page2 { margin-top: var(--t-s5); }
[data-world="tsuchihyo"] .sec__h { font-family: var(--t-maru); font-weight: 900; font-size: 21px; line-height: 1.4; margin-bottom: var(--t-s2); }
[data-world="tsuchihyo"] .sec__lead { font-size: 15px; color: var(--t-sub); line-height: 1.75; margin-bottom: 0; }
[data-world="tsuchihyo"] .note { font-size: 14px; color: var(--t-sub); line-height: 1.65; margin-top: var(--t-s3); }
[data-world="tsuchihyo"] .body { font-size: 16px; line-height: 1.85; }
[data-world="tsuchihyo"] .more { margin-top: var(--t-s3); }

/* 進路指導 */
.t-verdict { font-family: var(--t-maru); font-weight: 900; font-size: 19px; line-height: 1.55; margin-top: var(--t-s4); }
.t-reason { font-size: 15px; color: var(--t-sub); line-height: 1.8; margin-top: var(--t-s2); }
.t-type { margin-top: var(--t-s3); padding: var(--t-s3); border-radius: 14px; background: #fff; }
.t-type__name { font-family: var(--t-maru); font-weight: 900; font-size: 17px; line-height: 1.5; }
.t-quotes { margin-top: var(--t-s2); display: grid; gap: var(--t-s1); font-family: var(--t-hand); font-weight: 600; color: var(--t-pen); font-size: 16px; line-height: 1.6; }
.t-kiroku { display: grid; gap: var(--t-s3); margin-top: var(--t-s3); }
.t-kiroku__i__q { font-family: var(--t-hand); font-weight: 600; color: var(--t-pen); font-size: 16px; line-height: 1.6; }
.t-kiroku__i__a { font-size: 15px; line-height: 1.75; margin-top: 2px; }
.t-tabs { display: grid; grid-template-columns: 1fr 1fr; background: var(--t-mintLL); border-radius: 999px; padding: 4px; margin-top: var(--t-s4); }
.t-tab { min-height: 44px; border: 0; background: none; font-family: var(--t-maru); font-weight: 900; font-size: 15px; line-height: 1.4; padding: 8px 4px; border-radius: 999px; color: var(--t-mintD); cursor: pointer; transition: background-color .2s, color .2s, box-shadow .2s; }
.t-tab.is-on { background: #fff; color: var(--t-ink); box-shadow: 0 2px 6px rgba(20, 80, 60, .15); }
.t-story { margin-top: var(--t-s3); }
.t-story__txt { font-size: 16px; line-height: 1.9; }
.t-story.is-swap .t-story__txt { animation: tFade .15s both; }

/* できる仕事／まだ届かない仕事 */
.t-work__c { background: #fff; border-radius: 20px; padding: var(--t-s3) var(--t-s4); box-shadow: var(--t-card); margin-top: var(--t-s3); }
.t-work__c:first-of-type { margin-top: var(--t-s4); }
.t-work__c b { display: inline-block; font-family: var(--t-maru); font-weight: 900; font-size: 14px; line-height: 1.6; border-radius: 999px; padding: 1px 10px; }
.t-work__c.is-can b { background: var(--t-mintS); color: #fff; }
.t-work__c.is-not b { background: var(--t-mintLL); color: var(--t-mintD); }
.t-work__c p { font-size: 16px; font-weight: 500; margin-top: var(--t-s1); line-height: 1.65; }

/* 宿題3つ（1つ目に詳しいやり方と補習の動画） */
.t-steps__l { margin-top: var(--t-s4); display: grid; gap: var(--t-s3); }
.t-step { background: #fff; border-radius: 20px; padding: var(--t-s4); box-shadow: var(--t-card); scroll-margin-top: var(--t-s3); }
.t-step:focus { outline: none; }
.t-step__when { display: inline-block; font-family: var(--t-maru); font-weight: 900; font-size: 14px; line-height: 1.6; color: var(--t-mintD); background: var(--t-mintLL); border-radius: 999px; padding: 1px 10px; }
.t-step.is-today { box-shadow: inset 0 0 0 2px var(--t-mint), var(--t-card); }
.t-step.is-today .t-step__when { background: var(--t-mintS); color: #fff; }
.t-step__t { font-size: 18px; font-weight: 700; line-height: 1.5; margin-top: var(--t-s2); }
.t-step__b { font-size: 15px; color: var(--t-sub); margin-top: var(--t-s2); line-height: 1.75; }
.t-hoshu { margin-top: var(--t-s4); background: var(--t-cream); border-radius: 16px; padding: var(--t-s3); }
.t-hoshu__lb { font-family: var(--t-maru); font-weight: 900; font-size: 14px; line-height: 1.6; color: #7A5400; margin-bottom: var(--t-s2); }
[data-world="tsuchihyo"] .t-video { gap: var(--t-s2); }
[data-world="tsuchihyo"] .video__th { border: 0; border-radius: 12px; }
[data-world="tsuchihyo"] .video__t { font-size: 15px; font-weight: 700; line-height: 1.55; margin-top: 0; text-decoration-thickness: 1.5px; text-underline-offset: 4px; }
[data-world="tsuchihyo"] .video__w { font-size: 14px; }

/* ── 次の一歩・シェア・もう一度・一覧（共通の部品を B2 の形に） */
[data-world="tsuchihyo"] .next { margin-top: var(--t-s7); padding: 0 var(--t-s4); }
[data-world="tsuchihyo"] .next__in { background: #fff; border: 0; border-radius: 24px; padding: var(--t-s5) var(--t-s4) var(--t-s4); box-shadow: inset 0 0 0 2px var(--next), 0 12px 28px -22px rgba(200, 60, 90, .6); }
[data-world="tsuchihyo"] .next__b { font-size: 16px; font-weight: 700; line-height: 1.75; margin-bottom: var(--t-s4); }
[data-world="tsuchihyo"] .btn-next { min-height: 54px; border: 0; border-radius: 27px; box-shadow: none; font-size: 17px; font-weight: 700; }
[data-world="tsuchihyo"] .next__more { margin-top: var(--t-s4); padding-top: var(--t-s3); border-top: 1px solid var(--t-rule); gap: var(--t-s2); }
[data-world="tsuchihyo"] .facts li { border: 0; background: var(--t-mintLL); color: var(--t-mintD); font-weight: 700; border-radius: 999px; }
[data-world="tsuchihyo"] .btn-line { border: 0; box-shadow: inset 0 0 0 1.5px var(--t-ink); border-radius: 999px; font-weight: 700; }
[data-world="tsuchihyo"] .btn-line:active { translate: 0 1px; box-shadow: inset 0 0 0 1.5px var(--t-ink); }
[data-world="tsuchihyo"] .t-res--tail { padding-bottom: var(--t-s6); }
[data-world="tsuchihyo"] .share__img { transform: none; border-radius: 12px; box-shadow: 0 10px 24px -14px rgba(20, 80, 60, .6); }
[data-world="tsuchihyo"] .retry { margin-top: var(--t-s6); justify-items: stretch; }
[data-world="tsuchihyo"] .retry .body { font-size: 14px; font-weight: 500; color: var(--t-sub); text-align: center; }
[data-world="tsuchihyo"] .retry .btn-line { min-height: 54px; font-size: 17px; }
[data-world="tsuchihyo"] .idx__item { border: 0; box-shadow: var(--t-card); border-radius: 20px; }
[data-world="tsuchihyo"] .idx__item.is-mine { outline: 2px solid var(--t-mint); outline-offset: 2px; }
[data-world="tsuchihyo"] .idx__sum::after { border-width: 0 2px 2px 0; }
[data-world="tsuchihyo"] .idx__body { border-top: 1px solid var(--t-rule); }
[data-world="tsuchihyo"] .idx__cells a { border: 0; box-shadow: inset 0 0 0 1.5px var(--t-rule); }
.t-idx__art { flex: none; width: 56px; height: 56px; display: grid; place-items: center; }
.t-badge--mini { width: 48px; height: 48px; margin: 0; transform: rotate(6deg); filter: none; }
[data-world="tsuchihyo"] .peek { border: 0; box-shadow: inset 0 0 0 1.5px var(--t-mint); background: #fff; margin-bottom: var(--t-s3); }
[data-world="tsuchihyo"] .foot { border-top: 1px solid var(--t-rule); margin: 0 var(--t-s4); padding: var(--t-s4) 0 var(--t-s6); color: var(--t-sub); }

@media (prefers-reduced-motion: reduce) {
  .t-kv .kv__cv > .t-cover, .t-kv .kv__pen, .t-kv .t-cover__strike path, .t-kv .t-cover__fix .pill, .t-tt li, .t-story.is-swap .t-story__txt { animation: none !important; transition: none !important; }
}

/* 読みたい人だけ開く欄（静かに: 細い線と白い面） */
[data-world="tsuchihyo"] .more__sum { border: 0; box-shadow: inset 0 0 0 1.5px var(--t-rule); background: #fff; border-radius: 14px; font-weight: 700; font-size: 15px; color: var(--t-ink); }
[data-world="tsuchihyo"] .more__sum::after { border-width: 0 2px 2px 0; }

/* 本文の段落は16px以上（全画面の決めごと）。カンプの15pxの所を16pxに */
[data-world="tsuchihyo"] .sec__lead, [data-world="tsuchihyo"] .retry .body, .t-kanten dd, .t-kiroku__i__a { font-size: 16px; }
/* 総合の説明（openSub）は通知表のすぐ下（2026-10-19 代表指示の並び: 言い切り → 総合の一言 → いいところ → 寄り添い → 宿題） */
.t-after { font-size: 16px; color: var(--t-sub); line-height: 1.7; margin: var(--t-s3) var(--t-s1) 0; }
/* 幅の狭いスマホ（430未満）: 「通知表ができました」の1行は省く（同じ文は読み上げ用の見出しにある）。
   並びは画面の順のまま（いいところ → 寄り添い → 宿題。2026-10-19 代表指示で、宿題を先に出すための並べ替えはやめた） */
@media (max-width: 429px) {
  .t-first { display: flex; flex-direction: column; }
  .t-first .t-made { display: none; }
  .t-first .t-sheet { margin-top: var(--t-s1); padding-top: var(--t-s3); padding-bottom: var(--t-s3); }
  .t-first .t-sogo { margin-top: var(--t-s3); }
  .t-first .t-hwk { padding-bottom: var(--t-s3); }
}

/* とても狭い幅（360未満）: 出席の表は項目の下に記入を置く。総合のハンコと字を一回り小さく（字が語の途中で折れないように） */
@media (max-width: 359px) {
  .t-att, .t-att tbody, .t-att tr, .t-att th, .t-att td { display: block; width: auto; }
  .t-att td { border-left: 0; padding-top: 2px; }
  .t-att th { border-bottom: 0; }
  .t-att caption { padding: 6px var(--t-s3); border-bottom: 1px solid var(--t-rule); }
  .t-sogo { grid-template-columns: 26px minmax(0, 1fr) 84px; }
  .t-sogo__h, .t-sogo__h.is-long { font-size: 21px; }
  .t-badge:not(.t-badge--mini) { width: 84px; height: 84px; margin-right: -10px; }
  .t-badge__t, .t-badge.is-l3 .t-badge__t { font-size: 14px; line-height: 1.2; }
}
/* 次の一歩が LINE のときは、枠もLINEの緑に（ボタンと色をそろえる） */
[data-world="tsuchihyo"] .next__in:has(.next__main.is-line) { box-shadow: inset 0 0 0 2px #06C755, 0 12px 28px -22px rgba(6, 120, 60, .5); }

/* タイプを選ぶ切り替え（段階だけののぞき見・LINE から来た人） */
[data-world="tsuchihyo"] .peek.is-again { box-shadow: inset 0 0 0 1.5px var(--t-mint); }
[data-world="tsuchihyo"] .peek__h { font-family: var(--t-maru); font-weight: 900; font-size: 19px; }
[data-world="tsuchihyo"] .tc__h { font-family: var(--t-maru); font-weight: 900; color: var(--t-ink); }
[data-world="tsuchihyo"] .tc__b { border: 0; box-shadow: inset 0 0 0 1.5px var(--t-rule); border-radius: 16px; background: #fff; }
[data-world="tsuchihyo"] .tc__b.is-on { background: var(--t-mintLL); box-shadow: inset 0 0 0 2px var(--t-mint); }
[data-world="tsuchihyo"] .tc__n { font-family: var(--t-maru); font-weight: 900; }
.t-first .tc.is-pick { margin-top: var(--t-s3); }
