/* 诗词典藏 · shici.888186.xyz */
:root{
  --paper:#f4efe3;
  --paper-2:#fbf8f0;
  --paper-3:#efe8d8;
  --ink:#211d18;
  --ink-2:#443c33;
  --muted:#8b8173;
  --line:#ddd3bf;
  --line-2:#e9e1d1;
  --seal:#9d2f27;
  --seal-2:#b8473c;
  --jade:#3d6a5c;
  --gold:#a9863f;
  --shadow:0 1px 2px rgba(33,29,24,.05),0 8px 24px -12px rgba(33,29,24,.18);
  --radius:14px;
}
html[data-theme="night"]{
  --paper:#14120f;
  --paper-2:#1b1815;
  --paper-3:#221e19;
  --ink:#e9e2d4;
  --ink-2:#c8bfae;
  --muted:#8d8474;
  --line:#332e26;
  --line-2:#2a251f;
  --seal:#c25a4a;
  --seal-2:#d47464;
  --jade:#7fa899;
  --gold:#c9a969;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px -14px rgba(0,0,0,.7);
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;overflow-x:hidden;
  background:
    radial-gradient(1200px 600px at 12% -10%, rgba(169,134,63,.07), transparent 60%),
    radial-gradient(900px 500px at 100% 0%, rgba(61,106,92,.06), transparent 55%),
    var(--paper);
  color:var(--ink);
  font-family:"PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,-apple-system,"Segoe UI",sans-serif;
  font-size:15px;
  line-height:1.7;
  min-height:100vh;
}
main{min-height:calc(100vh - 210px)}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.82' numOctaves='3'/%3E%3C/filter%3E%3Crect width='180' height='180' filter='url(%23n)' opacity='.045'/%3E%3C/svg%3E");
}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
input,select,textarea{font:inherit;color:inherit}
.serif{font-family:"Songti SC","Noto Serif SC","Source Han Serif SC","STSong",SimSun,serif}

.wrap{max-width:1120px;margin:0 auto;padding:0 22px;position:relative;z-index:1}
.narrow{max-width:760px}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:20;
  backdrop-filter:saturate(1.2) blur(10px);
  background:color-mix(in srgb,var(--paper) 82%,transparent);
  border-bottom:1px solid var(--line-2);
}
.hd-in{display:flex;align-items:center;gap:26px;height:64px}
.brand{display:flex;align-items:center;gap:11px;flex-shrink:0}
.stamp{
  width:34px;height:34px;border-radius:6px;background:var(--seal);color:#fff8ee;
  display:grid;place-items:center;font-family:"Songti SC",SimSun,serif;font-size:19px;
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.22);letter-spacing:0;
}
.brand b{font-family:"Songti SC","Noto Serif SC",STSong,serif;font-size:19px;font-weight:600;letter-spacing:.12em}
.brand small{display:block;font-size:10px;color:var(--muted);letter-spacing:.22em;line-height:1.2;margin-top:-2px}
.nav{display:flex;gap:22px;margin-left:auto;align-items:center}
.nav a{font-size:14px;color:var(--ink-2);letter-spacing:.06em;position:relative;padding:6px 0}
.nav a:hover{color:var(--seal)}
.nav a.on{color:var(--seal)}
.nav a.on::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1.5px;background:var(--seal);border-radius:2px}
.icon-btn{
  width:34px;height:34px;border-radius:50%;border:1px solid var(--line);
  display:grid;place-items:center;font-size:15px;color:var(--ink-2);background:var(--paper-2);
}
.icon-btn:hover{border-color:var(--seal);color:var(--seal)}

