@charset "utf-8";
/*
 * hiro-article.css — 記事本文の共通デザイン部品
 * ------------------------------------------------------------------
 * 使い方: 記事本文を <div id="hiroGyk" class="hiro-gyk"> … </div> で包む。
 *         あとは下記のクラスを付けるだけ。記事側に <style> は書かない。
 *
 * なぜ id なのか:
 *   親テーマの #archiveboxnormal img{width:100%} がID詰みで勝つため、
 *   クラスだけでは画像サイズを制御できない。1ページ1記事なので
 *   同じ id を全記事で使い回してよい。
 *
 * 部品の一覧と使い分けは skills/hiroacademia-blog/references/components.md
 * ------------------------------------------------------------------
 */

#hiroGyk.hiro-gyk{font-family:var(--gothic);font-size:16px;line-height:1.95;color:var(--ink);background:var(--ground);padding:24px;-webkit-font-smoothing:antialiased}
#hiroGyk *{box-sizing:border-box}
#hiroGyk{display:flow-root}
#hiroGyk>article{width:auto;max-width:none;float:none;clear:both;margin:0;padding:0;background:transparent;border:0}
#hiroGyk img{max-width:100%;height:auto}
#hiroGyk.hiro-gyk{--navy:#101a3d; --navy-soft:#26325c; --gold:#a8802f; --gold-line:#c8a24c; --crimson:#b3202f; --ground:#faf7f1; --panel:#ffffff; --panel-2:#f3efe6; --ink:#1b1e2c; --muted:#63687d; --rule:#ddd6c7; --rule-soft:#e9e3d6; --mark:#fff1a8; --mark-ink:#1b1e2c; --band:#101a3d; --band-ink:#ffffff; --line:#25a244; --line-ink:#ffffff; --ok:#dbe5ff; --ok2:#f1e7cc; --ok3:#ecebe8; --ng:#f7f7f7; --mincho:"Zen Old Mincho","Hiragino Mincho ProN","Yu Mincho",serif; --gothic:"Zen Kaku Gothic New","Hiragino Sans","Yu Gothic",sans-serif; --measure:576px; --c-start:#7086c9; --c-end:#b07d24; --grid:#e6dfd0; --surface:#ffffff;}
#hiroGyk .tag.done{background:var(--ok);color:var(--ink)}
#hiroGyk .tag.ask{background:var(--crimson);color:#fff}
#hiroGyk article{padding-top:48px;display:flex;flex-direction:column;gap:51.2px}
#hiroGyk section{display:flex;flex-direction:column;gap:17.6px}
#hiroGyk section > p, #hiroGyk section > ul, #hiroGyk section > ol{max-width:var(--measure);margin:0}
#hiroGyk h2{font-family:var(--mincho);font-size:clamp(20px,2.6vw,24.8px);font-weight:700;color:var(--navy);margin:0;line-height:1.55;text-wrap:balance;padding:6.4px 0 8px 14.4px;border-left:6px solid var(--navy);border-bottom:1px solid var(--rule)}
#hiroGyk h3{font-family:var(--mincho);font-size:17.6px;font-weight:700;color:var(--navy-soft);margin:12.8px 0 0;line-height:1.6;padding-left:11.2px;border-left:3px solid var(--gold-line)}
#hiroGyk p{margin:0}
#hiroGyk a{color:var(--gold);text-underline-offset:.2em}
#hiroGyk a:focus-visible{outline:2px solid var(--gold-line);outline-offset:3px}
#hiroGyk ul, #hiroGyk ol{padding-left:19.2px;display:flex;flex-direction:column;gap:8px}
#hiroGyk li::marker{color:var(--gold-line)}
#hiroGyk strong{font-weight:700;color:var(--ink)}
#hiroGyk .mk{background:var(--mark);color:var(--mark-ink);font-weight:700;padding:0 2.4px}
#hiroGyk .red{color:var(--crimson);font-weight:700}
#hiroGyk .cap{font-family:var(--mincho);font-weight:700;color:var(--navy);font-size:16px;margin:0;max-width:none}
#hiroGyk .cap::before{content:"◆ ";color:var(--gold)}
#hiroGyk .note{font-size:13.12px;color:var(--muted);max-width:var(--measure)}
#hiroGyk .lede p{font-size:16.64px}
#hiroGyk .answer{border:2px solid var(--navy);background:var(--panel);padding:17.6px 20.8px;display:flex;flex-direction:column;gap:9.6px;max-width:var(--measure)}
#hiroGyk .answer .h{font-family:var(--mincho);font-weight:700;color:var(--navy);font-size:16.32px}
#hiroGyk .answer ol{padding-left:0;list-style:none;gap:7.2px}
#hiroGyk .answer li{display:grid;grid-template-columns:1.5em 1fr;gap:5.6px;align-items:baseline}
#hiroGyk .answer li b{font-family:var(--mincho);color:var(--crimson);font-size:18.4px}
#hiroGyk .toc{border:1px solid var(--rule);background:var(--panel-2);padding:16px 20.8px;max-width:var(--measure)}
#hiroGyk .toc .h{font-size:11.52px;letter-spacing:.16em;font-weight:700;color:var(--muted);margin-bottom:6.4px}
#hiroGyk .toc ol{gap:4px;font-size:14.72px}
#hiroGyk .toc a{color:var(--navy);font-weight:500}
#hiroGyk .cta{background:var(--band);color:var(--band-ink);padding:22.4px 24px;display:flex;flex-direction:column;gap:12.8px}
#hiroGyk .cta .brand{font-family:var(--mincho);font-weight:900;font-size:21.6px;line-height:1.4}
#hiroGyk .cta .brand small{display:block;font-family:var(--gothic);font-size:12.8px;font-weight:700;letter-spacing:.08em;opacity:.85}
#hiroGyk .cta p{max-width:none;font-size:14.72px;opacity:.92}
#hiroGyk .btns{display:flex;flex-wrap:wrap;gap:9.6px}
#hiroGyk .btn{display:inline-block;text-decoration:none;font-weight:700;padding:10.4px 17.6px;border-radius:3px;font-size:14.72px;line-height:1.4}
#hiroGyk .btn.main{background:var(--gold);color:#fff}
#hiroGyk .btn.line{background:var(--line);color:var(--line-ink)}
#hiroGyk .btn.ghost{background:transparent;color:var(--band-ink);border:1px solid currentColor}
#hiroGyk .cta.mid{border-left:6px solid var(--gold)}
#hiroGyk .scroller{overflow-x:auto;border:1px solid var(--rule);background:var(--panel)}
#hiroGyk table{border-collapse:collapse;width:100%;font-size:14.4px;min-width:544px}
#hiroGyk th, #hiroGyk td{padding:10.4px 14.4px;text-align:left;border-bottom:1px solid var(--rule-soft);vertical-align:top}
#hiroGyk th{font-size:11.84px;letter-spacing:.08em;color:var(--muted);font-weight:700;white-space:nowrap;background:var(--panel-2)}
#hiroGyk tbody tr:last-child td{border-bottom:none}
#hiroGyk td.when{white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--navy);font-weight:700}
#hiroGyk td.dest{font-family:var(--mincho);font-weight:700;color:var(--navy)}
#hiroGyk td.num{color:var(--crimson);font-weight:700}
#hiroGyk .ronin td.when{color:var(--crimson)}
#hiroGyk td a.jump{font-size:12.8px;white-space:nowrap}
#hiroGyk .rx{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
#hiroGyk .rx > div{background:var(--panel);padding:16px 16px 17.6px;display:flex;flex-direction:column;gap:5.6px}
#hiroGyk .rx .band{font-family:var(--mincho);font-weight:900;font-size:24px;color:var(--navy);line-height:1.2}
#hiroGyk .rx .band small{font-size:12px;font-family:var(--gothic);font-weight:700;color:var(--muted);display:block;letter-spacing:.08em}
#hiroGyk .rx .do{font-weight:700;color:var(--crimson);font-size:16px;line-height:1.5}
#hiroGyk .rx .why{font-size:13.12px;color:var(--muted);line-height:1.6}
#hiroGyk .scores{display:grid;grid-template-columns:repeat(auto-fit,minmax(256px,1fr));gap:1px;background:var(--rule-soft);border:1px solid var(--rule)}
#hiroGyk .score{background:var(--panel);padding:16px 17.6px;display:flex;flex-direction:column;gap:7.2px}
#hiroGyk .cases .pid{display:block;font-family:var(--gothic);font-size:11.2px;font-weight:700;letter-spacing:.04em;color:var(--gold);margin-bottom:2.4px}
#hiroGyk .who .pid{display:inline-block;font-family:var(--gothic);font-size:11.2px;font-weight:700;letter-spacing:.04em;color:#fff;background:var(--navy);border-radius:2.4px;padding:1.6px 6.4px;margin-right:6.4px;vertical-align:1.6px}
#hiroGyk .score .hd{display:flex;align-items:center;gap:11.2px}
#hiroGyk .score .av{width:52px;height:52px;border-radius:50%;object-fit:cover;background:#eee;border:1px solid var(--rule);flex:0 0 auto}
#hiroGyk .score .whowrap{display:flex;flex-direction:column;gap:1.6px;min-width:0}
#hiroGyk .score .who{font-family:var(--mincho);font-weight:700;color:var(--navy);font-size:16px;line-height:1.4}
#hiroGyk .score .when{font-size:12px;color:var(--muted);letter-spacing:.05em}
#hiroGyk .score .pair{display:flex;align-items:baseline;gap:8px;font-variant-numeric:tabular-nums;font-size:14.72px;flex-wrap:wrap}
#hiroGyk .score .from{color:var(--muted)}
#hiroGyk .score .arrow{color:var(--gold);font-weight:700}
#hiroGyk .score .to{color:var(--crimson);font-weight:700;font-size:16.8px}
#hiroGyk .mini{position:relative;height:10px;background:var(--panel-2);margin-top:3.2px}
#hiroGyk .mini i{position:absolute;top:0;height:100%;background:var(--c-end);border-radius:0 3px 3px 0}
#hiroGyk .mini b{position:absolute;top:-2px;width:14px;height:14px;border-radius:50%;background:var(--c-start);margin-left:-7px}
#hiroGyk .mini-ax{display:flex;justify-content:space-between;font-size:10.56px;color:var(--muted);font-variant-numeric:tabular-nums}
#hiroGyk .score .sub{font-size:12.8px;color:var(--muted);line-height:1.6}
#hiroGyk figure{margin:0;display:flex;flex-direction:column;gap:11.2px}
#hiroGyk figure img{display:block;width:100%;height:auto;border:1px solid var(--rule)}
#hiroGyk figcaption{font-size:12.8px;color:var(--muted);line-height:1.7;max-width:var(--measure)}
#hiroGyk figcaption b{color:var(--ink)}
#hiroGyk .chart{border:1px solid var(--rule);background:var(--panel);padding:19.2px 19.2px 16px;display:flex;flex-direction:column;gap:14.4px}
#hiroGyk .chart-sub{font-size:12.8px;color:var(--muted);line-height:1.6}
#hiroGyk .legend{display:flex;gap:19.2px;flex-wrap:wrap;font-size:12.48px;color:var(--muted)}
#hiroGyk .legend span{display:inline-flex;align-items:center;gap:6.4px}
#hiroGyk .swatch{width:10px;height:10px;border-radius:50%;display:inline-block}
#hiroGyk .sw-start{background:var(--c-start)}
#hiroGyk .sw-end{background:var(--c-end)}
#hiroGyk .chart .scroller{border:none;background:none;overflow-x:auto}
#hiroGyk .chart svg{min-width:608px}
#hiroGyk .bar-row.peak .fill{background:var(--c-start)}
#hiroGyk .bar-row.peak .lab{font-weight:700;color:var(--crimson)}
#hiroGyk .tl{display:grid;grid-template-columns:repeat(5,1fr);gap:0;position:relative;border:1px solid var(--rule);background:var(--panel)}
#hiroGyk .tl > div{padding:16px 12.8px 16px;border-right:1px solid var(--rule-soft);display:flex;flex-direction:column;gap:4.8px;position:relative}
#hiroGyk .tl > div:last-child{border-right:none}
#hiroGyk .tl .dot{width:14px;height:14px;border-radius:50%;background:var(--c-start);border:3px solid var(--panel);box-shadow:0 0 0 2px var(--c-start);margin-bottom:4.8px}
#hiroGyk .tl > div::before{content:"";position:absolute;left:0;right:0;top:calc(16px + 7px);height:2px;background:var(--rule)}
#hiroGyk .tl .dot{position:relative;z-index:1}
#hiroGyk .tl .n{font-size:10.88px;letter-spacing:.12em;color:var(--gold);font-weight:700}
#hiroGyk .tl .st{font-family:var(--mincho);font-weight:700;color:var(--navy);font-size:15.68px;line-height:1.4}
#hiroGyk .tl .tac{font-size:12.8px;font-weight:700;color:var(--crimson);line-height:1.5}
#hiroGyk .tl .ex{font-size:11.84px;color:var(--muted);line-height:1.55}
#hiroGyk .tl > div.hot .dot{background:var(--crimson);box-shadow:0 0 0 2px var(--crimson)}
#hiroGyk .vs{display:grid;grid-template-columns:1fr auto 1fr;gap:0;border:1px solid var(--rule);background:var(--panel);align-items:stretch}
#hiroGyk .vs > div{padding:17.6px 19.2px;display:flex;flex-direction:column;gap:8px}
#hiroGyk .vs .h{font-size:11.52px;letter-spacing:.14em;font-weight:700;color:var(--muted)}
#hiroGyk .vs .big{font-family:var(--mincho);font-weight:900;font-size:21.6px;line-height:1.35;color:var(--navy)}
#hiroGyk .vs .before .big{color:var(--muted)}
#hiroGyk .vs .after .big{color:var(--crimson)}
#hiroGyk .vs ul{font-size:14.08px;gap:4.8px}
#hiroGyk .vs .mid{display:flex;align-items:center;justify-content:center;font-size:0;padding:0 9.6px;background:var(--panel-2)}
#hiroGyk .vs .mid::before{content:"→";font-family:var(--mincho);font-size:25.6px;color:var(--gold);line-height:1}
#hiroGyk .ox th:first-child{width:36%}
#hiroGyk .ox td.o{color:var(--navy);font-weight:700}
#hiroGyk .ox td.x{color:var(--muted)}
#hiroGyk .ox td.o::before{content:"○ ";color:var(--crimson)}
#hiroGyk .ox td.x::before{content:"× ";color:var(--muted)}
#hiroGyk .matrix td{text-align:center;font-weight:700;font-size:16px;white-space:nowrap}
#hiroGyk .matrix td:first-child{text-align:left;font-family:var(--mincho);color:var(--navy)}
#hiroGyk .matrix td.a{background:var(--ok);color:var(--navy)}
#hiroGyk .matrix td.b{background:var(--ok2)}
#hiroGyk .matrix td.c{background:var(--ok3);color:var(--muted)}
#hiroGyk .matrix td.d{background:var(--ng);color:var(--muted)}
#hiroGyk .matrix small{display:block;font-size:10.56px;font-weight:400;color:var(--muted);letter-spacing:.02em}
#hiroGyk .mlegend{display:flex;flex-wrap:wrap;gap:6.4px 19.2px;font-size:12.48px;color:var(--muted)}
#hiroGyk .faq{display:flex;flex-direction:column;gap:19.2px;max-width:var(--measure)}
#hiroGyk .qa{display:flex;flex-direction:column;gap:5.6px;border-bottom:1px solid var(--rule-soft);padding-bottom:16px}
#hiroGyk .qa .q{font-family:var(--mincho);font-weight:700;color:var(--navy);font-size:16.32px;line-height:1.6}
#hiroGyk .qa .q::before{content:"Q. ";color:var(--gold)}
#hiroGyk .qa .a::before{content:"A. ";color:var(--crimson);font-weight:700}
#hiroGyk .strengths{display:grid;grid-template-columns:repeat(auto-fit,minmax(208px,1fr));gap:1px;background:var(--rule);border:1px solid var(--rule)}
#hiroGyk .strengths > div{background:var(--panel);padding:16px 17.6px;display:flex;flex-direction:column;gap:4px}
#hiroGyk .strengths .n{font-family:var(--mincho);font-weight:900;color:var(--gold);font-size:20.8px;line-height:1}
#hiroGyk .strengths .t{font-weight:700;color:var(--navy);font-size:16px;line-height:1.4}
#hiroGyk .strengths .d{font-size:13.12px;color:var(--muted);line-height:1.6}
#hiroGyk blockquote{margin:0;padding:16px 19.2px;background:var(--panel-2);border-left:3px solid var(--gold-line);font-family:var(--mincho);font-size:16px;line-height:1.85;max-width:var(--measure)}
#hiroGyk blockquote cite{display:block;margin-top:8px;font-family:var(--gothic);font-style:normal;font-size:12.48px;color:var(--muted)}
@media (max-width:640px){
#hiroGyk .rx{grid-template-columns:1fr}
}
@media (max-width:760px){
#hiroGyk .tl{grid-template-columns:1fr}
#hiroGyk .tl > div{border-right:none;border-bottom:1px solid var(--rule-soft)}
#hiroGyk .tl > div::before{display:none}
}
@media (max-width:640px){
#hiroGyk .vs{grid-template-columns:1fr}
#hiroGyk .vs .mid{padding:5.6px 0}
#hiroGyk .vs .mid::before{content:"↓"}
}
#hiroGyk h2, #hiroGyk h3{background:none;text-align:left}
#hiroGyk h2::before, #hiroGyk h2::after, #hiroGyk h3::before, #hiroGyk h3::after{content:none;display:none}
#hiroGyk ul li, #hiroGyk ol li{background:none;list-style-position:outside}
#hiroGyk table{margin:0}
#hiroGyk a{text-decoration:underline}
#hiroGyk .btn, #hiroGyk .btn:hover{text-decoration:none;color:#fff}
#hiroGyk .btn.ghost{color:var(--band-ink)}
#hiroGyk .toc a{text-decoration:none}
#hiroGyk figure{width:auto}.hiro-gyk article, #hiroGyk section, #hiroGyk .faq, #hiroGyk .bars{min-height:0}
#hiroGyk article > *, #hiroGyk section > *, #hiroGyk .faq > *{flex:0 0 auto;min-height:auto}
#hiroGyk .toc ol, #hiroGyk .answer ol{flex:0 0 auto}
#hiroGyk .toc, #hiroGyk figure, #hiroGyk section, #hiroGyk article{width:auto;height:auto;background-image:none}
#hiroGyk .toc-wrap, #hiroGyk .nlink-wrap{max-width:576px}
#hiroGyk .toc-wrap #toc_container{width:auto;max-width:none;margin:0}
#hiroGyk article > *, #hiroGyk section > *, #hiroGyk .faq > *{min-width:0}
#hiroGyk .scroller{max-width:100%}

