.yt-video-grid {
  margin-top: 18px;
  display: grid;
  grid-template-columns: repeat(1, minmax(0, 1fr));
  gap: 24px;
}
@media (min-width: 700px) {
  .yt-video-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
@media (min-width: 1100px) {
  .yt-video-grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}
.yt-video-card {
  background: transparent;
  border-radius: 14px;
  overflow: visible;
  border: 0;
  display: flex;
  flex-direction: column;
  gap: 10px;
  cursor: pointer;
}
.yt-video-card:focus-visible{outline:2px solid rgba(90,167,255,.90); outline-offset:3px}
.yt-video-thumb-wrap {
  position: relative;
  aspect-ratio: 16/9;
  background: #e9e9ef;
  overflow: hidden;
  border-radius: 14px;
  border: 1px solid rgba(31,42,68,.10);
  box-shadow: 0 2px 10px rgba(31,42,68,.06);
  transition: transform .14s ease, box-shadow .14s ease;
}
.yt-video-card:hover .yt-video-thumb-wrap{transform: translateY(-1px); box-shadow: 0 10px 26px rgba(31,42,68,.12)}
.yt-video-thumb {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.yt-video-duration {
  position: absolute;
  right: 8px;
  bottom: 8px;
  background: rgba(0,0,0,.78);
  color: #fff;
  font-size: 13px;
  padding: 2px 7px;
  border-radius: 4px;
  pointer-events: none;
}
.yt-video-actions {
  position: absolute;
  left: 8px;
  bottom: 8px;
  display: flex;
  gap: 8px;
  z-index: 2;
}
.yt-video-info {
  padding: 0;
  display: flex;
  gap: 10px;
  align-items: flex-start;
}
.yt-video-avatar{
  width: 36px;
  height: 36px;
  border-radius: 999px;
  object-fit: cover;
  background: rgba(255,255,255,.75);
  border: 1px solid rgba(31,42,68,.10);
}
.yt-video-text{min-width:0; flex:1}
.yt-video-title {
  font-size: 15px;
  font-weight: 800;
  color: #1a2642;
  line-height: 1.35;
  letter-spacing: .01em;
  overflow: hidden;
  display: -webkit-box;
  line-clamp: 2;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
}
.yt-video-meta {
  font-size: 13px;
  color: rgba(26, 38, 66, .62);
  margin-top: 3px;
  letter-spacing: .01em;
}
.page-head{display:flex; align-items:flex-end; justify-content:space-between; gap:12px; flex-wrap:wrap}
.page-head__title{margin:0; font-size:22px; letter-spacing:.08em}
.page-head__desc{margin:6px 0 0; color:var(--muted); font-size:14px}

/* 留言板 */
.gb-form{margin-top:14px}
.gb-row{display:flex; flex-direction:column; gap:8px}
.gb-label{font-weight:800; letter-spacing:.02em}
.gb-input,.gb-textarea,.gb-select{
  width:100%;
  border-radius:14px;
  border:1px solid rgba(31,42,68,.14);
  background:rgba(255,255,255,.70);
  padding:10px 12px;
  color:var(--text);
}
.gb-textarea{resize:vertical; min-height:110px}
.gb-input:focus-visible,.gb-textarea:focus-visible,.gb-select:focus-visible{outline:2px solid rgba(90,167,255,.90); outline-offset:2px}
.gb-input:disabled{opacity:.65}
.gb-help{font-size:12px}
.gb-actions{display:flex; gap:10px; flex-wrap:wrap}
.gb-check{display:inline-flex; align-items:center; gap:10px; user-select:none}
.gb-check input{width:18px; height:18px}

.gb-head{display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap}
.gb-list{margin-top:12px; display:flex; flex-direction:column; gap:10px}
.gb-item{
  padding:12px;
  border-radius:14px;
  border:1px solid rgba(31,42,68,.12);
  background:rgba(255,255,255,.62);
}
.gb-item__head{display:flex; align-items:baseline; justify-content:space-between; gap:10px}
.gb-item__name{font-weight:900; letter-spacing:.02em}
.gb-item__time{font-size:12px; color:var(--muted)}
.gb-item__body{margin-top:8px; line-height:1.65; white-space:normal; word-break:break-word}

.media-grid{
  margin-top:12px;
  display:grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap:10px;
}
@media (min-width: 720px){
  .media-grid{grid-template-columns: repeat(3, minmax(0, 1fr));}
}
@media (min-width: 1020px){
  .media-grid{grid-template-columns: repeat(4, minmax(0, 1fr));}
}
@media (min-width: 1240px){
  .media-grid{grid-template-columns: repeat(5, minmax(0, 1fr));}
}

.media-thumb{
  position:relative;
  border:0;
  padding:0;
  border-radius:16px;
  overflow:hidden;
  background: rgba(255,255,255,.62);
  border:1px solid rgba(31,42,68,.12);
  min-height:120px;
}
.media-thumb img{width:100%; height:100%; object-fit:cover; aspect-ratio: 1/1}
.media-thumb::after{
  content:"";
  position:absolute;
  inset:0;
  background: linear-gradient(180deg, transparent, rgba(0,0,0,.22));
  opacity:.85;
  pointer-events:none;
}

.empty{
  margin-top:12px;
  padding:14px;
  border-radius:14px;
  border:1px dashed rgba(31,42,68,.22);
  color: var(--muted);
}

/* 同学链接页 */
.links-actions{display:flex; flex-wrap:wrap; gap:10px; margin:12px 0 6px}

/* 同学录页的“次要按钮”也用同色系，避免一个粉一个白太跳 */
.links-actions .btn--ghost{
  border-color: rgba(255,95,162,.28);
  background: linear-gradient(135deg, rgba(255,95,162,.16), rgba(185,168,255,.16));
  color: var(--text);
  box-shadow: 0 10px 22px rgba(255,95,162,.10);
}
.links-actions .btn--ghost:hover{
  box-shadow: 0 14px 30px rgba(255,95,162,.14);
}

.links-grid{display:grid; gap:12px; margin-top:12px}
@media (min-width: 900px){
  .links-grid{grid-template-columns: repeat(2, minmax(0, 1fr))}
}

.link-card{padding:14px; border-radius:14px; border:1px solid rgba(31,42,68,.12); background:rgba(255,255,255,.62)}
.link-card__head{display:flex; align-items:center; justify-content:space-between; gap:10px}
.link-card__title{font-weight:900; letter-spacing:.02em}
.link-card__del{
  min-height:34px;
  padding:6px 10px;
  border-radius:12px;
  border:1px solid rgba(31,42,68,.14);
  background:rgba(255,255,255,.70);
  color:var(--text);
  cursor:pointer;
  font-weight:800;
}
.link-card__del:hover{filter:saturate(1.1) brightness(.95)}
.link-card__del:focus-visible{outline:2px solid rgba(90,167,255,.90); outline-offset:2px}
.link-card__meta{margin-top:4px; font-size:12px; color:var(--muted)}
.link-chip-row{display:flex; flex-wrap:wrap; gap:8px; margin-top:10px}

/* 同学录：仅图标按钮 */
.link-icon-btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:40px;
  height:40px;
  border-radius:999px;
  border:1px solid rgba(31,42,68,.12);
  background:rgba(255,255,255,.60);
  color: rgba(26,38,66,.78);
  text-decoration:none;
  user-select:none;
}
button.link-icon-btn{
  padding:0;
  font:inherit;
  cursor:pointer;
}
.link-icon-btn:hover{filter:saturate(1.06) brightness(.97)}
.link-icon-btn:active{transform: translateY(0.5px)}
.link-icon-btn:focus-visible{outline:2px solid rgba(90,167,255,.90); outline-offset:2px}

.link-icon-btn__icon{
  width:20px;
  height:20px;
  display:block;
}
.link-chip{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:8px 12px;
  border-radius:999px;
  border:1px solid rgba(31,42,68,.12);
  background:rgba(255,255,255,.60);
  color:inherit;
  text-decoration:none;
  user-select:none;
}
button.link-chip{
  border:1px solid rgba(31,42,68,.12);
  background:rgba(255,255,255,.60);
  font:inherit;
  cursor:pointer;
}
.link-chip:hover{filter:saturate(1.06) brightness(.97)}
.link-chip:active{transform: translateY(0.5px)}
.link-chip:focus-visible{outline:2px solid rgba(90,167,255,.90); outline-offset:2px}

.link-chip__icon{
  width:18px;
  height:18px;
  flex:0 0 18px;
  color: rgba(26,38,66,.78);
}

.link-chip__text{font-weight:900; letter-spacing:.02em}

.link-chip--copy .link-chip__text{font-weight:800}

.lightbox{
  position:fixed;
  inset:0;
  background: rgba(0,0,0,.72);
  display:none;
  align-items:center;
  justify-content:center;
  z-index:100;
}
.lightbox[aria-hidden="false"]{display:flex}
.lightbox__inner{width:min(980px, 100%); padding:14px;}
.lightbox__frame{position:relative; border-radius:18px; overflow:hidden; border:1px solid rgba(255,255,255,.26); background:rgba(255,255,255,.10)}
.lightbox__media{width:100%; height:auto; max-height:78vh; object-fit:contain; display:block}
.lightbox__bar{display:flex; align-items:center; justify-content:space-between; gap:10px; padding:10px 10px;}
.lightbox__meta{font-size:12px; color:rgba(255,255,255,.82)}
.lightbox__actions{display:flex; gap:8px; align-items:center}

.video-grid{margin-top:12px; display:grid; grid-template-columns:1fr; gap:12px}
@media (min-width: 860px){ .video-grid{grid-template-columns: repeat(2, minmax(0, 1fr));} }

.video-card{padding:12px; border-radius:16px; border:1px solid rgba(31,42,68,.12); background:rgba(255,255,255,.62)}
.video-card__title{font-weight:800; letter-spacing:.04em}
.video-card__meta{margin-top:4px; font-size:12px; color:var(--muted)}
.video-card__actions{margin-top:10px; display:flex; gap:10px; flex-wrap:wrap}

.post-hero{
  margin-top: 6px;
  padding: 10px 6px 2px;
  max-width: 760px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
.post-hero__title{
  margin: 0;
  font-size: 22px;
  font-weight: 900;
  letter-spacing: .06em;
}
.post-hero__meta{
  margin: 8px 0 0;
  font-size: 13px;
  color: var(--muted);
  letter-spacing: .02em;
}

.post-body{
  margin-top:12px;
  max-width: 760px;
  margin-left:auto;
  margin-right:auto;
  line-height:1.95;
  font-size:16px;
  letter-spacing:.01em;
  color:rgba(26,38,66,.90);
}
.post-body a{
  color:var(--sky);
  text-decoration:none;
  font-weight:800;
}
.post-body a:visited{color:var(--sky)}
.post-body a:hover{
  filter:saturate(1.1) brightness(.95);
  text-decoration:underline;
  text-underline-offset:3px;
}
.post-body a:focus-visible{
  outline:2px solid rgba(90,167,255,.90);
  outline-offset:2px;
  border-radius:6px;
}
.post-body p{margin:0 0 14px; word-break:break-word;}
.post-body__center{
  text-align:center;
  color:rgba(26,38,66,.74);
  font-weight:800;
  letter-spacing:.06em;
  white-space: pre-wrap;
}
.post-body p:last-child{margin-bottom:0}
.post-body h3{margin:18px 0 8px}

/* 相册页：主题切换按钮（居中） */
.gallery-tabs{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:center;
  margin: 8px 0 12px;
}

@media (max-width: 520px){
  .gallery-tabs{
    flex-wrap:nowrap;
    justify-content:flex-start;
    overflow-x:auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding: 2px 2px 8px;
    margin: 8px -2px 12px;
  }
  .gallery-tabs::-webkit-scrollbar{display:none}

  .gallery-tabs .btn{
    flex: 0 0 auto;
    white-space: nowrap;
    padding: 9px 10px;
    min-height: 40px;
    border-radius: 999px;
    font-size: 14px;
  }
}
.gallery-tabs .btn[aria-selected="true"]{
  border-color: rgba(255,95,162,.55);
  background: linear-gradient(135deg, rgba(255,95,162,.16), rgba(185,168,255,.16));
  box-shadow: 0 10px 22px rgba(255,95,162,.10);
}
.gallery-tabs .btn[aria-selected="true"]:hover{
  box-shadow: 0 14px 30px rgba(255,95,162,.14);
}

@media (min-width: 860px){
  .post-body{font-size:17px}
}
.code{
  display: none;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
  font-size: 12px;
  background: rgba(255,255,255,.62);
  border:1px solid rgba(31,42,68,.12);
  padding:8px 10px;
  border-radius:12px;
  overflow:auto;
}

.chart-wrap{margin:10px 0 6px}
.chart{width:100%; height:auto; display:block}
