/* =========================================================
   7of9.jp  —  CYBERPUNK COSTUME  v3  (cyber-SF / deep blue)
   既存CSSの「あと」に読み込むだけの着せ替え。外せば元に戻る。
   ========================================================= */

@import url('https://fonts.googleapis.com/css2?family=Orbitron:wght@500;700;900&family=M+PLUS+1+Code:wght@300;400;500;700&display=swap');

:root {
  --cy-bg0:     #010611;
  --cy-bg1:     #031230;
  --cy-bg2:     #06275a;
  --cy-panel:   rgba(6, 22, 56, 0.55);
  --cy-line:    rgba(127, 232, 255, 0.16);
  --cy-text:    #e8f6ff;
  --cy-dim:     #8fb4d9;
  --cy-cyan:    #4ff3ff;
  --cy-ice:     #9fdcff;
  --cy-magenta: #ff3ec8;
  --cy-font:    'Orbitron', 'M PLUS 1 Code', sans-serif;   /* 英数字はOrbitron、日本語はM PLUS 1 Code */
  --cy-font-jp: 'M PLUS 1 Code', 'Orbitron', sans-serif;
}

/* ---------- 地：深いサイバーブルーの濃淡 ---------- */
html {
  background:
    radial-gradient(1100px 700px at 78% 8%,  rgba(30, 140, 255, 0.28), transparent 60%),
    radial-gradient(900px 600px  at 8% 55%,  rgba(0, 220, 255, 0.14),  transparent 62%),
    radial-gradient(700px 500px  at 92% 85%, rgba(255, 62, 200, 0.10), transparent 60%),
    linear-gradient(rgba(127, 232, 255, 0.045) 1px, transparent 1px) 0 0 / 56px 56px,
    linear-gradient(90deg, rgba(127, 232, 255, 0.045) 1px, transparent 1px) 0 0 / 56px 56px,
    linear-gradient(170deg, var(--cy-bg2) 0%, var(--cy-bg1) 38%, var(--cy-bg0) 100%) var(--cy-bg0) !important;
  background-attachment: fixed !important;
}
body {
  background: transparent !important;
  color: var(--cy-text) !important;
  font-family: var(--cy-font-jp) !important;
}
/* 元のセクション背景を透かして、地のグラデを見せる */
section, main, [class*="section"], [class*="hero"] { background-color: transparent !important; }

