/* ============================================================
   聿恒科技工作室 — 首页专属样式（index.css）
   左侧刊头 / Hero / 服务 / 项目 / 技术心得 / 关于+联系 / 响应式
   ============================================================ */

/* 左侧竖向刊头 */
.masthead{
  position:fixed;left:26px;top:50%;transform:translateY(-50%);
  writing-mode:vertical-rl;letter-spacing:6px;font-size:12px;color:var(--text-3);
  z-index:50;user-select:none;pointer-events:none;
}

/* section 标题 */
.sec-head{display:flex;align-items:baseline;gap:20px;margin-bottom:48px;padding-top:8px;}
.sec-head .idx{
  font-size:14px;font-weight:500;color:var(--blue-light);
  font-family:"SF Mono",Consolas,monospace;letter-spacing:1px;
}
.sec-head h2{font-size:40px;font-weight:700;letter-spacing:1px;line-height:1.1;}
.sec-head .desc{font-size:13px;color:var(--text-3);max-width:260px;line-height:1.6;margin-left:auto;}
.sec-head .view-more{font-size:13px;color:var(--blue-light);font-weight:500;white-space:nowrap;align-self:center;transition:opacity .2s;}
.sec-head .view-more:hover{opacity:.75;}

/* Hero */
.hero{min-height:100vh;display:flex;flex-direction:column;justify-content:center;padding:0;border-top:none;}
.hero .eyebrow{
  display:flex;align-items:center;gap:12px;font-size:13px;color:var(--blue-light);
  letter-spacing:3px;margin-bottom:32px;font-weight:500;
}
.hero .eyebrow::before{content:'';width:40px;height:1px;background:var(--blue);}
.hero h1{font-size:clamp(42px,7vw,78px);font-weight:700;line-height:1.08;letter-spacing:1px;}
.hero h1 .accent{color:var(--blue-light);}
.hero h1 .dim{color:var(--text-3);}
.hero .sub{max-width:520px;font-size:17px;color:var(--text-2);margin-top:34px;line-height:1.8;}
.hero .chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:44px;}
.hero .chip{
  padding:8px 20px;border-radius:30px;font-size:13px;color:var(--text-2);
  border:1px solid var(--line-2);transition:all .2s;
}
.hero .chip:hover{border-color:var(--blue);color:var(--blue-light);}
.hero .scroll-hint{
  position:absolute;bottom:36px;left:50%;transform:translateX(-50%);
  display:flex;flex-direction:column;align-items:center;gap:8px;
  font-size:11px;color:var(--text-3);letter-spacing:2px;
}
.hero .scroll-hint .line{width:1px;height:40px;background:linear-gradient(var(--line-2),transparent);}

/* 服务 */
.services{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.service{
  position:relative;background:var(--bg-2);border:1px solid var(--line);
  border-radius:16px;padding:28px 26px;overflow:hidden;
  transition:transform .3s cubic-bezier(.4,0,.2,1),border-color .3s,box-shadow .3s;
}
.service::before{
  content:'';position:absolute;left:0;bottom:0;width:100%;height:3px;
  background:linear-gradient(90deg,var(--blue),var(--blue-light));
  transform:scaleX(0);transform-origin:left;transition:transform .4s cubic-bezier(.4,0,.2,1);
}
.service:hover{
  transform:translateY(-6px);
  border-color:var(--blue);
  box-shadow:0 16px 40px rgba(59,130,246,.16);
}
.service:hover::before{transform:scaleX(1);}
.service .s-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:18px;}
.service .s-icon{
  width:48px;height:48px;border-radius:12px;background:rgba(59,130,246,.14);color:var(--blue-light);
  display:flex;align-items:center;justify-content:center;transition:all .3s cubic-bezier(.4,0,.2,1);
}
.service:hover .s-icon{
  transform:scale(1.14) rotate(-4deg);background:var(--blue);color:#fff;
  box-shadow:0 8px 20px rgba(59,130,246,.35);
}
.service .s-idx{
  font-size:14px;font-weight:500;color:var(--text-3);
  font-family:"SF Mono",Consolas,monospace;transition:color .3s;
}
.service:hover .s-idx{color:var(--blue-light);}
.service h3{font-size:18px;font-weight:600;margin-bottom:8px;transition:color .3s;}
.service:hover h3{color:var(--blue-light);}
.service p{font-size:14px;color:var(--text-2);line-height:1.7;margin-bottom:18px;}
.service .s-tags{display:flex;flex-wrap:wrap;gap:7px;}
.service .s-tag{
  font-size:12px;padding:3px 12px;border-radius:20px;
  background:rgba(59,130,246,.08);color:var(--text-2);
  border:1px solid transparent;transition:all .25s;
}
.service:hover .s-tag{border-color:rgba(59,130,246,.32);color:var(--blue-light);}

