/*
Theme Name: 微语录 WeiYuLu
Description: 治愈系每日一句 · 液态玻璃日夜双模式主题。白日左图右字、夜晚满幅玻璃 dock；内建反爬、日期哈希一天一条、按ID配图。
Version: 1.0.0
Author: Hugh
Text Domain: weiyulu
*/

/* ============ tokens ============ */
:root{
  --wyl-brand:#2EE5C9;
  --wyl-radius:36px;
  --wyl-radius-sm:20px;
  --wyl-ease:cubic-bezier(.2,.8,.2,1);
  --wyl-blur:saturate(160%) blur(34px);
  --wyl-font:"PingFang SC","Microsoft YaHei",-apple-system,"Helvetica Neue",sans-serif;
  --wyl-serif:"Noto Serif SC","Songti SC",Georgia,serif;
}
/* 白日 */
:root,[data-theme="light"]{
  --bg1:#eaf6f3; --bg2:#f6f1ea; --bg3:#e9eef7;
  --txt:#1c2b29; --txt-soft:#56635f;
  --glass:rgba(255,255,255,.55); --glass-bd:rgba(255,255,255,.7);
  --shadow:0 24px 60px -20px rgba(40,70,65,.28);
  /* 光照液态边缘（白日）：顶部高光 + 极淡发光内沿 + 柔和投影，替代实线边框 */
  --edge: inset 0 1px 0 rgba(255,255,255,.85), inset 0 0 0 1px rgba(255,255,255,.18), 0 6px 18px -11px rgba(40,70,65,.4);
  --edge-soft: inset 1px 1px 0 rgba(255,255,255,.6), inset -1px -1px 1px rgba(0,0,0,.04);
  --scrim:linear-gradient(0deg,rgba(255,255,255,0),rgba(255,255,255,0));
}
/* 夜晚 */
[data-theme="dark"]{
  --bg1:#0a1614; --bg2:#0c1118; --bg3:#0e1a17;
  --txt:#eaf4f1; --txt-soft:#9fb2ad;
  --glass:rgba(18,30,28,.45); --glass-bd:rgba(120,160,155,.22);
  --shadow:0 30px 70px -24px rgba(0,0,0,.7);
  --edge: inset 0 1px 0 rgba(255,255,255,.16), inset 0 0 0 1px rgba(150,200,195,.10), 0 8px 22px -12px rgba(0,0,0,.55);
  --edge-soft: inset 1px 1px 0 rgba(170,215,210,.18), inset -1px -1px 1px rgba(0,0,0,.22);
  --scrim:linear-gradient(0deg,rgba(6,14,12,.86) 0%,rgba(6,14,12,.5) 38%,rgba(6,14,12,.12) 72%,rgba(6,14,12,0) 100%);
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]):not([data-theme="dark"]){
    --bg1:#0a1614; --bg2:#0c1118; --bg3:#0e1a17;
    --txt:#eaf4f1; --txt-soft:#9fb2ad;
    --glass:rgba(18,30,28,.45); --glass-bd:rgba(120,160,155,.22);
    --shadow:0 30px 70px -24px rgba(0,0,0,.7);
    --edge: inset 0 1px 0 rgba(255,255,255,.16), inset 0 0 0 1px rgba(150,200,195,.10), 0 8px 22px -12px rgba(0,0,0,.55);
    --edge-soft: inset 1px 1px 0 rgba(170,215,210,.18), inset -1px -1px 1px rgba(0,0,0,.22);
    --scrim:linear-gradient(0deg,rgba(6,14,12,.86) 0%,rgba(6,14,12,.5) 38%,rgba(6,14,12,.12) 72%,rgba(6,14,12,0) 100%);
  }
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  font-family:var(--wyl-font); color:var(--txt);
  min-height:100vh; min-height:100dvh; overflow-x:hidden;
  background:
    radial-gradient(60% 50% at 18% 12%,color-mix(in srgb,var(--wyl-brand) 14%,transparent),transparent 70%),
    radial-gradient(55% 55% at 85% 20%,color-mix(in srgb,var(--bg3) 80%,transparent),transparent 72%),
    linear-gradient(150deg,var(--bg1),var(--bg2) 55%,var(--bg3));
  transition:background .6s var(--wyl-ease),color .4s var(--wyl-ease);
}
/* 细微噪点，去塑料感 */
body::after{
  content:""; position:fixed; inset:0; pointer-events:none; z-index:0; opacity:.04;
  background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='120' height='120'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
}
a{color:inherit;text-decoration:none}
.wyl-wrap{position:relative;z-index:1;min-height:100dvh;display:flex;flex-direction:column}

