/* ============================================================
   老虎工作室 — 全站公共样式 (Neo-Brutalism)
   纸感米白 × 墨黑 × 酸黄 · 2px 粗框 · 硬阴影 · 终端元素
   ============================================================ */
:root{
  --paper:#f5f1e8;
  --card:#fffdf6;
  --ink:#151515;
  --acid:#e9f14a;
  --acid-deep:#d3dc2f;
  --green:#1fa05a;
  --muted:#6f6f66;
  --line:#151515;
  --mono:"JetBrains Mono","SF Mono",ui-monospace,Menlo,monospace;
  --display:"Archivo Black",-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
  --body:-apple-system,BlinkMacSystemFont,"PingFang SC","Microsoft YaHei","Helvetica Neue",Arial,sans-serif;
  --max-w:1120px;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family:var(--body);
  background:var(--paper);
  color:var(--ink);
  line-height:1.65;
  overflow-x:hidden;
}
::selection{background:var(--acid);color:var(--ink);}
a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;}
img{max-width:100%;display:block;}

/* 背景 */
.bg-grid{
  position:fixed;inset:0;z-index:-1;pointer-events:none;
  background-image:
    linear-gradient(rgba(21,21,21,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(21,21,21,.05) 1px,transparent 1px);
  background-size:44px 44px;
}

/* ================= 顶栏 ================= */
#topbar{
  position:fixed;top:0;left:0;right:0;z-index:500;
  background:var(--paper);
  border-bottom:2px solid var(--line);
}
#topbar .inner{
  max-width:var(--max-w);margin:0 auto;
  display:flex;align-items:center;gap:18px;
  padding:12px 22px;
}
.logo{
  font-family:var(--mono);font-weight:700;font-size:16px;
  display:flex;align-items:center;gap:8px;white-space:nowrap;
}
.logo .prompt{color:var(--green);}
.logo .path{color:var(--muted);}
.logo .cur{
  display:inline-block;width:9px;height:17px;background:var(--ink);
  animation:blink 1.1s steps(1) infinite;
}
@keyframes blink{50%{opacity:0;}}
.nav-links{display:flex;align-items:center;gap:4px;margin-left:auto;list-style:none;}
.nav-links a{
  font-family:var(--mono);font-size:13.5px;font-weight:500;
  padding:8px 12px;border:2px solid transparent;color:var(--ink);
  transition:background .12s,border-color .12s;
}
.nav-links a:hover{background:var(--acid);border-color:var(--line);}
.nav-links a.active{background:var(--acid);border-color:var(--line);}
.status-pill{
  display:flex;align-items:center;gap:8px;
  font-family:var(--mono);font-size:12.5px;font-weight:700;
  border:2px solid var(--line);padding:7px 13px;margin-left:8px;
  background:var(--card);white-space:nowrap;
}
.status-pill .dot{
  width:9px;height:9px;border-radius:50%;background:var(--green);
  animation:pulse 2s ease-in-out infinite;
}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(31,160,90,.5);}50%{box-shadow:0 0 0 5px rgba(31,160,90,0);}}

/* 语言切换器（顶栏右上角，始终可见） */
.lang-switch{
  display:flex;align-items:center;gap:6px;
  font-family:var(--mono);font-size:12.5px;font-weight:700;
  border:2px solid var(--line);padding:7px 12px;margin-left:8px;
  background:var(--card);white-space:nowrap;
}
.lang-link{color:var(--muted);padding:2px 4px;transition:color .12s,background .12s;}
.lang-link:hover{color:var(--ink);background:var(--acid);}
.lang-link.active{color:var(--ink);background:var(--acid);}
.lang-sep{color:var(--muted);opacity:.5;}
#menu-btn{display:none;}

