@font-face{font-family:"DelaEmbed";src:url(/assets/dela.woff2) format("woff2");font-display:swap}
:root{
  --washi:#f7f5f0; --washi-2:#efece4;
  --sumi:#131317; --ink-70:rgba(19,19,23,.72);
  /* --ink-45 は小さなラベルに使うため、WCAG AA(4.5:1)を満たす濃さにしている（実測5.03） */
  --ink-45:rgba(19,19,23,.62);
  --line:rgba(19,19,23,.16);
  --ai:#2b4fd0; --murasaki:#6d3fc4; --yamabuki:#f5c800; --shinku:#c9301c;
  --ease:cubic-bezier(.22,1,.36,1);
  --mono:"Consolas","Courier New",monospace;
  --sans:"Yu Gothic","YuGothic","Hiragino Kaku Gothic ProN","Meiryo",sans-serif;
  --serif:"Yu Mincho","YuMincho","Hiragino Mincho ProN",serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--washi);color:var(--sumi);font-family:var(--sans);line-height:2;
  overflow-x:hidden;word-break:auto-phrase}
::selection{background:var(--ai);color:#fff}
img{max-width:100%}

#fx{position:fixed;inset:0;z-index:60;pointer-events:none}
.grain{position:fixed;inset:0;z-index:2;pointer-events:none;opacity:.5;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='300' height='300'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix type='saturate' values='0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.55'/%3E%3C/svg%3E");
  background-size:300px 300px}

/* ---- ヘッダー ---- */
/* 地は自分の高さいっぱいまで不透明にする。途中から透かすと、下を通る本文が
   ナビの文字と混ざって、どちらも読みづらくなる（PCで16か所が交差していた）。
   境目は、ヘッダーの外側に18pxの帯を作って和らげる。帯は文字の裏には入らない。
   ぼかしの終わりは transparent と書かず rgba で書く（Safariは透明な黒と解釈して
   灰色ににじむため） */
header{position:fixed;top:0;left:0;right:0;z-index:50;display:flex;justify-content:space-between;
  align-items:center;gap:18px;padding:18px 4.5vw;
  background:var(--washi)}
header::after{content:"";position:absolute;left:0;right:0;top:100%;height:18px;pointer-events:none;
  background:linear-gradient(var(--washi),rgba(247,245,240,0))}
.logo{font-family:var(--serif);font-weight:800;font-size:15px;letter-spacing:.28em;
  text-decoration:none;color:var(--sumi);white-space:nowrap}
.logo .a{color:var(--ai)}
.sitenav{display:flex;gap:22px;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.sitenav a{font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;text-decoration:none;
  color:var(--sumi);opacity:.6;position:relative;transition:opacity .3s;
  /* 指で押せる大きさを確保する（下線は擬似要素で引くので padding を入れても崩れない） */
  display:inline-flex;align-items:center;min-height:32px;padding:0 2px 4px}
.sitenav a::after{content:"";position:absolute;left:2px;right:2px;bottom:4px;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:right;transition:transform .4s var(--ease)}
.sitenav a:hover,.sitenav a:focus-visible{opacity:1}
.sitenav a:hover::after,.sitenav a:focus-visible::after{transform:scaleX(1);transform-origin:left}
.sitenav a[aria-current]{opacity:1}
.sitenav a[aria-current]::after{transform:scaleX(1)}
/* 本文へスキップ。Tabで到達したときだけ左上に出る */
.skiplink{position:fixed;left:8px;top:-60px;z-index:99;background:var(--sumi);color:var(--washi);
  text-decoration:none;font-size:12px;letter-spacing:.12em;padding:.75em 1.4em;
  transition:top .2s var(--ease)}
.skiplink:focus{top:8px}
main:focus{outline:none}
/* キーボード操作で現在地が分かるよう、全ての操作要素に枠を出す */
a:focus-visible,button:focus-visible,input:focus-visible,
[tabindex]:focus-visible{outline:2px solid var(--ai);outline-offset:3px;border-radius:1px}
.logo:focus-visible,.sitenav a:focus-visible,footer a:focus-visible{
  outline:2px solid var(--ai);outline-offset:2px}
@media(max-width:760px){
  header{padding:14px 5vw}
  .sitenav{gap:13px}
  .sitenav a{font-size:9px;letter-spacing:.1em}
}

/* ---- 読み始めたら畳むヘッダー（狭幅・base.jsが作るヘッダーだけ） ---- */
/* 狭い画面ではナビが3段に折り返し、ヘッダーが150px＝画面の23%を占めていた。
   さらに地の紙色は105pxで透明になりきるので、本文がナビの裏を素通りしていた。
   開いた直後は今までどおり全部見せ、下へ読み始めた瞬間から畳む。 */
.navtoggle{display:none;align-items:center;gap:9px;background:none;border:0;cursor:pointer;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em;color:var(--sumi);
  padding:0 2px;min-height:34px}
.navtoggle .bars{display:inline-flex;flex-direction:column;justify-content:center;gap:4px;width:17px}
.navtoggle .bars i{display:block;height:1.5px;background:currentColor;transition:width .3s var(--ease)}
.navtoggle .bars i:last-child{width:11px;margin-left:auto}   /* 筆の払いのように右を短く */
.navtoggle[aria-expanded="true"] .bars i:last-child{width:17px}
@media(max-width:760px){
  header.hdr-auto.compact{padding:9px 5vw;border-bottom:1px solid var(--line)}
  /* 畳んだ状態は細い罫で境目を示すので、ぼかしの帯は出さない
     （開いたメニューの上に帯が重なるのも防ぐ） */
  header.hdr-auto.compact::after{display:none}
  header.hdr-auto.compact .sitenav{display:none}
  header.hdr-auto.compact .navtoggle{display:inline-flex}
  /* 畳んだ状態で押したときだけ、全リンクを読める大きさで開く */
  header.hdr-auto.compact.open .sitenav{display:flex;flex-direction:column;align-items:stretch;gap:0;
    position:absolute;left:0;right:0;top:100%;padding:2px 5vw 12px;
    background:var(--washi);border-bottom:1px solid var(--line)}
  header.hdr-auto.compact.open .sitenav a{font-size:12px;letter-spacing:.14em;opacity:.85;
    min-height:46px;padding:0 2px;border-bottom:1px solid var(--line)}
  header.hdr-auto.compact.open .sitenav a:last-child{border-bottom:0}
  header.hdr-auto.compact.open .sitenav a::after{display:none}
  /* 広げた状態の高さぶん、本文の開始位置を下げる（畳んだ後の高さ54pxは差し引く）。
     これで一番上でも見出しがナビと重ならない */
  main{padding-top:calc(var(--headh,54px) - 54px)}
}

/* ---- 題箋（ページ見出し） ---- */
main{position:relative;z-index:5}
.wrap{max-width:1100px;margin:0 auto;padding:0 max(5vw,22px)}
.cartouche{min-height:74vh;display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;padding:14vh 5vw 8vh}
.cartouche .frame{border:1.5px solid var(--sumi);padding:5vh 6vw;position:relative;
  background:rgba(247,245,240,.55);max-width:100%}
@media(max-width:420px){
  /* 狭幅では題箋の余白を詰めて枠が画面から出ないようにする */
  .cartouche{padding:13vh 4vw 7vh}
  .cartouche .frame{padding:4vh 5vw}
  .cartouche h1{font-size:clamp(23px,7.4vw,34px);letter-spacing:.1em}
  .cartouche .en{font-size:9px;letter-spacing:.28em}
  .cartouche .sub{font-size:11.5px;letter-spacing:.08em}
}
.cartouche .frame::before,.cartouche .frame::after{content:"";position:absolute;width:12px;height:12px;
  border:1.5px solid var(--sumi)}
.cartouche .frame::before{top:6px;left:6px;border-right:none;border-bottom:none}
.cartouche .frame::after{bottom:6px;right:6px;border-left:none;border-top:none}
.cartouche .en{font-family:var(--mono);font-size:10px;letter-spacing:.4em;color:var(--ink-45)}
.cartouche h1{font-family:var(--serif);font-weight:800;letter-spacing:.16em;margin:2vh 0 1vh;
  font-size:clamp(28px,5vw,58px);line-height:1.25}
.cartouche .sub{font-family:var(--serif);font-size:clamp(12.5px,1.5vw,16px);letter-spacing:.12em;
  color:var(--ink-70)}

/* ---- 汎用の見出し・本文 ---- */
.sec{padding:7vh 0;border-top:1px solid var(--line)}
.sec:first-of-type{border-top:none}
.kick{font-family:var(--mono);font-size:9.5px;letter-spacing:.3em;color:var(--ink-45)}
.sec h2{font-family:var(--serif);font-weight:800;letter-spacing:.1em;line-height:1.35;
  font-size:clamp(20px,2.9vw,34px);margin-top:.8vh}
.sec h3{font-family:var(--serif);font-weight:800;letter-spacing:.06em;font-size:clamp(15px,1.9vw,20px);
  margin-top:3.4vh}
.sec p{margin-top:1.6vh;font-size:13.5px;line-height:2.05;color:var(--ink-70)}
.sec p.lead{font-family:var(--serif);font-weight:700;color:var(--sumi);
  font-size:clamp(15px,2.1vw,22px);line-height:2}
.sec ul{margin-top:1.6vh;padding-left:1.15em}
.sec li{font-size:13.5px;line-height:2.05;color:var(--ink-70);margin-top:.4em}
.sec a{color:var(--ai)}
/* 暗い面に置く要素は .sec p / .sec a の色指定より強くする（暗地に暗字を防ぐ） */
.sec a.cta{color:var(--washi)}
.sec .on-dark,.sec .on-dark p,.sec .on-dark li,.sec .on-dark span,
.sec .on-dark b,.sec .on-dark td,.sec .on-dark th{color:inherit}
.fade{opacity:0;transform:translateY(16px);transition:opacity .8s ease,transform 1s var(--ease)}
.in .fade,.fade.in{opacity:1;transform:none}

/* ---- 表 ---- */
.tbl{width:100%;border-collapse:collapse;margin-top:2.2vh;border:1.5px solid var(--sumi);
  background:rgba(255,255,255,.55)}
.tbl th,.tbl td{text-align:left;vertical-align:top;padding:11px 16px;font-size:13px;line-height:1.85;
  border-top:1px solid var(--line)}
.tbl th{width:9em;font-weight:700;color:var(--ink-70);font-size:12px}
.tbl tr:first-child th,.tbl tr:first-child td{border-top:none}
@media(max-width:640px){.tbl th{width:6.6em;font-size:11px}.tbl th,.tbl td{padding:9px 12px;font-size:12.5px}}

/* ---- ボタン ---- */
.cta{display:inline-flex;align-items:center;gap:12px;margin-top:3vh;background:var(--sumi);
  color:var(--washi);text-decoration:none;font-family:var(--serif);font-weight:700;letter-spacing:.14em;
  font-size:15px;padding:1em 2.2em;transition:transform .4s var(--ease),box-shadow .4s var(--ease)}
.cta:hover{transform:translateY(-3px);box-shadow:0 12px 26px rgba(19,19,23,.22)}
.cta:focus-visible{outline:3px solid var(--ai);outline-offset:4px}

/* ---- 次の行き先 ----
   読み終えた人がそこで止まらないように、本文の最後に置く。
   フッターの一覧とは役割が違う。このページを読んだ人にとって自然な次だけを並べる。 */
.nextup{margin-top:6vh;padding-top:3.4vh;border-top:1px solid var(--line)}
.nextup .h{font-family:var(--mono);font-size:9.5px;letter-spacing:.24em;color:var(--ink-45)}
.nextup ul{margin-top:15px;padding:0;list-style:none;
  display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.nextup li a{display:block;height:100%;border:1px solid var(--line);
  background:rgba(255,255,255,.5);padding:16px 17px;text-decoration:none;color:inherit;
  transition:border-color .3s,background .3s,transform .3s var(--ease)}
.nextup li a:hover,.nextup li a:focus-visible{
  border-color:var(--sumi);background:rgba(255,255,255,.9);transform:translateY(-2px)}
.nextup b{display:block;font-family:var(--serif);font-weight:800;font-size:14.5px;line-height:1.5}
.nextup .lead b{color:var(--ai)}
.nextup span{display:block;margin-top:7px;font-size:12px;line-height:1.85;color:var(--ink-70)}
@media(max-width:760px){.nextup ul{grid-template-columns:1fr}}

/* ---- フッター ---- */
footer{padding:9vh 0 7vh;border-top:1px solid var(--line);text-align:center}
footer .fl{display:flex;gap:24px;justify-content:center;flex-wrap:wrap;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.18em}
footer .fl a{color:var(--ink-70);text-decoration:none;border-bottom:1px solid var(--line);padding-bottom:3px}
footer .fl a:hover{color:var(--sumi)}
footer .cp{margin-top:3.4vh;font-family:var(--mono);font-size:10px;letter-spacing:.22em;color:var(--ink-45)}
@media(prefers-reduced-motion:reduce){.fade{opacity:1!important;transform:none!important}}

/* ---- 印刷（会社概要・プライバシーポリシーは紙で読まれる想定） ---- */
@media print{
  @page{margin:16mm 14mm}
  html,body{background:#fff!important;color:#000!important}
  /* 画面用の濃い面（解剖パネル等）は紙では白地になるため、白文字が消えてしまう。
     まとめて黒字・背景なしに倒す。個別指定は詳細度が上なのでこの後も効く。 */
  *{color:#000!important;background-color:transparent!important;background-image:none!important;
    box-shadow:none!important;text-shadow:none!important}
  .grain,#fx,header,footer,.cur,.skiplink{display:none!important}
  main{padding-top:0}
  .fade{opacity:1!important;transform:none!important}
  .wrap{max-width:none;padding:0}
  .cartouche{min-height:auto;padding:0 0 8mm;display:block;text-align:left}
  .cartouche .frame{border:none;padding:0;background:none}
  .cartouche .frame::before,.cartouche .frame::after{display:none}
  .cartouche h1{font-size:22pt;margin:2mm 0}
  .cartouche .en{font-size:7pt;letter-spacing:.2em}
  .cartouche .sub{font-size:9pt}
  .sec{padding:5mm 0;page-break-inside:avoid;border-top:1px solid #ccc}
  .sec h2{font-size:13pt}
  .sec h3{font-size:11pt}
  .sec p,.sec li,.tbl th,.tbl td{font-size:9.5pt;line-height:1.7;color:#000!important}
  .kick{font-size:7pt;color:#555!important}
  .tbl{border:1px solid #000;background:none!important}
  .tbl th,.tbl td{border-top:1px solid #ccc}
  .cta{background:none!important;color:#000!important;border:1px solid #000;
    padding:2mm 4mm;font-size:9.5pt}
  /* 紙では押せないリンクの行き先を書き出す */
  a[href^="http"]::after{content:" (" attr(href) ")";font-size:8pt;color:#555;word-break:break-all}
  /* メールアドレスは画面に出さない方針なので紙にも出さない。
     加えて mailto は ?subject= が長く、折り返せずに表ごと紙幅を突き破っていた。 */
  a[href^="mailto"]::after{content:""}
  a[href^="/"]::after{content:""}
  /* 印刷では読めない・不要な要素を落とす */
  .quiz,.filters,.dissect,.pipe,.entry .e-main,.nodedesc{page-break-inside:avoid}
}
