/*
 M1kAovo
 排版原则：以中文正文为核心；长文限制宽度，留白有层次，装饰只围绕月光与书页
 视觉方案：深海蓝 #172b3a、月白 #f7f3e9、暖金 #dfb687、雾青 #a7c1c1
 所有素材都保存在本地。没有外部字体、图库、追踪脚本。
*/

/* 01 / 基础与色彩 */
:root {
  color-scheme: light;
  --navy: #172b3a;
  --deep: #102330;
  --deep-light: #243c4b;
  --gold: #dfb687;
  --moon-white: #fff2dc;
  --mist: #a9c1c2;
  --paper: #f8f5ed;
  --paper-card: #fcfaf4;
  --paper-soft: #efeee5;
  --text: #233b42;
  --text-secondary: #53656c;
  --text-soft: #77858a;
  --rule: #d8d8cf;
  --accent: #9b6d47;
  --serif: "Songti SC", "STSong", "Noto Serif CJK SC", "Source Han Serif SC", "SimSun", serif;
  --sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;
}
:root[data-reader="night"] {
  color-scheme: dark;
  --paper: #1b2e3a;
  --paper-card: #213845;
  --paper-soft: #263d47;
  --text: #f1ede4;
  --text-secondary: #cad1cc;
  --text-soft: #a7b7b9;
  --rule: #42545d;
  --accent: #e9bf8c;
}
*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  min-width: 320px;
  font-family: var(--sans);
  background: var(--paper);
  color: var(--text);
  text-rendering: optimizeLegibility;
  -webkit-font-smoothing: antialiased;
  line-height: 1.65;
}
button,input,textarea { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; }
::selection { color:#132b36;background:#e9bd8a; }
:focus-visible { outline: 2px solid #d6a86d; outline-offset: 4px; }
.wide { width: min(1320px, calc(100% - 106px)); margin-inline:auto; }
.wrap { width: min(1120px, calc(100% - 112px)); margin-inline:auto; }
.skip-link {
  position:fixed;z-index:200;left:20px;top:-100px;
  background:#fff3da;color:#122b38;padding:11px 18px;border-radius:6px;
}
.skip-link:focus { top:15px; }
.read-progress {
  position:fixed;z-index:170;left:0;top:0;height:3px;width:0;
  background:var(--gold);pointer-events:none;
}
.paper-content { background:var(--paper); color:var(--text); transition:background-color .24s,color .24s; }
img,svg { vertical-align:middle; }

/* 02 / 顶部导航 */
.site-header {
  position:sticky;top:0;z-index:100;
  background:rgba(23,43,58,.97);
  border-bottom:1px solid rgba(233,218,191,.15);
  backdrop-filter:blur(15px);
  -webkit-backdrop-filter:blur(15px);
}
.nav-wrap { display:flex;align-items:center;min-height:76px;gap:36px; }
.brand { display:inline-flex;gap:14px;align-items:center;color:#f7e9d2;flex:none; }
.brand-name { font:700 25px/1 Georgia,var(--sans);letter-spacing:-.045em; }
.brand-crescent {
  display:block;position:relative;width:26px;height:26px;border-radius:50%;
  background:#f2ddbc;transform:rotate(-17deg);
  filter:drop-shadow(0 0 9px rgba(245,218,168,.15));
}
.brand-crescent::after {
  content:"";position:absolute;top:-5px;left:11px;
  width:26px;height:26px;border-radius:50%;background:#172b3a;
}
.nav { display:flex;align-items:center;justify-content:flex-end;flex:1;gap:clamp(15px,2vw,34px); }
.nav a {
  position:relative;padding:24px 0;color:#b7c5c7;
  font-size:13px;letter-spacing:.08em;transition:color .2s;
}
.nav a:hover,.nav a.active { color:#fff2dc; }
.nav a.active::after {
  content:"";position:absolute;bottom:15px;left:calc(50% - 2px);
  width:4px;height:4px;background:var(--gold);transform:rotate(45deg);
}
.header-tools { display:flex;align-items:center;gap:10px; }
.theme-btn,.menu-btn {
  width:40px;height:40px;background:transparent;color:#d3dfdb;
  display:flex;align-items:center;justify-content:center;
  border:1px solid rgba(225,222,207,.25);border-radius:50%;
  transition:background .2s;
}
.theme-btn:hover,.menu-btn:hover { background:rgba(255,255,255,.1); }
.theme-btn[aria-pressed="true"] { color:var(--gold);border-color:var(--gold); }
.theme-btn svg { width:19px;height:19px; }
.menu-btn { display:none;flex-direction:column;gap:5px; }
.menu-btn span { display:block;width:17px;height:1.5px;background:#e2d9c7; }

/* 03 / 首页：月夜 */
.hero {
  position:relative;min-height:695px;overflow:hidden;
  background: radial-gradient(ellipse 54% 70% at 79% 41%,rgba(65,91,104,.35),transparent 69%),
              linear-gradient(135deg,#172b3a 15%,#1a3140 62%,#142a37);
  color:#f8efdd;
}
.hero::before {
  content:"";position:absolute;left:3%;top:11%;width:15vw;height:15vw;
  max-width:210px;max-height:210px;border:1px solid rgba(188,207,210,.065);
  border-radius:50%;pointer-events:none;
}
.hero-layout {
  display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);
  align-items:center;min-height:620px;gap:0;
}
.hero-writing { position:relative;z-index:3;padding:65px 0 46px;min-width:0; }
.hero-small { display:flex;align-items:center;gap:11px;color:#d5b58d;font:500 14px/1.5 var(--serif);letter-spacing:.14em; }
.tiny-star {font:normal 22px Georgia,serif;color:#e8c18c;}
.hero-writing h1 {
  margin:29px 0 26px;
  max-width:780px;
  font:600 clamp(42px,4.8vw,69px)/1.49 var(--serif);
  letter-spacing:.005em;
  white-space:nowrap;
  color:#fff0d8;
  text-wrap:pretty;
}
.hero-writing > p {
  max-width:475px;margin:0;
  font:400 15px/2.15 var(--sans);letter-spacing:.035em;color:#becbcc;
}
.hero-links {display:flex;align-items:center;gap:31px;margin-top:38px;flex-wrap:wrap;}
.hero-primary {
  min-width:153px;min-height:47px;
  display:inline-flex;align-items:center;justify-content:space-between;gap:18px;
  padding:11px 17px 11px 19px;border:1px solid #dfbb8e;
  color:#192d38;background:#e7c59a;font-size:13px;font-weight:700;
  transition:transform .2s,background .2s;
}
.hero-primary:hover {transform:translateY(-2px);background:#f6d5a6;}
.hero-secondary {color:#d5ded9;font-size:13px;display:inline-flex;gap:10px;align-items:center;}
.hero-secondary:hover {color:#f9ddb2;}
.hero-bottom {
  display:flex;gap:13px;align-items:center;margin-top:64px;
  color:#9db2b5;font-size:12px;letter-spacing:.12em;
}
.line-symbol {font:30px Georgia,serif;color:var(--gold);opacity:.75;}
.hero-art { position:relative;z-index:1;align-self:stretch;display:flex;align-items:center;justify-content:center;min-width:0; }
.hero-art::before {
  content:"";position:absolute;inset:14% 0 14% 8%;
  background:radial-gradient(ellipse at 52% 45%,rgba(239,209,164,.08),transparent 64%);
}
.hero-art img {position:relative;width:min(100%,645px);max-height:580px;object-fit:contain;filter:drop-shadow(0 30px 30px rgba(7,14,20,.18));animation:none; /* 暂停首页插画上下浮动；等待以后换成自己喜欢的照片 */}
.hero-drawing-note {position:absolute;bottom:42px;right:6%;color:#a8b9bb;font:14px/1.3 var(--serif);letter-spacing:.07em;}
.hero-bottom-rule {min-height:72px;display:flex;gap:17px;align-items:center;color:#a9bdc0;font:13px var(--serif);letter-spacing:.12em;}
.hero-bottom-rule span:first-child {font-size:25px;color:#e6c28f;}
.hero-bottom-rule i {height:1px;background:rgba(203,219,215,.2);flex:1;}
@keyframes moon-float {0%,100%{transform:translateY(0);}50%{transform:translateY(-9px);}}

/* 04 / 共用文字与留白 */
.section-head {display:flex;justify-content:space-between;align-items:end;gap:34px;margin-bottom:43px;}
.section-kicker {
  display:block;font-size:12px;font-weight:700;letter-spacing:.13em;color:var(--accent);
}
.section-head h2,.subject-note h2,.home-closing h2,.favorite-hero h2,.about-copy h2,.group-note h2 {
  font:600 clamp(27px,3.2vw,39px)/1.5 var(--serif);
  letter-spacing:.012em;
  color:var(--text);
}
.section-head h2 {margin:12px 0 13px;}
.section-head p {font-size:13px;margin:0;color:var(--text-secondary);line-height:1.9;}
.inline-link {
  display:inline-flex;align-items:center;gap:18px;
  flex:none;padding-bottom:6px;color:var(--text);font-size:13px;font-weight:650;
  border-bottom:1px solid var(--accent);transition:color .2s,gap .2s;
}
.inline-link:hover {gap:25px;color:var(--accent);}

/* 05 / 最近笔记：杂志目录 */
.home-latest {padding-top:117px;padding-bottom:118px;}
.post-list {border-top:1px solid var(--rule);}
.post-row {
  display:grid;grid-template-columns:56px minmax(0,1fr) 142px;
  gap:22px;padding:31px 0 32px;min-width:0;
  border-bottom:1px solid var(--rule);
  transition:background .2s,padding .2s;
}
.post-row:hover {background:color-mix(in srgb,var(--paper-soft) 50%,transparent);padding-inline:13px;}
.post-index {font:16px/1.7 Georgia,serif;color:var(--accent);}
.post-main {display:flex;flex-direction:column;gap:9px;min-width:0;}
.post-mini {font-size:11px;color:var(--accent);letter-spacing:.035em;}
.post-mini b {font-weight:400;margin:0 6px;}
.post-main strong {color:var(--text);font:600 clamp(18px,2.1vw,24px)/1.45 var(--serif);letter-spacing:.01em;}
.post-teaser {font-size:13px;color:var(--text-secondary);line-height:1.85;}
.post-aside {display:flex;align-items:start;justify-content:space-between;gap:12px;padding-top:6px;color:var(--text-soft);font-size:12px;white-space:nowrap;}
.post-arrow {color:var(--accent);font-size:21px;line-height:1;transition:transform .2s;}
.post-row:hover .post-arrow {transform:translate(4px,-3px);}

/* 06 / 专题目录 */
.subject-section {background:var(--paper-soft);border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);}
.subject-layout {display:grid;grid-template-columns:minmax(0,.82fr) minmax(0,1.18fr);gap:105px;padding-top:113px;padding-bottom:114px;}
.subject-note {position:relative;min-width:0;}
.subject-note h2 {margin:20px 0 17px;font-size:clamp(30px,3.5vw,45px);}
.subject-note p {max-width:350px;font-size:13px;color:var(--text-secondary);line-height:2;}
.subject-mark {display:flex;align-items:center;gap:13px;margin-top:46px;color:var(--accent);}
.subject-mark span {font:42px/1 var(--serif);}
.subject-mark i {width:68px;height:1px;background:var(--accent);opacity:.6;}
.subject-index {border-top:1px solid var(--rule);}
.subject-line {
  display:grid;grid-template-columns:40px minmax(0,1fr) 70px 24px;align-items:center;gap:19px;
  min-height:78px;border-bottom:1px solid var(--rule);
  transition:padding .2s,color .2s;
}
.subject-line:hover {padding-inline:10px;color:var(--accent);}
.subject-num {font:13px Georgia,serif;color:var(--accent);}
.subject-line > span:nth-child(2) {font:550 18px var(--serif);}
.subject-count {font-size:12px;color:var(--text-soft);}
.subject-arrow {font-size:20px;color:var(--accent);}

/* 07 / 图片编辑区 */
.home-gallery {padding-top:113px;padding-bottom:123px;}
.home-gallery-grid {display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:15px;}
.picture {display:block;position:relative;border:0;padding:0;width:100%;height:100%;background:#223f4d;overflow:hidden;text-align:left;color:#fff;cursor:zoom-in;}
.picture img {display:block;width:100%;height:100%;object-fit:cover;transition:transform .65s cubic-bezier(.2,.7,.2,1),filter .5s;}
.picture:hover img {transform:scale(1.035);filter:brightness(.93);}
.picture::after {content:"";position:absolute;inset:45% 0 0;background:linear-gradient(transparent,rgba(3,18,30,.5));pointer-events:none;}
.picture-label {position:absolute;z-index:1;bottom:21px;left:23px;right:23px;display:flex;align-items:center;justify-content:space-between;gap:8px;color:#fff8eb;font-size:13px;font-weight:550;letter-spacing:.04em;}
.picture-label span {font-size:21px;}
.home-picture-main,.home-picture-small {height:305px;}
.home-picture-main {height:405px;}
.home-picture-small {height:405px;}
.home-gallery .picture {min-height:0;}

/* 08 / 收尾 */
.home-closing {padding-bottom:135px;display:grid;grid-template-columns:.68fr 1.32fr;gap:45px;border-top:1px solid var(--rule);padding-top:58px;}
.closing-lines {display:flex;align-items:center;gap:18px;color:var(--accent);font-size:12px;white-space:nowrap;}
.closing-lines i {width:62px;height:1px;background:var(--rule);}
.home-closing h2 {margin:0 0 17px;font-size:clamp(27px,3.5vw,42px);}
.home-closing p {max-width:625px;margin:0 0 28px;color:var(--text-secondary);font-size:14px;line-height:2;}

/* 09 / 内页标题 */
.page-heading {padding-top:99px;padding-bottom:62px;}
.page-kicker {display:inline-flex;align-items:center;gap:10px;color:var(--accent);font-size:12px;font-weight:720;letter-spacing:.15em;}
.kicker-diamond {font:20px/1 var(--serif);color:var(--accent);}
.page-heading h1 {font:600 clamp(37px,4.8vw,62px)/1.3 var(--serif);letter-spacing:.01em;margin:18px 0 22px;color:var(--text);}
.page-heading p {font-size:14px;line-height:2;max-width:720px;color:var(--text-secondary);margin:0;}

/* 10 / 笔记筛选 */
.notes-layout {display:grid;grid-template-columns:205px minmax(0,1fr);gap:70px;padding-bottom:132px;align-items:start;}
.notes-sidebar {position:sticky;top:105px;min-width:0;}
.notes-sidebar-title {padding:0 0 19px;margin:0;font-size:12px;color:var(--accent);border-bottom:1px solid var(--rule);font-weight:700;}
.notes-filters {display:flex;flex-direction:column;}
.filter {
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  min-width:0;min-height:49px;padding:10px 1px;
  border:0;border-bottom:1px solid var(--rule);background:transparent;
  color:var(--text-secondary);text-align:left;font-size:13px;
}
.filter:hover,.filter.active {color:var(--accent);}
.filter.active span::before {content:"☾ ";font-size:15px;}
.filter small {font:12px Georgia,serif;color:var(--text-soft);}
.notes-margin {font:13px/1.95 var(--serif);color:var(--text-soft);border-left:2px solid var(--rule);padding-left:16px;margin-top:52px;}
.notes-main {min-width:0;}
.search-line {display:flex;align-items:center;gap:17px;border-bottom:1px solid var(--text);padding:0 1px 14px;}
.search-lens {font:30px/1 Georgia,serif;color:var(--accent);}
.search-line input {flex:1;min-width:0;border:0;outline:0;color:var(--text);background:transparent;font-size:14px;}
.search-line input::placeholder {color:var(--text-soft);}
.search-line kbd {font:13px Georgia,serif;color:var(--text-soft);border:1px solid var(--rule);border-radius:3px;padding:0 7px;}
.notes-result-top {display:flex;justify-content:space-between;align-items:center;color:var(--text-soft);font-size:12px;margin:24px 0 23px;}
.notes-main .post-row {grid-template-columns:38px minmax(0,1fr) 120px;gap:14px;}
.no-results {padding:80px 25px;text-align:center;color:var(--text-secondary);}
.no-results>span {display:block;font:60px var(--serif);color:var(--accent);}
.no-results p {margin:10px 0 23px;}
.no-results button {border:1px solid var(--rule);padding:9px 15px;color:var(--text);background:transparent;}

/* 11 / 文章阅读 */
.reading-page {padding-bottom:90px;}
.reading-top {display:flex;justify-content:space-between;align-items:center;gap:15px;padding-top:43px;color:var(--text-soft);font-size:12px;}
.reading-top a:hover {color:var(--accent);}
.reading-title {padding-top:64px;padding-bottom:57px;border-bottom:1px solid var(--rule);}
.reading-title h1 {max-width:920px;margin:23px 0;font:600 clamp(37px,4.2vw,56px)/1.48 var(--serif);color:var(--text);}
.reading-title>p {max-width:820px;font-size:15px;color:var(--text-secondary);line-height:2;}
.reading-meta {display:flex;gap:12px;flex-wrap:wrap;margin-top:25px;font-size:11px;color:var(--text-soft);}
.reading-meta span {padding-right:12px;border-right:1px solid var(--rule);}
.reading-meta span:last-child {border-right:0;}
.reading-columns {display:grid;grid-template-columns:minmax(0,730px) minmax(180px,1fr);gap:80px;padding-top:56px;align-items:start;}
.article-copy {
  min-width:0;
  font-size:17px;
  line-height:1.96;
  color:var(--text-secondary);
  overflow-wrap:anywhere;
}
.article-copy p {margin:0 0 1.4em;}
.article-copy .lead {font:400 20px/1.88 var(--serif);color:var(--text);margin-bottom:35px;}
.article-copy h2 {
  color:var(--text);font:600 29px/1.5 var(--serif);
  margin:55px 0 24px;scroll-margin-top:135px;
}
.article-copy h2::before {content:"☾";font:21px var(--serif);margin-right:12px;color:var(--accent);}
.article-copy h3 {font:600 20px/1.5 var(--serif);margin:30px 0 15px;color:var(--text);}
.article-copy ul,.article-copy ol {padding-left:27px;margin:20px 0 25px;}
.article-copy li {margin:8px 0;}
.article-copy strong {color:var(--text);font-weight:660;}
.article-copy a {color:var(--accent);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px;}
.article-copy code {
  font: .88em/1.6 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  background:var(--paper-soft);padding:2px 5px;border-radius:3px;color:var(--text);
}
.article-copy pre {
  position:relative;background:#1b303c;color:#e8efe9;border:1px solid #314b57;
  border-radius:7px;padding:52px 20px 22px;overflow:auto;
  margin:30px 0;
  box-shadow:0 12px 33px rgba(19,28,34,.08);
}
.article-copy pre::before {content:"C++";position:absolute;left:20px;top:15px;font:12px ui-monospace,Menlo,monospace;color:#b0cbd0;letter-spacing:.06em;}
.article-copy pre code {background:none;color:inherit;padding:0;font:13px/1.85 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;white-space:pre;display:block;width:max-content;min-width:100%;}
.copy-code {position:absolute;right:12px;top:10px;border:1px solid #57717a;background:#294653;color:#deece7;border-radius:4px;font-size:11px;padding:5px 9px;}
.copy-code:hover {background:#385b65;}
.article-copy blockquote {margin:30px 0;padding:10px 0 10px 22px;border-left:2px solid var(--accent);font:18px/1.9 var(--serif);color:var(--text);}
.article-copy .equation {font:20px/1.65 Georgia,var(--serif);color:var(--text);text-align:center;border-block:1px solid var(--rule);padding:25px 13px;margin:30px 0;white-space:normal;}
.article-copy .aside-note {padding:19px 23px;background:var(--paper-soft);border-left:2px solid var(--accent);font-size:14px;line-height:1.95;margin:28px 0;}
.article-copy .aside-note p:last-child {margin:0;}
.article-copy table {border-collapse:collapse;max-width:100%;width:100%;font-size:14px;margin:24px 0;}
.article-copy th,.article-copy td {border-bottom:1px solid var(--rule);padding:11px 8px;text-align:left;}
.article-copy th {color:var(--text);}
.reading-sidebar {min-width:0;}
.reading-sidebar-inner {position:sticky;top:125px;border-top:1px solid var(--rule);padding-top:24px;}
.reading-sidebar-label {font-size:12px;color:var(--accent);font-weight:700;}

/* 文章右侧目录 */
#article-toc {
  display: flex;
  flex-direction: column;
  gap: 9px;
}

#article-toc button {
  display: block;
  width: 100%;

  padding: 11px 13px;

  border: 1px solid var(--rule);
  border-radius: 5px;

  background: transparent;
  color: var(--text-secondary);

  text-align: left;
  line-height: 1;
  cursor: pointer;

  transition:
    border-color 0.2s,
    background-color 0.2s,
    color 0.2s;
}

#article-toc button:hover,
#article-toc button:focus-visible {
  border-color: var(--accent);
  background: rgba(160, 107, 66, 0.08);
  color: var(--text);
}

#article-toc button:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

.reading-copy-link {border:0;border-top:1px solid var(--rule);padding:21px 0 0;background:none;color:var(--text-soft);font-size:12px;}
.reading-copy-link:hover {color:var(--accent);}
.article-foot {display:flex;align-items:center;gap:22px;border-top:1px solid var(--rule);padding-top:31px;margin-top:65px;}
.article-end-symbol {font:45px var(--serif);color:var(--accent);}
.article-foot p {color:var(--text-soft);font-size:13px;margin:0;flex:1;}
.article-foot a {color:var(--accent);font-size:13px;}
.loading-note {color:var(--text-soft);}
.load-fail {padding:55px 25px;border:1px solid var(--rule);}
.load-fail h2 {margin-top:0;}
.load-fail code {display:block;margin-top:13px;white-space:pre-wrap;}

/* 12 / 相册 */
.gallery-page {padding-bottom:128px;}
.gallery-intro {display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--rule);padding:19px 0 28px;color:var(--text-soft);font-size:12px;}
.gallery-grid {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 22px;}
.gallery-entry {min-width:0;}
.gallery-entry .picture {height:330px;}
.gallery-entry-wide .picture {height:405px;}
.gallery-entry:nth-child(2) .picture {height:405px;}
.gallery-info {display:flex;justify-content:space-between;gap:15px;padding-top:15px;color:var(--text);font-size:14px;}
.gallery-info small {color:var(--text-soft);font-size:12px;}
.gallery-note {display:flex;align-items:center;gap:25px;margin-top:78px;border-top:1px solid var(--rule);padding-top:25px;}
.gallery-note span {font:42px var(--serif);color:var(--accent);}
.gallery-note p {max-width:670px;color:var(--text-secondary);font-size:13px;line-height:2;}
.lightbox {
  position:fixed;max-width:min(1070px,94vw);max-height:93vh;width:max-content;
  background:#102634;color:#e8e1d7;border:1px solid #48616a;
  padding:48px 24px 20px;overflow:auto;
}
.lightbox::backdrop {background:rgba(3,10,16,.91);backdrop-filter:blur(4px);}
.lightbox img {display:block;max-width:90vw;max-height:73vh;object-fit:contain;margin:auto;}
.lightbox-close {position:absolute;top:5px;right:13px;font:32px/1 var(--sans);color:#f3e2ca;background:none;border:0;}
.lightbox-caption {display:flex;justify-content:space-between;gap:20px;margin-top:16px;font-size:13px;}
.lightbox-caption span {font-size:12px;color:#afbdc1;}

/* 13 / 收藏 */
.favorite-page {padding-bottom:127px;}
.favorite-hero {display:grid;grid-template-columns:.76fr 1.24fr;gap:96px;align-items:center;padding:70px clamp(30px,6vw,90px);background:var(--paper-soft);border-block:1px solid var(--rule);}
.favorite-hero h2 {margin:20px 0 19px;font-size:clamp(31px,3.6vw,45px);}
.favorite-hero p {font-size:14px;color:var(--text-secondary);line-height:2;max-width:520px;}
.favorite-vinyl {width:min(300px,100%);aspect-ratio:1;border-radius:50%;margin:auto;background:repeating-radial-gradient(circle at center,#1d333f 0 5px,#263b45 6px 7px,#182c37 8px 12px);border:8px solid #142c39;box-shadow:0 22px 35px rgba(12,27,37,.19);display:grid;place-items:center;}
.vinyl-center {width:110px;aspect-ratio:1;border-radius:50%;background:#d3a87a;border:8px solid #b78b64;display:grid;place-items:center;color:#243948;box-shadow:inset 0 0 0 1px #eacba1;}
.vinyl-center span {font:70px Georgia,serif;}
.favorite-columns {display:grid;grid-template-columns:1fr 1fr;gap:75px;margin-top:90px;}
.favorite-col h3 {font:600 29px var(--serif);margin:0 0 23px;}
.favorite-line {display:grid;grid-template-columns:39px 1fr auto;align-items:center;gap:12px;min-height:72px;border-top:1px solid var(--rule);}
.favorite-line:last-child {border-bottom:1px solid var(--rule);}
.favorite-line>span {font:13px Georgia,serif;color:var(--accent);}
.favorite-line strong {font-size:15px;font-weight:600;color:var(--text);}
.favorite-line small {font-size:11px;color:var(--text-soft);text-align:right;}
.favorite-disclaimer {padding-top:32px;color:var(--text-soft);font-size:12px;}

/* 14 / 项目 */
.projects-page {padding-bottom:125px;}
.project-leading {display:grid;grid-template-columns:1.05fr .95fr;min-height:430px;background:var(--paper-soft);border:1px solid var(--rule);overflow:hidden;}
.project-leading-copy {padding:57px 61px;}
.project-state {font-size:12px;color:var(--accent);display:block;}
.project-state i {display:inline-block;width:6px;height:6px;background:#b5ae6a;border-radius:50%;margin-right:7px;}
.project-num {display:block;color:var(--text-soft);font:14px Georgia,var(--serif);margin-top:45px;}
.project-leading h2 {font:600 clamp(37px,4vw,54px) Georgia,var(--serif);color:var(--text);margin:10px 0 22px;}
.project-leading p {font-size:14px;line-height:2;color:var(--text-secondary);max-width:380px;}
.project-tags {display:flex;flex-wrap:wrap;gap:7px;margin-top:23px;}
.project-tags span {font-size:11px;color:var(--text-secondary);border:1px solid var(--rule);padding:4px 8px;}
.project-more {display:block;margin-top:28px;color:var(--accent);font-size:12px;}
.project-picture {background:#213e4b;min-height:360px;}
.project-picture img {width:100%;height:100%;object-fit:cover;transition:transform .5s;}
.project-leading:hover .project-picture img {transform:scale(1.02);}
.project-next {display:grid;grid-template-columns:1fr 1fr;gap:60px;margin-top:68px;}
.project-next article {border-top:1px solid var(--rule);padding-top:27px;}
.project-next span {color:var(--accent);font:15px Georgia,serif;}
.project-next h3 {font:600 23px/1.5 var(--serif);margin:16px 0 8px;}
.project-next p {font-size:13px;color:var(--text-secondary);line-height:1.9;}
.resume-access {display:grid;grid-template-columns:150px 1fr 30px;align-items:center;gap:18px;margin-top:75px;padding:25px 0;border-block:1px solid var(--rule);font-size:14px;}
.resume-access span:first-child {font-weight:650;}
.resume-access span:nth-child(2) {color:var(--text-soft);font-size:12px;}
.resume-access span:last-child {font-size:24px;color:var(--accent);}

/* 15 / 关于我 */
.about-page {display:grid;grid-template-columns:.82fr 1.18fr;gap:90px;align-items:start;padding-bottom:107px;}
.about-picture {position:relative;min-width:0;}
.about-picture img {width:100%;aspect-ratio:4/5;object-fit:cover;}
.about-picture-note {position:absolute;bottom:20px;right:23px;color:#efe4d2;font:19px var(--serif);text-shadow:0 2px 8px rgba(0,0,0,.25);}
.about-copy {padding-top:12px;}
.about-copy h2 {font-size:38px;margin:18px 0 31px;}
.about-copy p {font-size:15px;color:var(--text-secondary);line-height:2.17;margin:0 0 24px;}
.about-list {border-top:1px solid var(--rule);margin-top:35px;padding-top:22px;display:flex;flex-wrap:wrap;gap:10px;}
.about-list h3 {width:100%;font-size:13px;color:var(--text);margin:0 0 8px;}
.about-list span {font-size:12px;color:var(--text-secondary);border:1px solid var(--rule);padding:6px 12px;}
.about-quiet {font-size:12px!important;color:var(--text-soft)!important;margin-top:30px!important;}
.about-links {display:flex;gap:25px;flex-wrap:wrap;margin-top:34px;color:var(--accent);font-size:13px;}
.group-note {display:flex;align-items:center;justify-content:space-between;gap:55px;border-top:1px solid var(--rule);padding-top:56px;padding-bottom:123px;}
.group-note h2 {font-size:29px;margin:15px 0 13px;}
.group-note p {max-width:610px;color:var(--text-secondary);font-size:14px;line-height:2;}
.group-moon {color:var(--accent);font:clamp(75px,13vw,152px)/1 var(--serif);transform:rotate(-8deg);}

/* 16 / 简历 */
.resume-tools {display:flex;justify-content:space-between;gap:20px;align-items:center;padding-bottom:26px;font-size:12px;color:var(--accent);}
.resume-tools button {font-size:13px;padding:9px 16px;border:1px solid var(--rule);color:var(--text);background:transparent;}
.resume-tools button:hover {color:var(--accent);}
.resume-paper {max-width:900px;background:var(--paper-card);border:1px solid var(--rule);padding:65px;margin-bottom:115px;}
.resume-title {display:flex;justify-content:space-between;gap:30px;align-items:center;padding-bottom:26px;border-bottom:2px solid var(--text);}
.resume-title small {font-size:12px;color:var(--accent);}
.resume-title h2 {font:600 48px Georgia,var(--serif);margin:7px 0;}
.resume-title p {color:var(--text-secondary);font-size:13px;margin:0;}
.resume-title>span {font:77px var(--serif);color:var(--accent);}
.resume-section {display:grid;grid-template-columns:170px 1fr;gap:30px;padding:24px 0;border-bottom:1px solid var(--rule);}
.resume-section h3 {font:600 16px var(--serif);margin:0;color:var(--text);}
.resume-section p {font-size:13px;color:var(--text-secondary);margin:0;line-height:1.9;}

/* 17 / 站点收尾 */
.site-footer {background:#142735;color:#b9c7c6;border-top:1px solid rgba(255,255,255,.08);}
.footer-main {padding:55px 0 40px;display:grid;grid-template-columns:1fr 1.5fr 1fr;gap:25px;align-items:center;}
.footer-sign {font:600 23px Georgia,var(--serif);color:#f1dfc4;white-space:nowrap;}
.footer-moon {color:#e4bd89;font:28px var(--serif);margin-right:8px;}
.footer-sign small {font:12px var(--serif);color:#a7bcc0;margin-left:9px;}
.footer-main p {font-size:13px;text-align:center;color:#adbdc0;margin:0;}
.footer-nav {display:flex;justify-content:end;gap:18px;flex-wrap:wrap;}
.footer-nav a {font-size:12px;}
.footer-nav a:hover {color:#e2bc90;}
.footer-bottom {padding:15px 0 26px;border-top:1px solid rgba(255,255,255,.12);display:flex;justify-content:space-between;gap:20px;color:#8c9fa5;font-size:11px;}
.missing {min-height:70vh;text-align:center;padding:120px 30px;}
.missing-moon {font:110px var(--serif);color:var(--accent);}
.missing h1 {font:600 35px var(--serif);margin:0;}
.missing p {color:var(--text-soft);margin:13px 0 25px;}
.missing a {font-size:14px;color:var(--accent);text-decoration:underline;}
.toast {position:fixed;z-index:160;bottom:24px;left:50%;transform:translate(-50%,15px);opacity:0;background:#102632;color:#f1e6d0;padding:10px 18px;border:1px solid #46626b;font-size:12px;pointer-events:none;transition:opacity .2s,transform .2s;white-space:nowrap;}
.toast.show {opacity:1;transform:translate(-50%,0);}

/* 18 / 中小屏 */
@media (max-width:1090px) {
  .wide {width:calc(100% - 70px);}
  .wrap {width:calc(100% - 80px);}
  .hero-writing h1 {font-size:clamp(36px,4.5vw,56px);}
  .subject-layout {gap:55px;}
  .reading-columns {gap:45px;}
  .favorite-hero {gap:55px;}
}
@media (max-width:820px) {
  .wide,.wrap {width:calc(100% - 46px);}
  .nav-wrap {min-height:69px;}
  .nav {
    display:none;position:absolute;top:69px;left:0;right:0;
    background:#172b3a;z-index:100;
    border-top:1px solid rgba(255,255,255,.1);
    border-bottom:1px solid rgba(255,255,255,.15);
    padding:12px 26px 25px;
    flex-direction:column;align-items:stretch;gap:0;
  }
  .nav.open {display:flex;}
  .nav a {padding:11px 0;border-bottom:1px solid rgba(255,255,255,.06);}
  .nav a.active::after {left:auto;right:6px;top:50%;}
  .header-tools {margin-left:auto;}
  .menu-btn {display:flex;}
  .hero {min-height:0;}
  .hero-layout {grid-template-columns:minmax(0,1fr);gap:7px;min-height:0;}
  .hero-writing {padding:64px 0 10px;}
  .hero-writing h1 {font-size:clamp(36px,6.4vw,57px);white-space:normal;}
  .hero-bottom {margin-top:42px;}
  .hero-art {max-width:590px;width:100%;justify-self:center;min-height:260px;}
  .hero-art img {width:100%;max-height:455px;}
  .hero-drawing-note {bottom:15px;}
  .hero-bottom-rule {min-height:55px;}
  .subject-layout {grid-template-columns:minmax(0,1fr);gap:38px;padding-block:75px;}
  .subject-note h2 br {display:none;}
  .subject-note p {max-width:650px;}
  .subject-mark {display:none;}
  .home-latest,.home-gallery {padding-block:80px;}
  .home-gallery-grid {grid-template-columns:1fr 1fr;}
  .home-picture-main {grid-column:1/-1; height:360px;}
  .home-picture-small {height:270px;}
  .home-closing {padding-bottom:95px;}
  .notes-layout {grid-template-columns:minmax(0,1fr);gap:28px;padding-bottom:85px;}
  .notes-sidebar {position:static;}
  .notes-sidebar-title {padding-bottom:10px;}
  .notes-filters {flex-direction:row;gap:14px;overflow-x:auto;padding-bottom:4px;}
  .filter {flex:none;min-height:43px;gap:7px;border-bottom:1px solid var(--rule);}
  .notes-margin {display:none;}
  .reading-columns {grid-template-columns:1fr;}
  .reading-sidebar {display:none;}
  .article-copy {max-width:760px;}
  .favorite-hero {gap:35px;}
  .favorite-columns {gap:35px;}
  .project-leading-copy {padding:34px;}
  .about-page {gap:35px;}
}
@media (max-width:570px) {
  .wide,.wrap {width:calc(100% - 38px);}
  .nav-wrap {min-height:63px;}
  .nav {top:63px;}
  .brand-name {font-size:22px;}
  .brand-crescent {width:22px;height:22px;}
  .brand-crescent::after {width:22px;height:22px;left:9px;top:-4px;}
  .theme-btn,.menu-btn {width:34px;height:34px;}
  .hero-writing {padding-top:52px;}
  .hero-small {font-size:12px;}
  .hero-writing h1 {font-size:clamp(31px,8.4vw,45px);line-height:1.55;margin:25px 0 19px;letter-spacing:-.025em;}
  .hero-writing>p {font-size:13px;line-height:2;}
  .hero-links {margin-top:30px;gap:21px;}
  .hero-bottom {margin-top:40px;font-size:11px;letter-spacing:.06em;}
  .hero-art img {max-height:390px;}
  .hero-drawing-note {right:2%;font-size:12px;}
  .hero-bottom-rule {min-height:38px;}
  .section-head {align-items:start;flex-direction:column;gap:13px;margin-bottom:25px;}
  .section-head h2 {font-size:29px;margin:10px 0;}
  .home-latest,.home-gallery {padding-block:70px;}
  .post-row,.notes-main .post-row {grid-template-columns:30px minmax(0,1fr);gap:12px;padding:23px 0;}
  .post-index {font-size:13px;}
  .post-main strong {font-size:19px;}
  .post-teaser {font-size:12px;}
  .post-aside {grid-column:2;grid-row:2;padding:0;align-items:center;justify-content:flex-start;}
  .post-arrow {margin-left:5px;}
  .subject-layout {padding-block:69px;}
  .subject-note h2 {font-size:31px;}
  .subject-line {grid-template-columns:25px minmax(0,1fr) 38px 18px;gap:8px;min-height:63px;}
  .subject-line>span:nth-child(2) {font-size:16px;}
  .subject-count {font-size:10px;}
  .home-gallery-grid {grid-template-columns:1fr;gap:13px;}
  .home-picture-main,.home-picture-small {grid-column:1;height:230px;}
  .home-closing {display:block;padding-top:38px;padding-bottom:85px;}
  .closing-lines {margin-bottom:20px;}
  .home-closing h2 {font-size:29px;}
  .page-heading {padding:61px 0 39px;}
  .page-heading h1 {font-size:37px;line-height:1.35;}
  .page-heading p {font-size:13px;}
  .notes-layout {gap:24px;}
  .notes-result-top {margin:15px 0 20px;}
  .reading-top {padding-top:28px;}
  .reading-title {padding-top:42px;padding-bottom:36px;}
  .reading-title h1 {font-size:34px;}
  .reading-title>p {font-size:13px;}
  .reading-columns {padding-top:33px;}
  .article-copy {font-size:16px;line-height:1.9;}
  .article-copy .lead {font-size:18px;}
  .article-copy h2 {font-size:25px;margin-top:42px;}
  .article-copy pre {padding:51px 12px 17px;}
  .article-copy pre code {font-size:12px;}
  .article-copy .equation {font-size:17px;}
  .article-foot {flex-wrap:wrap;gap:13px;margin-top:38px;}
  .gallery-intro {flex-direction:column;gap:4px;}
  .gallery-grid {grid-template-columns:1fr;gap:30px;}
  .gallery-entry .picture,.gallery-entry-wide .picture,.gallery-entry:nth-child(2) .picture {height:300px;}
  .gallery-page {padding-bottom:78px;}
  .gallery-note {margin-top:50px;}
  .lightbox {padding:44px 12px 18px;}
  .lightbox-caption {flex-direction:column;gap:5px;}
  .favorite-page {padding-bottom:85px;}
  .favorite-hero {grid-template-columns:1fr;gap:23px;padding:37px 22px;}
  .favorite-vinyl {width:204px;}
  .vinyl-center {width:83px;}
  .vinyl-center span {font-size:52px;}
  .favorite-hero h2 {font-size:33px;}
  .favorite-columns {grid-template-columns:1fr;gap:50px;margin-top:50px;}
  .favorite-line {grid-template-columns:29px 1fr auto;gap:7px;}
  .favorite-line strong {font-size:13px;}
  .project-leading {grid-template-columns:1fr;}
  .project-leading-copy {padding:29px;}
  .project-num {margin-top:29px;}
  .project-picture {min-height:240px;max-height:270px;}
  .project-next {grid-template-columns:1fr;gap:32px;margin-top:40px;}
  .resume-access {grid-template-columns:1fr 23px;margin-top:45px;}
  .resume-access span:nth-child(2) {grid-column:1;grid-row:2;}
  .resume-access span:last-child {grid-column:2;grid-row:1/span 2;}
  .projects-page {padding-bottom:85px;}
  .about-page {grid-template-columns:1fr;gap:38px;padding-bottom:65px;}
  .about-picture {max-width:440px;}
  .about-picture img {aspect-ratio:5/4;}
  .about-copy h2 {font-size:32px;}
  .about-copy p {font-size:14px;}
  .group-note {padding-bottom:70px;}
  .group-moon {font-size:75px;}
  .group-note h2 {font-size:25px;}
  .resume-tools {flex-direction:column;align-items:flex-start;}
  .resume-paper {padding:27px 22px;margin-bottom:76px;}
  .resume-title h2 {font-size:37px;}
  .resume-title>span {font-size:48px;}
  .resume-section {grid-template-columns:1fr;gap:7px;}
  .footer-main {grid-template-columns:1fr;gap:20px;padding:40px 0 30px;}
  .footer-main p {text-align:left;}
  .footer-nav {justify-content:start;}
}
@media (max-width:365px) {
  .wide,.wrap {width:calc(100% - 30px);}
  .brand-name {font-size:20px;}
  .hero-writing h1 {font-size:30px;}
  .subject-line {grid-template-columns:22px minmax(0,1fr) 30px 14px;}
  .subject-line>span:nth-child(2) {font-size:14px;}
  .favorite-line small {font-size:10px;}
}
@media (prefers-reduced-motion: reduce) {
  *,*::before,*::after {animation:none!important;scroll-behavior:auto!important;transition-duration:.01ms!important;}
}
@media print {
  @page {size:A4;margin:18mm;}
  .site-header,.site-footer,.read-progress,.resume-tools,.skip-link {display:none!important;}
  html,body,.paper-content {color:#222!important;background:white!important;}
  .page-heading {padding:0 0 20px!important;}
  .page-heading h1 {font-size:25px!important;margin:0;}
  .page-heading>p,.page-kicker {display:none;}
  .resume-paper {margin:0!important;border:0!important;padding:0!important;max-width:none!important;}
  .resume-section {break-inside:avoid;}
}

.notes-result-top {
  flex-wrap: wrap;
  gap: 12px;
}

.notes-result-top label {
  display: inline-flex;
  align-items: center;
  gap: 10px;
}

#notes-sort {
  padding: 7px 10px;
  color: var(--text);
  background: var(--paper);
  border: 1px solid var(--rule);
  border-radius: 4px;
  cursor: pointer;
}

.post-aside time {
  white-space: nowrap;
  font-variant-numeric: tabular-nums;
}

@media (min-width: 571px) {
  .post-row {
    grid-template-columns: 56px minmax(0, 1fr) 200px;
  }

  .notes-main .post-row {
    grid-template-columns: 38px minmax(0, 1fr) 200px;
  }
}


/* 笔记二级分类：ABC / CF / 牛客周赛等 */

.notes-subcategories {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  padding: 0 0 22px;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--rule);
}

.notes-subcategories[hidden] {
  display: none;
}

.sub-filter {
  padding: 9px 15px;
  border: 1px solid var(--rule);
  border-radius: 5px;
  background: transparent;
  color: var(--text-secondary);
  font-size: 13px;
  cursor: pointer;
  transition: background-color .2s, border-color .2s;
}

.sub-filter small {
  margin-left: 7px;
  color: var(--text-soft);
}

.sub-filter:hover,
.sub-filter.active {
  border-color: var(--accent);
  background: var(--paper-soft);
  color: var(--accent);
}


/* 二级分类布局 */
.notes-subcategories {
  display: grid;
  gap: 10px;
  margin-bottom: 20px;
  padding: 0 0 20px;
  border-bottom: 1px solid var(--rule);
}

.notes-subcategories[hidden] {
  display: none;
}

/* 第一行：只有「全部」 */
.sub-filter-all-row {
  display: flex;
  justify-content: flex-start;
}

/* 其他分类：第二行开始，自动换行 */
.sub-filter-list {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 7px;
}

/* 缩小二级分类按钮 */
.notes-subcategories .sub-filter {
  width: auto;
  flex: 0 0 auto;
  padding: 6px 11px;
  border-radius: 5px;
  font-size: 12px;
  line-height: 1.5;
  white-space: nowrap;
}

.notes-subcategories .sub-filter small {
  margin-left: 5px;
  font-size: 11px;
}

/* 「全部」稍微突出一点 */
.sub-filter-all-row .sub-filter {
  padding: 7px 15px;
}


/* 文章中的照片 */
figure.article-photo {
  display: block;
  width: min(100%, 640px);
  margin: 32px auto 40px;
}

/* 照片本身 */
figure.article-photo img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 4px;
}

/* 照片下方的说明文字 */
figure.article-photo figcaption {
  width: 100%;
  margin-top: 13px;
  text-align: center;

  font-family:
    "Hiragino Sans",
    "PingFang SC",
    sans-serif;

  font-size: 18px;
  line-height: 1.7;
  letter-spacing: 0.03em;
  color: #827c73;
}

.article-signoff {
  margin: 56px auto 24px;
  padding-top: 20px;
  border-top: 1px solid #d9d5cc;

  text-align: center;
  font-size: 14px;
  letter-spacing: .08em;
  color: #a37650;
}

/* ============================================================
   M1kAovo / 分类相册（2026-11）
   只使用本站已有配色，照片列表完整显示图像，不裁边。
   ============================================================ */

/* 相册首页 */
.gallery-top {
  padding-top: clamp(48px, 7vw, 96px);
  padding-bottom: 40px;
  border-bottom: 1px solid var(--rule);
}

.gallery-top h1,
.album-detail-heading h1 {
  margin: 16px 0 0;
  color: var(--text);
  font: 600 clamp(38px, 4.5vw, 58px)/1.25 var(--serif);
  letter-spacing: .025em;
}

.gallery-album-list {
  padding-top: 36px;
  padding-bottom: 110px;
}

.album-collection {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  column-gap: 22px;
  row-gap: 50px;
}

.album-card { display:block; min-width:0; }
.album-card-visual {
  position: relative;
  display: flex;
  justify-content: center;
  align-items: center;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: #223c4c;
  border: 1px solid rgba(23, 43, 58, .12);
  transition: border-color .22s, transform .22s, box-shadow .22s;
}
.album-card-visual img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;  /* 封面完整呈现；不裁切横图或竖图 */
}
.album-card:hover .album-card-visual,
.album-card:focus-visible .album-card-visual {
  transform: translateY(-3px);
  border-color: var(--accent);
  box-shadow: 0 10px 30px rgba(17, 40, 49, .12);
}
.album-card-visual[data-album="music"] { background: #2a414e; }
.album-card-visual[data-album="anime"] { background: #3c4c57; }
.album-card-visual[data-album="nature"] { background: #284b55; }
.album-card-visual[data-album="humanities"] { background: #4c4a4e; }
.album-card-visual[data-album="wallpapers"] { background: #1f4053; }
.album-empty-art {
  color: #f0d6aa;
  font: 100px/1 var(--serif);
  opacity: .8;
}
.album-card-foot {
  display:flex;
  justify-content:space-between;
  align-items: baseline;
  gap: 12px;
  padding-top: 17px;
  border-top: 1px solid transparent;
}
.album-card-name {
  display:inline-flex;
  align-items: baseline;
  gap: 14px;
  min-width: 0;
  font: 500 22px/1.5 var(--serif);
  color: var(--text);
}
.album-card-name small {
  font: 14px/1.5 var(--serif);
  color:var(--accent);
}
.album-count {
  white-space:nowrap;
  font: 12px/1.5 var(--sans);
  color: var(--text-soft);
}
.album-count span {color:var(--accent); margin-left:7px; font-size:17px;}
.album-card:hover .album-card-name {color:var(--accent);}

/* 单个相册的照片列表 */
.album-detail-head { padding: 48px 0 37px; }
.album-back {
  display:inline-flex;
  align-items:center;
  color:var(--accent);
  font-size:13px;
  border-bottom: 1px solid transparent;
}
.album-back:hover {border-bottom-color:var(--accent);}
.album-detail-heading {
  display:flex;
  gap: 24px;
  align-items: baseline;
  margin: 38px 0 0;
}
.album-detail-no {font: 21px var(--serif);color:var(--accent);}
.album-detail-heading h1 {margin:0;}
.album-detail-heading p {
  margin: 15px 0 0;
  color:var(--text-soft);
  font-size:13px;
}
.album-detail-main {
  border-top:1px solid var(--rule);
  padding-top:29px;
  padding-bottom:110px;
}
.gallery-album-photos {
  display:grid;
  grid-template-columns:repeat(4, minmax(0, 1fr));
  gap: 18px 17px;
}
.album-photo-tile { min-width:0; }
.album-photo-open {
  display: block;
  width: 100%;
  padding: 0;
  border: 0;
  background: transparent;
  color: var(--text);
  text-align: left;
  cursor: zoom-in;
}
.album-photo-frame {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  aspect-ratio:var(--tile-ratio, 4 / 3);
  background:var(--paper-soft);
  border:1px solid var(--rule);
  overflow:hidden;
}
.album-photo-frame img {
  width: 100%;
  height: 100%;
  display: block;
  object-fit: contain; /* 所有照片完整显示 */
  transition:transform .28s;
}
.album-photo-open:hover .album-photo-frame {
  border-color:var(--accent);
}
.album-photo-open:hover img { transform: scale(1.02); }
.album-photo-label {
  display: flex;
  align-items: baseline;
  gap: 9px;
  padding-top: 8px;
  font-size: 12px;
  line-height: 1.6;
  color: var(--text-secondary);
}
.album-photo-label span:first-child {color:var(--accent);font-family:var(--serif);}
.album-photo-label span:nth-child(2) {
  overflow:hidden;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;
}
.album-photo-open-icon {color:var(--accent);font-size:15px;}
.album-no-photos {
  min-height: 250px;
  padding: 64px 20px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  border:1px solid var(--rule);
  color:var(--text-secondary);
}
.album-no-photos>span {color:var(--accent);font:55px var(--serif);}
.album-no-photos p {margin:8px 0;}
.album-no-photos small {font-size:12px;color:var(--text-soft);max-width:420px;overflow-wrap:anywhere;}

/* 展开后可选择相册封面；静态站点公开封面仍需要在 JS 中配置 */
.album-cover-tools {
  border-top:1px solid var(--rule);
  margin-top: 46px;
  padding-top: 22px;
  color: var(--text-secondary);
  font-size: 12px;
}
.album-cover-tools summary {
  display: list-item;
  cursor: pointer;
  width:fit-content;
  color:var(--accent);
  font-size: 13px;
}
.album-cover-tools p {max-width:740px;line-height:1.9;}
.album-cover-tools code {font-family:monospace;}
.album-cover-choices {display:flex;flex-wrap:wrap;gap:8px;margin:17px 0 14px;}
.album-cover-choice,
.album-copy-cover {
  padding:8px 13px;
  border:1px solid var(--rule);
  border-radius:3px;
  color:var(--text-secondary);
  background:transparent;
  font-size:12px;
  line-height:1.5;
}
.album-cover-choice:hover,
.album-copy-cover:hover,
.album-cover-choice.active {
  background:var(--paper-soft);
  color:var(--accent);
  border-color:var(--accent);
}

/* 旧首页也会使用同一个放大窗口 */
.lightbox {
  width: min(1100px, 96vw);
  max-width: 96vw;
  max-height: 95dvh;
  padding: 44px 25px 17px;
  overflow:auto;
  border-color: #48616a;
  background:#102634;
  color:#f1e6d8;
}
.lightbox-stage {
  position:relative;
  display:flex;
  justify-content:center;
  align-items:center;
  min-height:160px;
}
.lightbox-stage img {
  display:block;
  width:auto;
  height:auto;
  max-width:100%;
  max-height: min(72dvh, 780px);
  object-fit:contain;
  margin:0 auto;
}
.lightbox-close {top:5px;right:15px;z-index:3;}
.lightbox-step {
  position:absolute;
  z-index:2;
  top:50%;
  transform:translateY(-50%);
  display:flex;
  align-items:center;
  justify-content:center;
  width:38px;height:50px;
  border:1px solid rgba(255,255,255,.24);
  border-radius:4px;
  background:rgba(15,38,52,.6);
  color:#f1e6d8;
  font:36px/1 var(--serif);
  cursor:pointer;
}
.lightbox-step:hover {background:rgba(15,38,52,.94);}
.lightbox-step[hidden] {display:none;}
.lightbox-prev {left:7px;}
.lightbox-next {right:7px;}
.lightbox-caption {
  display:grid;
  grid-template-columns:44px minmax(0,1fr) 44px;
  gap:10px;
  align-items:center;
  margin-top:17px;
  color:#f4e9d9;
}
.lightbox-caption-content {
  display:flex;
  grid-column:2;
  flex-direction:column;
  align-items:center;
  gap:3px;
  min-width:0;
  text-align:center;
}
.lightbox-caption-content strong {
  font-size:14px;
  font-weight:600;
}
.lightbox-caption-content span {
  color:#bccace;
  font-size:12px;
  line-height:1.65;
}
.lightbox-caption-content small {
  color:#9caeb2;
  font-size:10px;
}
.lightbox-download {
  grid-column:3;
  display:flex;
  align-items:center;
  justify-content:center;
  width:40px;height:40px;
  border:1px solid rgba(255,255,255,.25);
  color:#f1e6d8;
  border-radius:3px;
  justify-self:end;
}
.lightbox-download:hover {background:#284756;}
.lightbox-save-hint {display:none;}

/* 手机和中等屏幕 */
@media (max-width: 1000px) {
  .album-collection {grid-template-columns:repeat(2, minmax(0,1fr));}
  .gallery-album-photos {grid-template-columns:repeat(3, minmax(0,1fr));}
}
@media (max-width: 600px) {
  .gallery-top {padding-top:54px;padding-bottom:23px;}
  .gallery-top h1 {font-size:36px;}
  .gallery-album-list {padding-top:21px;padding-bottom:75px;}
  .album-collection {grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 11px;}
  .album-empty-art {font-size:65px;}
  .album-card-foot {flex-wrap:wrap;gap:1px;padding-top:9px;}
  .album-card-name {font-size:16px;gap:6px;}
  .album-card-name small {font-size:11px;}
  .album-count {font-size:10px;margin-left:auto;}
  .album-detail-head {padding-top:27px;padding-bottom:27px;}
  .album-detail-heading {gap:14px;margin-top:28px;}
  .album-detail-heading h1 {font-size:35px;}
  .album-detail-heading p {margin-top:6px;}
  .album-detail-main {padding-top:18px;padding-bottom:75px;}
  .gallery-album-photos {grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 9px;}
  /* 横幅壁纸在手机上独占一行，避免缩得过小 */
  .gallery-album-photos[data-album="wallpapers"] {grid-template-columns:1fr;}
  .album-photo-label {font-size:11px;}
  .album-cover-tools {margin-top:30px;}
  .lightbox {padding:38px 9px 15px;width:98vw;max-width:98vw;max-height:94dvh;}
  .lightbox-stage img {max-height:67dvh;}
  .lightbox-step {width:30px;height:43px;font-size:28px;}
  .lightbox-prev {left:1px;}
  .lightbox-next {right:1px;}
  .lightbox-caption {grid-template-columns:30px minmax(0,1fr) 30px;margin-top:12px;gap:3px;}
  .lightbox-caption-content strong {font-size:13px;}
  .lightbox-caption-content span {font-size:11px;}
  .lightbox-download {width:30px;height:34px;}
  .lightbox-save-hint {display:block;color:#98acb5;font-size:10px;text-align:center;margin:9px 0 0;}
}

@media (prefers-reduced-motion:reduce) {
  .album-card-visual,.album-photo-frame img {transition:none;}
  .album-card:hover .album-card-visual,
  .album-photo-open:hover img {transform:none;}
}


/* ===== 页面出现时的柔和动画 ===== */

@keyframes mika-page-enter {
  from {
    opacity: 0;
    transform: translateY(8px);
  }

  to {
    opacity: 1;
    transform: none;
  }
}

#app > * {
  animation: mika-page-enter 260ms cubic-bezier(.22, 1, .36, 1);
}

/* 尊重系统的减少动态效果设置 */
@media (prefers-reduced-motion: reduce) {
  #app > * {
    animation: none;
  }
}


/* ===== 暖纸上的淡月光 ===== */

.paper-content {
  background-color: #f7f4ed;

  background-image:
    radial-gradient(
      circle at 90% 12%,
      rgba(177, 137, 86, .22) 0 1px,
      transparent 2px
    ),
    radial-gradient(
      circle at 84% 24%,
      rgba(177, 137, 86, .16) 0 1px,
      transparent 2px
    ),
    radial-gradient(
      ellipse 52% 35% at 90% 5%,
      rgba(138, 177, 202, .16),
      transparent 85%
    ),
    radial-gradient(
      ellipse 55% 40% at 8% 90%,
      rgba(220, 188, 145, .08),
      transparent 90%
    );
}

.paper-content {
  outline: 4px solid #d09a76 !important;
}


/* ===== M1kAovo 音乐播放器 ===== */

#mika-player-root {
  width: min(100%, 1120px);
  margin: 28px auto 56px;
}

.mika-music {
  display: grid;
  grid-template-columns: 200px minmax(0, 1fr);
  align-items: center;
  gap: clamp(24px, 5vw, 72px);

  padding: clamp(24px, 4vw, 48px);
  border: 1px solid rgba(226, 197, 156, .22);
  border-radius: 14px;

  background:
    radial-gradient(
      circle at 18% 30%,
      rgba(121, 166, 185, .20),
      transparent 42%
    ),
    linear-gradient(135deg, #172f3d, #102532);

  color: #f3e5d0;
}

.mika-music__disc {
  width: 100%;
  aspect-ratio: 1;
  border-radius: 50%;

  display: grid;
  place-items: center;

  background:
    repeating-radial-gradient(
      circle at center,
      #142a38 0 3px,
      #2c4653 4px 5px,
      #112835 6px 9px
    );

  border: 2px solid #435e6b;
  box-shadow: 0 15px 35px rgba(0, 0, 0, .18);

  animation: mika-record-turn 16s linear infinite;
  animation-play-state: paused;
}

.mika-music__disc img {
  display: block;
  width: 70%;
  aspect-ratio: 1;
  object-fit: cover;
  border-radius: 50%;
  border: 3px solid #d6b48c;
}

.mika-music__disc img[hidden] {
  display: none;
}

.mika-music.is-playing .mika-music__disc {
  animation-play-state: running;
}

@keyframes mika-record-turn {
  from { transform: rotate(0deg); }
  to   { transform: rotate(360deg); }
}

.mika-music__eyebrow {
  color: #d4ad7b;
  font-size: 12px;
  letter-spacing: .12em;
}

.mika-music__body h3 {
  margin: 14px 0 4px;
  color: #f3e5d0;
  font-size: clamp(22px, 2.5vw, 32px);
  font-weight: 500;
}

.mika-music__body p {
  color: #bacbd0;
}

.mika-music__controls {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 24px;
}

.mika-music__controls button {
  cursor: pointer;
  padding: 9px 15px;
  border: 1px solid #6a8390;
  border-radius: 5px;
  background: transparent;
  color: #f3e5d0;
  font: inherit;
  font-size: 13px;
}

.mika-music__controls button:hover,
.mika-music__controls button[aria-pressed="true"] {
  border-color: #e0bb8c;
  background: rgba(224, 187, 140, .12);
}

.mika-music__timeline {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 12px;
  margin-top: 22px;
}

.mika-music__timeline time {
  font-size: 12px;
  color: #c3d0d3;
  font-variant-numeric: tabular-nums;
}

#mika-seek {
  width: 100%;
  accent-color: #dfb989;
  cursor: pointer;
}

.mika-music__status {
  min-height: 1.2em;
  font-size: 12px;
}

@media (max-width: 640px) {
  .mika-music {
    grid-template-columns: 1fr;
    text-align: center;
  }

  .mika-music__disc {
    width: min(65%, 210px);
    margin: 0 auto;
  }

  .mika-music__controls {
    justify-content: center;
  }
}

@media (prefers-reduced-motion: reduce) {
  .mika-music__disc {
    animation: none;
  }
}


/* ===== 听歌页：紧凑播放器 ===== */

.listen-page .listen-player-section {
  padding-top: clamp(20px, 4vw, 48px);
  padding-bottom: clamp(60px, 9vw, 120px);
}

.listen-page #mika-player-root {
  width: min(100%, 680px);
  margin: 0 auto;
}

.listen-page .mika-music {
  display: grid;
  grid-template-columns: 132px minmax(0, 1fr);
  align-items: center;
  gap: 26px;
  min-height: 0;
  padding: 24px;

  background: linear-gradient(125deg, #e2edf0, #f0f3ee);
  border: 1px solid #cbd8da;
  border-radius: 22px;
  box-shadow: 0 10px 30px rgba(20, 45, 57, .05);
  color: #203946;
}

/* 左边是专辑封面，没图片时显示月亮 */
.listen-page .mika-music__disc {
  position: relative;
  display: block;
  width: 132px;
  aspect-ratio: 1;
  margin: 0;
  overflow: hidden;
  border: none;
  border-radius: 15px;
  background: linear-gradient(145deg, #1a3443, #3d6270);
  box-shadow: none;
  animation: none !important;
}

.listen-page .mika-music__disc::before {
  content: "☾";
  position: absolute;
  inset: 0;
  display: grid;
  place-items: center;
  color: #e7c392;
  font-size: 74px;
  line-height: 1;
}

.listen-page .mika-music__disc img {
  position: relative;
  z-index: 1;
  display: block;
  width: 100%;
  height: 100%;
  border: 0;
  border-radius: 0;
  object-fit: cover;
}

.listen-page .mika-music__disc img[hidden] {
  display: none;
}

/* 右边的歌曲信息 */
.listen-page .mika-music__body {
  min-width: 0;
}

.listen-page .mika-music__eyebrow {
  color: #a67a54;
  font-size: 12px;
  letter-spacing: .04em;
}

.listen-page .mika-music__body h3 {
  margin: 8px 0 4px;
  color: #203946;
  font-family: -apple-system, BlinkMacSystemFont,
    "PingFang SC", "Hiragino Sans", sans-serif;
  font-size: clamp(19px, 2.3vw, 25px);
  font-weight: 550;
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.listen-page .mika-music__body > p {
  margin: 0;
  color: #6a7b84;
  font-size: 14px;
}

/* 一整排圆角控制按钮 */
.listen-page .mika-music__controls {
  display: inline-flex;
  flex-wrap: nowrap;
  align-items: center;
  gap: 2px;
  width: fit-content;
  max-width: 100%;
  margin-top: 17px;
  padding: 4px;

  border: 1px solid #d2dcdd;
  border-radius: 999px;
  background: #f8faf8;
}

.listen-page .mika-music__controls button {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  min-width: 40px;
  margin: 0;
  padding: 0;

  border: 0;
  border-radius: 50%;
  background: transparent;
  color: #284553;
  font-size: 0;
  cursor: pointer;
}

.listen-page .mika-music__controls button::before {
  font-size: 20px;
  line-height: 1;
}

.listen-page #mika-prev::before {
  content: "⏮";
}

.listen-page #mika-play::before {
  content: "▶";
}

.listen-page .mika-music.is-playing #mika-play::before {
  content: "Ⅱ";
}

.listen-page #mika-next::before {
  content: "⏭";
}

.listen-page #mika-shuffle::before {
  content: "⇄";
}

.listen-page #mika-play {
  background: #203d4c;
  color: #f5e6d0;
}

.listen-page .mika-music__controls button:hover {
  border: 0;
  background: #dae7e8;
  color: #203d4c;
}

.listen-page #mika-play:hover {
  background: #34586a;
  color: #fff;
}

.listen-page #mika-shuffle[aria-pressed="true"] {
  color: #ac784d;
  background: #f1e5d5;
}

.listen-page .mika-music__controls button:focus-visible {
  outline: 2px solid #ac784d;
  outline-offset: 2px;
}

/* 进度条 */
.listen-page .mika-music__timeline {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  margin-top: 17px;
}

.listen-page .mika-music__timeline time {
  color: #71838a;
  font-size: 12px;
}

.listen-page #mika-seek {
  width: 100%;
  accent-color: #b38456;
}

.listen-page .mika-music__status {
  margin-top: 8px;
  min-height: 0;
  color: #9a6256;
  font-size: 12px;
}

.listen-page .mika-music__status:empty {
  display: none;
}

/* 手机端 */
@media (max-width: 600px) {
  .listen-page .mika-music {
    grid-template-columns: 88px minmax(0, 1fr);
    gap: 14px;
    padding: 16px;
  }

  .listen-page .mika-music__disc {
    width: 88px;
  }

  .listen-page .mika-music__disc::before {
    font-size: 50px;
  }

  .listen-page .mika-music__controls button {
    width: 35px;
    min-width: 35px;
    height: 35px;
  }

  .listen-page .mika-music__timeline {
    gap: 6px;
  }
}


/* 听歌页面 - compact player */

.paper-content.listen-page {
  padding: 0 !important;
}

.listen-page__inner {
  box-sizing: border-box;
  width: 100%;
  max-width: 1440px;
  margin: 0 auto;
  padding: 40px clamp(24px, 4vw, 60px) 100px;
}

.listen-page__label {
  display: block;
  font-size: 13px;
  color: #a47751;
}

.listen-page__title {
  margin: 12px 0 38px;
  color: #203943;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(48px, 6vw, 76px);
  font-weight: 500;
  line-height: 1.15;
}

.listen-page__subtitle {
  margin: 0 0 16px;
  color: #637781;
  font-size: 17px;
}

.listen-page #mika-player-root {
  box-sizing: border-box;
  width: min(100%, 520px) !important;
  max-width: 520px !important;
  margin: 0 !important;
  padding: 0 !important;
}

/* 卡片 */
.listen-page .mika-music {
  box-sizing: border-box;
  display: grid !important;
  grid-template-columns: 96px minmax(0, 1fr) !important;
  align-items: center !important;
  gap: 18px !important;

  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 17px !important;

  color: #203943 !important;
  background: #e6eff1 !important;
  border: 1px solid #d4e0e3 !important;
  border-radius: 17px !important;
  box-shadow: none !important;
}

/* 方形封面 */
.listen-page .mika-music__disc {
  width: 96px !important;
  height: 96px !important;
  min-width: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
  aspect-ratio: 1;
  border-radius: 12px !important;
  overflow: hidden;
  background: #1f3c49 !important;
  box-shadow: none !important;
  animation: none !important;
}

.listen-page .mika-music__disc::after {
  display: none !important;
}

.listen-page .mika-music__disc img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
}

.listen-page .mika-music__body {
  min-width: 0;
}

.listen-page .mika-music__eyebrow {
  margin: 0 0 4px !important;
  color: #a47751 !important;
  font-size: 11px !important;
}

.listen-page .mika-music__body h3 {
  margin: 0 0 3px !important;
  color: #203943 !important;
  font-size: 20px !important;
  font-weight: 600 !important;
  line-height: 1.4;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.listen-page .mika-music__body > p {
  margin: 0 !important;
  color: #778c95 !important;
  font-size: 13px !important;
}

/* 播放控制：一排小按钮 */
.listen-page .mika-music__controls {
  display: flex !important;
  align-items: center !important;
  flex-wrap: nowrap !important;
  gap: 5px !important;

  width: fit-content !important;
  max-width: 100%;
  margin: 8px 0 0 !important;
  padding: 0 !important;

  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
}

.listen-page .mika-music__controls button {
  display: grid !important;
  place-items: center;
  width: 32px !important;
  height: 32px !important;
  min-width: 32px !important;
  padding: 0 !important;
  margin: 0 !important;

  color: #294655 !important;
  background: transparent !important;
  border: 0 !important;
  border-radius: 50% !important;
  box-shadow: none !important;
}

.listen-page .mika-music__controls button::before {
  font-size: 16px !important;
}

.listen-page #mika-play {
  color: #203943 !important;
  background: #ffffff !important;
  border: 1px solid #d3dfe3 !important;
}

.listen-page #mika-shuffle {
  color: #ae7c52 !important;
  background: transparent !important;
}

/* 时间与进度条 */
.listen-page .mika-music__timeline {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px !important;
  width: 100%;
  margin: 8px 0 0 !important;
}

.listen-page .mika-music__timeline time {
  color: #748791 !important;
  font-size: 11px !important;
}

.listen-page #mika-seek {
  width: 100% !important;
  margin: 0 !important;
  accent-color: #b58a5f;
}

.listen-page .mika-music__status {
  margin: 4px 0 0 !important;
  font-size: 11px !important;
  line-height: 1.4;
}

.listen-page .mika-music__status:empty {
  display: none !important;
}

/* 手机 */
@media (max-width: 540px) {
  .listen-page__inner {
    padding: 28px 18px 70px;
  }

  .listen-page .mika-music {
    grid-template-columns: 76px minmax(0, 1fr) !important;
    gap: 12px !important;
    padding: 13px !important;
  }

  .listen-page .mika-music__disc {
    width: 76px !important;
    height: 76px !important;
  }

  .listen-page .mika-music__body h3 {
    font-size: 17px !important;
  }

  .listen-page .mika-music__controls button {
    width: 28px !important;
    min-width: 28px !important;
    height: 28px !important;
  }
}


/* 播放按钮缩小，图标居中 */
.listen-page .mika-music__controls #mika-play {
  width: 30px !important;
  height: 30px !important;
  min-width: 30px !important;
  padding: 0 !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 50% !important;
  line-height: 1 !important;
}

.listen-page #mika-play svg {
  display: block;
  width: 14px;
  height: 14px;
}

/* 唱片顺时针旋转 */
@keyframes mika-clockwise {
  to { transform: rotate(360deg); }
}

.listen-page .mika-music__disc {
  border-radius: 50% !important;
  animation: mika-clockwise 12s linear infinite;
  animation-play-state: paused;
}

.listen-page .mika-music__disc.is-playing {
  animation-play-state: running;
}

@media (prefers-reduced-motion: reduce) {
  .listen-page .mika-music__disc {
    animation: none;
  }
}


/* ===== Music player: SVG icons ===== */

/* 关闭原先通过 CSS 字符绘制的播放图标 */
.listen-page #mika-play::before {
  content: none !important;
  display: none !important;
}

/* 新 SVG 图标居中 */
.listen-page #mika-play svg {
  display: block;
  width: 14px;
  height: 14px;
}

/* 修复旧样式覆盖动画的问题 */
.listen-page .mika-music__disc {
  animation: mika-clockwise 12s linear infinite !important;
  animation-play-state: paused !important;
}

/* 播放时顺时针旋转 */
.listen-page .mika-music.is-playing .mika-music__disc {
  animation-play-state: running !important;
}

/* 尊重系统减少动态效果的设置 */
@media (prefers-reduced-motion: reduce) {
  .listen-page .mika-music__disc {
    animation: none !important;
  }
}


/* 顺序 / 随机 / 单曲循环 */

.listen-page #mika-shuffle[data-mode="sequence"]::before {
  content: "≡";
}

.listen-page #mika-shuffle[data-mode="random"]::before {
  content: "⤨";
}

.listen-page #mika-shuffle[data-mode="single"]::before {
  content: "↻";
}

/* 相册原图入口：预览是高清 WebP，点击这里才载入未经改动的原始照片。 */
.lightbox-caption-content .lightbox-original {
  display: inline-block;
  padding: 5px 8px 2px;
  color: #e7cba5;
  font: 12px/1.5 var(--sans);
  text-decoration: underline;
  text-underline-offset: 4px;
  transition: color .18s;
}
.lightbox-caption-content .lightbox-original:hover,
.lightbox-caption-content .lightbox-original:focus-visible {
  color: #fff4de;
}