@media (max-width:640px){
#hiroGyk table{min-width:0;font-size:12.8px}
#hiroGyk th, #hiroGyk td{padding:8px 6.4px}
#hiroGyk table.cases th:nth-child(4), #hiroGyk table.cases td:nth-child(4){display:none}
#hiroGyk table.matrix{font-size:11.2px}
#hiroGyk table.matrix th, #hiroGyk table.matrix td{padding:4.8px 1.6px}
#hiroGyk table.ox{font-size:12px}
#hiroGyk table.ox th, #hiroGyk table.ox td{padding:6.4px 3.2px}
#hiroGyk table.ox th:first-child{width:30%}
#hiroGyk table.matrix th, #hiroGyk table.matrix td{padding:4.8px 1.2px}
}

#hiroGyk .eng-list{display:none;flex-direction:column;gap:8.8px}
#hiroGyk .er{display:flex;flex-direction:column;gap:3.2px}
#hiroGyk .el{font-size:13.1px;line-height:1.4;display:flex;align-items:baseline;gap:6.4px;flex-wrap:wrap}
#hiroGyk .el b{color:var(--crimson);font-variant-numeric:tabular-nums}
#hiroGyk .el small{color:var(--muted);font-size:11.2px;margin-left:auto}
#hiroGyk .eng-list .mini{height:8px}
#hiroGyk .eng-list .mini b{width:12px;height:12px;top:-2px;margin-left:-6px}
#hiroGyk blockquote::before, #hiroGyk blockquote::after{content:none;display:none}
#hiroGyk blockquote{font-style:normal;padding:16px 19px}
@media (max-width:640px){
#hiroGyk .eng-list{display:flex}
#hiroGyk .chart-svg{display:none}
#hiroGyk th{white-space:normal}
#hiroGyk table.matrix small{display:none}
#hiroGyk table.matrix td:first-child{font-size:12.8px}
#hiroGyk table.ox th:first-child{width:28%}
#hiroGyk .tl > div{display:grid;grid-template-columns:22px 1fr;grid-template-rows:auto auto auto auto;column-gap:11px;row-gap:2px;padding:14px 13px;position:relative;border-right:none;border-bottom:1px solid var(--rule-soft)}
#hiroGyk .tl > div::before{display:block;left:18px;right:auto;top:0;bottom:0;width:2px;height:auto;background:var(--rule)}
#hiroGyk .tl > div:first-child::before{top:16px}
#hiroGyk .tl > div:last-child::before{bottom:auto;height:19px}
#hiroGyk .tl .dot{grid-row:1/5;align-self:start;margin:0;position:relative;left:-1px;top:2px}
#hiroGyk .tl .n, #hiroGyk .tl .st, #hiroGyk .tl .tac, #hiroGyk .tl .ex{grid-column:2}
}
#hiroGyk .blog-card a, #hiroGyk .blog-card a:hover{text-decoration:none;color:#101a3d}
#hiroGyk .blog-card-title{color:#101a3d}
#hiroGyk .blog-card:hover .blog-card-title{color:#a8802f}

