/* ============================================================
   兔牙家 · 全站皮肤表 skin.css v1 —— 2026-09-02 小雾（主题二期，安可 8-27 立项、9-02 点单）
   两个开关都存 localStorage、由 /assets/js/skin.js 在首帧前挂到 <html> 上：
     data-skin  = fairy | minimal        （设置页「家的外观」）
     data-night = "1" 时为夜间；同时挂 data-theme="dark" 让 palette.css 的深色组接管
   引用（每页 <head> 两行，放在本页样式之前）：
     <link rel="stylesheet" href="/assets/styles/skin.css">
     <script src="/assets/js/skin.js"></script>
   本表只定义：①极简皮肤的公共变量 --sk-* ②极简的页底「雾景」 ③磨砂玻璃配方 .sk-glass
   各页在自己的样式里用 html[data-skin="minimal"] 选择器把装饰层收起、把卡片换成玻璃。
   质感规格（安可 9-02 给的提示词）：半透明雾面玻璃、背景透过卡片柔和模糊、边缘极细白色高光描边、
   边缘略发亮像玻璃厚度、内部轻微折射、表面极淡光斑与反光、阴影很轻但看得出悬浮；
   不要塑料、不要灰色遮罩；参考 Vision Pro / iOS glass / 雾面亚克力。
   配色（安可 9-02 12:34「主题色怎么不是我们家小粉粉」→ 罚去记忆库开屏动画里找）：
   splash-tunnel.js 的 INK=rgb(152,78,104)=#984e68、HOT=#e01f74，纸底 #fff5f8 / 粉票 #ffd7e4 / 雾紫 #d8def4，
   与 palette.css 同族——玻璃是奶粉白的，光晕是粉与雾紫，不走蓝灰。
   ============================================================ */

:root{
  /* —— 极简 · 白天 —— */
  --sk-ink:        #6b4a55;                  /* 正文 · 莓灰（palette --tt-ink） */
  --sk-ink-soft:   #85616f;
  --sk-ink-faint:  #a98a97;
  --sk-text-dim:   .6;                       /* 9-04 安可「点缀文字亮度有点高」：画布小字的透明度折扣，主题按钮不吃 */
  --sk-accent:     #c2708a;                  /* 点缀 · 玫瑰 */
  --sk-accent-ink: #984e68;                  /* 开屏隧道的 INK */
  --sk-hot:        #e01f74;                  /* 开屏隧道的 HOT，只给状态点/强调一笔 */
  --sk-bg:         #fffafc;                  /* 兜底底色（雾景没画出来时）。9-04 安可「更更更浅，粉带点白」：#fff5f8 → #fffafc */
  --sk-glass-bg:
    radial-gradient(120% 60% at 12% 0%, rgba(255,255,255,.58) 0%, rgba(255,255,255,0) 55%),
    radial-gradient(60% 40% at 96% 100%, rgba(255,255,255,.24) 0%, rgba(255,255,255,0) 60%),
    linear-gradient(135deg, rgba(255,251,253,.64) 0%, rgba(255,246,250,.30) 42%, rgba(255,232,241,.36) 100%);
  /* 9-02 12:52 安可：「大白边有点丑」——描边收成 hairline、内圈亮环撤掉，只留上沿一线淡高光 */
  --sk-glass-line: rgba(255,255,255,.38);    /* 极细描边（不再是白边） */
  --sk-glass-rim:  rgba(255,255,255,0);      /* 内亮环退役 */
  --sk-glass-top:  rgba(255,255,255,.55);    /* 上沿一线高光 */
  --sk-glass-shadow: 0 18px 44px rgba(214,120,170,.16), 0 2px 8px rgba(152,78,104,.06);
  --sk-glass-blur: 22px;
  --sk-glass-sat:  1.35;
  /* 页面里抄玻璃只要四行：background:var(--sk-glass-bg); backdrop-filter:var(--sk-glass-filter);
     border:1px solid var(--sk-glass-line); box-shadow:var(--sk-glass-shadows); （夜间自动换值） */
  --sk-glass-filter: blur(22px) saturate(1.35) brightness(1.03);
  --sk-glass-shadows: inset 0 1px 0 rgba(255,255,255,.55),
    0 18px 44px rgba(214,120,170,.16), 0 2px 8px rgba(152,78,104,.06);
  --sk-glass-inner: rgba(255,255,255,.46);   /* 玻璃上再叠一层的小件：按钮、输入框 */
  --sk-glass-inner-line: rgba(255,255,255,.40);
  --sk-spot:       rgba(255,255,255,.55);    /* 表面光斑 */
  --sk-radius:     26px;
  --sk-radius-s:   16px;
  --sk-radius-pill:999px;
  --sk-font-body:  "LXGW WenKai","PingFang SC","Microsoft YaHei",-apple-system,sans-serif;
  --sk-font-display:'Cormorant Garamond',Georgia,serif;
  --sk-ease:       cubic-bezier(.22,.8,.24,1);
}
/* —— 极简 · 夜间 —— */
html[data-night="1"]{
  --sk-ink:        #f5e8ee;                  /* palette 深色组 */
  --sk-ink-soft:   #c9afbd;
  --sk-ink-faint:  #a08b96;
  --sk-text-dim:   .5;
  --sk-accent:     #e4a4ba;
  --sk-accent-ink: #f09bc3;
  --sk-hot:        #ff5fa4;
  --sk-bg:         #221a22;
  --sk-glass-bg:
    radial-gradient(120% 60% at 12% 0%, rgba(255,231,237,.20) 0%, rgba(255,231,237,0) 55%),
    radial-gradient(60% 40% at 96% 100%, rgba(255,231,237,.08) 0%, rgba(255,231,237,0) 60%),
    linear-gradient(135deg, rgba(255,231,237,.15) 0%, rgba(255,231,237,.06) 45%, rgba(216,222,244,.10) 100%);
  --sk-glass-line: rgba(255,235,241,.16);
  --sk-glass-rim:  rgba(255,235,241,0);
  --sk-glass-top:  rgba(255,235,241,.28);
  --sk-glass-shadow: 0 22px 50px rgba(0,0,0,.42), 0 2px 8px rgba(0,0,0,.25);
  --sk-glass-shadows: inset 0 1px 0 rgba(255,235,241,.28),
    0 22px 50px rgba(0,0,0,.42), 0 2px 8px rgba(0,0,0,.25);
  --sk-glass-inner: rgba(255,231,237,.10);
  --sk-glass-inner-line: rgba(255,231,237,.18);
  --sk-spot:       rgba(255,255,255,.22);
}