/* ============ 极光背景：仅白日缓慢漂移；夜晚交给满幅插画 ============ */
.wyl-aura{position:fixed;inset:-25%;z-index:0;filter:blur(64px) saturate(140%);pointer-events:none;contain:strict}
.wyl-aura span{position:absolute;border-radius:50%;opacity:.5;will-change:transform}
.wyl-aura span:nth-child(1){width:48vw;height:48vw;left:-6vw;top:-10vh;background:radial-gradient(circle at 35% 35%,var(--wyl-brand),transparent 60%);animation:wyl-aura1 26s ease-in-out infinite alternate}
.wyl-aura span:nth-child(2){width:42vw;height:42vw;right:-8vw;top:16vh;background:radial-gradient(circle at 50% 50%,#8fd9ff,transparent 62%);animation:wyl-aura2 34s ease-in-out infinite alternate}
.wyl-aura span:nth-child(3){width:46vw;height:46vw;left:16vw;bottom:-16vh;background:radial-gradient(circle at 50% 50%,#ffd6ab,transparent 62%);animation:wyl-aura3 30s ease-in-out infinite alternate}
@keyframes wyl-aura1{to{transform:translate(9vw,7vh) scale(1.18)}}
@keyframes wyl-aura2{to{transform:translate(-7vw,5vh) scale(1.12)}}
@keyframes wyl-aura3{to{transform:translate(6vw,-6vh) scale(1.2)}}
[data-theme="dark"] .wyl-aura{display:none}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]):not([data-theme="dark"]) .wyl-aura{display:none}}

/* ============ 顶栏：日期 + 三态主题切换 ============ */
.wyl-top{display:flex;align-items:center;justify-content:space-between;padding:22px clamp(18px,4vw,48px);position:relative;z-index:3}
.wyl-date{font-size:14px;letter-spacing:.12em;color:var(--txt-soft)}
.wyl-date b{color:var(--txt);font-weight:600}
.wyl-toggle{display:inline-flex;background:var(--glass);-webkit-backdrop-filter:var(--wyl-blur);backdrop-filter:var(--wyl-blur);border:0;box-shadow:var(--edge);border-radius:999px;padding:4px;gap:2px}
.wyl-toggle button{border:0;background:transparent;color:var(--txt-soft);font-size:13px;padding:6px 12px;border-radius:999px;cursor:pointer;transition:.25s var(--wyl-ease);font-family:inherit}
.wyl-toggle button[aria-pressed="true"]{background:color-mix(in srgb,var(--wyl-brand) 26%,transparent);color:var(--txt);box-shadow:inset 0 1px 0 rgba(255,255,255,.5)}

/* ============ 主舞台 ============ */
.wyl-stage{flex:1;display:flex;align-items:center;justify-content:center;padding:clamp(12px,3vw,40px);perspective:1300px}

/* —— 白日 B 版：左图右字玻璃卡 —— */
.wyl-card{
  width:min(1040px,94vw); display:grid; grid-template-columns:1.05fr 1fr; gap:0;
  background:var(--glass); -webkit-backdrop-filter:var(--wyl-blur); backdrop-filter:var(--wyl-blur);
  border:0; border-radius:var(--wyl-radius); box-shadow:var(--edge-soft),var(--shadow);
  overflow:hidden; animation:wyl-rise .9s var(--wyl-ease) both; transform-style:preserve-3d; transition:transform .4s var(--wyl-ease);
}
.wyl-card__imgwrap{position:relative;min-height:420px;overflow:hidden}
.wyl-card__img{position:absolute;inset:-7%;background-size:cover;background-position:center;transition:transform .4s var(--wyl-ease)}
.wyl-card__img.is-empty{background:linear-gradient(140deg,color-mix(in srgb,var(--wyl-brand) 22%,var(--bg1)),var(--bg3))}
.wyl-card__body{padding:clamp(28px,4vw,52px);display:flex;flex-direction:column;justify-content:center;gap:22px}
.wyl-jinju{font-family:var(--wyl-serif);font-size:clamp(22px,2.7vw,30px);line-height:1.7;letter-spacing:.02em;color:var(--txt);animation:wyl-jinju-in 1s var(--wyl-ease) .25s both}
@keyframes wyl-jinju-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}
.wyl-more{align-self:flex-start;font-size:14px;color:var(--txt-soft);border:0;background:transparent;cursor:pointer;padding:0;border-bottom:1px solid color-mix(in srgb,var(--wyl-brand) 50%,transparent);font-family:inherit;transition:.25s}
.wyl-more:hover{color:var(--txt)}

/* —— 夜晚 C 版：满幅图 + 底部玻璃 dock（C 版用 body 背景图实现）—— */
[data-theme="dark"] .wyl-stage{align-items:stretch;padding:0}
/* auto 模式只在系统暗色时才用夜晚舞台布局，避免 auto+亮色误用夜晚布局 */
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]):not([data-theme="dark"]) .wyl-stage{align-items:stretch;padding:0}
}
.wyl-fullbg{display:none;position:fixed;inset:0;z-index:0;background-size:cover;background-position:center}
.wyl-fullbg::after{content:"";position:absolute;inset:0;background:var(--scrim)}
[data-theme="dark"] .wyl-fullbg{display:block}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]):not([data-theme="dark"]) .wyl-fullbg{display:block}}