/* ================= 区块通用 ================= */
section{padding:96px 22px;}
section .inner{max-width:var(--max-w);margin:0 auto;}
.sec-head{margin-bottom:52px;display:flex;align-items:flex-end;gap:22px;flex-wrap:wrap;}
.sec-comment{
  font-family:var(--mono);font-size:14px;color:var(--muted);
  border:2px solid var(--line);background:var(--card);
  padding:7px 14px;box-shadow:3px 3px 0 var(--line);
}
.sec-title{
  font-family:var(--display);font-size:clamp(30px,4.5vw,48px);
  line-height:1.05;text-transform:uppercase;letter-spacing:-.5px;
}
.sec-desc{color:#3a3a36;font-size:16px;max-width:520px;margin-left:auto;}

/* 按钮 */
.btn{
  display:inline-flex;align-items:center;gap:10px;
  font-family:var(--mono);font-size:15px;font-weight:700;
  padding:15px 26px;border:2px solid var(--line);
  background:var(--card);color:var(--ink);cursor:pointer;
  box-shadow:4px 4px 0 var(--line);
  transition:transform .1s,box-shadow .1s,background .12s;
}
.btn:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--line);}
.btn:active{transform:translate(2px,2px);box-shadow:1px 1px 0 var(--line);}
.btn-primary{background:var(--acid);}
.btn-primary:hover{background:var(--acid-deep);}
.btn svg{width:16px;height:16px;}
.btn .kbd{margin-left:2px;font-size:12px;border:1.5px solid var(--line);padding:1px 6px;background:#fff;opacity:.85;}

/* 跑马灯 */
.marquee{
  margin-top:64px;border-top:2px solid var(--line);border-bottom:2px solid var(--line);
  background:var(--acid);overflow:hidden;white-space:nowrap;
}
.marquee-track{
  display:inline-flex;align-items:center;
  font-family:var(--mono);font-weight:700;font-size:14.5px;letter-spacing:1px;
  padding:11px 0;animation:marquee 22s linear infinite;
}
.marquee:hover .marquee-track{animation-play-state:paused;}
.marquee-track span{padding-right:26px;}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}

/* 浏览引导条 */
.guide-bar{margin-top:22px;}
.guide-terminal{
  border:2px solid var(--line);background:var(--card);
  box-shadow:5px 5px 0 var(--line);
  font-family:var(--mono);font-size:13.5px;
  padding:16px 20px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.guide-terminal .g-prompt{color:var(--green);font-weight:700;}
.guide-terminal .g-step a{border-bottom:2px solid var(--ink);font-weight:700;}
.guide-terminal .g-step a:hover{background:var(--acid);}
.guide-terminal .g-arrow{color:var(--muted);}
.guide-terminal .g-note{color:var(--muted);}

/* ================= 项目/案例卡片 ================= */
.projects-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;}
.project-card{
  border:2px solid var(--line);background:var(--card);
  box-shadow:6px 6px 0 var(--line);
  display:flex;flex-direction:column;
  transition:transform .18s,box-shadow .18s;
}
.project-card:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 var(--line);}
.pc-head{
  display:flex;align-items:center;justify-content:space-between;
  border-bottom:2px solid var(--line);padding:12px 18px;
  font-family:var(--mono);font-size:12.5px;font-weight:700;
}
.pc-head .idx{color:var(--muted);}
.pc-head .tag{
  background:var(--ink);color:var(--paper);padding:4px 10px;font-size:11px;
  letter-spacing:1px;
}
.pc-shot{
  position:relative;border-bottom:2px solid var(--line);overflow:hidden;
  aspect-ratio:16/9;cursor:pointer;
  background:
    linear-gradient(rgba(21,21,21,.07) 1px,transparent 1px),
    linear-gradient(90deg,rgba(21,21,21,.07) 1px,transparent 1px),
    #e9e5da;
  background-size:26px 26px,26px 26px,auto;
}
.pc-shot img{
  width:100%;height:100%;object-fit:cover;object-position:top;display:block;
  transition:transform .4s;
}
.pc-shot:hover img{transform:scale(1.045);}
.pc-shot .open-hint{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  background:rgba(245,241,232,.82);
  font-family:var(--mono);font-weight:700;font-size:14px;
  opacity:0;transition:opacity .18s;
}
.pc-shot:hover .open-hint{opacity:1;}
.open-hint span{
  border:2px solid var(--line);background:var(--acid);
  padding:10px 18px;box-shadow:3px 3px 0 var(--line);
}
.pc-body{padding:24px 22px 26px;display:flex;flex-direction:column;flex:1;}
.pc-title{
  font-family:var(--display);font-size:22px;text-transform:uppercase;
  display:flex;align-items:center;gap:10px;letter-spacing:.3px;
}
.pc-title .arrow{
  font-family:var(--mono);font-size:18px;opacity:0;transform:translateX(-6px);
  transition:opacity .2s,transform .2s;
}
.project-card:hover .pc-title .arrow{opacity:1;transform:translateX(0);}
.pc-desc{color:#4a4a44;font-size:14.5px;margin-top:12px;flex:1;}
.pc-desc b{background:var(--acid);font-weight:600;padding:0 4px;}
.pc-tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:20px;}
.tag{
  font-family:var(--mono);font-size:12px;font-weight:500;
  border:1.5px solid var(--line);background:var(--paper);
  padding:4px 11px;
}
.pc-meta{
  display:flex;gap:22px;margin-top:18px;padding-top:16px;
  border-top:2px solid var(--line);
  font-family:var(--mono);font-size:12.5px;color:var(--muted);
}
.pc-meta b{color:var(--ink);}