/* ---------- hero ---------- */
.hero{display:grid;grid-template-columns:1fr 300px;gap:32px;align-items:start;padding:56px 0 40px}
.hero h1{
  font-family:"Songti SC","Noto Serif SC",STSong,serif;font-weight:600;
  font-size:clamp(38px,5.4vw,60px);line-height:1.16;letter-spacing:.14em;margin:0 0 6px;
}
.hero h1 em{font-style:normal;color:var(--seal)}
.hero .sub{color:var(--muted);letter-spacing:.3em;font-size:12px;margin-bottom:22px;text-transform:uppercase}
.hero p.lead{max-width:620px;color:var(--ink-2);font-size:15.5px;margin:0 0 26px}
.stats{display:flex;flex-wrap:wrap;gap:10px}
.stat{
  border:1px solid var(--line);background:var(--paper-2);border-radius:10px;
  padding:10px 16px;min-width:104px;
}
.stat b{display:block;font-family:"Songti SC",STSong,serif;font-size:22px;line-height:1.25;letter-spacing:.02em}
.stat span{font-size:11.5px;color:var(--muted);letter-spacing:.14em}
.hero-side{border-left:1px solid var(--line);padding-left:26px;height:100%}
.vert{writing-mode:vertical-rl;text-orientation:upright;letter-spacing:.32em;
  font-family:"Songti SC","Noto Serif SC",STSong,serif;color:var(--muted);font-size:15px}
.hero-side .vert{height:232px;font-size:17px;color:var(--ink-2)}
.hero-side .seal{display:inline-block;margin-top:18px;width:26px;height:26px;border:1px solid var(--seal);
  border-radius:4px;color:var(--seal);font-size:12px;display:grid;place-items:center;letter-spacing:0}

/* search bar */
.searchbar{display:flex;gap:8px;max-width:640px}
.searchbar input{
  flex:1;height:46px;border:1px solid var(--line);background:var(--paper-2);
  border-radius:10px;padding:0 16px;outline:none;box-shadow:var(--shadow);font-size:15px;
}
.searchbar input:focus{border-color:var(--seal)}
.searchbar button{
  height:46px;padding:0 22px;border-radius:10px;background:var(--seal);color:#fff9f0;
  letter-spacing:.14em;font-size:14px;
}
.searchbar button:hover{background:var(--seal-2)}

/* ---------- section ---------- */
.section{padding:14px 0 34px}
.sec-head{display:flex;align-items:baseline;gap:12px;margin:26px 0 16px}
.sec-head h2{font-family:"Songti SC",STSong,serif;font-size:20px;font-weight:600;letter-spacing:.16em;margin:0}
.sec-head .hint{color:var(--muted);font-size:12px;letter-spacing:.08em}
.sec-head .more{margin-left:auto;font-size:13px;color:var(--muted)}
.sec-head .more:hover{color:var(--seal)}

/* daily poem */
.daily{
  display:grid;grid-template-columns:150px 1fr;gap:0;border:1px solid var(--line);
  background:linear-gradient(180deg,var(--paper-2),var(--paper));border-radius:var(--radius);
  overflow:hidden;box-shadow:var(--shadow);
}
.daily .side{
  background:var(--paper-3);border-right:1px solid var(--line);
  display:grid;place-items:center;padding:22px 10px;text-align:center;
}
.daily .side .day{font-family:"Songti SC",STSong,serif;font-size:40px;line-height:1;color:var(--seal)}
.daily .side .m{font-size:11.5px;color:var(--muted);letter-spacing:.24em;margin-top:8px}
.daily .body{padding:24px 26px}
.daily .body h3{font-family:"Songti SC",STSong,serif;font-size:22px;margin:0 0 4px;letter-spacing:.06em}
.daily .body .by{font-size:12.5px;color:var(--muted);margin-bottom:14px}
.daily .body .lines{font-family:"Songti SC","Noto Serif SC",STSong,serif;font-size:17px;line-height:2.05;color:var(--ink-2)}

