/* CONTENT ARCHIVE / 索引与档案抽屉（文章、项目与公告共用）。 */
/* Selection follows the open drawer; keyboard focus uses its own outline. */
html:has(.content-archive) body{background-color:#101b2b;}
html:has(.content-archive) main.container{max-width:1120px!important;padding-top:clamp(42px,7vw,94px)!important;padding-bottom:88px!important;}
.content-archive{position:relative;margin-inline:auto;overflow-x:clip;color:var(--text);isolation:isolate;}.content-archive::before{content:"";position:absolute;z-index:-1;inset:-42px -8vw -64px;background:linear-gradient(90deg,rgba(6,15,28,.24),rgba(6,15,28,.08) 56%,transparent);pointer-events:none;}
.content-archive__header{position:relative}.content-archive__eyebrow,.archive-record__detail-kicker{margin:0;color:color-mix(in srgb,var(--text) 58%,transparent);font:600 11px/1.2 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.16em}.content-archive__title-row{display:flex;align-items:baseline;justify-content:space-between;gap:22px;margin-top:10px}.content-archive__title-row h1{margin:0;font-size:clamp(32px,5vw,64px);line-height:.96;letter-spacing:-.055em;font-weight:700}.content-archive__title-row span{white-space:nowrap;color:color-mix(in srgb,var(--text) 50%,transparent);font:500 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.13em}
.content-archive__controls{display:flex;align-items:flex-end;justify-content:space-between;gap:32px;margin-top:35px}.content-archive__modes{display:flex;align-items:stretch;gap:22px}.content-archive__mode{position:relative;display:grid;grid-template-columns:auto auto;align-items:baseline;gap:8px;padding:0 0 13px;border:0;border-bottom:1px solid color-mix(in srgb,var(--text) 25%,transparent);background:transparent;color:color-mix(in srgb,var(--text) 55%,transparent);font:600 13px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.1em;cursor:pointer}.content-archive__mode b{font-size:10px}.content-archive__mode i{position:absolute;bottom:-1px;left:0;width:0;height:2px;background:var(--accent);transition:width .36s cubic-bezier(.22,.8,.2,1)}.content-archive__mode:hover,.content-archive__mode:focus-visible,.content-archive__mode.is-active{color:var(--text);outline:0}.content-archive__mode.is-active i{width:100%}
.content-archive__search{min-width:224px;max-width:360px}.content-archive__search-trigger{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 0 12px;border:0;border-bottom:1px solid color-mix(in srgb,var(--text) 24%,transparent);background:transparent;color:color-mix(in srgb,var(--text) 68%,transparent);font:600 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.14em;cursor:pointer}.content-archive__search-trigger i{font-size:17px;font-style:normal;transition:transform .25s ease}.content-archive__search-trigger.is-open i{transform:rotate(45deg)}.content-archive__search-field{display:flex;align-items:center;gap:8px;padding-top:11px}.content-archive__search-field[hidden]{display:none}.content-archive__search-field input{width:100%;min-width:0;border:0;border-bottom:1px solid color-mix(in srgb,var(--accent) 54%,transparent);border-radius:0;padding:7px 0;background:transparent;color:var(--text);font:500 14px/1.3 inherit;outline:0}.content-archive__search-field input::placeholder{color:color-mix(in srgb,var(--text) 43%,transparent)}.content-archive__search-field button{border:0;background:transparent;color:var(--text);font-size:21px;cursor:pointer}
.content-archive__status{margin-top:18px;color:color-mix(in srgb,var(--text) 50%,transparent);font:600 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.14em}.content-archive__project-hint{margin-top:10px;border:0;background:transparent;padding:0;color:var(--accent);font:600 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.1em;cursor:pointer}.content-archive__rule{display:flex;align-items:center;gap:10px;margin:30px 0 0;height:1px;background:color-mix(in srgb,var(--text) 30%,transparent)}.content-archive__rule::before{content:"";width:7px;height:7px;border:1px solid var(--accent);border-radius:50%;background:var(--panel)}.content-archive__rule i{display:block;width:clamp(56px,16vw,166px);height:1px;background:var(--accent)}
.content-archive__panel{animation:archivePanelIn .36s cubic-bezier(.22,.8,.2,1)}.content-archive__panel[hidden],.archive-record[hidden]{display:none!important}.content-archive__index{border-bottom:1px solid color-mix(in srgb,var(--text) 23%,transparent)}.archive-record{position:relative;border-top:1px solid color-mix(in srgb,var(--text) 23%,transparent)}.archive-record__index{position:relative;display:grid;grid-template-columns:76px minmax(0,1fr) minmax(74px,auto) 112px 24px;align-items:center;gap:16px;width:100%;min-height:72px;padding:14px 5px 14px 0;border:0;background:transparent;color:var(--text);text-align:left;cursor:pointer}.archive-record__index::after{content:"";position:absolute;right:0;bottom:-1px;width:0;height:2px;background:var(--accent);transition:width .42s cubic-bezier(.22,.8,.2,1)}.archive-record__number,.archive-record__category,.archive-record__index time{font:600 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.1em}.archive-record__number{color:color-mix(in srgb,var(--text) 55%,transparent)}.archive-record__title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:clamp(16px,2vw,22px);font-weight:600;letter-spacing:-.025em;transition:transform .28s ease,color .28s ease}.archive-record__category,.archive-record__index time{color:color-mix(in srgb,var(--text) 48%,transparent);text-align:right}.archive-record__category{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.archive-record__arrow{justify-self:end;opacity:0;transform:translateX(-8px);transition:opacity .25s ease,transform .25s ease}.archive-record.is-open .archive-record__index::after{width:42%}.archive-record.is-open .archive-record__title{transform:translateX(5px);color:var(--accent)}.archive-record.is-open .archive-record__number{color:var(--accent)}.archive-record.is-open .archive-record__arrow{opacity:1;transform:translateX(0)}.archive-record__index:focus-visible{outline:1px solid var(--accent);outline-offset:-3px}
.archive-record__drawer{display:grid;grid-template-rows:0fr;opacity:0;transition:grid-template-rows .44s cubic-bezier(.22,.8,.2,1),opacity .2s ease}.archive-record__drawer-shell{min-height:0;overflow:hidden}.archive-record__drawer-content{display:grid;grid-template-columns:minmax(210px,39%) minmax(0,1fr);gap:clamp(24px,4vw,54px);margin:0 0 15px;padding:21px 0 27px 76px;border-bottom:1px solid color-mix(in srgb,var(--accent) 31%,transparent);background:linear-gradient(90deg,color-mix(in srgb,var(--panel) 42%,transparent),transparent 88%);transform:translateY(-10px);transition:transform .34s ease .04s}.archive-record.is-open .archive-record__drawer{grid-template-rows:1fr;opacity:1}.archive-record.is-open .archive-record__drawer-content{transform:translateY(0)}.archive-record__cover{aspect-ratio:16/9;margin:0;overflow:hidden;background:color-mix(in srgb,var(--panel) 65%,transparent)}.archive-record__cover img{width:100%;height:100%;object-fit:cover;opacity:0;transform:scale(1.03);transition:opacity .28s ease .12s,transform .42s cubic-bezier(.22,.8,.2,1) .12s}.archive-record.is-open .archive-record__cover img{opacity:1;transform:scale(1)}.archive-record__detail{align-self:center;min-width:0;padding-right:clamp(18px,3vw,42px);opacity:0;transform:translateY(10px);transition:opacity .25s ease .16s,transform .32s ease .16s}.archive-record.is-open .archive-record__detail{opacity:1;transform:translateY(0)}.archive-record__detail h2{margin:8px 0 0;font-size:clamp(21px,2.5vw,31px);line-height:1.12;letter-spacing:-.04em}.archive-record__summary{display:-webkit-box;max-width:59ch;margin:12px 0 0;overflow:hidden;color:color-mix(in srgb,var(--text) 73%,transparent);line-height:1.7;-webkit-box-orient:vertical;-webkit-line-clamp:3}.archive-record__meta{display:flex;flex-wrap:wrap;gap:8px 14px;margin-top:17px;color:color-mix(in srgb,var(--text) 55%,transparent);font:600 10px/1.4 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.08em}.archive-record__read{display:inline-flex;gap:11px;margin-top:20px;color:var(--text);font:700 11px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.12em;text-decoration:none}.archive-record__read:hover,.archive-record__read:focus-visible{color:var(--accent)}.archive-project__meta{display:flex;flex-wrap:wrap;gap:12px 25px;margin:18px 0 0}.archive-project__meta div{display:grid;gap:3px}.archive-project__meta dt{color:color-mix(in srgb,var(--text) 50%,transparent);font:600 9px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.11em}.archive-project__meta dd{margin:0;font-size:13px}.archive-project__links{display:flex;flex-wrap:wrap;align-items:center;gap:17px;margin-top:21px}.archive-project__links>a:not(.archive-record__read){color:var(--text);font:600 10px/1 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.1em;text-decoration:none}.archive-project__links>a:not(.archive-record__read):hover{color:var(--accent)}.archive-project__links .archive-record__read{margin-top:0}.content-archive__empty{padding:30px 0;margin:0;color:color-mix(in srgb,var(--text) 56%,transparent);font:600 12px/1.5 ui-monospace,SFMono-Regular,Consolas,monospace;letter-spacing:.09em}
@keyframes archivePanelIn{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:760px){html:has(.content-archive) main.container{padding:36px 20px 62px!important}.content-archive::before{inset:-26px -20px -46px}.content-archive__title-row{align-items:flex-end}.content-archive__title-row h1{font-size:37px}.content-archive__title-row span{font-size:9px}.content-archive__controls{align-items:stretch;flex-direction:column;gap:22px;margin-top:28px}.content-archive__modes{gap:14px}.content-archive__mode{font-size:11px}.content-archive__search{max-width:none}.content-archive__rule{margin-top:25px}.archive-record__index{grid-template-columns:43px minmax(0,1fr) 68px 17px;gap:9px;min-height:64px}.archive-record__category{display:none}.archive-record__number,.archive-record__index time{font-size:9px}.archive-record__title{font-size:16px}.archive-record__arrow{opacity:.6;transform:none}.archive-record__drawer-content,.archive-record__drawer-content--project{grid-template-columns:1fr;gap:18px;margin-bottom:10px;padding:16px 0 23px 43px;background:linear-gradient(90deg,color-mix(in srgb,var(--panel) 37%,transparent),transparent)}.archive-record__cover{max-width:calc(100% - 17px)}.archive-record__detail{padding-right:17px}.archive-record__detail h2{font-size:23px}.archive-record__summary{-webkit-line-clamp:4;font-size:14px}.archive-record.is-open .archive-record__index::after{width:65%}.archive-project__links{gap:13px}}
@media(prefers-reduced-motion:reduce){.content-archive__panel,.archive-record__drawer,.archive-record__drawer-content,.archive-record__cover img,.archive-record__detail,.archive-record__title,.archive-record__arrow,.archive-record__index::after,.content-archive__mode i{animation:none!important;transition-duration:.01ms!important}}

/* campus-scene.css 在本文件之后加载；Archive 不继承旧列表的大型暗色圆角底板。 */
body[data-page-section="posts"] main.container:has(.content-archive),body.dark[data-page-section="posts"] main.container:has(.content-archive){background:transparent!important;border:0!important;border-radius:0!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important;}

/* Archive 只保留必要索引信息；详情右侧本身就是进入目标。 */
.content-archive{background:linear-gradient(90deg,rgba(5,14,28,.54),rgba(5,14,28,.38) 68%,rgba(5,14,28,.22));}.content-archive__status--sr{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important;}.archive-record__index{grid-template-columns:76px minmax(0,1fr) 112px 24px;}.archive-record__detail--open{cursor:pointer;color:inherit;text-decoration:none;}.archive-record__detail--open:focus-visible{outline:1px solid var(--accent);outline-offset:6px;}.archive-record__detail--open:hover h2{color:var(--accent);}
@media(max-width:760px){.archive-record__index{grid-template-columns:43px minmax(0,1fr) 68px 17px;}}

/* 校园亮色背景上的归档前景：文本和索引线始终保持足够对比。 */
.content-archive{--text:rgba(247,250,255,.98);--muted:rgba(218,229,242,.82);--accent:#91ccff;--panel:rgba(7,20,39,.72);background:linear-gradient(90deg,rgba(5,14,28,.68),rgba(5,14,28,.54) 68%,rgba(5,14,28,.34));text-shadow:0 1px 10px rgba(0,0,0,.28)}.content-archive__controls{margin-top:0}.content-archive__mode,.content-archive__search-trigger{color:rgba(235,243,252,.9)}.archive-record__category,.archive-record__index time,.archive-record__number{color:rgba(219,231,244,.82)}.archive-record__summary,.archive-record__meta{color:rgba(228,238,249,.86)}

/* 不在归档内容外层铺虚化暗幕；用明确字重、阴影和行间距保证亮背景可读。 */
.content-archive,.content-archive::before{background:transparent!important}.content-archive{--panel:rgba(7,20,39,.58);text-shadow:0 2px 5px rgba(0,0,0,.62)}.archive-record__index{min-height:86px;padding-top:20px;padding-bottom:20px}.archive-record__title{line-height:1.3}.archive-record__index time{line-height:1.35}.content-archive__mode,.content-archive__search-trigger{line-height:1.4;padding-bottom:15px}

/* 档案索引是半透明的液态玻璃：背景仍可见，文字与细线有稳定的承托层。 */
.content-archive{padding:clamp(20px,3vw,38px);border:1px solid rgba(236,246,255,.26);border-radius:26px;background:linear-gradient(135deg,rgba(238,248,255,.08),rgba(103,143,181,.045) 44%,rgba(19,42,72,.08))!important;box-shadow:inset 0 1px 0 rgba(255,255,255,.28),0 22px 55px rgba(4,13,27,.12);backdrop-filter:blur(3px) saturate(108%);-webkit-backdrop-filter:blur(3px) saturate(108%)}
body.dark .content-archive{border-color:rgba(171,207,239,.24);background:linear-gradient(135deg,rgba(37,69,106,.18),rgba(8,22,44,.13) 52%,rgba(6,15,31,.2))!important;box-shadow:inset 0 1px 0 rgba(212,236,255,.14),0 22px 55px rgba(0,0,0,.18)}
@media(max-width:760px){.content-archive{padding:18px 16px;border-radius:19px;backdrop-filter:blur(3px) saturate(108%);-webkit-backdrop-filter:blur(3px) saturate(108%)}}

/* 搜索展开后直接提供可点击的已有词条，避免空白输入框没有起点。 */
.content-archive__search-field{display:grid;gap:12px}.content-archive__search-input-row{display:flex;align-items:center;gap:8px}.content-archive__search-input-row input{width:100%;min-width:0}.content-archive__search-terms{display:flex;flex-wrap:wrap;gap:7px}.content-archive__search-terms button{border:1px solid rgba(220,239,255,.38);border-radius:999px;padding:5px 9px;background:rgba(18,47,79,.18);color:var(--text);font:600 11px/1.2 inherit;cursor:pointer}.content-archive__search-terms button:hover,.content-archive__search-terms button:focus-visible{border-color:var(--accent);background:rgba(117,191,255,.2);outline:0}.content-archive__mode{font-size:19px;gap:11px;padding-bottom:18px}.content-archive__mode b{font-size:13px}.content-archive__modes{gap:34px}.archive-record__arrow{font-size:22px;font-weight:700;line-height:1}.archive-record__drawer-content--open{cursor:pointer}.archive-record__drawer-content--open:hover h2{color:var(--accent)}.archive-record__drawer-content{background:linear-gradient(90deg,rgba(5,14,28,.1),transparent 88%)}

/* Three clear controls, with the complete vocabulary in a full-width second row. */
.content-archive .content-archive__controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;gap:14px}
.content-archive .content-archive__modes,.content-archive .content-archive__search{display:contents}
.content-archive .content-archive__mode,.content-archive .content-archive__search-trigger{display:flex;justify-content:center;align-items:center;gap:12px;min-height:52px;padding:10px 16px;border:1px solid rgba(220,239,255,.36);border-radius:12px;background:rgba(12,28,46,.3);color:#f4f8ff;font-size:22px;font-weight:700;line-height:1.4;cursor:pointer}
.content-archive .content-archive__mode:is(:hover,:focus-visible,.is-active),.content-archive .content-archive__search-trigger:is(:hover,:focus-visible,.is-open){background:rgba(129,189,235,.22);border-color:#bcdfff;outline-offset:3px}
.content-archive .content-archive__mode i{display:none}
.content-archive .content-archive__search-field{grid-column:1/-1;min-width:0;padding:16px;border-radius:12px;background:rgba(8,23,40,.65)}
.content-archive .content-archive__search-field[hidden]{display:none}
.content-archive .content-archive__search-input-row input{min-height:44px;font-size:16px}
.content-archive .content-archive__search-terms{position:relative;max-height:clamp(116px,18vh,164px);overflow:auto;align-content:start;gap:8px;padding:3px;scrollbar-width:thin;scrollbar-color:rgba(188,223,255,.7) transparent;overscroll-behavior:contain;scroll-snap-type:y proximity;mask-image:linear-gradient(to bottom,transparent 0,#000 12px,#000 calc(100% - 12px),transparent 100%);-webkit-mask-image:linear-gradient(to bottom,transparent 0,#000 12px,#000 calc(100% - 12px),transparent 100%)}
.content-archive .content-archive__search-terms button{min-height:40px;padding:8px 13px;font-size:14px;line-height:1.4;white-space:normal;overflow-wrap:anywhere;text-align:left}
.content-archive .content-archive__search-terms button[aria-pressed="true"]{background:rgba(145,204,255,.28);border-color:#bcdfff}
@media(max-width:760px){.content-archive .content-archive__search-terms{max-height:180px;scroll-snap-type:y proximity}}

/* 公告页的返回是轻量图标，不占用一整格主操作；保留触屏点击范围。 */
[data-notice-archive] .content-archive__controls{grid-template-columns:44px repeat(2,minmax(0,1fr));align-items:center}
.content-archive__back{display:inline-flex;align-items:center;justify-content:center;width:44px;height:44px;border-radius:10px;color:var(--text);text-decoration:none}
.content-archive__back .ui-icon,.content-archive__back svg{width:22px;height:22px}
.content-archive__back:hover{color:var(--accent);background:rgba(129,189,235,.16)}
.content-archive__back:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

/* Compact paging keeps the archive's existing glass, typography and drawers. */
.content-archive__pagination{display:flex;justify-content:center;align-items:center;gap:8px;margin-top:24px;color:var(--text)}
.content-archive__pagination[hidden]{display:none}
.content-archive__page-numbers{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:6px;min-width:0}
.content-archive__pagination button{display:inline-flex;align-items:center;justify-content:center;min-width:40px;min-height:44px;padding:6px;border:0;border-radius:9px;background:transparent;color:inherit;font-family:inherit;font-size:15px;font-weight:600;line-height:1.3;cursor:pointer;transition:color .2s ease,background-color .2s ease}
.content-archive__pagination button[data-archive-page-step]{min-width:44px;font-size:25px;flex-shrink:0}
.content-archive__pagination button:hover:not(:disabled),.content-archive__pagination button[aria-current="page"]{color:var(--accent);background:rgba(129,189,235,.18)}
.content-archive__pagination button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.content-archive__pagination button:disabled{opacity:.35;cursor:default}
.content-archive__page-numbers>span{padding:0 3px;opacity:.65}
@media(max-width:760px){.content-archive__pagination{gap:3px;margin-top:18px}.content-archive__page-numbers{gap:2px}.content-archive__pagination button{min-width:28px;padding:4px;font-size:14px}.content-archive__pagination button[data-archive-page-step]{min-width:36px}}
@media(max-width:360px){.content-archive__pagination button[data-archive-page]{min-width:26px;padding:3px}.content-archive__page-numbers>span{padding:0}}
@media(prefers-reduced-motion:reduce){.content-archive__pagination button{transition:none}}