/* ── 雾景：极简皮肤的页底。没有真照片也要有东西给玻璃「透」——几团蓝灰/雾白的光晕 + 一丁点颗粒 ──
   放在 body::before（fixed 全屏、z-index -1），各页 body 自己的 background 在极简下会被覆写成透明。 */
html[data-skin="minimal"] body{ background: var(--sk-bg) !important; color: var(--sk-ink); }
html[data-skin="minimal"] body::before{
  content:""; position:fixed; inset:-12vh -12vw; z-index:-1; pointer-events:none;
  background:
    /* 9-04 19:17 安可（小声）：「背景改成更更更浅色，色调趋近于粉色带点白」——
       每团光晕都掺了白：粉票 .85→.50、玫瑰 .42→.14、雾紫 .90→.55、奶油 .40→.25，底渐变整体抬到 #fffbfd–#fbe9f1。
       旧值留在 git（改前快照 9-04 19:2x）。 */
    radial-gradient(38% 46% at 18% 22%, rgba(255,255,255,.97) 0%, rgba(255,255,255,0) 70%),
    radial-gradient(42% 52% at 82% 18%, rgba(255,199,220,.50) 0%, rgba(255,199,220,0) 70%),   /* 粉票 #ffd7e4 那一团 */
    radial-gradient(48% 40% at 70% 78%, rgba(194,112,138,.14) 0%, rgba(194,112,138,0) 72%),   /* 玫瑰压底 */
    radial-gradient(34% 34% at 28% 84%, rgba(216,222,244,.55) 0%, rgba(216,222,244,0) 70%),   /* 雾紫 --fog */
    radial-gradient(26% 26% at 50% 52%, rgba(255,237,194,.25) 0%, rgba(255,237,194,0) 70%),   /* 一点奶油 --butter */
    linear-gradient(160deg, #fffbfd 0%, #fff3f8 48%, #fbe9f1 100%);
  filter: blur(6px) saturate(1.05);
  transform: translateZ(0);
}
html[data-skin="minimal"] body::after{
  content:""; position:fixed; inset:0; z-index:-1; pointer-events:none; opacity:.07; mix-blend-mode:soft-light;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
html[data-skin="minimal"][data-night="1"] body::before{
  background:
    radial-gradient(40% 48% at 18% 20%, rgba(110,64,84,.60) 0%, rgba(110,64,84,0) 70%),      /* 夜票 #6e4054 */
    radial-gradient(44% 54% at 84% 16%, rgba(152,78,104,.45) 0%, rgba(152,78,104,0) 70%),     /* INK */
    radial-gradient(50% 42% at 72% 80%, rgba(58,58,82,.75) 0%, rgba(58,58,82,0) 72%),         /* 夜雾紫 */
    radial-gradient(30% 30% at 30% 86%, rgba(228,164,186,.22) 0%, rgba(228,164,186,0) 70%),
    linear-gradient(160deg, #2a1c2a 0%, #221a22 50%, #170f1a 100%);
}
html[data-skin="minimal"][data-night="1"] body::after{ opacity:.16; }

/* ── 磨砂玻璃配方 ── 任何盒子加 .sk-glass（或在极简选择器下 @extend 这几行）就是一块玻璃。
   四层叠出来：底=半透明渐变 + 背后模糊；描边=极细白线；厚度=内亮边 + 上沿一线；光斑=::before 的斜向柔光。
   给了 position:relative 和 overflow:hidden 才能让光斑贴着圆角走；需要溢出内容的盒子自己覆写 overflow。 */
.sk-glass{
  position:relative; isolation:isolate;
  background: var(--sk-glass-bg);
  -webkit-backdrop-filter: var(--sk-glass-filter);
  backdrop-filter: var(--sk-glass-filter);
  border: 1px solid var(--sk-glass-line);
  border-radius: var(--sk-radius);
  box-shadow: var(--sk-glass-shadows);
  color: var(--sk-ink);
}
.sk-glass::after{                       /* 玻璃厚度：外圈一道更亮的细边，只在左上角显 */
  content:""; position:absolute; inset:-1px; border-radius:inherit; pointer-events:none; z-index:-1;
  padding:1px;
  background: linear-gradient(135deg, rgba(255,255,255,.9) 0%, rgba(255,255,255,.15) 40%, rgba(255,255,255,0) 60%, rgba(255,255,255,.35) 100%);
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
}
.sk-glass.sk-thin{ --sk-glass-filter: blur(14px) saturate(1.3); border-radius: var(--sk-radius-s); }
.sk-glass.sk-pill{ border-radius: var(--sk-radius-pill); }
/* 玻璃上再叠的小件：按钮 / 输入框 / 分段控件 */
.sk-inner{
  background: var(--sk-glass-inner);
  border:1px solid var(--sk-glass-inner-line);
  border-radius: var(--sk-radius-s);
  box-shadow: none;
  color: var(--sk-ink);
}
.sk-inner.sk-pill{ border-radius: var(--sk-radius-pill); }
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))){
  .sk-glass{ background: rgba(240,245,250,.90); }
  html[data-night="1"] .sk-glass{ background: rgba(32,40,52,.92); }
}
@media (prefers-reduced-transparency: reduce){
  .sk-glass{ -webkit-backdrop-filter:none; backdrop-filter:none; background: rgba(240,245,250,.94); }
  html[data-night="1"] .sk-glass{ background: rgba(32,40,52,.94); }
}
/* 极简下通用的字色/链接 */
html[data-skin="minimal"] a{ color: var(--sk-accent-ink); }
html[data-skin="minimal"] ::selection{ background: rgba(194,112,138,.28); }

