/* Development専用：球体とともに学び、開発相談へ進む。 */
.dev-page { color:#eceeea; letter-spacing:.03em; }
.d-wrap { max-width:1240px; padding:0 48px; margin:auto; }
.d-crumb { padding-top:126px; font:10px var(--en); letter-spacing:.15em; color:#8f9593; }
.d-learning { display:grid; grid-template-columns:1fr 1fr; gap:70px; position:relative; }
.d-story { min-width:0; padding:72px 0 96px; }
.d-label { font:11px/1.6 var(--en); letter-spacing:.16em; color:#aaaead; margin-bottom:22px; }
.dev-page h1,.dev-page h2,.dev-page h3,.dev-page p { margin:0; }
.dev-page h1 { font-size:clamp(42px,4.4vw,64px); line-height:1.45; font-weight:500; letter-spacing:.025em; }
.dev-page h1 em { color:#f56e6e; font-style:normal; }
.dev-page h2 { font-size:clamp(28px,3vw,40px); line-height:1.6; font-weight:500; }
.dev-page h3 { font-size:24px; line-height:1.6; font-weight:500; }
.dev-page p { color:#b5bab7; font-size:15px; line-height:2; }
.dev-page .d-lead { margin-top:28px; font-size:17px; }
.dev-page .d-caption { font-size:11px; color:#858e89; line-height:1.9; margin-top:22px; }
.d-neural,.d-models { margin-top:88px; border-top:1px solid #2a302d; padding-top:38px; }
.d-neural h2,.d-models h2 { margin-bottom:24px; }
.d-explain { list-style:none; margin:26px 0 0; padding:0; }
.d-explain li { display:grid; grid-template-columns:65px 1fr; gap:16px; padding:16px 0; border-bottom:1px solid #242a27; font-size:13px; }
.d-explain b { color:#f48686; font-weight:500; }
.d-explain span { color:#b5bab7; }
.d-lab { position:sticky; top:110px; align-self:start; height:min(680px,calc(100svh - 132px)); min-height:420px; margin-top:48px; display:flex; flex-direction:column; border:1px solid #303531; border-radius:12px; background:linear-gradient(150deg,#1b201b55,transparent 70%); }
.d-lab-top { padding:22px; display:flex; justify-content:space-between; gap:12px; font:9px var(--en); letter-spacing:.1em; color:#9ca49f; }
.d-lab-top i { display:inline-block; width:6px; height:6px; background:#f36a6a; border-radius:50%; margin-right:5px; }
.d-sphere-space { flex:1; min-height:210px; position:relative; touch-action:pan-y; }
.d-lab-bottom { padding:10px 24px 22px; text-align:center; }
.d-lab-bottom p { font-size:11px; color:#929b94; }
.d-pulse { font:12px var(--jp); background:#252b26; color:#e1e7df; border:1px solid #475046; padding:10px 18px; border-radius:24px; margin-top:12px; cursor:pointer; }
.d-pulse:hover { border-color:#e77d7d; }
.d-signal { border-top:1px solid #303630; padding:20px 24px; }
.d-signal>span { color:#f38c8c; font:12px var(--en); letter-spacing:.12em; }
.d-signal p { font-size:12px; margin-top:6px; }
.d-tabs { display:flex; gap:8px; margin-top:30px; }
.d-tabs button { flex:1; background:transparent; border:1px solid #434b45; color:#afb8af; padding:12px 8px; border-radius:5px; cursor:pointer; font:14px var(--jp); }
.d-tabs button[aria-selected="true"] { color:#151b16; background:#e1e7de; border-color:#e1e7de; }
.d-panel { padding:26px 0; min-height:300px; }
.d-panel[hidden] { display:none; }
.d-model-en { font:10px var(--en); letter-spacing:.1em; color:#f28c8c; }
.d-panel h3 { margin:12px 0 16px; }
.d-use { margin-top:22px; font-size:12px; color:#e3e8de; }
.d-use span { display:block; color:#a6afa5; margin-top:4px; }
.d-sources { font-size:11px; color:#858e89; margin-top:20px; }
.d-sources summary { cursor:pointer; } .d-sources a { display:block; margin-top:8px; text-decoration:underline; }
.d-delivery { position:relative; background:#101511; border-top:1px solid #354033; padding-top:96px; }
.d-delivery> .d-wrap>h2 { font-size:clamp(34px,4.5vw,58px); }
.d-delivery h2 span { color:#9eaf91; }
.d-delivery-intro { display:grid; grid-template-columns:1fr 1fr; gap:60px; margin:42px 0 48px; align-items:start; }
.d-values { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid #384233; border-radius:10px; overflow:hidden; }
.d-values article { padding:30px 26px; background:#192018; }
.d-values article+article { border-left:1px solid #384233; }
.d-values article>span { font:11px var(--en); color:#a8bc96; letter-spacing:.1em; }
.d-values h3 { font-size:21px; margin:22px 0 16px; }
.d-values p { font-size:13px; }
.d-scope { display:grid; grid-template-columns:1fr 1fr; gap:60px; padding:88px 0; }
.d-scope ul { margin:0; padding:0; list-style:none; }
.d-scope li { padding:18px 0; border-bottom:1px solid #303a2b; }
.d-scope li:first-child { padding-top:0; }
.d-scope li b { display:block; font-weight:500; font-size:16px; }
.d-scope li span { font-size:13px; color:#a5afa0; }
.d-text-link { display:inline-block; font-size:13px; border-bottom:1px solid #7c8c72; padding:12px 0; margin-top:20px; }
.d-process { border-top:1px solid #35402f; padding-top:44px; }
.d-process ol { display:grid; grid-template-columns:repeat(4,1fr); list-style:none; padding:0; gap:28px; margin:32px 0 0; }
.d-process li { border-top:1px solid #526046; padding-top:18px; }
.d-process li span { font:11px var(--en); color:#9bad8c; display:block; }
.d-process b { font-size:17px; font-weight:500; display:block; margin:14px 0 8px; }
.d-process p { font-size:12px; }
.d-contact { margin-top:90px; padding:60px 0 80px; display:flex; align-items:center; justify-content:space-between; gap:40px; border-top:1px solid #46523d; }
.d-contact h2 { font-size:clamp(25px,3vw,38px); }
.d-contact p { margin-top:20px; font-size:14px; }
.d-contact>a { flex-shrink:0; display:flex; align-items:center; gap:24px; background:#e2e9da; color:#192115; padding:20px 25px; border-radius:36px; font-size:14px; transition:background .2s,transform .2s; }
.d-contact>a:hover { background:white; transform:translateY(-3px); }
.dev-page :is(a,button,summary):focus-visible { outline:2px solid #f58a8a; outline-offset:5px; }
@media(max-width:900px) {
 .d-wrap { padding:0 24px; } .d-crumb { padding-top:108px; }
 .d-learning { display:flex; flex-direction:column; gap:0; }
 .d-story { display:contents; } .d-opening { order:0; padding-top:42px; }
 .d-lab { order:1; position:relative; top:auto; width:100%; margin-top:28px; height:440px; min-height:0; }
 .d-neural { order:2; margin-top:48px; } .d-models { order:3; margin:48px 0 64px; }
 .dev-page h1 { font-size:44px; } .d-panel { min-height:0; }
 .d-delivery { padding-top:60px; }
 .d-delivery-intro,.d-scope { grid-template-columns:1fr; gap:28px; }
 .d-values { grid-template-columns:1fr; } .d-values article+article { border-left:0; border-top:1px solid #384233; }
 .d-scope { padding:56px 0; } .d-process ol { grid-template-columns:1fr 1fr; }
 .d-contact { display:block; margin-top:60px; padding:40px 0 56px; } .d-contact>a { margin-top:28px; width:fit-content; }
}
@media(prefers-reduced-motion:reduce) { .dev-page * { transition:none!important; } }
/* 球体と対話するデモ。回答欄の高さを固定して球体の位置を保つ。 */
.d-lab { height:min(760px,calc(100svh - 125px)); min-height:570px; }
.d-sphere-space { min-height:170px; }
.d-chat { padding:16px 20px 12px; border-top:1px solid #303630; background:#0c100de8; }
.d-chat-heading { display:flex; justify-content:space-between; align-items:center; gap:10px; font-size:13px; }
.d-chat-heading small { color:#b6aa8c; font-size:10px; }
.d-chat-log { height:132px; overflow-y:auto; overscroll-behavior:contain; margin:12px 0; padding-right:6px; scrollbar-width:thin; scrollbar-color:#465142 transparent; }
.d-chat-message { margin:0 0 12px; padding:10px 12px; border-radius:8px; background:#1a211a; }
.d-chat-message b { font:9px var(--en); color:#abb99c; letter-spacing:.08em; }
.d-chat-message p { font-size:12px; line-height:1.8; color:#d7ded4; margin-top:4px; white-space:pre-wrap; overflow-wrap:anywhere; }
.d-chat-message.user { background:#272222; margin-left:24px; }
.d-chat-message.user b { color:#e9a9a9; }
.d-chat-suggestions { display:flex; flex-wrap:wrap; gap:6px; margin-bottom:10px; }
.d-chat-suggestions button { border:1px solid #3e483a; border-radius:18px; background:transparent; color:#b8c4b0; padding:5px 10px; font:10px var(--jp); cursor:pointer; }
.d-chat-suggestions button:hover { background:#253021; }
.d-chat-label { display:block; font-size:10px; color:#9ba593; margin-bottom:5px; }
.d-chat-input-row { display:flex; align-items:center; gap:8px; }
.d-chat-input-row input { width:100%; min-width:0; background:#151b15; color:#eef1ea; border:1px solid #4a5543; border-radius:8px; padding:10px 12px; font:13px var(--jp); }
.d-chat-input-row input::placeholder { color:#8a9682; }
.d-chat-input-row button { width:38px; height:38px; flex-shrink:0; background:#e0e9d6; color:#1b2515; border:0; border-radius:50%; cursor:pointer; font-size:22px; }
.d-chat-input-row input:focus-visible { outline:2px solid #f58a8a; outline-offset:2px; }
.d-chat button:disabled { opacity:.45; cursor:wait; }
.d-chat-footer { display:flex; justify-content:space-between; align-items:center; gap:10px; margin-top:9px; font-size:9px; color:#8f9b86; }
.d-chat-clear { background:none; color:#acb7a4; border:0; padding:4px; font:10px var(--jp); cursor:pointer; }
.d-signal { padding:10px 20px; } .d-signal p { margin-top:3px; font-size:10px; }
@media(max-width:900px) { .d-lab { height:690px; min-height:0; } .d-chat { padding:14px; } .d-chat-heading { font-size:12px; } .d-chat-heading small { font-size:9px; } .d-chat-input-row input { font-size:16px; } }
@media(min-width:901px) and (max-height:760px) { .d-lab { top:92px; height:600px; } .d-chat-log { height:100px; } }

.d-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
