/* トップページ専用。濃い背景に光る線。ライト/ダークどちらの設定でも同じ世界観 */
body.home{--bg:#0b1722;--ink:#e8f1f5;--mute:#9db2bf;--card:#12263a;--line:#23405a;--accent:#5fd0e8;--accent2:#ffb86b;--t1:#5fd0e8;--t2:#ffb86b;--bgT:#0e2033;background:radial-gradient(1200px 600px at 75% -10%,#17405a 0%,transparent 60%),#0b1722;color:var(--ink)}
.home .topbar{border-bottom:1px solid #1c3347;background:#08121b}.home .topbar a{color:#9db2bf}
.home .wrap{max-width:1040px}
.hero{padding:36px 0 18px;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:28px;align-items:center}
.hero .kick{color:var(--t2);letter-spacing:.16em;font-size:13px}
.hero h1{font-size:clamp(30px,5vw,50px);line-height:1.25;text-wrap:balance;margin:.1em 0 .3em;color:#fff;text-shadow:0 0 28px rgba(95,208,232,.35)}
.hero p{color:#b9cad5;margin:.4em 0}
.hero .cta{display:flex;flex-wrap:wrap;gap:10px;margin:18px 0 6px}
.btn2{display:inline-block;padding:9px 20px;border-radius:999px;border:1px solid var(--t1);color:var(--t1);text-decoration:none;font-size:15px;background:rgba(95,208,232,.08)}
.btn2.p{background:var(--t1);color:#06202b;font-weight:700;box-shadow:0 0 22px rgba(95,208,232,.35)}.btn2:hover{filter:brightness(1.15)}
#hero{background:rgba(8,18,27,.55);border:1px solid #1d3b53;border-radius:14px;padding:6px;box-shadow:0 0 40px rgba(95,208,232,.12) inset}
#hero svg{display:block;width:100%;height:auto}
#hero .gl{stroke:#16314a;stroke-width:1}#hero .axis{stroke:#47647a;stroke-width:1.5;fill:none}
#hero .curve{stroke:var(--t1);stroke-width:3;fill:none}#hero .trail{stroke:var(--t2);stroke-width:1.5;fill:none;stroke-dasharray:3 4;opacity:.7}
#hero .ball{fill:var(--t2)}#hero .ed{stroke:#2f6f86;stroke-width:1.3;fill:none}#hero .nd{fill:#0e2033;stroke:var(--t1);stroke-width:2}
#hero .pu{fill:var(--t2)}
#hero .tx{fill:#9db2bf;font-size:13px}#hero .tx2{fill:var(--t2);font-size:15px;font-family:ui-monospace,Menlo,monospace}#hero .tx3{fill:#7f97a6;font-size:12px}
.stats{display:flex;gap:22px;flex-wrap:wrap;color:#9db2bf;font-size:13px;margin:6px 0 22px;border-top:1px solid #1c3347;padding-top:12px}.stats b{color:#fff;font-size:18px;margin-right:4px}
.ps{margin:30px 0 12px;display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.ps .k{font-family:ui-monospace,Menlo,monospace;color:var(--pc);font-size:28px;line-height:1;text-shadow:0 0 14px var(--pc)}
.ps h2{margin:0;font-size:20px;color:#fff}.ps small{color:#7f97a6}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(235px,1fr));gap:16px;margin-top:6px}
.cd{display:block;text-decoration:none;color:var(--ink);background:linear-gradient(180deg,#14304a,#0f2438);border:1px solid #23405a;border-radius:12px;overflow:hidden;transition:transform .18s,border-color .18s,box-shadow .18s}
.cd:hover{transform:translateY(-3px);border-color:var(--pc);box-shadow:0 8px 30px rgba(0,0,0,.4),0 0 24px color-mix(in srgb,var(--pc) 35%,transparent)}
.cd .th{height:128px;background:radial-gradient(circle at 30% 20%,color-mix(in srgb,var(--pc) 22%,transparent),transparent 65%),#0c1d2d;display:flex;align-items:center;justify-content:center;border-bottom:1px solid #1d3b53;color:var(--pc)}
.cd .th svg{width:78%;height:auto;max-height:112px;--t1:var(--pc);filter:drop-shadow(0 0 5px color-mix(in srgb,var(--pc) 60%,transparent))}
.cd .bd{padding:12px 14px 14px}.cd .no{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--pc);letter-spacing:.08em}
.cd h3{margin:2px 0 4px;font-size:18px;line-height:1.45;color:#fff}.cd .q{color:#9db2bf;font-size:13px;line-height:1.65;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.cd .tag{border-color:#3a6580;color:#9db2bf}
.home footer{border-top:1px solid #1c3347;color:#7f97a6}.home footer a{color:#9db2bf}
@media(max-width:760px){.hero{grid-template-columns:1fr;padding-top:22px}.grid{grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.cd .th{height:92px}.cd h3{font-size:15px}.cd .q{display:none}.cd .bd{padding:9px 10px 11px}}

.cd .th{position:relative;overflow:hidden}.cd .th img.ti{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.ai{position:absolute;right:6px;bottom:4px;font-size:10px;color:#9db2bf;background:rgba(8,18,27,.65);padding:0 6px;border-radius:3px;letter-spacing:.04em;pointer-events:none}
.cd:hover .th img.ti{transform:scale(1.04);transition:transform .4s}

.pnav{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 22px}.pnav a{display:inline-flex;gap:6px;align-items:center;padding:7px 12px;border:1px solid color-mix(in srgb,var(--pc) 45%,#12202c);border-radius:999px;color:var(--ink);text-decoration:none;font-size:14px;background:rgba(255,255,255,.02)}.pnav a:hover{border-color:var(--pc);background:color-mix(in srgb,var(--pc) 12%,transparent)}.pnav b{color:var(--pc);font-family:ui-monospace,Menlo,monospace}.pnav span{color:#8fa3b0;font-size:12px}
.psec{margin:0 0 34px;scroll-margin-top:16px}.ph{display:flex;align-items:center;gap:14px;margin:0 0 12px;padding-bottom:10px;border-bottom:1px solid color-mix(in srgb,var(--pc) 35%,#12202c)}.ph .pl{width:38px;height:38px;border:1.5px solid var(--pc);border-radius:8px;display:grid;place-items:center;color:var(--pc);font:700 18px ui-monospace,Menlo,monospace;box-shadow:0 0 14px color-mix(in srgb,var(--pc) 25%,transparent)}.ph h2{margin:0;font-size:20px;color:#fff}.ph p{margin:2px 0 0;font-size:13.5px;color:#9db2bf}.ph .pc{margin-left:auto;color:#8fa3b0;font-size:13px}