/* cards */
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.card{
  border:1px solid var(--line);background:var(--paper-2);border-radius:12px;padding:18px 18px 14px;
  position:relative;overflow:hidden;transition:.18s ease;
}
.card:hover{transform:translateY(-2px);border-color:var(--line);box-shadow:var(--shadow)}
.card .era{
  position:absolute;right:14px;top:12px;font-size:11px;color:var(--muted);
  border:1px solid var(--line);border-radius:999px;padding:1px 8px;letter-spacing:.1em;
}
.card h3{font-family:"Songti SC",STSong,serif;font-size:18px;margin:0 0 6px;letter-spacing:.08em}
.card .cnt{font-size:12px;color:var(--seal);letter-spacing:.06em}
.card p{font-size:12.5px;color:var(--muted);margin:8px 0 0;line-height:1.75;min-height:44px}
.card .go{font-size:12px;color:var(--ink-2);margin-top:10px;letter-spacing:.1em}

/* poets */
.chips{display:flex;flex-wrap:wrap;gap:9px}
.chip{
  border:1px solid var(--line);background:var(--paper-2);border-radius:999px;
  padding:6px 15px;font-size:13.5px;display:inline-flex;gap:7px;align-items:center;
  font-family:"Songti SC",STSong,serif;letter-spacing:.05em;
}
.chip span{font-family:system-ui,sans-serif;font-size:11px;color:var(--muted)}
.chip:hover{border-color:var(--seal);color:var(--seal)}

