/* 海上日记 · 个人主页
   蓝 / 紫 / 粉的柔光、Hi!、圆头像 + 两道弧、三扇"门"。 */

:root{
  --bg:#F2F1F9;
  --card:#FFFFFF;
  --ink:#1B1A22;
  --ink-2:#55525F;
  --ink-3:#8B8799;
  --line:rgba(27,26,34,.09);
  --line-2:rgba(27,26,34,.055);
  --accent:#8A79C4;
  --rose:#C97FA6;
  --violet:#7D6BB3;
  --blue:#5B7FC7;
  --serif:"Source Han Serif SC","Noto Serif SC","Songti SC",Georgia,"Times New Roman",serif;
  --sans:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  --mono:ui-monospace,"SF Mono","Cascadia Mono",Consolas,"Liberation Mono",monospace;
  --wrap:1080px;
  --pad:48px;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{
  position:relative;min-height:100vh;display:flex;flex-direction:column;
  margin:0;color:var(--ink);overflow-x:hidden;
  font-family:var(--sans);font-size:16px;line-height:1.7;
  -webkit-font-smoothing:antialiased;
  background:var(--bg);
}
/* 柔光铺满整页（absolute + inset:0），避免"只亮一屏"的断层 */
body::before{
  content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(54% 34% at 12% 2%, rgba(206,186,242,.78), transparent 66%),
    radial-gradient(50% 32% at 89% 0%, rgba(248,188,213,.72), transparent 66%),
    radial-gradient(40% 26% at 22% 32%, rgba(180,208,247,.72), transparent 68%),
    radial-gradient(36% 24% at 82% 30%, rgba(222,196,242,.68), transparent 68%),
    radial-gradient(44% 28% at 52% 92%, rgba(188,212,246,.58), transparent 70%);
}
a{color:inherit;text-decoration:none}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;z-index:9;background:#17191A;color:#fff;padding:8px 14px;border-radius:8px}

.wrap{max-width:var(--wrap);margin:0 auto;padding:0 var(--pad);flex:1 0 auto;width:100%}
/* 窗口很高时把内容整体居中，避免底部空一大块 */
body > .wrap{display:flex;flex-direction:column;justify-content:center}

/* ---------- 首屏 ---------- */
.hero{
  display:grid;grid-template-columns:minmax(0,1fr) auto;
  align-items:center;gap:56px;
  padding:clamp(56px,9vh,132px) 0 clamp(34px,5vh,64px);
}
.label{margin:0 0 20px;font-family:var(--mono);font-size:10px;letter-spacing:.24em;color:#9A95A8}
h1{
  margin:0;font-size:clamp(68px,8.6vw,108px);font-weight:800;
  line-height:.92;letter-spacing:-.035em;color:#17161F;
}
.lead{
  margin:22px 0 0;max-width:26em;
  font-size:16.5px;line-height:1.95;color:#56535F;
}

/* 头像：干净圆形 + 白圈 + 两道弧 */
.portrait{position:relative;width:228px;height:228px;flex:none}
.arc{position:absolute;color:#CDC4B6;pointer-events:none}
.a1{left:-34px;top:-30px;width:286px;height:286px}
.a2{right:-34px;bottom:-30px;width:286px;height:286px}
.avatar{
  position:relative;width:100%;height:100%;border-radius:50%;overflow:hidden;background:#fff;
  box-shadow:
    0 0 0 5px #FFFCF8,
    0 0 0 6px rgba(140,100,90,.10),
    0 30px 56px -34px rgba(110,60,50,.45);
}
.avatar img{display:block;width:100%;height:100%;object-fit:cover}
.avatar{
  transform-origin:50% 50%;
  transition:transform .7s cubic-bezier(.34,1.45,.45,1);
}
.portrait:hover .avatar{transform:rotate(-11deg) scale(1.045)}
@media (prefers-reduced-motion: reduce){
  .avatar{transition:none}
  .portrait:hover .avatar{transform:none}
}

/* ---------- 三扇门：产品入口 ---------- */
.doors{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;padding:clamp(6px,2vh,26px) 0 clamp(18px,3.5vh,44px)}
.door{
  display:flex;flex-direction:column;min-height:186px;
  padding:24px 22px 20px;border-radius:18px;
  background:linear-gradient(155deg, rgba(255,255,255,.68), rgba(255,255,255,.34));
  border:1px solid rgba(255,255,255,.92);
  -webkit-backdrop-filter:blur(20px) saturate(145%);
  backdrop-filter:blur(20px) saturate(145%);
  box-shadow:
    0 26px 54px -30px rgba(74,58,110,.42),
    inset 0 1px 0 rgba(255,255,255,1),
    inset 0 -22px 44px -32px rgba(90,70,130,.22);
  transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background .24s ease;
}
.door:hover{
  transform:translateY(-3px);
  background:linear-gradient(155deg, rgba(255,255,255,.88), rgba(255,255,255,.55));
  border-color:rgba(196,121,122,.28);
  box-shadow:0 26px 50px -30px rgba(96,64,50,.45), inset 0 1px 0 #fff;
}
.door .ico{
  width:38px;height:38px;border-radius:12px;display:grid;place-items:center;margin-bottom:14px;
}
.door .ico svg{width:20px;height:20px}
.d1{background-image:linear-gradient(155deg, rgba(247,214,228,.52), rgba(255,255,255,.32))}
.d1 .ico{background:rgba(255,255,255,.78);color:#B9638E}
.d2{background-image:linear-gradient(155deg, rgba(226,214,247,.52), rgba(255,255,255,.32))}
.d2 .ico{background:rgba(255,255,255,.78);color:#7A66B0}
.d3{background-image:linear-gradient(155deg, rgba(205,223,247,.55), rgba(255,255,255,.32))}
.d3 .ico{background:rgba(255,255,255,.78);color:#4F73BC}
.door b{font-family:var(--serif);font-size:23px;font-weight:600;letter-spacing:.02em;color:#1B1A22}
.door .d{margin-top:6px;font-size:13px;line-height:1.7;color:#8B8799}
.door i{
  margin-top:auto;padding-top:16px;font-style:normal;
  font-size:12px;letter-spacing:.06em;color:#9A95A8;
  transition:color .2s ease;
}
.door:hover i{color:var(--accent)}
.door:hover b{color:var(--accent)}

h2{
  margin:6px 0 0;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.24em;
  color:#9A95A8;font-weight:400;
}

/* ---------- 最近（与"关于"同一套两栏） ---------- */
.recent{
  display:grid;grid-template-columns:132px minmax(0,1fr);gap:40px;
  padding:clamp(34px,5.5vh,76px) 0;border-top:1px solid var(--line);
}
.recent ul{list-style:none;margin:0;padding:0}
.recent li{padding:15px 0;border-top:1px solid var(--line-2)}
.recent li:first-child{border-top:0;padding-top:0}
.recent li:last-child{padding-bottom:0}
.recent .meta{
  display:flex;align-items:baseline;gap:10px;margin:0 0 3px;
  font-family:var(--mono);font-size:10.5px;letter-spacing:.06em;color:#A296B4;
}
.recent .tag{color:var(--rose);letter-spacing:.1em}
.recent .txt{margin:0;font-size:14.5px;line-height:1.8;color:var(--ink-2)}

/* ---------- 页脚 ---------- */
.foot{border-top:1px solid var(--line);margin-top:auto}
.foot .wrap{
  padding-top:22px;padding-bottom:46px;
  display:flex;flex-wrap:wrap;justify-content:space-between;gap:8px;
  font-size:11.5px;color:#9A9086;letter-spacing:.03em;
}
.foot a:hover{color:var(--ink-2)}

/* ---------- 入场 ---------- */
.intro > *, .portrait, .doors{animation:in .7s cubic-bezier(.2,.7,.3,1) both}
.intro > *:nth-child(2){animation-delay:.06s}
.intro > *:nth-child(3){animation-delay:.12s}
.portrait{animation-delay:.1s}
.doors{animation-delay:.18s}
@keyframes in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){ .intro > *, .portrait, .doors{animation:none} }

/* ---------- 响应式 ---------- */
@media (max-width:900px){
  .hero{grid-template-columns:minmax(0,1fr) 112px;gap:16px;padding:40px 0 24px}
  .portrait{width:112px;height:112px;align-self:start;margin-top:4px}
  .a1,.a2{width:146px;height:146px}
  .a1{left:-18px;top:-16px}
  .a2{right:-18px;bottom:-16px}
  .label{font-size:9px;letter-spacing:.18em;margin-bottom:12px}
  .lead{font-size:13.5px;line-height:1.8;margin-top:12px}
  .doors{grid-template-columns:1fr;gap:10px}
  .door{
    min-height:0;padding:16px 16px 14px;
    display:grid;grid-template-columns:36px minmax(0,1fr) 46px;
    align-items:center;column-gap:12px;
  }
  .door .ico{grid-row:1 / span 2;margin:0;width:36px;height:36px}
  .door b{grid-column:2;grid-row:1;font-size:19px}
  .door .d{grid-column:2;grid-row:2;margin-top:2px}
  .door i{
    grid-column:3;grid-row:1 / span 2;padding:0;margin:0;
    font-size:11px;white-space:nowrap;justify-self:end;color:#B3A89D;
  }
  h2{margin:0}
}
@media (max-width:640px){
  :root{--pad:20px}
  .foot .wrap{font-size:11px;gap:6px}
  h1{font-size:clamp(58px,17vw,74px)}
  .lead{font-size:15.5px;margin-top:18px}
  .recent{grid-template-columns:1fr;gap:16px;padding:36px 0}
}