/* 项目 */
.project-feature{display:grid;grid-template-columns:1.5fr 1fr;gap:0;border-top:1px solid var(--line);margin-bottom:60px;}
.project-feature .pf-cover{
  height:340px;background:linear-gradient(135deg,#1d4ed8,#2563eb);
  display:flex;align-items:flex-end;padding:24px;position:relative;
}
.project-feature .pf-cover .pf-num{
  position:absolute;top:16px;left:20px;font-size:15px;color:rgba(255,255,255,.75);
  font-family:"SF Mono",Consolas,monospace;
}
.project-feature .pf-cover .pf-name{font-size:24px;font-weight:700;color:#fff;letter-spacing:1px;}
.project-feature .pf-body{padding:30px 40px;display:flex;flex-direction:column;justify-content:center;}
.project-feature .pf-body .pf-tag{font-size:12px;color:var(--blue-light);letter-spacing:2px;margin-bottom:14px;font-weight:500;}
.project-feature .pf-body h3{font-size:26px;font-weight:700;margin-bottom:12px;}
.project-feature .pf-body p{font-size:15px;color:var(--text-2);line-height:1.8;margin-bottom:22px;}
.project-feature .tags{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px;}
.project-feature .ptag{font-size:12px;padding:4px 12px;border-radius:6px;background:rgba(59,130,246,.12);color:var(--blue-light);}
.demo-btn{
  display:inline-flex;align-items:center;gap:8px;font-size:14px;font-weight:500;
  color:#fff;background:var(--blue);border-radius:8px;padding:11px 24px;
  transition:all .2s;align-self:flex-start;
}
.demo-btn:hover{background:#2563eb;transform:translateY(-2px);}

.projects-sub{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.project{
  background:var(--bg-2);border:1px solid var(--line);border-radius:16px;
  overflow:hidden;display:flex;flex-direction:column;position:relative;
  transition:transform .3s cubic-bezier(.4,0,.2,1),border-color .3s,box-shadow .3s;
}
.project:hover{
  transform:translateY(-6px);border-color:var(--blue);
  box-shadow:0 16px 40px rgba(59,130,246,.16);
}
.project .p-cover{
  height:110px;display:flex;align-items:center;justify-content:center;
  color:#fff;font-size:15px;font-weight:600;letter-spacing:2px;position:relative;flex-shrink:0;
}
.project .p-cover .p-num{
  position:absolute;top:12px;left:16px;font-size:12px;color:rgba(255,255,255,.82);
  font-family:"SF Mono",Consolas,monospace;
}
.project .p-body{padding:22px 22px 24px;display:flex;flex-direction:column;flex:1;}
.project h4{font-size:18px;font-weight:600;margin-bottom:8px;transition:color .3s;}
.project:hover h4{color:var(--blue-light);}
.project p{font-size:14px;color:var(--text-2);line-height:1.7;margin-bottom:16px;flex:1;}
.project .tags{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:18px;}
.project .ptag{font-size:12px;padding:3px 11px;border-radius:6px;background:rgba(59,130,246,.12);color:var(--blue-light);}
.project .p-link{
  font-size:13px;color:var(--blue-light);font-weight:500;
  display:inline-flex;align-items:center;gap:6px;transition:gap .2s;align-self:flex-start;
}
.project .p-link:hover{gap:10px;}
/* 第三个「更多项目」跨两列，横向布局 */
.project.more{grid-column:span 2;flex-direction:row;align-items:stretch;}
.project.more .p-cover{width:180px;height:auto;align-self:stretch;flex-direction:column;}
.project.more .p-body{flex-direction:row;align-items:center;gap:24px;}
.project.more .p-body p{margin-bottom:0;}

/* 技术心得 */
.notes{border-top:1px solid var(--line);}
.note{display:grid;grid-template-columns:44px 90px 1fr auto auto;align-items:center;gap:20px;padding:26px 0;border-bottom:1px solid var(--line);transition:padding .25s;}
.note:hover{padding-left:8px;}
.note .n-idx{font-size:13px;color:var(--text-3);font-family:"SF Mono",Consolas,monospace;transition:color .3s;}
.note:hover .n-idx{color:var(--blue-light);}
.note .n-date{font-size:13px;color:var(--text-3);font-family:"SF Mono",Consolas,monospace;}
.note .n-main{font-size:18px;font-weight:500;transition:color .3s;}
.note:hover .n-main{color:var(--blue-light);}
.note .n-tag{font-size:12px;color:var(--blue-light);padding:4px 12px;border-radius:20px;background:rgba(59,130,246,.1);border:1px solid rgba(59,130,246,.22);}
.note .n-arrow{color:var(--text-3);font-size:18px;transition:all .2s;}
.note:hover .n-arrow{color:var(--blue-light);transform:translateX(4px);}

/* 关于 + 联系 */
.about-contact{display:grid;grid-template-columns:1.2fr 1fr;gap:80px;}
.about-contact h3{font-size:13px;color:var(--blue-light);letter-spacing:2px;font-weight:500;margin-bottom:20px;}
.about-contact .big{font-size:30px;font-weight:700;line-height:1.4;margin-bottom:24px;}
.about-contact p{font-size:15px;color:var(--text-2);line-height:1.9;}
/* 数据统计 */
.stats{display:flex;gap:48px;margin-top:34px;padding-top:28px;border-top:1px solid var(--line);}
.stat .num{font-size:36px;font-weight:700;color:var(--blue-light);line-height:1;}
.stat .label{font-size:13px;color:var(--text-3);margin-top:8px;}
/* 联系方式卡片 */
.contact-list{display:flex;flex-direction:column;gap:14px;}
.contact-item{
  display:flex;align-items:center;gap:14px;padding:16px 18px;
  background:var(--bg-2);border:1px solid var(--line);border-radius:12px;
  transition:all .25s;
}
.contact-item:hover{border-color:var(--blue);transform:translateX(6px);box-shadow:0 8px 22px rgba(59,130,246,.12);}
.contact-item .c-ico{
  width:40px;height:40px;border-radius:10px;background:rgba(59,130,246,.14);color:var(--blue-light);
  display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:all .25s;
}
.contact-item:hover .c-ico{background:var(--blue);color:#fff;}
.contact-item .c-label{font-size:12px;color:var(--text-3);letter-spacing:1px;}
.contact-item .c-val{font-size:15px;color:var(--text);font-weight:500;}
.qr-placeholder{
  width:100%;height:130px;border:1px dashed var(--line-2);border-radius:12px;
  display:flex;align-items:center;justify-content:center;color:var(--text-3);font-size:12px;
  text-align:center;line-height:1.5;margin-top:16px;
}

/* 响应式 */
@media(max-width:900px){
  .masthead{display:none;}
  .sec-head h2{font-size:30px;}
  .sec-head .desc{display:none;}
  .services{grid-template-columns:1fr;}
  .project-feature{grid-template-columns:1fr;}
  .project-feature .pf-cover{height:220px;}
  .projects-sub{grid-template-columns:1fr;}
  .project.more{grid-column:span 1;flex-direction:column;}
  .project.more .p-cover{width:100%;height:110px;}
  .project.more .p-body{flex-direction:column;align-items:flex-start;gap:0;}
  .project.more .p-body p{margin-bottom:0;}
  .about-contact{grid-template-columns:1fr;gap:40px;}
  .note{grid-template-columns:90px 1fr;gap:8px 16px;}
  .note .n-idx,.note .n-arrow{display:none;}
  .note .n-main{grid-column:1 / -1;}
  .stats{gap:32px;}
}

/* 0/1 字符背景，铺满 hero 且位于内容下方 */
#binary-bg{position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.55;}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:1.05fr 1fr;gap:52px;align-items:center;}
.hero .scroll-hint{z-index:1;}

/* 实时数字时钟（工作台状态） */
.hero-clock{
  display:inline-flex;align-items:center;gap:10px;margin-bottom:24px;
  font-family:"SF Mono",Consolas,monospace;font-size:13px;color:var(--text-3);
  padding:6px 14px;border:1px solid var(--line-2);border-radius:8px;
}
.hero-clock .clock-dot{width:8px;height:8px;border-radius:50%;background:#34d399;animation:clock-pulse 2s ease infinite;}
@keyframes clock-pulse{50%{opacity:.35;}}
.hero-clock .clock-time{color:var(--blue-light);font-weight:600;letter-spacing:1px;}

/* 终端窗口（永远深色，不随主题） */
.terminal{
  background:#0b1120;border:1px solid rgba(255,255,255,.12);border-radius:14px;
  overflow:hidden;box-shadow:0 24px 60px rgba(0,0,0,.45);
  font-family:"SF Mono",Consolas,Menlo,monospace;font-size:13px;line-height:1.9;text-align:left;
}
.term-bar{
  display:flex;align-items:center;gap:8px;padding:11px 16px;
  background:rgba(255,255,255,.05);border-bottom:1px solid rgba(255,255,255,.08);
}
.term-bar .dot{width:12px;height:12px;border-radius:50%;}
.term-bar .dot.r{background:#ff5f57;}
.term-bar .dot.y{background:#febc2e;}
.term-bar .dot.g{background:#28c840;}
.term-bar .term-title{margin-left:10px;color:#64748b;font-size:12px;letter-spacing:.5px;}
.term-body{padding:16px 18px;min-height:300px;max-height:380px;overflow-y:auto;color:#cbd5e1;cursor:text;}
.term-body .line{white-space:pre-wrap;word-break:break-all;min-height:1.9em;}
.term-body .t-green{color:#34d399;}
.term-body .t-blue{color:#60a5fa;}
.term-body .t-dim{color:#64748b;}
.term-body .t-amber{color:#fbbf24;}
.term-body .t-input{color:#e7ecf3;}
.term-body .t-prompt{color:#34d399;}
.term-inputline{display:flex;align-items:center;}
.term-input{
  background:transparent;border:none;outline:none;color:#e7ecf3;
  font-family:inherit;font-size:inherit;flex:1;caret-color:#60a5fa;min-width:0;
}

/* Hero 文字特效 */
.hero h1 .line{display:inline-block;}
.hero h1 .accent{
  background:linear-gradient(90deg,var(--blue-light),#fff,var(--blue-light));
  background-size:200% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  animation:shimmer 3.5s linear infinite;
}
@keyframes shimmer{0%{background-position:0% 50%;}100%{background-position:200% 50%;}}

/* 服务流程 */
.process{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;}
.process-step{
  background:var(--bg-2);border:1px solid var(--line);border-radius:14px;
  padding:22px 18px;transition:transform .3s,border-color .3s;
}
.process-step:hover{transform:translateY(-4px);border-color:var(--blue);}
.process-step .ps-num{display:block;font-size:13px;color:var(--blue-light);font-family:"SF Mono",Consolas,monospace;margin-bottom:12px;}
.process-step h3{font-size:16px;font-weight:600;margin-bottom:8px;}
.process-step p{font-size:13px;color:var(--text-2);line-height:1.6;}

/* 技术栈 */
.tech-groups{display:flex;flex-direction:column;gap:22px;}
.tech-group{display:flex;align-items:flex-start;gap:24px;}
.tech-group .tg-cat{flex-shrink:0;width:70px;font-size:14px;font-weight:600;color:var(--blue-light);padding-top:6px;letter-spacing:1px;}
.tech-group .tg-items{display:flex;flex-wrap:wrap;gap:10px;}
.tech-group .tg-item{
  font-size:14px;padding:8px 18px;border-radius:8px;
  background:var(--bg-2);border:1px solid var(--line);color:var(--text-2);transition:all .25s;
}
.tech-group .tg-item:hover{border-color:var(--blue);color:var(--blue-light);transform:translateY(-2px);}

/* 服务流程 + 技术栈 响应式 */
@media(max-width:900px){
  .process{grid-template-columns:1fr;}
  .tech-group{flex-direction:column;gap:12px;}
}

/* 数字工作台响应式（终端堆叠到文字下方） */
@media(max-width:900px){
  .hero-grid{grid-template-columns:1fr;gap:36px;}
  .term-body{min-height:220px;max-height:260px;}
}