/* ════════════════════════════════════════════════════════════
   线条系统 · 9-02 12:53 安可拍板「A · 图纸玻璃」（玻璃当材质，线条当构成；开屏隧道 / 沙漏 / 天仪一家）
   规矩：每块面板是一张图纸——左上编号、右上注记、Barlow Condensed 全大写细体标题、Cormorant 斜体副题、
   hairline 收口；线条替代装饰（同心圆 / 刻度尺 / 星芒，全是 1px）；粉只点一笔；夜间＝天仪（黑底纸白线）。
   ════════════════════════════════════════════════════════════ */
@font-face{font-family:'SK Barlow';src:url(/hall/memory-astrolabe/assets/fonts/barlow-condensed-300.woff2) format('woff2');font-weight:300;font-display:swap}
@font-face{font-family:'SK Cormorant It';src:url(/hall/memory-astrolabe/assets/fonts/cormorant-garamond-italic-400.woff2) format('woff2');font-style:italic;font-weight:400;font-display:swap}
@font-face{font-family:'SK Noto Serif';src:url(/hall/memory-astrolabe/assets/fonts/noto-serif-sc-400-subset.woff2) format('woff2');font-weight:400;font-display:swap}
:root{
  --sk-font-title:  'SK Barlow','Barlow Condensed','Arial Narrow','Bahnschrift Condensed',sans-serif;
  --sk-font-kicker: 'SK Cormorant It','Cormorant Garamond',Georgia,serif;
  --sk-font-han:    'SK Noto Serif','Noto Serif SC','Songti SC','SimSun',serif;
  --sk-font-mono:   ui-monospace,'SFMono-Regular',Menlo,Consolas,'Liberation Mono',monospace;
  --sk-line:        rgba(152,78,104,.18);   /* 淡线 */
  --sk-line-bright: rgba(152,78,104,.42);   /* 亮线 */
  --sk-line-ink:    #984e68;                /* 实线（标题下那根） */
  /* 同心圆：三圈 1px，圆心由 --sk-rings-x/y 定（默认右上），页面把它叠进 background 即可 */
  --sk-rings-x: 78%; --sk-rings-y: 34%;
  --sk-rings:
    radial-gradient(circle at var(--sk-rings-x) var(--sk-rings-y), transparent 62px, var(--sk-line-bright) 62px, var(--sk-line-bright) 63px, transparent 63.6px),
    radial-gradient(circle at var(--sk-rings-x) var(--sk-rings-y), transparent 88px, var(--sk-line) 88px, var(--sk-line) 89px, transparent 89.6px),
    radial-gradient(circle at var(--sk-rings-x) var(--sk-rings-y), transparent 112px, var(--sk-line) 112px, var(--sk-line) 113px, transparent 113.6px);
  /* 刻度尺：底边一排 1px 竖刻度，每 8px 一格 */
  --sk-ruler: repeating-linear-gradient(90deg, var(--sk-line-bright) 0 1px, transparent 1px 8px);
  /* 星芒（一笔画 SVG） */
  --sk-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' fill='none' stroke='%23c2708a' stroke-width='.8'%3E%3Cpath d='M5 0v10M0 5h10M2 2l6 6M8 2l-6 6'/%3E%3C/svg%3E");
}
/* 线条星球（安可 9-02 12:58 的原案：「按钮底下垫线条星球，给线条做动画」）：
   一颗 1px 描边的球 + 一圈斜轨道 + 轨道上一粒卫星；整张图慢转就是卫星绕行。两档：--sk-planet / --sk-planet-2（轨道反向） */