#hiroGyk .mentor{border:1px solid var(--rule);border-top:3px solid var(--navy);background:var(--panel);padding:17.6px 19.2px 19.2px;display:flex;flex-direction:column;gap:11.2px;max-width:576px}
#hiroGyk .mentor-hd{display:flex;align-items:center;gap:13.6px}
#hiroGyk .mentor-av{width:72px;height:72px;border-radius:50%;object-fit:cover;border:1px solid var(--rule);flex:0 0 auto;background:var(--panel-2)}
#hiroGyk .mentor-lab{font-size:11.2px;letter-spacing:.14em;color:var(--gold);font-weight:700;margin-bottom:3.2px}
#hiroGyk .mentor-name{font-family:var(--mincho);font-weight:700;color:var(--navy);font-size:17.3px;line-height:1.35}
#hiroGyk .mentor-name span{display:block;font-family:var(--gothic);font-size:11.8px;font-weight:500;color:var(--muted);margin-top:3.2px;line-height:1.5}
#hiroGyk .mentor-pair{display:flex;align-items:baseline;gap:9.6px;flex-wrap:wrap;padding:8px 12.8px;background:var(--panel-2);font-size:14.4px}
#hiroGyk .mentor-pair .from{color:var(--muted)}
#hiroGyk .mentor-pair .arrow{color:var(--gold);font-weight:700}
#hiroGyk .mentor-pair .to{color:var(--crimson);font-weight:700;font-size:16px}
#hiroGyk .mentor p{font-size:14.4px;line-height:1.85}
#hiroGyk .mentor-note{font-size:12.8px;color:var(--muted);border-top:1px solid var(--rule-soft);padding-top:9.6px}
@media (max-width:640px){
#hiroGyk .mentor{padding:14px 13px 15px}
#hiroGyk .mentor-av{width:60px;height:60px}
#hiroGyk .mentor-name{font-size:16px}
}
