.profile-sec { background:var(--bg); }
.profile-grid {
  display:grid; grid-template-columns:280px 1fr;
  gap:72px; align-items:start;
}
.profile-avatar-wrap { display:flex; flex-direction:column; gap:20px; }
.profile-avatar {
  width:100%; aspect-ratio:1;
  border:1px solid var(--border);
  overflow:hidden; background:var(--bg1);
}
.profile-avatar img { width:100%; height:100%; object-fit:cover; display:block; }
.profile-sns { display:flex; flex-direction:column; gap:8px; }
.sns-link {
  display:flex; align-items:center; gap:10px;
  padding:12px 16px; border:1px solid var(--border);
  color:var(--text2); text-decoration:none; font-size:.76rem;
  letter-spacing:.06em; transition:all .3s; position:relative;
}
.sns-link:hover { border-color:var(--border2); color:var(--text); background:rgba(255,255,255,.03); }
.sns-link svg { flex-shrink:0; fill:currentColor; }
.sns-arrow {
  margin-left:auto; width:6px; height:6px;
  border-right:1px solid var(--text3); border-top:1px solid var(--text3);
  transform:rotate(45deg); transition:transform .2s;
}
.sns-link:hover .sns-arrow { transform:translateX(2px) rotate(45deg); }

.profile-name-block { margin-bottom:24px; }
.profile-name {
  font-family:var(--en); font-size:1.6rem; letter-spacing:.1em;
  color:var(--text); line-height:1.2; margin-bottom:4px;
}
.profile-name-en { font-size:.76rem; color:var(--text3); letter-spacing:.12em; }
.profile-bio { display:flex; flex-direction:column; gap:16px; }
.profile-bio p { font-size:.82rem; color:var(--text2); line-height:2.2; }

@media(max-width:900px) {
  .profile-grid { grid-template-columns:1fr; gap:40px; }
  .profile-avatar-wrap { flex-direction:row; align-items:flex-start; gap:24px; }
  .profile-avatar { width:120px; flex-shrink:0; }
  .profile-sns { flex:1; }
}
@media(max-width:600px) {
  .profile-avatar-wrap { flex-direction:column; }
  .profile-avatar { width:100%; aspect-ratio:1; max-width:200px; }
}

.history-sec { background:var(--bg1); }
.timeline { display:flex; flex-direction:column; gap:0; position:relative; padding-left:80px; }
.timeline::before {
  content:''; position:absolute; left:62px; top:8px; bottom:8px;
  width:1px; background:var(--border);
}
.tl-item { position:relative; padding:0 0 40px; }
.tl-item:last-child { padding-bottom:0; }
.tl-year {
  position:absolute; left:-80px; top:2px;
  font-family:var(--en); font-size:.78rem; letter-spacing:.1em;
  color:var(--accent); width:56px; text-align:right;
}
.tl-item::before {
  content:''; position:absolute; left:-18px; top:6px;
  width:7px; height:7px; border-radius:50%;
  background:var(--bg); border:1px solid var(--accent);
}
.tl-title {
  font-family:var(--jp); font-size:.9rem; font-weight:700;
  color:var(--text); margin-bottom:8px;
}
.tl-desc { font-size:.78rem; color:var(--text2); line-height:2.1; }

@media(max-width:768px) {
  .timeline { padding-left:64px; }
  .timeline::before { left:51px; }
  .tl-year { left:-64px; font-size:.72rem; width:48px; }
  .tl-item::before { left:-12px; }
}

.phil-sec { background:var(--bg); }
.phil-grid {
  display:grid; grid-template-columns:1fr 1fr;
  gap:2px; background:var(--border);
  border:1px solid var(--border);
}
.phil-item { background:var(--bg); padding:36px 32px; }
.phil-num {
  font-family:var(--en); font-size:.72rem; letter-spacing:.2em;
  color:var(--accent); margin-bottom:14px;
}
.phil-title {
  font-family:var(--jp); font-size:.92rem; font-weight:700;
  color:var(--text); margin-bottom:12px;
}
.phil-desc { font-size:.78rem; color:var(--text2); line-height:2.2; }

@media(max-width:768px) {
  .phil-grid { grid-template-columns:1fr; }
  .phil-item { padding:28px 20px; }
}

.skills-sec { background:var(--bg1); }
.skills-outer { display:flex; flex-direction:column; gap:2px; background:var(--border); border:1px solid var(--border); }
.skill-group { background:var(--bg); }
.sg-head {
  display:flex; align-items:center; gap:14px;
  padding:20px 28px; border-bottom:1px solid var(--border);
}
.sg-icon {
  width:32px; height:32px; border:1px solid rgba(77,158,247,.3);
  border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0;
}
.sg-icon svg { width:14px; height:14px; stroke:var(--accent); stroke-width:1.5; fill:none; stroke-linecap:round; stroke-linejoin:round; }
.sg-title { font-family:var(--jp); font-size:.88rem; font-weight:700; color:var(--text); }
.sg-subs { display:flex; flex-direction:column; gap:0; }
.sg-sub {
  display:flex; align-items:flex-start; gap:24px;
  padding:16px 28px; border-bottom:1px solid rgba(255,255,255,.05);
}
.sg-sub:last-child { border-bottom:none; }
.sg-sub-label {
  font-size:.64rem; letter-spacing:.12em; text-transform:uppercase;
  color:var(--text3); white-space:nowrap; padding-top:4px; min-width:100px;
}
.sg-tags { display:flex; flex-wrap:wrap; gap:6px; }
.sg-tag {
  font-size:.72rem; color:var(--text2); padding:4px 10px;
  border:1px solid var(--border); background:var(--bg1);
  letter-spacing:.04em;
}

@media(max-width:768px) {
  .sg-head { padding:16px 18px; }
  .sg-sub { flex-direction:column; gap:10px; padding:14px 18px; }
  .sg-sub-label { min-width:auto; }
}