/* ---------- toolbar / list ---------- */
.page-head{padding:34px 0 18px;border-bottom:1px solid var(--line-2);margin-bottom:6px}
.crumb{font-size:12px;color:var(--muted);letter-spacing:.12em;margin-bottom:10px}
.crumb a:hover{color:var(--seal)}
.page-head h1{font-family:"Songti SC",STSong,serif;font-size:30px;margin:0 0 8px;letter-spacing:.1em;font-weight:600}
.page-head .meta{font-size:12.5px;color:var(--muted)}
.page-head .desc{color:var(--ink-2);font-size:14px;max-width:720px;margin:10px 0 0}
.toolbar{
  display:flex;gap:10px;align-items:center;flex-wrap:wrap;
  padding:14px 0;border-bottom:1px solid var(--line-2);
}
.toolbar input[type=search]{
  flex:1;min-width:180px;height:38px;border:1px solid var(--line);background:var(--paper-2);
  border-radius:9px;padding:0 13px;outline:none;font-size:14px;
}
.toolbar input[type=search]:focus{border-color:var(--seal)}
.select{
  height:38px;border:1px solid var(--line);background:var(--paper-2);border-radius:9px;
  padding:0 10px;font-size:13px;outline:none;
}
.btn{
  height:38px;padding:0 15px;border-radius:9px;border:1px solid var(--line);
  background:var(--paper-2);font-size:13px;letter-spacing:.06em;
}
.btn:hover{border-color:var(--seal);color:var(--seal)}
.btn.primary{background:var(--seal);border-color:var(--seal);color:#fff9f0}
.btn.primary:hover{background:var(--seal-2);color:#fff9f0}
.btn:disabled{opacity:.45;cursor:default}

.list{margin:8px 0 0}
.row{
  display:grid;grid-template-columns:34px 1fr auto;gap:14px;align-items:baseline;
  padding:13px 8px;border-bottom:1px solid var(--line-2);
}
.row:hover{background:color-mix(in srgb,var(--paper-3) 60%,transparent)}
.row .no{font-size:11px;color:var(--muted);font-variant-numeric:tabular-nums;text-align:right}
.row .t{font-family:"Songti SC",STSong,serif;font-size:16.5px;letter-spacing:.04em}
.row .t mark{background:color-mix(in srgb,var(--gold) 35%,transparent);color:inherit;border-radius:3px;padding:0 1px}
.row .a{font-size:12.5px;color:var(--muted);margin-left:9px}
.row .snip{font-family:"Songti SC",STSong,serif;color:var(--muted);font-size:13px;
  margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.row .tag{font-size:11px;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:1px 8px}
.pager{display:flex;gap:8px;align-items:center;justify-content:center;padding:22px 0 40px;flex-wrap:wrap}
.pager .info{font-size:12.5px;color:var(--muted);letter-spacing:.08em;margin:0 8px}
.pager input{width:64px;height:34px;text-align:center;border:1px solid var(--line);border-radius:8px;background:var(--paper-2);outline:none}

/* ---------- reader ---------- */
.poem{max-width:720px;margin:0 auto;padding:40px 0 30px}
.poem h1{
  font-family:"Songti SC","Noto Serif SC",STSong,serif;font-size:clamp(26px,3.6vw,34px);
  font-weight:600;letter-spacing:.08em;margin:0 0 10px;line-height:1.45;
}
.poem .byline{font-size:13px;color:var(--muted);letter-spacing:.08em;margin-bottom:26px}
.poem .byline a{color:var(--jade);border-bottom:1px dashed var(--line)}
.poem .text{
  font-family:"Songti SC","Noto Serif SC","Source Han Serif SC",STSong,serif;
  font-size:20px;line-height:2.15;letter-spacing:.06em;color:var(--ink);
  border-left:2px solid var(--seal);padding:6px 0 6px 26px;
}
.poem .text p{margin:0 0 2px}
.poem .text.lg{font-size:23px}
.poem .text.sm{font-size:17px}
.notes{margin:28px 0 0;border-top:1px solid var(--line-2);padding-top:18px}
.notes summary{cursor:pointer;font-size:12.5px;color:var(--muted);letter-spacing:.14em;list-style:none}
.notes summary::-webkit-details-marker{display:none}
.notes summary::before{content:"▸ ";color:var(--seal)}
.notes[open] summary::before{content:"▾ "}
.notes ol,.notes ul{margin:12px 0 0;padding-left:20px;color:var(--muted);font-size:13.5px;line-height:1.95}
.acts{display:flex;gap:8px;flex-wrap:wrap;margin-top:30px;padding-top:18px;border-top:1px solid var(--line-2)}
.acts .btn{height:34px;font-size:12.5px}
.acts .spacer{flex:1}
.related{margin-top:34px}
.related h4{font-size:12.5px;color:var(--muted);letter-spacing:.2em;margin:0 0 10px;font-weight:400}

/* ---------- search ---------- */
.tabs{display:flex;gap:6px;border-bottom:1px solid var(--line-2);margin:18px 0 0}
.tab{padding:9px 16px;font-size:13.5px;color:var(--muted);border-bottom:2px solid transparent;letter-spacing:.08em}
.tab.on{color:var(--seal);border-bottom-color:var(--seal)}
.progress{height:2px;background:var(--line-2);overflow:hidden;margin:12px 0 0;border-radius:2px}
.progress i{display:block;height:100%;width:0;background:var(--seal);transition:width .2s}
.hintline{font-size:12.5px;color:var(--muted);margin:12px 0 0;letter-spacing:.04em}

/* ---------- ai ---------- */
.ai-panel{border:1px solid var(--line);background:var(--paper-2);border-radius:var(--radius);
  padding:22px;box-shadow:var(--shadow);margin:18px 0 0}
.field{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:16px}
.field > label{font-size:12.5px;color:var(--muted);letter-spacing:.14em;width:62px;flex-shrink:0}
.seg{display:inline-flex;border:1px solid var(--line);border-radius:9px;overflow:hidden}
.seg button{padding:7px 16px;font-size:13px;color:var(--ink-2);background:var(--paper-2)}
.seg button.on{background:var(--seal);color:#fff9f0}
.field input[type=text]{
  height:38px;border:1px solid var(--line);border-radius:9px;background:var(--paper);
  padding:0 12px;outline:none;min-width:200px;font-size:14px;
}
.ai-out{
  min-height:230px;border:1px dashed var(--line);border-radius:12px;background:var(--paper);
  padding:26px;margin-top:18px;position:relative;
}
.ai-out .ptitle{font-family:"Songti SC",STSong,serif;font-size:21px;letter-spacing:.1em;margin:0 0 4px}
.ai-out .pby{font-size:12px;color:var(--muted);margin-bottom:16px;letter-spacing:.1em}
.ai-out .plines{font-family:"Songti SC","Noto Serif SC",STSong,serif;font-size:20px;line-height:2.2;letter-spacing:.08em}
.ai-out .plines p{margin:0}
.ai-out .plines p.fade{animation:fadeUp .5s ease both}
@keyframes fadeUp{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.ai-out .empty{color:var(--muted);font-size:13.5px;display:grid;place-items:center;height:170px;letter-spacing:.1em}
.typing::after{content:"▍";color:var(--seal);animation:blink .9s steps(1) infinite}
@keyframes blink{50%{opacity:0}}
@media (max-width:620px){
  .ai-panel{padding:16px}
  .ai-panel .field{gap:8px;margin-bottom:14px}
  .ai-panel .field > label{width:100%;margin-bottom:-2px}
  .ai-panel .field input[type=text]{min-width:0;flex:1 1 100%}
  .ai-panel .ai-out{padding:18px}
  .ai-panel .ai-out .plines{font-size:18px;line-height:2}
}

/* ---------- misc ---------- */
.notice{border-left:2px solid var(--gold);background:color-mix(in srgb,var(--gold) 8%,transparent);
  padding:10px 14px;font-size:12.5px;color:var(--ink-2);border-radius:0 8px 8px 0;margin:16px 0}
.site-footer{border-top:1px solid var(--line-2);margin-top:20px;padding:26px 0 40px;color:var(--muted);font-size:12.5px}
.site-footer .in{display:flex;gap:18px;flex-wrap:wrap;align-items:center}
.site-footer .in .r{margin-left:auto;display:flex;gap:16px}
.loading{padding:60px 0;text-align:center;color:var(--muted);font-size:13px;letter-spacing:.2em}
.loading i{display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--seal);
  animation:pulse 1s infinite alternate;margin:0 3px}
.loading i:nth-child(2){animation-delay:.2s}
.loading i:nth-child(3){animation-delay:.4s}
@keyframes pulse{from{opacity:.25}to{opacity:1}}
.err{padding:40px 0;color:var(--seal);font-size:14px}
.kbd{font-family:ui-monospace,monospace;font-size:12px;border:1px solid var(--line);
  border-bottom-width:2px;border-radius:5px;padding:1px 5px;color:var(--ink-2)}
.toast{
  position:fixed;left:50%;bottom:34px;transform:translate(-50%,20px);opacity:0;
  background:var(--ink);color:var(--paper);padding:9px 18px;border-radius:999px;font-size:13px;
  transition:.25s;pointer-events:none;z-index:60;
}
.toast.on{opacity:.95;transform:translate(-50%,0)}

@media (max-width:900px){
  .hero{grid-template-columns:1fr;padding:34px 0 26px}
  .hero-side{display:none}
  .grid{grid-template-columns:repeat(2,1fr)}
  .daily{grid-template-columns:1fr}
  .daily .side{border-right:0;border-bottom:1px solid var(--line);display:flex;gap:12px;align-items:baseline;justify-content:center;padding:14px}
  .daily .side .day{font-size:26px}
}
@media (max-width:520px){
  .brand b{display:none}
  .nav{gap:9px}
  .nav a{font-size:12px}
}
@media (max-width:620px){
  .wrap{padding:0 16px}
  .hd-in{height:58px;gap:8px}
  .brand{gap:8px}
  .brand b{font-size:16px;letter-spacing:.08em}
  .brand small{display:none}
  .stamp{width:28px;height:28px;font-size:16px;border-radius:5px}
  .nav{gap:10px;margin-left:auto}
  .nav a{font-size:12.5px;letter-spacing:0;padding:4px 0}
  .nav .hide-s{display:none}
  .icon-btn{width:30px;height:30px;font-size:13px}
  .site-footer .in{display:block;line-height:2}
  .site-footer .in .r{margin-left:0;margin-top:6px;flex-wrap:wrap;gap:12px}
  .grid{grid-template-columns:1fr}
  .hero h1{letter-spacing:.1em}
  .poem .text{font-size:18px;padding-left:18px}
  .row{grid-template-columns:26px 1fr;gap:8px}
  .row .tag{display:none}
  .page-head h1{font-size:24px}
}