:root{
  --sk-planet: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23c2708a' stroke-width='.9'%3E%3Ccircle cx='50' cy='50' r='17'/%3E%3Cpath d='M50 33a17 17 0 0 1 0 34' stroke-opacity='.45' stroke-dasharray='2 3'/%3E%3Cellipse cx='50' cy='50' rx='38' ry='11' transform='rotate(-22 50 50)'/%3E%3Cellipse cx='50' cy='50' rx='46' ry='14' transform='rotate(-22 50 50)' stroke-opacity='.35'/%3E%3Ccircle cx='85' cy='36' r='2.2' fill='%23e01f74' stroke='none'/%3E%3C/svg%3E");
  --sk-planet-2: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23c2708a' stroke-width='.9'%3E%3Ccircle cx='50' cy='50' r='14'/%3E%3Ccircle cx='50' cy='50' r='30' stroke-opacity='.45'/%3E%3Ccircle cx='50' cy='50' r='42' stroke-dasharray='1 4' stroke-opacity='.6'/%3E%3Ccircle cx='50' cy='8' r='2.2' fill='%23e01f74' stroke='none'/%3E%3Cpath d='M20 50h60' stroke-opacity='.3'/%3E%3C/svg%3E");
}
html[data-night="1"]{
  --sk-planet: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23e4a4ba' stroke-width='.9'%3E%3Ccircle cx='50' cy='50' r='17'/%3E%3Cpath d='M50 33a17 17 0 0 1 0 34' stroke-opacity='.45' stroke-dasharray='2 3'/%3E%3Cellipse cx='50' cy='50' rx='38' ry='11' transform='rotate(-22 50 50)'/%3E%3Cellipse cx='50' cy='50' rx='46' ry='14' transform='rotate(-22 50 50)' stroke-opacity='.35'/%3E%3Ccircle cx='85' cy='36' r='2.2' fill='%23ff5fa4' stroke='none'/%3E%3C/svg%3E");
  --sk-planet-2: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100' fill='none' stroke='%23e4a4ba' stroke-width='.9'%3E%3Ccircle cx='50' cy='50' r='14'/%3E%3Ccircle cx='50' cy='50' r='30' stroke-opacity='.45'/%3E%3Ccircle cx='50' cy='50' r='42' stroke-dasharray='1 4' stroke-opacity='.6'/%3E%3Ccircle cx='50' cy='8' r='2.2' fill='%23ff5fa4' stroke='none'/%3E%3Cpath d='M20 50h60' stroke-opacity='.3'/%3E%3C/svg%3E");
}
@keyframes sk-orbit{ to{ transform:rotate(360deg) } }
@keyframes sk-orbit-r{ to{ transform:rotate(-360deg) } }
.sk-planet{ position:absolute; pointer-events:none; background:var(--sk-planet) center/contain no-repeat; animation:sk-orbit 48s linear infinite; }
.sk-planet.two{ background-image:var(--sk-planet-2); animation-name:sk-orbit-r; animation-duration:64s; }
@media (prefers-reduced-motion: reduce){ .sk-planet{ animation:none } }
html[data-night="1"]{
  --sk-line:        rgba(242,241,237,.17);
  --sk-line-bright: rgba(242,241,237,.56);
  --sk-line-ink:    #f2f1ed;
  --sk-star: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 10' fill='none' stroke='%23e4a4ba' stroke-width='.8'%3E%3Cpath d='M5 0v10M0 5h10M2 2l6 6M8 2l-6 6'/%3E%3C/svg%3E");
}
/* 夜间＝天仪：底色压到黑，玻璃更深（只在极简下） */
html[data-skin="minimal"][data-night="1"]{ --sk-bg:#0d0e11; }
html[data-skin="minimal"][data-night="1"] body::before{
  background:
    radial-gradient(40% 48% at 18% 20%, rgba(110,64,84,.42) 0%, rgba(110,64,84,0) 70%),
    radial-gradient(44% 54% at 84% 16%, rgba(152,78,104,.30) 0%, rgba(152,78,104,0) 70%),
    radial-gradient(50% 42% at 72% 80%, rgba(58,58,82,.55) 0%, rgba(58,58,82,0) 72%),
    radial-gradient(30% 30% at 30% 86%, rgba(239,177,208,.12) 0%, rgba(239,177,208,0) 70%),
    linear-gradient(160deg, #1a1420 0%, #0f0e13 55%, #08090b 100%);
}

/* —— 文字零件 —— */
.sk-fig{ font:400 8.5px/1 var(--sk-font-mono); letter-spacing:.24em; text-transform:uppercase; color:var(--sk-ink-faint); }
.sk-fig i{ font-style:normal; color:var(--sk-hot); }
.sk-note{ font:400 8.5px/1 var(--sk-font-mono); letter-spacing:.2em; text-transform:uppercase; color:var(--sk-ink-faint); }
.sk-kicker{ font:italic 400 13px/1.2 var(--sk-font-kicker); letter-spacing:.06em; color:var(--sk-ink-soft); }
.sk-title{ font:300 30px/1 var(--sk-font-title); letter-spacing:.06em; text-transform:uppercase; color:var(--sk-ink); }
.sk-title-rule{ display:block; height:1px; margin-top:8px; background:linear-gradient(90deg, var(--sk-line-ink) 0 38%, var(--sk-line) 38%); }
.sk-han{ font:400 18px/1.3 var(--sk-font-han); color:var(--sk-ink); }
/* —— 线零件 —— */
.sk-rule{ height:1px; background:var(--sk-line); }
.sk-ruler{ height:6px; background:var(--sk-ruler) left bottom/100% 5px no-repeat; }
.sk-rings{ background-image:var(--sk-rings); }
.sk-star{ display:inline-block; width:10px; height:10px; background:var(--sk-star) center/contain no-repeat; }
/* —— 图纸编号：容器 counter-reset:fig，成员 .sk-figured::before 自动出 FIG.01 / 02… —— */
.sk-figured{ counter-increment:fig; }
.sk-figured::before{ content:"FIG." counter(fig, decimal-leading-zero); position:absolute; left:14px; top:12px;
  font:400 8.5px/1 var(--sk-font-mono); letter-spacing:.24em; color:var(--sk-ink-faint); pointer-events:none; }
/* 光点呼吸（只动线和点） */
@keyframes sk-breathe{ 0%,100%{ box-shadow:0 0 0 3px rgba(224,31,116,.14) } 50%{ box-shadow:0 0 0 6px rgba(224,31,116,.06) } }
.sk-dot{ width:6px; height:6px; border-radius:50%; background:var(--sk-hot); animation:sk-breathe 3.2s ease-in-out infinite; }
@media (prefers-reduced-motion: reduce){ .sk-dot{ animation:none } }