/* ================= 服务列表 ================= */
.svc-list{border:2px solid var(--line);box-shadow:6px 6px 0 var(--line);}
.svc-row{
  display:grid;grid-template-columns:70px 1fr auto;gap:20px;align-items:center;
  padding:26px 26px;background:var(--card);
  border-bottom:2px solid var(--line);
  transition:background .15s;
}
.svc-row:last-child{border-bottom:none;}
.svc-row:hover{background:var(--acid);}
.svc-idx{font-family:var(--mono);font-weight:700;font-size:15px;color:var(--muted);}
.svc-row:hover .svc-idx{color:var(--ink);}
.svc-name{font-family:var(--mono);font-weight:700;font-size:17px;margin-bottom:6px;}
.svc-desc{font-size:14.5px;color:#4a4a44;}
.svc-row:hover .svc-desc{color:var(--ink);}
.svc-cmd{
  font-family:var(--mono);font-size:12px;font-weight:700;
  border:2px solid var(--line);padding:8px 13px;background:var(--paper);
  white-space:nowrap;
}

/* ================= 流程 ================= */
.steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:26px;}
.step{border:2px solid var(--line);background:var(--card);box-shadow:5px 5px 0 var(--line);padding:26px 22px;position:relative;}
.step-num{font-family:var(--display);font-size:38px;line-height:1;display:inline-block;margin-bottom:16px;}
.step h3{font-family:var(--mono);font-size:16px;font-weight:700;margin-bottom:9px;}
.step p{font-size:14px;color:#4a4a44;}
.step .stamp{
  position:absolute;top:-13px;right:14px;
  font-family:var(--mono);font-size:10.5px;font-weight:700;
  border:2px solid var(--line);background:var(--acid);
  padding:2px 8px;transform:rotate(3deg);
}

/* ================= 联系 ================= */
.contact-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:34px;align-items:stretch;}
.contact-main{
  border:2px solid var(--line);background:var(--acid);
  box-shadow:7px 7px 0 var(--line);
  padding:44px 40px;display:flex;flex-direction:column;justify-content:center;
  transform:rotate(-.4deg);
}
.contact-main h3{font-family:var(--display);font-size:clamp(28px,3.6vw,40px);text-transform:uppercase;line-height:1.1;margin-bottom:16px;}
.contact-main p{font-size:15.5px;color:#3a3a36;margin-bottom:30px;max-width:440px;}
.contact-main .big-mail{
  display:inline-flex;align-items:center;gap:12px;
  font-family:var(--mono);font-weight:700;font-size:clamp(17px,2.4vw,22px);
  border:2px solid var(--line);background:var(--card);
  padding:16px 22px;box-shadow:5px 5px 0 var(--line);
  transition:transform .15s,box-shadow .15s;width:fit-content;
}
.big-mail:hover{transform:translate(-2px,-2px);box-shadow:7px 7px 0 var(--line);}
.big-mail .at{color:var(--green);}
.contact-side{display:flex;flex-direction:column;gap:22px;}
.contact-side .box{
  border:2px solid var(--line);background:var(--card);
  box-shadow:5px 5px 0 var(--line);padding:24px 26px;
}
.box-label{
  font-family:var(--mono);font-size:12px;font-weight:700;color:var(--muted);
  margin-bottom:12px;display:flex;align-items:center;gap:8px;
}
.box-label::before{content:"";width:20px;height:2px;background:var(--ink);}
.box-val{
  font-family:var(--mono);font-weight:700;font-size:17px;
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.box-val .copy-hint{font-size:12px;color:var(--muted);font-weight:500;margin-left:auto;}
.copy-btn{
  font-family:var(--mono);font-size:12px;font-weight:700;
  border:2px solid var(--line);background:var(--paper);padding:5px 10px;
  transition:background .12s;
}
.copy-btn:hover{background:var(--acid);}
.note{
  font-family:var(--mono);font-size:12.5px;color:var(--muted);
  border-left:4px solid var(--green);padding-left:12px;margin-top:18px;
}

/* 双入口联系卡片 */
.contact-ways-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px;}
.contact-way-card{
  border:2px solid var(--line);background:var(--card);
  box-shadow:6px 6px 0 var(--line);padding:36px 32px;
  display:flex;flex-direction:column;gap:14px;
  transition:transform .18s,box-shadow .18s;
}
.contact-way-card:hover{transform:translate(-2px,-2px);box-shadow:8px 8px 0 var(--line);}
.contact-way-card .cwc-ic{
  width:52px;height:52px;border:2px solid var(--line);background:var(--acid);
  display:flex;align-items:center;justify-content:center;
  font-size:24px;box-shadow:3px 3px 0 var(--line);
}
.contact-way-card h3{font-family:var(--mono);font-size:18px;font-weight:700;}
.contact-way-card p{font-size:14px;color:#4a4a44;flex:1;}

/* ================= 案例详情页 ================= */
.page-hero{padding:140px 22px 60px;border-bottom:2px solid var(--line);}
.page-hero .inner{max-width:var(--max-w);margin:0 auto;}
.ph-eyebrow{
  font-family:var(--mono);font-size:14px;color:var(--muted);
  margin-bottom:18px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;
}
.ph-eyebrow::before{content:"";width:34px;height:2px;background:var(--ink);}
.page-hero h1{
  font-family:var(--display);font-size:clamp(34px,6vw,60px);
  line-height:1.06;text-transform:uppercase;margin-bottom:18px;
}
.page-hero .ph-sub{font-size:16.5px;color:#3a3a36;max-width:640px;}
.ph-stats{display:flex;gap:14px;margin-top:30px;flex-wrap:wrap;}
.ph-stat{
  border:2px solid var(--line);background:var(--card);
  box-shadow:4px 4px 0 var(--line);padding:14px 20px;
  font-family:var(--mono);
}
.ph-stat b{display:block;font-size:22px;line-height:1.1;}
.ph-stat span{font-size:11.5px;color:var(--muted);letter-spacing:1px;}

.case-section{padding:70px 22px;border-bottom:2px solid var(--line);}
.case-section .inner{max-width:var(--max-w);margin:0 auto;}
.cs-tag{
  font-family:var(--mono);font-size:13px;font-weight:700;color:var(--muted);
  letter-spacing:2px;margin-bottom:12px;display:flex;align-items:center;gap:10px;
}
.cs-tag::before{content:"";width:26px;height:2px;background:var(--ink);}
.cs-title{font-family:var(--display);font-size:clamp(24px,3.5vw,36px);text-transform:uppercase;margin-bottom:20px;letter-spacing:-.3px;}
.cs-body{font-size:15.5px;color:#3a3a36;max-width:760px;}
.cs-body p{margin-bottom:14px;}
.cs-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px;margin-top:10px;}
.cs-card{border:2px solid var(--line);background:var(--card);box-shadow:4px 4px 0 var(--line);padding:22px 20px;}
.cs-card .ic{
  width:44px;height:44px;border:2px solid var(--line);background:var(--acid);
  display:flex;align-items:center;justify-content:center;margin-bottom:14px;
  font-family:var(--mono);font-weight:700;font-size:16px;
}
.cs-card h4{font-family:var(--mono);font-size:15px;font-weight:700;margin-bottom:8px;}
.cs-card p{font-size:13.5px;color:#4a4a44;}

/* 技术点 */
.tech-list{border:2px solid var(--line);box-shadow:5px 5px 0 var(--line);}
.tech-row{
  display:grid;grid-template-columns:170px 1fr;gap:20px;
  padding:20px 24px;background:var(--card);
  border-bottom:2px solid var(--line);
}
.tech-row:last-child{border-bottom:none;}
.tech-row .tk{
  font-family:var(--mono);font-weight:700;font-size:13.5px;
  border:2px solid var(--line);background:var(--paper);
  padding:6px 12px;text-align:center;align-self:center;
}
.tech-row .td{font-size:14px;color:#4a4a44;}

/* 客户成功案例 */
.testimonial{
  border:2px solid var(--line);background:var(--acid);
  box-shadow:6px 6px 0 var(--line);padding:30px 30px;margin-top:26px;
}
.testimonial .quote{font-size:17px;line-height:1.7;margin-bottom:14px;}
.testimonial .who{font-family:var(--mono);font-size:13px;font-weight:700;}
.result-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:20px;margin-top:26px;}
.result-box{
  border:2px solid var(--line);background:var(--card);
  box-shadow:4px 4px 0 var(--line);padding:22px;text-align:center;
}
.result-box b{
  display:block;font-family:var(--display);font-size:30px;line-height:1.1;margin-bottom:6px;
}
.result-box span{font-size:12.5px;color:var(--muted);letter-spacing:.5px;}

/* 大图 */
.case-banner{
  border:2px solid var(--line);box-shadow:7px 7px 0 var(--line);
  overflow:hidden;margin-bottom:40px;
}
.case-banner img{width:100%;aspect-ratio:21/9;object-fit:cover;}

/* 关于页 */
.about-layout{display:grid;grid-template-columns:1.1fr 1fr;gap:44px;align-items:start;}
.about-panel{border:2px solid var(--line);background:var(--card);box-shadow:6px 6px 0 var(--line);padding:32px 30px;}
.about-panel h3{font-family:var(--display);font-size:24px;text-transform:uppercase;margin-bottom:16px;}
.about-panel p{font-size:15px;color:#3a3a36;margin-bottom:14px;}
.skill-bars{margin-top:8px;}
.skill-bar{margin-bottom:16px;}
.skill-bar .lb{display:flex;justify-content:space-between;font-family:var(--mono);font-size:13px;font-weight:700;margin-bottom:6px;}
.skill-bar .bar{height:16px;border:2px solid var(--line);background:var(--paper);}
.skill-bar .fill{height:100%;background:var(--acid);border-right:2px solid var(--line);}

/* ================= 页脚 ================= */
footer{border-top:2px solid var(--line);padding:26px 22px;}
footer .inner{
  max-width:var(--max-w);margin:0 auto;
  display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  font-family:var(--mono);font-size:13px;color:var(--muted);
}
footer .up{
  font-family:var(--mono);font-weight:700;font-size:13px;color:var(--ink);
  border:2px solid var(--line);background:var(--card);padding:8px 14px;
  box-shadow:3px 3px 0 var(--line);transition:transform .12s,box-shadow .12s;
}
footer .up:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--line);}

/* ================= 网页聊天 ================= */
.chat-fab{
  position:fixed;right:22px;bottom:22px;z-index:900;
  width:60px;height:60px;border-radius:50%;
  border:2px solid var(--line);background:var(--acid);
  color:var(--ink);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:4px 4px 0 var(--line);
  transition:transform .12s,box-shadow .12s,background .12s;
}
.chat-fab:hover{transform:translate(-2px,-2px);box-shadow:6px 6px 0 var(--line);}
.chat-fab:active{transform:translate(1px,1px);box-shadow:2px 2px 0 var(--line);}
.chat-fab svg{width:28px;height:28px;}
.chat-fab .badge{
  position:absolute;top:-4px;right:-4px;
  min-width:20px;height:20px;border-radius:50%;
  background:var(--ink);color:var(--acid);
  font-family:var(--mono);font-size:11px;font-weight:700;
  display:none;align-items:center;justify-content:center;padding:0 4px;
  border:2px solid var(--paper);
}
.chat-fab .badge.show{display:flex;}
.chat-panel{
  position:fixed;right:22px;bottom:94px;z-index:900;
  width:340px;max-width:calc(100vw - 36px);
  height:480px;max-height:calc(100dvh - 120px);
  border:2px solid var(--line);background:var(--card);
  box-shadow:6px 6px 0 var(--line);
  display:flex;flex-direction:column;
  transform:translateY(16px);opacity:0;pointer-events:none;
  transition:transform .2s,opacity .2s;
}
.chat-panel.open{transform:translateY(0);opacity:1;pointer-events:auto;}
.chat-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:2px solid var(--line);background:var(--paper);}
.chat-head .avatar{
  width:34px;height:34px;border-radius:50%;
  background:var(--acid);border:2px solid var(--line);
  display:flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-weight:700;font-size:15px;color:var(--ink);
}
.chat-head .who{flex:1;min-width:0;}
.chat-head .who b{font-family:var(--mono);font-size:13.5px;display:block;line-height:1.2;}
.chat-head .who span{font-size:11.5px;color:var(--muted);display:flex;align-items:center;gap:5px;}
.chat-head .who span .dot{width:7px;height:7px;border-radius:50%;background:var(--green);display:inline-block;}
.chat-close{width:30px;height:30px;border:2px solid var(--line);background:var(--card);display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0;}
.chat-close svg{width:15px;height:15px;}
.chat-msgs{
  flex:1;overflow-y:auto;padding:16px 14px;
  background:
    linear-gradient(rgba(21,21,21,.03) 1px,transparent 1px),
    linear-gradient(90deg,rgba(21,21,21,.03) 1px,transparent 1px),
    #f2eee6;
  background-size:24px 24px;
}
.msg{display:flex;margin-bottom:12px;align-items:flex-end;}
.msg.guest{justify-content:flex-end;}
.msg.owner{justify-content:flex-start;}
.msg .bubble{max-width:82%;padding:9px 13px;font-size:14px;line-height:1.5;border:2px solid var(--line);word-break:break-word;white-space:pre-wrap;}
.msg.guest .bubble{background:var(--ink);color:var(--card);}
.msg.owner .bubble{background:var(--card);box-shadow:3px 3px 0 var(--line);}
.msg.system{justify-content:center;}
.msg.system .bubble{background:var(--paper);font-size:11.5px;color:var(--muted);border-color:var(--line);padding:5px 11px;}
.msg .time{font-family:var(--mono);font-size:10px;color:var(--muted);margin:0 5px 3px;}
.chat-input{display:flex;gap:10px;padding:12px;border-top:2px solid var(--line);background:var(--paper);}
.chat-input textarea{
  flex:1;resize:none;border:2px solid var(--line);background:var(--card);
  font-size:14px;padding:9px 11px;min-height:42px;max-height:100px;
  font-family:var(--body);color:var(--ink);
}
.chat-input textarea:focus{outline:none;box-shadow:0 0 0 2px var(--acid);}
.chat-send{
  align-self:flex-end;width:46px;height:46px;
  border:2px solid var(--line);background:var(--acid);
  color:var(--ink);cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  box-shadow:3px 3px 0 var(--line);transition:transform .1s,box-shadow .1s;
}
.chat-send:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--line);}
.chat-send:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;}
.chat-send svg{width:20px;height:20px;}