.wyl-dock{display:none}
[data-theme="dark"] .wyl-card{display:none}
[data-theme="dark"] .wyl-dock{
  display:flex;flex-direction:column;gap:18px;
  width:min(720px,92vw);margin:auto auto 0;align-self:flex-end;
  background:var(--glass);-webkit-backdrop-filter:var(--wyl-blur);backdrop-filter:var(--wyl-blur);
  border:0;border-top-left-radius:var(--wyl-radius);border-top-right-radius:var(--wyl-radius);
  padding:clamp(26px,4vw,40px) clamp(22px,4vw,40px) calc(28px + env(safe-area-inset-bottom));
  box-shadow:var(--edge-soft),var(--shadow);animation:wyl-rise .9s var(--wyl-ease) both;position:relative;z-index:2;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]):not([data-theme="dark"]) .wyl-card{display:none}
  :root:not([data-theme="light"]):not([data-theme="dark"]) .wyl-dock{display:flex;width:min(720px,92vw);margin:auto auto 0;align-self:flex-end;
    background:var(--glass);-webkit-backdrop-filter:var(--wyl-blur);backdrop-filter:var(--wyl-blur);border:0;
    border-top-left-radius:var(--wyl-radius);border-top-right-radius:var(--wyl-radius);padding:34px 30px calc(28px + env(safe-area-inset-bottom));box-shadow:var(--edge-soft),var(--shadow);flex-direction:column;gap:18px;position:relative;z-index:2}
}

/* ============ 操作条（分享 / 赞 / 踩 / 微博）============ */
.wyl-acts{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.wyl-btn{display:inline-flex;align-items:center;gap:7px;border:0;background:color-mix(in srgb,var(--glass) 78%,transparent);color:var(--txt-soft);box-shadow:var(--edge);
  border-radius:999px;padding:9px 16px;font-size:13px;cursor:pointer;font-family:inherit;transition:transform .18s var(--wyl-ease),box-shadow .25s,color .25s;will-change:transform}
.wyl-btn:hover{color:var(--txt);box-shadow:inset 0 1px 0 rgba(255,255,255,.9),inset 0 0 0 1px color-mix(in srgb,var(--wyl-brand) 42%,transparent),0 8px 26px -8px color-mix(in srgb,var(--wyl-brand) 50%,transparent)}
[data-theme="dark"] .wyl-btn:hover{box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 0 0 1px color-mix(in srgb,var(--wyl-brand) 40%,transparent),0 10px 28px -8px color-mix(in srgb,var(--wyl-brand) 45%,transparent)}
.wyl-btn svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.8}
.wyl-btn.is-on{color:var(--txt);background:color-mix(in srgb,var(--wyl-brand) 22%,transparent)}
.wyl-weibo{margin-left:auto;color:var(--txt-soft);font-size:12.5px;display:inline-flex;align-items:center;gap:6px}
.wyl-weibo:hover{color:var(--wyl-brand)}

/* ============ 展开读全文：抽屉 ============ */
.wyl-sheet{position:fixed;inset:0;z-index:50;display:none}
.wyl-sheet.is-open{display:block}
.wyl-sheet__mask{position:absolute;inset:0;background:rgba(8,16,14,.62);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.wyl-sheet__panel{position:absolute;left:50%;bottom:0;transform:translateX(-50%);width:min(680px,100%);max-height:84dvh;overflow:auto;
  background:color-mix(in srgb,var(--bg2) 92%,transparent);-webkit-backdrop-filter:var(--wyl-blur);backdrop-filter:var(--wyl-blur);border:0;
  border-top-left-radius:var(--wyl-radius);border-top-right-radius:var(--wyl-radius);padding:32px clamp(22px,5vw,40px) calc(40px + env(safe-area-inset-bottom));
  box-shadow:var(--edge-soft),var(--shadow);animation:wyl-rise .5s var(--wyl-ease) both}
.wyl-sheet__full{font-family:var(--wyl-serif);font-size:18px;line-height:2.05;color:var(--txt);white-space:pre-wrap}
.wyl-sheet__bar{width:42px;height:4px;border-radius:4px;background:var(--txt-soft);opacity:.4;margin:0 auto 22px}

/* ============ 自适应：H5 ============ */
@media (max-width:760px){
  .wyl-card{grid-template-columns:1fr;width:94vw}
  .wyl-card__imgwrap{min-height:46vw}
  .wyl-jinju{font-size:clamp(20px,5.4vw,26px)}
  .wyl-top{padding:16px 18px}
}
@keyframes wyl-rise{from{opacity:0;transform:translateY(26px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* 防 FOUC 时初始隐藏，JS 定主题后显示 */
html.wyl-booting body{visibility:hidden}