/* ---------- 流れるPythonコード + 走査線（背面） ---------- */
body::before {
  content: "";
  position: fixed; inset: 0;
  pointer-events: none;
  z-index: -1;
  background:
    repeating-linear-gradient(to bottom, rgba(0,0,0,0.18) 0 1px, transparent 1px 4px),
    url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNDAwIiBoZWlnaHQ9Ijc2NiI+PGcgZm9udC1mYW1pbHk9Ik1lbmxvLENvbnNvbGFzLG1vbm9zcGFjZSIgZm9udC1zaXplPSIxMyIgZmlsbD0iIzVmZTNmZiI+PHRleHQgeD0iMzAiIHk9IjMwIj5pbXBvcnQgZnJlZWNhZCBhcyBmYzwvdGV4dD48dGV4dCB4PSIzMCIgeT0iNTIiPmZyb20gc2V2ZW5vZm5pbmUgaW1wb3J0IGhlYXQsIGZpZWxkPC90ZXh0Pjx0ZXh0IHg9IjMwIiB5PSI3NCI+PC90ZXh0Pjx0ZXh0IHg9IjMwIiB5PSI5NiI+ZGVmIGRlc2lnbihwcm9tcHQ6IHN0cikgLSZndDsgTW9kZWw6PC90ZXh0Pjx0ZXh0IHg9IjMwIiB5PSIxMTgiPiAgICBpbnRlbnQgPSBhaS5yZWFkKHByb21wdCwgbGFuZz0mcXVvdDtqYSZxdW90Oyk8L3RleHQ+PHRleHQgeD0iMzAiIHk9IjE0MCI+ICAgIGRpbXMgPSBhaS5kZWNpZGUoaW50ZW50LCB1bml0PSZxdW90O21tJnF1b3Q7KTwvdGV4dD48dGV4dCB4PSIzMCIgeT0iMTYyIj4gICAgc3JjID0gYWkuY29kZWdlbihkaW1zLCB0YXJnZXQ9JnF1b3Q7RnJlZUNBRCZxdW90Oyk8L3RleHQ+PHRleHQgeD0iMzAiIHk9IjE4NCI+ICAgIG1vZGVsID0gZmMucnVuKHNyYyk8L3RleHQ+PHRleHQgeD0iMzAiIHk9IjIwNiI+ICAgIGFzc2VydCBtb2RlbC5iYm94ID09IGRpbXMuZW52ZWxvcGU8L3RleHQ+PHRleHQgeD0iMzAiIHk9IjIyOCI+ICAgIHJldHVybiBtb2RlbC5leHBvcnQoJnF1b3Q7U1RFUCZxdW90OywgJnF1b3Q7RFhGJnF1b3Q7KTwvdGV4dD48dGV4dCB4PSIzMCIgeT0iMjUwIj48L3RleHQ+PHRleHQgeD0iMzAiIHk9IjI3MiI+Y2xhc3MgRmllbGQ6PC90ZXh0Pjx0ZXh0IHg9IjMwIiB5PSIyOTQiPiAgICAmcXVvdDsmcXVvdDsmcXVvdDvnj77loLTjga7lo7Djga/jgIHjg63jgrDjgavmrovjgonjgarjgYTjgIImcXVvdDsmcXVvdDsmcXVvdDs8L3RleHQ+PHRleHQgeD0iMzAiIHk9IjMxNiI+ICAgIGRlZiBfX2luaXRfXyhzZWxmLCBwZW9wbGUpOjwvdGV4dD48dGV4dCB4PSIzMCIgeT0iMzM4Ij4gICAgICAgIHNlbGYucGVvcGxlID0gcGVvcGxlPC90ZXh0Pjx0ZXh0IHg9IjMwIiB5PSIzNjAiPiAgICAgICAgc2VsZi5oZWF0ID0gMC4wPC90ZXh0Pjx0ZXh0IHg9IjMwIiB5PSIzODIiPjwvdGV4dD48dGV4dCB4PSIzMCIgeT0iNDA0Ij4gICAgZGVmIGRhbmNlKHNlbGYsIHRvZ2V0aGVyPVRydWUpOjwvdGV4dD48dGV4dCB4PSIzMCIgeT0iNDI2Ij4gICAgICAgIGZvciBwIGluIHNlbGYucGVvcGxlOjwvdGV4dD48dGV4dCB4PSIzMCIgeT0iNDQ4Ij4gICAgICAgICAgICBzZWxmLmhlYXQgKz0gcC5lbmVyZ3kgKiAxLjI8L3RleHQ+PHRleHQgeD0iMzAiIHk9IjQ3MCI+ICAgICAgICByZXR1cm4gc2VsZi5oZWF0PC90ZXh0Pjx0ZXh0IHg9IjMwIiB5PSI0OTIiPjwvdGV4dD48dGV4dCB4PSIzMCIgeT0iNTE0Ij4jIEVYUC0wMSAgcHJvbXB0IC0mZ3Q7IGRpbXMgLSZndDsgY29kZSAtJmd0OyAzRCAgIDE3LjVzPC90ZXh0Pjx0ZXh0IHg9IjMwIiB5PSI1MzYiPiMgRVhQLTAyICByZWFsIHN0YWdlIC0mZ3Q7IG5lb24gZnV0dXJlPC90ZXh0Pjx0ZXh0IHg9IjMwIiB5PSI1NTgiPndoaWxlIGhlYXQuY29sZCgpIGlzIEZhbHNlOjwvdGV4dD48dGV4dCB4PSIzMCIgeT0iNTgwIj4gICAgaWRlYSA9IGZpZWxkLmxpc3RlbigpPC90ZXh0Pjx0ZXh0IHg9IjMwIiB5PSI2MDIiPiAgICBzaGlwKGlkZWEsIGJlZm9yZT0mcXVvdDtpdCBjb29scyBkb3duJnF1b3Q7KTwvdGV4dD48dGV4dCB4PSIzMCIgeT0iNjI0Ij48L3RleHQ+PHRleHQgeD0iMzAiIHk9IjY0NiI+ZGVmIGJyaWRnZShhPSZxdW90O0lzaGlrYXdhJnF1b3Q7LCBiPSZxdW90O0luZGlhJnF1b3Q7KTo8L3RleHQ+PHRleHQgeD0iMzAiIHk9IjY2OCI+ICAgIHJldHVybiBmJnF1b3Q7e2F9ICZsdDstJmd0OyB7Yn0mcXVvdDs8L3RleHQ+PHRleHQgeD0iMzAiIHk9IjY5MCI+PC90ZXh0Pjx0ZXh0IHg9IjMwIiB5PSI3MTIiPmZvciBzaXRlIGluIFsmcXVvdDtzb2JhJnF1b3Q7LCAmcXVvdDtsYXcmcXVvdDssICZxdW90O2RhbmNlJnF1b3Q7LCAmcXVvdDt5b2dhJnF1b3Q7LCAmcXVvdDthaSZxdW90O106PC90ZXh0Pjx0ZXh0IHg9IjMwIiB5PSI3MzQiPiAgICBkZXBsb3koc2l0ZSwgcHJpY2U9MCwgcGFzc2lvbj1UcnVlKTwvdGV4dD48dGV4dCB4PSI3NjAiIHk9IjMwIj4kIHNzaCBsZm08L3RleHQ+PHRleHQgeD0iNzYwIiB5PSI1MiI+bGZtOn4kIHN1ZG8gbmdpbnggLXQgJmFtcDsmYW1wOyBzdWRvIHN5c3RlbWN0bCByZWxvYWQgbmdpbng8L3RleHQ+PHRleHQgeD0iNzYwIiB5PSI3NCI+WyBPSyBdIHN5bnRheCBpcyBvazwvdGV4dD48dGV4dCB4PSI3NjAiIHk9Ijk2Ij4mZ3Q7Jmd0OyZndDsgbW9kZWwgPSB2bGxtLmxvYWQoJnF1b3Q7b25wcmVtJnF1b3Q7LCBjdHg9ODE5Mik8L3RleHQ+PHRleHQgeD0iNzYwIiB5PSIxMTgiPiZndDsmZ3Q7Jmd0OyByYWcuaW5kZXgoJnF1b3Q7L3Nydi9ub3RlcyZxdW90OywgY2h1bms9NTEyKTwvdGV4dD48dGV4dCB4PSI3NjAiIHk9IjE0MCI+aW5kZXhlZCAyLDMxOCBkb2NzICBbIDQxLjJzIF08L3RleHQ+PHRleHQgeD0iNzYwIiB5PSIxNjIiPiZndDsmZ3Q7Jmd0OyBzb3BoaWUuc2F5KCZxdW90O+OBq+OCgyZxdW90Oyk8L3RleHQ+PHRleHQgeD0iNzYwIiB5PSIxODQiPiYjeDI3O+OBq+OCgyYjeDI3OzwvdGV4dD48dGV4dCB4PSI3NjAiIHk9IjIwNiI+U0lHTkFMICDilojilojilojilojilojilojilojilojilpHilpEgIDgyJTwvdGV4dD48dGV4dCB4PSI3NjAiIHk9IjIyOCI+TEFUIDM2LjU2TiAgTE9OIDEzNi42NUUgICBLQU5BWkFXQTwvdGV4dD48dGV4dCB4PSI3NjAiIHk9IjI1MCI+VCswMDoxNzo1MiAgQ0FNLTAyICBMSVZFPC90ZXh0Pjx0ZXh0IHg9Ijc2MCIgeT0iMjcyIj5yZW5kZXIoZnJhbWUsIG5vaXNlPTAuMjIsIHNjYW49VHJ1ZSk8L3RleHQ+PHRleHQgeD0iNzYwIiB5PSIyOTQiPnhmYWRlKHR5cGU9JnF1b3Q7cGl4ZWxpemUmcXVvdDssIGR1cj0wLjUpPC90ZXh0Pjx0ZXh0IHg9Ijc2MCIgeT0iMzE2Ij5mZm1wZWcgLWkgcmVlbC5tb3YgLXZmICZxdW90O3NjYWxlPTEwODA6MTkyMCZxdW90OzwvdGV4dD48dGV4dCB4PSI3NjAiIHk9IjMzOCI+c3RhdHVzOiAyMDAgIC9sYWIvbm90ZXMvd2hhdC1pcy1tY3AvPC90ZXh0Pjx0ZXh0IHg9Ijc2MCIgeT0iMzYwIj4mZ3Q7Jmd0OyZndDsgaGVhdF9kcml2ZW5fZGVzaWduKGVuYWJsZWQ9VHJ1ZSk8L3RleHQ+PHRleHQgeD0iNzYwIiB5PSIzODIiPlRydWU8L3RleHQ+PHRleHQgeD0iNzYwIiB5PSI0MDQiPiZndDsmZ3Q7Jmd0OyBzY2FsZV91cCgpPC90ZXh0Pjx0ZXh0IHg9Ijc2MCIgeT0iNDI2Ij5Ob3RJbXBsZW1lbnRlZEVycm9yOiBub3QgdGhlIHBvaW50PC90ZXh0PjwvZz48L3N2Zz4=") 0 0 / 1400px 766px repeat;
  opacity: 0.085;
  -webkit-mask-image: linear-gradient(to bottom, transparent 0%, #000 18%, #000 70%, transparent 100%);
          mask-image: linear-gradient(to bottom, transparent 0%, #000 18%, #000 70%, transparent 100%);
  animation: cy-code 70s linear infinite;
}
@keyframes cy-code {
  from { background-position: 0 0, 0 0; }
  to   { background-position: 0 0, 0 -766px; }
}

/* ---------- HUD（四隅）+ 動くノイズ（最前面・クリックは邪魔しない） ---------- */
body::after {
  content: "";
  position: fixed; inset: 0;
  pointer-events: none;
  z-index: 9999;
  background:
    url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAiIGhlaWdodD0iNzAiPjxnIHRyYW5zZm9ybT0iIiBzdHJva2U9IiM3ZmU4ZmYiIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0ibm9uZSIgb3BhY2l0eT0iMC41Ij48cGF0aCBkPSJNMiA0MCBWMiBINTAiLz48L2c+PHRleHQgeD0iMTQiIHk9IjM0IiB0ZXh0LWFuY2hvcj0ic3RhcnQiIGZvbnQtZmFtaWx5PSJNZW5sbyxDb25zb2xhcyxtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9IiM3ZmU4ZmYiIG9wYWNpdHk9IjAuNSIgbGV0dGVyLXNwYWNpbmc9IjEuNSI+U1lTLk9OTElORTwvdGV4dD48L3N2Zz4=") left 14px top 74px / 160px 70px no-repeat,
    url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAiIGhlaWdodD0iNzAiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2MCwwKSBzY2FsZSgtMSwxKSIgc3Ryb2tlPSIjN2ZlOGZmIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiIG9wYWNpdHk9IjAuNSI+PHBhdGggZD0iTTIgNDAgVjIgSDUwIi8+PC9nPjx0ZXh0IHg9IjE0NiIgeT0iMzQiIHRleHQtYW5jaG9yPSJlbmQiIGZvbnQtZmFtaWx5PSJNZW5sbyxDb25zb2xhcyxtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9IiM3ZmU4ZmYiIG9wYWNpdHk9IjAuNSIgbGV0dGVyLXNwYWNpbmc9IjEuNSI+N09GOSAvLyBMQUI8L3RleHQ+PC9zdmc+") right 14px top 74px / 160px 70px no-repeat,
    url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAiIGhlaWdodD0iNzAiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDAsNzApIHNjYWxlKDEsLTEpIiBzdHJva2U9IiM3ZmU4ZmYiIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0ibm9uZSIgb3BhY2l0eT0iMC41Ij48cGF0aCBkPSJNMiA0MCBWMiBINTAiLz48L2c+PHRleHQgeD0iMTQiIHk9IjQ2IiB0ZXh0LWFuY2hvcj0ic3RhcnQiIGZvbnQtZmFtaWx5PSJNZW5sbyxDb25zb2xhcyxtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9IiM3ZmU4ZmYiIG9wYWNpdHk9IjAuNSIgbGV0dGVyLXNwYWNpbmc9IjEuNSI+TEFUIDM2LjU2TjwvdGV4dD48L3N2Zz4=") left 14px bottom 14px / 160px 70px no-repeat,
    url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAiIGhlaWdodD0iNzAiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2MCw3MCkgc2NhbGUoLTEsLTEpIiBzdHJva2U9IiM3ZmU4ZmYiIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0ibm9uZSIgb3BhY2l0eT0iMC41Ij48cGF0aCBkPSJNMiA0MCBWMiBINTAiLz48L2c+PHRleHQgeD0iMTQ2IiB5PSIzNCIgdGV4dC1hbmNob3I9ImVuZCIgZm9udC1mYW1pbHk9Ik1lbmxvLENvbnNvbGFzLG1vbm9zcGFjZSIgZm9udC1zaXplPSIxMCIgZmlsbD0iIzdmZThmZiIgb3BhY2l0eT0iMC41IiBsZXR0ZXItc3BhY2luZz0iMS41Ij5TSUdOQUwgODIlPC90ZXh0Pjwvc3ZnPg==") right 14px bottom 14px / 160px 70px no-repeat,
    url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='180' height='180'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1  0 0 0 0 1  0 0 0 0 1  0 0 0 0.09 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>") 0 0 / 180px 180px repeat;
  animation: cy-noise 0.5s steps(4) infinite;
}
@keyframes cy-noise {
  0%   { background-position: left 14px top 74px, right 14px top 74px, left 14px bottom 14px, right 14px bottom 14px, 0 0; }
  25%  { background-position: left 14px top 74px, right 14px top 74px, left 14px bottom 14px, right 14px bottom 14px, -40px 30px; }
  50%  { background-position: left 14px top 74px, right 14px top 74px, left 14px bottom 14px, right 14px bottom 14px, 50px -20px; }
  75%  { background-position: left 14px top 74px, right 14px top 74px, left 14px bottom 14px, right 14px bottom 14px, -20px -50px; }
  100% { background-position: left 14px top 74px, right 14px top 74px, left 14px bottom 14px, right 14px bottom 14px, 0 0; }
}

/* ---------- 文字 ---------- */
p, li { color: var(--cy-text) !important; }
h1, h2, h3, h4, nav, button, summary {
  font-family: var(--cy-font) !important;
  letter-spacing: 0.04em;
}
h2, h3, h4 { color: var(--cy-text) !important; }

/* 白い見出し・ロゴ：7of9.jp と同じ「白→アイスブルー」の縦グラデ + にじみ */
h1, h2,
header a:first-child:not(nav *), header [class*="logo"], header [class*="brand"] {
  background: linear-gradient(180deg, #ffffff 0%, #ffffff 42%, var(--cy-ice) 100%);
  -webkit-background-clip: text;
          background-clip: text;
  -webkit-text-fill-color: transparent;
  filter: drop-shadow(0 0 10px rgba(79, 200, 255, 0.45));
}
h1 { font-weight: 700 !important; letter-spacing: 0.06em; }

/* ヒーローの強調語（2行目など）：マゼンタのネオン管 */
h1 em, h1 strong, h1 mark, h1 b {
  font-style: normal;
  background: none !important;
  -webkit-text-fill-color: var(--cy-magenta);
  color: var(--cy-magenta) !important;
  text-shadow: 0 0 6px var(--cy-magenta), 0 0 24px rgba(255, 62, 200, 0.55);
  animation: cy-flicker 7s infinite;
}
@keyframes cy-flicker {
  0%, 92%, 100% { opacity: 1; }
  93% { opacity: .35; } 94% { opacity: 1; } 96% { opacity: .6; } 97% { opacity: 1; }
}

/* セクション見出し：左にネオンバー */
h2 { position: relative; padding-left: 0.9em !important; }
h2::before {
  content: "";
  position: absolute; left: 0; top: .15em; bottom: .15em; width: 4px;
  background: linear-gradient(var(--cy-cyan), var(--cy-magenta));
  box-shadow: 0 0 12px var(--cy-cyan);
  border-radius: 2px;
}

/* ---------- ロゴ ---------- */
header a:first-child:not(nav *), header [class*="logo"], header [class*="brand"] {
  font-family: 'Orbitron', sans-serif !important;
  font-weight: 900 !important;
  font-size: 1.45em !important;
  letter-spacing: 0.04em;
  text-decoration: none !important;
}
header a:first-child:not(nav *) *, header [class*="logo"] *, header [class*="brand"] * {
  color: inherit !important;
  -webkit-text-fill-color: transparent;
  background: inherit;
  -webkit-background-clip: text;
          background-clip: text;
}
header a:first-child:not(nav *)::after, header [class*="logo"]::after {
  content: ".jp";
  font-weight: 700;
  font-size: 0.62em;
  margin-left: 0.08em;
}

/* ---------- リンク・ボタン ---------- */
a { color: var(--cy-cyan) !important; transition: color .2s, text-shadow .2s, box-shadow .2s, background .2s; }
a:hover { color: #fff !important; text-shadow: 0 0 10px var(--cy-cyan); }

button,
a[class*="btn"], a[class*="button"], a[class*="cta"],
[class*="btn"], [class*="button"], [class*="cta"] {
  font-family: var(--cy-font) !important;
  background: rgba(79, 243, 255, 0.07) !important;
  color: var(--cy-cyan) !important;
  border: 1px solid var(--cy-cyan) !important;
  box-shadow: 0 0 0 1px rgba(79,243,255,.15) inset, 0 0 18px rgba(79, 243, 255, 0.25) !important;
  border-radius: 4px !important;
  letter-spacing: 0.08em;
  text-decoration: none !important;
  clip-path: polygon(10px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 10px) 100%, 0 100%, 0 10px);
}
button:hover,
a[class*="btn"]:hover, a[class*="button"]:hover, a[class*="cta"]:hover,
[class*="btn"]:hover, [class*="button"]:hover, [class*="cta"]:hover {
  background: var(--cy-cyan) !important;
  color: var(--cy-bg0) !important;
  text-shadow: none;
  box-shadow: 0 0 28px var(--cy-cyan) !important;
}

/* ---------- ヘッダー：すりガラス ---------- */
header, nav {
  background: rgba(1, 8, 24, 0.62) !important;
  backdrop-filter: blur(14px) saturate(140%);
  -webkit-backdrop-filter: blur(14px) saturate(140%);
  border-bottom: 1px solid var(--cy-line) !important;
}
nav { border-bottom: 0 !important; background: transparent !important; backdrop-filter: none !important; -webkit-backdrop-filter: none !important; }
header a:not(:first-child), nav a, nav a:first-child { color: var(--cy-text) !important; -webkit-text-fill-color: currentColor; }
header a:not(:first-child):hover, nav a:hover { color: var(--cy-cyan) !important; }

/* ---------- カード類：ガラスパネル ---------- */
article,
[class*="card"], [class*="item"], [class*="plan"], [class*="step"], [class*="box"] {
  background: var(--cy-panel) !important;
  border: 1px solid var(--cy-line) !important;
  border-radius: 10px !important;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
  box-shadow: 0 1px 0 rgba(255,255,255,.10) inset, 0 12px 40px rgba(0,0,0,.45) !important;
  transition: border-color .25s, box-shadow .25s, transform .25s;
}
article:hover,
[class*="card"]:hover, [class*="item"]:hover, [class*="plan"]:hover {
  border-color: rgba(79, 243, 255, 0.6) !important;
  box-shadow: 0 0 0 1px rgba(79,243,255,.25) inset, 0 0 30px rgba(79, 243, 255, 0.18), 0 12px 40px rgba(0,0,0,.5) !important;
  transform: translateY(-2px);
}

/* タグ・チップ・ラベル */
[class*="tag"], [class*="chip"], [class*="label"], [class*="badge"], [class*="pill"] {
  font-family: var(--cy-font) !important;
  color: var(--cy-cyan) !important;
  background: rgba(79, 243, 255, 0.06) !important;
  border: 1px solid rgba(79, 243, 255, 0.4) !important;
  letter-spacing: 0.06em;
}

/* 数字 */
[class*="num"], [class*="stat"], [class*="count"], [class*="price"] {
  font-family: 'Orbitron', sans-serif !important;
  color: var(--cy-cyan) !important;
  text-shadow: 0 0 14px rgba(79, 243, 255, 0.55);
}
[class*="icon"], [class*="emoji"] { filter: drop-shadow(0 0 8px rgba(79, 243, 255, 0.6)); }

/* FAQ */
details { border-bottom: 1px solid var(--cy-line) !important; }
summary { color: var(--cy-text) !important; cursor: pointer; }
summary::marker { color: var(--cy-cyan); }

/* フッター */
footer {
  background: linear-gradient(transparent, rgba(30, 140, 255, 0.10)) !important;
  border-top: 1px solid var(--cy-line) !important;
  color: var(--cy-dim) !important;
}
hr { border: 0 !important; height: 1px; background: linear-gradient(90deg, transparent, var(--cy-cyan), transparent) !important; }

::selection { background: var(--cy-cyan); color: var(--cy-bg0); }
::-webkit-scrollbar { width: 10px; }
::-webkit-scrollbar-track { background: var(--cy-bg0); }
::-webkit-scrollbar-thumb { background: linear-gradient(var(--cy-cyan), #1e8cff); border-radius: 5px; }

/* スマホではHUDの下2隅を省略（文字と重なりやすいため） */
@media (max-width: 640px) {
  body::after {
    background:
      url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAiIGhlaWdodD0iNzAiPjxnIHRyYW5zZm9ybT0iIiBzdHJva2U9IiM3ZmU4ZmYiIHN0cm9rZS13aWR0aD0iMiIgZmlsbD0ibm9uZSIgb3BhY2l0eT0iMC41Ij48cGF0aCBkPSJNMiA0MCBWMiBINTAiLz48L2c+PHRleHQgeD0iMTQiIHk9IjM0IiB0ZXh0LWFuY2hvcj0ic3RhcnQiIGZvbnQtZmFtaWx5PSJNZW5sbyxDb25zb2xhcyxtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9IiM3ZmU4ZmYiIG9wYWNpdHk9IjAuNSIgbGV0dGVyLXNwYWNpbmc9IjEuNSI+U1lTLk9OTElORTwvdGV4dD48L3N2Zz4=") left 8px top 66px / 120px 52px no-repeat,
      url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxNjAiIGhlaWdodD0iNzAiPjxnIHRyYW5zZm9ybT0idHJhbnNsYXRlKDE2MCwwKSBzY2FsZSgtMSwxKSIgc3Ryb2tlPSIjN2ZlOGZmIiBzdHJva2Utd2lkdGg9IjIiIGZpbGw9Im5vbmUiIG9wYWNpdHk9IjAuNSI+PHBhdGggZD0iTTIgNDAgVjIgSDUwIi8+PC9nPjx0ZXh0IHg9IjE0NiIgeT0iMzQiIHRleHQtYW5jaG9yPSJlbmQiIGZvbnQtZmFtaWx5PSJNZW5sbyxDb25zb2xhcyxtb25vc3BhY2UiIGZvbnQtc2l6ZT0iMTAiIGZpbGw9IiM3ZmU4ZmYiIG9wYWNpdHk9IjAuNSIgbGV0dGVyLXNwYWNpbmc9IjEuNSI+N09GOSAvLyBMQUI8L3RleHQ+PC9zdmc+") right 8px top 66px / 120px 52px no-repeat;
    animation: none;
  }
}
@media (prefers-reduced-motion: reduce) {
  body::before, body::after, h1 em, h1 strong, h1 mark, h1 b { animation: none !important; }
}