/* ============ 聊天面板：双模式（聊天 / 表单） ============ */
.chat-tabs{display:flex;gap:8px;padding:10px 12px;border-bottom:2px solid var(--line);background:var(--paper);}
.chat-tab{
  flex:1;display:flex;align-items:center;justify-content:center;gap:7px;
  font-family:var(--mono);font-size:12.5px;font-weight:700;
  border:2px solid var(--line);background:var(--card);color:var(--ink);
  padding:9px 8px;cursor:pointer;transition:background .12s,color .12s;
}
.chat-tab.active{background:var(--acid);}
.chat-tab:hover{background:var(--acid);}
.chat-tab .tic{font-size:15px;}
.chat-view{display:none;flex-direction:column;flex:1;min-height:0;}
.chat-view.active{display:flex;}
/* 表单模式 */
.lead-form{flex:1;overflow-y:auto;padding:16px 14px;background:var(--paper);}
.lead-form .lf-title{font-family:var(--mono);font-weight:700;font-size:13px;margin-bottom:4px;}
.lead-form .lf-sub{font-size:11.5px;color:var(--muted);margin-bottom:14px;}
.lead-form label{display:block;font-family:var(--mono);font-size:11.5px;font-weight:700;color:var(--muted);margin-bottom:5px;}
.lead-form input,.lead-form select,.lead-form textarea{
  width:100%;border:2px solid var(--line);background:var(--card);
  font-family:var(--body);font-size:14px;padding:9px 11px;margin-bottom:12px;color:var(--ink);
}
.lead-form input:focus,.lead-form select:focus,.lead-form textarea:focus{outline:none;box-shadow:0 0 0 2px var(--acid);}
.lead-form textarea{resize:none;min-height:74px;}
.lead-form .lf-err{display:none;font-size:12px;color:#b03a3a;font-weight:700;margin-bottom:10px;}
.lead-form .lf-err.show{display:block;}
.lf-send{
  width:100%;border:2px solid var(--line);background:var(--acid);
  font-family:var(--mono);font-weight:700;font-size:14px;color:var(--ink);
  padding:13px;cursor:pointer;box-shadow:3px 3px 0 var(--line);
  transition:transform .1s,box-shadow .1s;
}
.lf-send:hover{transform:translate(-1px,-1px);box-shadow:4px 4px 0 var(--line);}
.lf-send:disabled{opacity:.5;cursor:not-allowed;box-shadow:none;}
.lf-ok{display:none;text-align:center;padding:30px 10px;}
.lf-ok.show{display:block;}
.lf-ok .ok-ic{
  width:52px;height:52px;margin:0 auto 14px;border:2px solid var(--line);background:var(--green);
  color:#fff;display:flex;align-items:center;justify-content:center;font-size:26px;
  box-shadow:4px 4px 0 var(--line);
}
.lf-ok b{font-family:var(--mono);font-size:15px;display:block;margin-bottom:8px;}
.lf-ok p{font-size:13px;color:var(--muted);}

/* ================= 滚动出现 ================= */
.reveal{opacity:0;transform:translateY(26px);transition:opacity .5s,transform .5s;}
.reveal.in{opacity:1;transform:translateY(0);}
.reveal.d1{transition-delay:.07s;}
.reveal.d2{transition-delay:.14s;}
.reveal.d3{transition-delay:.21s;}

/* ================= 响应式 ================= */
@media (max-width:900px){
  .projects-grid{grid-template-columns:1fr;}
  .steps{grid-template-columns:1fr 1fr;}
  .contact-grid{grid-template-columns:1fr;}
  .about-layout{grid-template-columns:1fr;}
  .tech-row{grid-template-columns:1fr;gap:10px;}
  .tech-row .tk{width:fit-content;}
}
@media (max-width:640px){
  section{padding:76px 18px;}
  .nav-links{
    position:fixed;top:0;right:0;bottom:0;width:min(290px,82vw);
    background:var(--paper);border-left:2px solid var(--line);
    flex-direction:column;align-items:flex-start;justify-content:flex-start;
    padding:90px 22px 30px;gap:4px;
    transform:translateX(100%);transition:transform .28s;
    z-index:600;
  }
  .nav-links.open{transform:translateX(0);}
  .nav-links a{width:100%;font-size:16px;padding:13px 10px;}
  .nav-links .status-pill{margin:14px 0 0;}
  #menu-btn{
    display:flex;margin-left:auto;width:42px;height:42px;
    border:2px solid var(--line);background:var(--card);
    align-items:center;justify-content:center;
  }
  #menu-btn svg{width:20px;height:20px;}
  .steps{grid-template-columns:1fr;}
  .svc-row{grid-template-columns:1fr;gap:10px;}
  .svc-cmd{width:fit-content;}
  .contact-main{padding:34px 24px;}
  .case-banner img{aspect-ratio:16/9;}
  .chat-fab{right:16px;bottom:16px;}
  .chat-panel{right:16px;bottom:78px;left:16px;width:auto;height:70dvh;}
}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important;}
  .reveal{opacity:1;transform:none;}
}
