/* ── DARK MODE (default) ── */
:root{
  --bg:#0e0e0e;--bg2:#161616;--bg3:#1f1f1f;
  --orange:#f56e0f;--orange-dim:rgba(245,110,15,0.12);--orange-mid:rgba(245,110,15,0.35);
  --white:#f0ede8;--gray:#888;--gray2:#555;--border:rgba(255,255,255,0.07);
  --nav-bg:rgba(14,14,14,0.9);--text-body:#aaa;--noise-op:0.5;
  --hero-photo-frame-width:clamp(500px, 46vw, 720px);
  --hero-photo-min-width:clamp(540px, 48vw, 760px);
  --hero-photo-scale:1.22;
  --hero-image-opacity:0.78;--hero-image-filter:saturate(0.84) contrast(1.08) brightness(0.78);
  --hero-overlay-color:linear-gradient(180deg, rgba(14,14,14,0.18) 0%, rgba(14,14,14,0.62) 100%);
  --hero-overlay-opacity:0.68;
  --nav-height:81px;
  --font-body:"DM Sans","Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",Arial,sans-serif;
  --font-display:"Bebas Neue","Arial Narrow",Impact,sans-serif;
  --font-mono:"Space Mono","SFMono-Regular",Menlo,Consolas,monospace;
  --font-zh:"Noto Sans SC","PingFang SC","Hiragino Sans GB","Microsoft YaHei",sans-serif;
  color-scheme:dark;
}
/* ── LIGHT MODE (system auto) ── */
@media(prefers-color-scheme:light){
  :root{
    --bg:#f5f2eb;--bg2:#ffffff;--bg3:#e8e4da;
    --orange:#d95700;--orange-dim:rgba(217,87,0,0.1);--orange-mid:rgba(217,87,0,0.28);
    --white:#1a1714;--gray:#5a5550;--gray2:#aaa;--border:rgba(0,0,0,0.09);
    --nav-bg:rgba(245,242,235,0.92);--text-body:#5a5550;--noise-op:0.18;
    --hero-photo-frame-width:clamp(500px, 46vw, 720px);
    --hero-photo-min-width:clamp(540px, 48vw, 760px);
    --hero-photo-scale:1.22;
    --hero-image-opacity:0.96;--hero-image-filter:saturate(1.02) contrast(1) brightness(1.04);
    --hero-overlay-color:linear-gradient(180deg, rgba(245,242,235,0.01) 0%, rgba(245,242,235,0.1) 100%);
    --hero-overlay-opacity:0.08;
    color-scheme:light;
  }
}
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--bg);color:var(--white);font-family:var(--font-body);font-weight:300;line-height:1.6;overflow-x:hidden;min-height:100vh;transition:background-color 0.4s ease,color 0.4s ease}
body.is-booting,body.is-booting *{transition:none!important;animation:none!important}
body.no-scroll{overflow:hidden}
body::before{content:none}

/* LANG */
.zh{display:none}.en{display:inline}.zh-block{display:none}.en-block{display:block}
body.lang-zh .zh{display:inline}body.lang-zh .en{display:none}
body.lang-zh .zh-block{display:block}body.lang-zh .en-block{display:none}
body.lang-zh,.zh,.zh-block{font-family:var(--font-zh);font-feature-settings:"kern";text-rendering:optimizeLegibility}
body.lang-zh .hero-name,body.lang-zh .section-title,body.lang-zh .bl-title,body.lang-zh .bl-hero-title,body.lang-zh .blog-cat-card .blog-cat-title,body.lang-zh .article-title,body.lang-zh .article-body h2,body.lang-zh .nf-title,body.lang-zh .nf-full-name,body.lang-zh .contact-headline,body.lang-zh .case-library-intro h2,body.lang-zh .case-library-card strong,body.lang-zh .product-case-hero h2,body.lang-zh .product-case-content h3,body.lang-zh .milu-case-hero-copy h2,body.lang-zh .milu-case-panel h3,body.lang-zh .footer-name{font-family:var(--font-zh);font-weight:500;letter-spacing:0.02em}
body.lang-zh .stat-num,body.lang-zh .bl-count-num,body.lang-zh .bl-row-num,body.lang-zh .bl-cat-count,body.lang-zh .nf-bg-code,body.lang-zh .nf-stat-num,body.lang-zh .case-summary-grid strong,body.lang-zh .milu-case-snapshot strong,body.lang-zh .milu-process-flow div>span:first-child,body.lang-zh .milu-case-matrix strong{font-family:var(--font-display);font-weight:400;letter-spacing:0.03em}
.lang-btn{display:flex;align-items:center;border:1px solid var(--border);overflow:hidden;cursor:pointer;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.08em;background:none}
.lang-opt{padding:6px 12px;color:var(--gray);transition:all 0.2s;user-select:none}
.lang-opt.active{background:var(--orange);color:#000;font-weight:700}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:200;display:flex;align-items:center;justify-content:space-between;padding:18px 48px;background:var(--nav-bg);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border-bottom:1px solid var(--border);transition:border-color 0.3s}
.nav-logo{display:inline-flex;align-items:center;width:86px;height:44px;text-decoration:none;cursor:pointer}
.nav-logo-mark{display:block;width:74px;height:auto;filter:drop-shadow(0 0 8px rgba(245,110,15,0.18));pointer-events:none;user-select:none}
.nav-right{display:flex;align-items:center;gap:28px}
.nav-links{display:flex;gap:28px;list-style:none;align-items:center}
.dev-only{display:none}
body.dev-mode .dev-only{display:list-item}
.nav-links a{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:0.1em;text-transform:uppercase;color:var(--gray);text-decoration:none;transition:color 0.2s;cursor:pointer}
.nav-links a:hover,.nav-links a.active{color:var(--white)}
.nav-links a.active{color:var(--orange)}
.nav-cta{background:var(--orange)!important;color:#000!important;padding:7px 16px!important;font-weight:700!important}
.nav-cta:hover{opacity:0.85}
body.lang-zh .nav-links a{font-family:var(--font-zh);font-size:13px;letter-spacing:0.04em;font-weight:400;text-transform:none}
body.lang-zh .nav-cta{padding:7px 18px!important}

/* PAGES */
.page{display:none;animation:pageIn 0.4s ease both}
.page.active{display:block}
@keyframes pageIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

/* HERO */
.hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;padding-top:80px;overflow:hidden}
.hero-left{display:flex;flex-direction:column;justify-content:center;padding:80px 48px;z-index:2}
.hero-badge{display:inline-flex;align-items:center;gap:8px;background:var(--orange-dim);border:1px solid var(--orange-mid);border-radius:2px;padding:6px 14px;font-family:"Space Mono",monospace;font-size:12px;color:var(--orange);letter-spacing:0.12em;text-transform:uppercase;margin-bottom:32px;width:fit-content;animation:fadeUp 0.8s ease both}
.hero-badge::before{content:"";width:6px;height:6px;background:var(--orange);border-radius:50%;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.3}}
.hero-name{font-family:"Bebas Neue",sans-serif;font-size:clamp(72px,9vw,130px);line-height:0.92;letter-spacing:0.02em;animation:fadeUp 0.8s 0.1s ease both}
.hero-name span{color:var(--orange)}
/* 让 SIRUI 及欧阳思瑞在暗夜模式下为白色 */
.hero-name .hero-sirui{color:var(--white)!important}
@media(prefers-color-scheme:light){
  .hero-name .hero-sirui{color:var(--white)!important}
}
body.lang-zh .hero-badge{font-size:12px;padding:8px 18px;letter-spacing:0.2em}
body.lang-zh .hero-badge::before{width:6px;height:6px}
body.lang-zh .hero-name{font-size:clamp(80px,9vw,132px);line-height:1.06;letter-spacing:0.02em}
.hero-title{margin-top:24px;font-size:15px;color:var(--gray);font-weight:300;animation:fadeUp 0.8s 0.2s ease both;max-width:420px;line-height:1.6}
.hero-title strong{color:var(--white);font-weight:500}
.hero-actions{display:flex;gap:14px;margin-top:40px;animation:fadeUp 0.8s 0.3s ease both;flex-wrap:wrap}
.btn{display:inline-flex;align-items:center;gap:8px;padding:13px 26px;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:0.08em;text-transform:uppercase;cursor:pointer;text-decoration:none;transition:all 0.2s;border:none}
.btn-primary{background:var(--orange);color:#000;font-weight:700}.btn-primary:hover{background:#ff7a20}
.btn-outline{background:transparent;color:var(--white);border:1px solid var(--border)}.btn-outline:hover{border-color:var(--gray)}
.hero-stats{display:flex;gap:40px;margin-top:56px;animation:fadeUp 0.8s 0.4s ease both}
.stat-num{font-family:"Bebas Neue",sans-serif;font-size:36px;color:var(--orange);line-height:1}
.stat-label{font-family:"Space Mono",monospace;font-size:10px;color:var(--gray);letter-spacing:0.08em;text-transform:uppercase;margin-top:4px}
.hero-right{position:relative;display:flex;align-items:flex-end;justify-content:flex-end;padding:48px 0 0 24px;overflow:visible}
.hero-photo-frame{position:relative;display:flex;align-items:flex-end;justify-content:flex-end;flex:0 0 max(var(--hero-photo-frame-width), var(--hero-photo-min-width));width:max(var(--hero-photo-frame-width), var(--hero-photo-min-width));max-width:max(var(--hero-photo-frame-width), var(--hero-photo-min-width));max-height:72vh;overflow:visible;animation:fadeUp 0.8s 0.2s ease both}
.hero-photo{position:relative;display:block;max-height:72vh;height:auto;width:100%;max-width:none;object-fit:contain;object-position:right bottom;opacity:var(--hero-image-opacity);filter:var(--hero-image-filter);transform:translateY(2.5%) scale(var(--hero-photo-scale));transform-origin:right bottom;z-index:0;pointer-events:none;transition:opacity 0.35s ease,filter 0.35s ease,transform 0.35s ease}
.hero-photo-overlay{position:absolute;inset:0;background:var(--hero-overlay-color);opacity:var(--hero-overlay-opacity);pointer-events:none;z-index:1;transition:opacity 0.35s ease,background 0.35s ease}
.hero-bg-text{position:absolute;bottom:-20px;right:-10px;font-family:"Bebas Neue",sans-serif;font-size:clamp(60px,8vw,110px);color:rgba(245,110,15,0.35);line-height:1;white-space:nowrap;pointer-events:none;user-select:none;z-index:2}

/* COMMON SECTION */
.page-inner{padding:120px 48px 80px;max-width:1200px;margin:0 auto}
.page-header{padding:120px 48px 48px;max-width:1200px;margin:0 auto;border-bottom:1px solid var(--border)}
.section-label{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--orange);margin-bottom:16px;display:flex;align-items:center;gap:12px}
.section-label::before{content:"";display:inline-block;width:24px;height:1px;background:var(--orange)}
.section-title{font-family:"Bebas Neue",sans-serif;font-size:clamp(42px,5vw,68px);line-height:1;letter-spacing:0.02em;margin-bottom:48px}
.divider{width:100%;height:1px;background:var(--border)}

/* ABOUT inline */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start;padding:80px 48px;max-width:1200px;margin:0 auto}
.about-text{font-size:15px;color:#aaa;line-height:1.8;margin-bottom:16px}
.about-text strong{color:var(--white);font-weight:500}
.about-right-padded{padding-top:60px}
.skill-group{margin-bottom:32px}
.skill-group-title{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.15em;text-transform:uppercase;color:var(--gray);margin-bottom:12px}
.skill-tags{display:flex;flex-wrap:wrap;gap:8px}
.tag{padding:6px 14px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.06em;border:1px solid var(--border);color:var(--gray);transition:all 0.2s;cursor:default}
.tag:hover{border-color:var(--orange);color:var(--orange);background:var(--orange-dim)}
.tag.highlight{border-color:var(--orange-mid);color:var(--orange);background:var(--orange-dim)}

/* ════════════ EXPERIENCE PAGE (REDESIGN) ════════════ */

/* Hero header */
.exp-page-header{padding-bottom:64px}
.page-header.exp-page-header > h1.section-title{font-size:clamp(72px,10vw,140px)!important;line-height:0.9!important}
.exp-page-lede{max-width:720px;margin-top:28px;color:var(--text-body);font-size:16px;line-height:1.8}
body.lang-zh .page-header.exp-page-header > h1.section-title{font-size:clamp(72px,10vw,140px)!important;line-height:1!important}
body.lang-zh .page-header.exp-page-header > h1.section-title .zh{display:inline-block;letter-spacing:0.12em}
body.lang-zh .exp-page-lede{margin-top:34px;line-height:2;letter-spacing:0.03em}

/* Body */
.exp-page-body{max-width:1200px;margin:0 auto;padding:72px 48px 96px}
.exp-block-label{margin-bottom:40px}
.exp-edu-label-block{margin-top:96px}

/* Timeline */
.exp-timeline{position:relative}
.exp-timeline::before{content:"";position:absolute;left:220px;top:48px;bottom:48px;width:1px;background:linear-gradient(to bottom,var(--orange) 0%,var(--border) 65%,transparent 100%);pointer-events:none}
.exp-entry{display:grid;grid-template-columns:260px 1fr;gap:0;position:relative}
.exp-entry-aside{padding-top:32px;position:relative}
.exp-entry-period{position:absolute;right:52px;top:32px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.05em;color:var(--gray2);text-align:right;line-height:1.5;white-space:nowrap}
.exp-entry-dot{width:10px;height:10px;border-radius:50%;background:var(--bg);border:2px solid var(--orange);box-shadow:0 0 0 3px var(--orange-dim);flex-shrink:0;position:absolute;right:35px;top:34px;z-index:1;transition:background 0.25s,box-shadow 0.25s}
.exp-entry:hover .exp-entry-dot{background:var(--orange);box-shadow:0 0 0 6px var(--orange-dim)}
.exp-entry-card{padding:32px 0 56px 40px;border-bottom:1px solid var(--border);position:relative;overflow:hidden}
.exp-card-link{display:block;color:inherit;text-decoration:none;cursor:pointer;transition:background 0.2s}
.exp-card-link,.exp-card-link *{text-decoration:none!important}
.exp-card-link:focus-visible{outline:1px solid var(--orange);outline-offset:4px}
.exp-edu-card-link{display:block;color:inherit;text-decoration:none;cursor:pointer;transition:background 0.2s}
.exp-edu-card-link,.exp-edu-card-link *{text-decoration:none!important}
.exp-edu-card-link:focus-visible{outline:1px solid var(--orange);outline-offset:4px}
.exp-entry:last-child .exp-entry-card{border-bottom:none}

/* Ghost year */
.exp-entry-ghost{position:absolute;top:8px;right:-4px;font-family:"Bebas Neue",sans-serif;font-size:clamp(72px,9vw,120px);color:rgba(245,110,15,0.04);line-height:1;pointer-events:none;user-select:none;letter-spacing:0.02em;z-index:0}
.exp-school-ghost{font-size:clamp(72px,10vw,132px)}
@media(prefers-color-scheme:light){.exp-entry-ghost{color:rgba(217,87,0,0.055)}}

/* Entry content */
.exp-entry-org{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--orange);margin-bottom:8px;position:relative;z-index:1}
.exp-entry-role{font-size:20px;font-weight:500;color:var(--white);line-height:1.3;margin-bottom:20px;position:relative;z-index:1}
body.lang-zh .exp-entry-role{font-family:var(--font-zh);letter-spacing:0.04em}
.exp-entry-points{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:24px;position:relative;z-index:1}
.exp-entry-points li{font-size:14px;color:var(--text-body);padding-left:18px;position:relative;line-height:1.65}
.exp-entry-points li::before{content:"→";position:absolute;left:0;color:var(--orange);font-size:11px;top:3px}

/* Entry tags */
.exp-entry-tags{display:flex;flex-wrap:wrap;gap:6px;position:relative;z-index:1}
.exp-tag{font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:var(--gray);border:1px solid var(--border);padding:4px 10px;transition:all 0.2s}
.exp-entry:hover .exp-tag{border-color:var(--orange-mid);color:var(--orange);background:var(--orange-dim)}

.exp-education-timeline{margin-top:32px}

/* ════════════════════ BLOG REDESIGN ════════════════════ */
/* wrapper */
.bl-wrap{max-width:1200px;margin:0 auto;padding:0 48px 96px}

/* header */
.bl-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:48px;align-items:end;padding-top:120px;padding-bottom:48px;border-bottom:1px solid var(--border);margin-bottom:0}
.bl-title{font-family:"Bebas Neue",sans-serif;font-size:clamp(72px,10vw,140px);line-height:0.9;letter-spacing:0.02em;margin-top:12px;animation:fadeUp 0.7s ease both}
.bl-subtitle{font-size:16px;color:var(--text-body);line-height:1.8;max-width:720px;margin-top:28px;animation:fadeUp 0.7s 0.1s ease both}
body.lang-zh .bl-header .bl-title{line-height:1}
body.lang-zh .bl-header .bl-title .zh{display:inline-block;letter-spacing:0.12em}
body.lang-zh .bl-header .bl-subtitle{font-size:16px;margin-top:34px;line-height:2;letter-spacing:0.03em;max-width:720px}
.bl-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:20px;padding-bottom:4px;flex-shrink:0;min-width:0}
.bl-search-form{display:flex;align-items:center;border:1px solid var(--border);overflow:hidden;transition:border-color 0.2s;width:100%;max-width:100%}
.bl-header-right .bl-search-form{width:min(320px,100%)}
.bl-search-form:focus-within{border-color:var(--orange)}
.bl-search-input{background:transparent;border:none;outline:none;padding:10px 16px;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:0.06em;color:var(--white);min-width:0;width:auto;max-width:100%;flex:1 1 auto}
.bl-search-input::placeholder{color:var(--gray2)}
.bl-search-btn{background:var(--orange);border:none;color:#000;font-size:14px;padding:10px 16px;cursor:pointer;font-weight:700;transition:opacity 0.2s;flex-shrink:0}
.bl-search-btn:hover{opacity:0.85}
.bl-count{text-align:right}
.bl-count-num{font-family:"Bebas Neue",sans-serif;font-size:48px;color:var(--orange);line-height:1;display:block}
.bl-count-label{font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--gray)}

/* tag strip */
.bl-tag-strip{display:flex;gap:8px;flex-wrap:wrap;padding:24px 0;border-bottom:1px solid var(--border)}
.bl-tag-pill{background:transparent;border:1px solid var(--border);color:var(--gray);padding:6px 14px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.06em;cursor:pointer;transition:all 0.2s;white-space:nowrap}
.bl-tag-pill:hover{border-color:var(--orange);color:var(--orange);background:var(--orange-dim)}
.bl-tag-pill.active{border-color:var(--orange);color:var(--orange);background:var(--orange-dim)}


/* articles list */
.bl-articles{padding:48px 0 0}
.bl-articles-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:0;padding-bottom:16px;border-bottom:1px solid var(--border)}
.bl-articles-label{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--orange);display:flex;align-items:center;gap:12px}
.bl-articles-label::before{content:"";display:inline-block;width:24px;height:1px;background:var(--orange)}
.bl-scope-toggle{display:flex;gap:0;border:1px solid var(--border);overflow:hidden}
.bl-scope-btn{background:transparent;border:none;padding:7px 16px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--gray);cursor:pointer;transition:all 0.2s}
.bl-scope-btn.active{background:var(--orange);color:#000;font-weight:700}
.bl-scope-btn:not(.active):hover{color:var(--white)}

/* article rows */
.bl-article-list{display:flex;flex-direction:column}
.bl-article-row{display:grid;grid-template-columns:56px 1fr 32px;gap:0;align-items:start;border-bottom:1px solid var(--border);padding:20px 48px;background:none;border-top:none;border-left:none;border-right:none;cursor:pointer;text-align:left;color:inherit;transition:background 0.15s;width:100%}
.bl-article-row:hover{background:var(--bg2)}
.bl-article-row:hover .bl-row-arrow{color:var(--orange);transform:translateX(4px)}
.bl-article-row:hover .bl-row-title{color:var(--orange)}
.bl-row-num{font-family:"Bebas Neue",sans-serif;font-size:24px;color:rgba(245,110,15,0.25);line-height:1.1;padding-top:2px;transition:color 0.2s;flex-shrink:0}
.bl-article-row:hover .bl-row-num{color:var(--orange)}
.bl-row-body{padding:0 24px 0 0;min-width:0}
.bl-row-meta{display:flex;align-items:center;gap:16px;margin-bottom:6px;flex-wrap:wrap}
.bl-row-cat{font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--orange)}
.bl-row-date{font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.06em;color:var(--gray2)}
.bl-row-title{font-size:15px;font-weight:500;color:var(--white);line-height:1.4;margin-bottom:6px;transition:color 0.2s}
.bl-row-excerpt{font-size:12px;color:var(--text-body);line-height:1.6;max-width:680px}
.bl-row-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:10px}
.bl-row-arrow{font-size:16px;color:var(--gray2);transition:color 0.2s,transform 0.2s;padding-top:2px;flex-shrink:0;align-self:center}
.bl-empty{padding:64px 0;text-align:center;color:var(--gray);font-family:"Space Mono",monospace;font-size:12px;letter-spacing:0.06em}

/* hero (first) article row — must come AFTER .bl-article-row to override grid-template-columns */
.bl-article-row--hero{grid-template-columns:minmax(0,1fr) 220px;align-items:stretch;background:var(--bg2);padding:0;margin:0;width:100%}
.bl-article-row--hero:hover{background:var(--bg3)}
.bl-article-row--hero:hover .bl-row-arrow{transform:none}
.bl-article-row--hero:hover .bl-hero-cta-arrow{transform:translateX(5px)}
.bl-article-row--hero:hover .bl-hero-title{color:var(--orange)}
.bl-hero-body{padding:40px 48px;display:flex;flex-direction:column}
.bl-hero-badge{font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--orange);border:1px solid var(--orange-mid);background:var(--orange-dim);padding:3px 9px;width:fit-content}
.bl-hero-title{font-family:"Bebas Neue",sans-serif;font-size:clamp(32px,4vw,56px);line-height:1;letter-spacing:0.02em;color:var(--white);margin:16px 0 14px;transition:color 0.2s}
.bl-hero-excerpt{font-size:14px;color:var(--text-body);line-height:1.75;max-width:560px;margin-bottom:28px}
.bl-hero-cta{display:inline-flex;align-items:center;gap:10px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--orange);margin-top:auto}
.bl-hero-cta-arrow{transition:transform 0.2s}
.bl-hero-deco{display:flex;align-items:center;justify-content:center;border-left:1px solid var(--border);font-family:"Bebas Neue",sans-serif;font-size:clamp(44px,6vw,80px);color:rgba(245,110,15,0.1);line-height:1;letter-spacing:0.04em;word-break:break-all;padding:24px 16px;pointer-events:none;user-select:none;text-align:center}
@media(max-width:900px){
  .bl-article-row--hero{grid-template-columns:1fr}
  .bl-hero-deco{display:none}
  .bl-hero-body{padding:28px 24px}
}

/* topics / categories */
.bl-topics{padding:64px 0 0}
.bl-topics-label{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.2em;text-transform:uppercase;color:var(--gray);margin-bottom:28px}
.bl-cat-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}
.bl-cat-btn{background:var(--bg);border:none;padding:28px;display:flex;flex-direction:column;gap:12px;cursor:pointer;text-align:left;color:inherit;transition:background 0.2s;min-height:130px;position:relative}
.bl-cat-btn:hover{background:var(--bg3)}
.bl-cat-btn:hover .bl-cat-arrow{color:var(--orange);transform:translateX(4px)}
.bl-cat-top{display:flex;align-items:flex-start;justify-content:space-between}
.bl-cat-count{font-family:"Bebas Neue",sans-serif;font-size:40px;color:var(--orange);line-height:1;opacity:0.7}
.bl-cat-arrow{font-size:16px;color:var(--gray2);transition:all 0.2s;margin-top:6px}
.bl-cat-name{font-size:14px;font-weight:500;color:var(--white);line-height:1.4}

/* responsive */
@media(max-width:900px){
  .bl-wrap{padding:0 24px 72px}
  .bl-header{grid-template-columns:1fr;gap:28px}
  .bl-header-right{align-items:flex-start}
  .bl-search-input{min-width:160px}
  .bl-featured{grid-template-columns:1fr}
  .bl-featured-right{display:none}
  .bl-featured-left{padding:28px}
  .bl-featured-title{font-size:clamp(28px,6vw,44px)}
  .bl-article-row{grid-template-columns:40px 1fr 28px;padding-left:24px;padding-right:24px}
  .bl-row-num{font-size:22px}
  .bl-cat-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:600px){
  .bl-wrap{padding:0 24px 64px}
  .bl-header{padding-top:96px;padding-bottom:40px}
  .bl-subtitle{font-size:14px;line-height:1.9;max-width:100%;word-break:break-word;overflow-wrap:anywhere}
  body.lang-zh .bl-header .bl-subtitle{font-size:14px;line-height:1.9;letter-spacing:0.02em;word-break:break-word;overflow-wrap:anywhere}
  .bl-header-right,.bl-header-right .bl-search-form{width:100%}
  .bl-search-input{min-width:0}
  .bl-articles{padding-top:40px}
  .bl-articles-header{flex-direction:column;align-items:flex-start;gap:16px}
  .bl-scope-toggle{flex-shrink:0}
  .bl-article-row{display:grid;grid-template-columns:1fr;gap:10px;padding:20px 0}
  .bl-row-num{display:none}
  .bl-row-body{padding:0;width:100%;min-width:0}
  .bl-row-arrow{display:none}
  .bl-row-title{font-size:18px;line-height:1.45;overflow-wrap:break-word}
  .bl-row-excerpt{font-size:13px;line-height:1.7;max-width:none}
  .bl-row-meta{display:flex;width:100%;gap:10px 14px;align-items:center;flex-wrap:wrap}
  .bl-row-cat,.bl-row-date{white-space:normal;word-break:keep-all}
  .bl-article-row--hero{display:block;padding:0;margin:0;width:100%;min-width:0}
  .bl-article-row--hero .bl-hero-body{display:block;width:100%;min-width:0;padding:28px 24px}
  .bl-hero-title{display:block;width:100%;max-width:none;font-size:clamp(28px,8vw,34px);line-height:1.24;letter-spacing:0.01em;white-space:normal;word-break:break-word;overflow-wrap:anywhere;writing-mode:horizontal-tb}
  body.lang-zh .bl-hero-title{font-size:clamp(28px,8vw,34px);line-height:1.36;letter-spacing:0.01em;word-break:break-word;overflow-wrap:anywhere}
  .bl-hero-excerpt{max-width:none;font-size:13px;line-height:1.8;margin-bottom:24px}
  .bl-hero-cta{margin-top:20px}
  .bl-cat-grid{grid-template-columns:1fr}
}

/* BLOG PAGE (legacy, still used by article view) */
.blog-section{padding:0 48px 80px;max-width:1200px;margin:0 auto}
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}
.blog-card{background:var(--bg);padding:32px;cursor:pointer;transition:background 0.2s;position:relative;overflow:hidden;text-decoration:none;display:block;border:none;text-align:left;width:100%;color:inherit}
.blog-card:hover{background:var(--bg3)}
.blog-card::after{content:"";position:absolute;bottom:0;left:0;right:0;height:2px;background:var(--orange);transform:scaleX(0);transition:transform 0.3s}
.blog-card:hover::after{transform:scaleX(1)}
.blog-cat{font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.15em;text-transform:uppercase;color:var(--orange);margin-bottom:14px}
.blog-title{font-size:15px;font-weight:500;color:var(--white);line-height:1.5;margin-bottom:10px}
.blog-meta{font-family:"Space Mono",monospace;font-size:10px;color:var(--gray2);display:flex;justify-content:space-between;align-items:center;margin-top:20px}
.blog-arrow{color:var(--orange);font-size:14px;opacity:0;transition:opacity 0.2s}
.blog-card:hover .blog-arrow{opacity:1}
.blog-search-form{display:flex;align-items:center;gap:12px;margin:24px 0;flex-wrap:wrap}
.blog-search-input{width:100%;max-width:400px;padding:12px 16px;background:var(--bg2);border:1px solid var(--border);color:var(--white);font-family:"Space Mono",monospace;font-size:11px;letter-spacing:0.08em;outline:none;transition:border-color 0.2s,background 0.2s}
.blog-search-input:focus{border-color:var(--orange);background:var(--bg3)}
.blog-search-input::placeholder{color:var(--gray2);opacity:1}
.blog-search-button{padding:12px 24px;background:var(--orange);color:#000;font-family:"Space Mono",monospace;font-size:11px;letter-spacing:0.08em;border:none;cursor:pointer;transition:opacity 0.2s,transform 0.2s}
.blog-search-button:hover{opacity:0.9;transform:translateY(-1px)}
.blog-section-heading{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--orange);margin:56px 0 18px}
.blog-tag-filter{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}
.blog-tag{background:transparent;border:1px solid var(--border);color:var(--gray);padding:6px 12px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.04em;cursor:pointer}
.blog-tag.active{border-color:var(--orange);color:var(--orange);background:var(--orange-dim)}
.blog-cover{width:100%;height:140px;object-fit:cover;border:1px solid var(--border);margin-bottom:12px}
.blog-cover-detail{height:auto;max-height:360px;margin:8px 0 20px}
.blog-tags{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 10px}
.blog-tag-pill{display:inline-block;border:1px solid var(--border);padding:3px 8px;font-family:"Space Mono",monospace;font-size:10px;color:var(--gray)}
.blog-latest-section{margin-top:0}
.blog-latest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border);border:1px solid var(--border)}
.blog-latest-card{min-height:220px;display:flex;flex-direction:column}
.blog-latest-card p{font-size:13px;color:var(--text-body);margin:12px 0 0;line-height:1.65;flex:1}
.blog-category-heading{margin-top:56px;margin-bottom:0}
/* Category card: large title only */
.blog-cat-card{display:flex;flex-direction:column;justify-content:space-between;min-height:160px}
.blog-cat-card .blog-cat-title{font-family:"Bebas Neue",sans-serif;font-size:clamp(28px,3vw,40px);line-height:1.1;letter-spacing:0.03em;color:var(--white);margin:0}

/* ARTICLE PAGE */
.article-back{display:inline-flex;align-items:center;gap:8px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.1em;text-transform:uppercase;color:var(--gray);cursor:pointer;margin-bottom:32px;border:1px solid var(--border);background:none;padding:10px 18px;transition:all 0.2s;text-decoration:none}
.article-back:hover{color:var(--orange);border-color:var(--orange);background:var(--orange-dim)}
.topic-detail-actions-top{padding-top:120px}
.topic-detail-header{padding-top:28px}
.topic-detail-back--top{margin-bottom:0}
.topic-detail-actions{display:flex;justify-content:flex-end;margin-top:44px;padding-top:28px;border-top:1px solid var(--border)}
.topic-detail-back--bottom{margin-bottom:0}

/* BLOG BREADCRUMB */
.blog-breadcrumb{display:flex;align-items:center;gap:8px;font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.1em;text-transform:uppercase;color:var(--gray2);margin-bottom:20px}
.blog-breadcrumb-sep{color:var(--gray2)}
.blog-breadcrumb-btn{color:var(--gray);background:none;border:none;cursor:pointer;font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.1em;text-transform:uppercase;padding:0;transition:color 0.2s}
.blog-breadcrumb-btn:hover{color:var(--orange)}
.blog-breadcrumb-current{color:var(--gray);max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.article-cat{font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.15em;text-transform:uppercase;color:var(--orange);margin-bottom:16px}
.article-title{font-family:"Bebas Neue",sans-serif;font-size:clamp(36px,6vw,80px);line-height:0.95;letter-spacing:0.02em;margin-bottom:48px}
.article-body h2{font-family:"Bebas Neue",sans-serif;font-size:30px;letter-spacing:0.04em;color:var(--white);margin:40px 0 16px}
.article-body h2:first-child{margin-top:0}
.article-body h3{font-size:19px;font-weight:500;color:var(--white);line-height:1.45;margin:32px 0 12px;max-width:680px}
.article-body p{font-size:15px;color:var(--text-body);line-height:1.9;margin-bottom:20px;max-width:680px}
.article-body ul,.article-body ol{max-width:680px;margin:18px 0 24px;padding-left:24px;color:var(--text-body)}
.article-body li{font-size:15px;line-height:1.85;margin-bottom:8px;padding-left:4px;overflow-wrap:anywhere}
.article-body strong{color:var(--white);font-weight:500}
.article-body table{width:min(100%,680px);border-collapse:collapse;margin:24px 0 28px;font-size:14px;color:var(--text-body);line-height:1.7}
.article-body th,.article-body td{border:1px solid var(--border);padding:12px 14px;text-align:left;vertical-align:top}
.article-body th{color:var(--white);font-weight:500;background:rgba(255,255,255,0.04)}
.article-body .note{background:var(--orange-dim);border-left:3px solid var(--orange);padding:16px 20px;margin:28px 0;font-size:13px;color:var(--gray);font-family:"Space Mono",monospace;line-height:1.7;letter-spacing:0.02em;max-width:680px}

/* ════════════════════ 404 PAGE ════════════════════ */
.nf-wrapper{position:relative;min-height:calc(100vh - 160px);padding:100px 48px 80px;max-width:1200px;margin:0 auto;display:flex;align-items:center;overflow:hidden}
.nf-bg-code{position:absolute;right:-40px;top:50%;transform:translateY(-50%);font-family:"Bebas Neue",sans-serif;font-size:clamp(180px,26vw,380px);color:rgba(245,110,15,0.045);line-height:1;pointer-events:none;user-select:none;z-index:0;letter-spacing:-0.06em;white-space:nowrap}
.nf-content{display:grid;grid-template-columns:1fr 400px;gap:72px;width:100%;position:relative;z-index:1}

/* left */
.nf-title{font-family:"Bebas Neue",sans-serif;font-size:clamp(60px,8.5vw,116px);line-height:0.92;letter-spacing:0.02em;margin-bottom:32px;animation:fadeUp 0.7s ease both}
.nf-title span{color:var(--orange)}

/* terminal block */
.nf-terminal{margin-bottom:28px;border:1px solid var(--border);background:var(--bg2);overflow:hidden;animation:fadeUp 0.7s 0.1s ease both}
.nf-terminal-bar{display:flex;align-items:center;gap:7px;padding:10px 16px;background:var(--bg3);border-bottom:1px solid var(--border)}
.nf-terminal-dot{width:11px;height:11px;border-radius:50%;flex-shrink:0}
.nf-terminal-bar-title{flex:1;text-align:center;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.08em;color:var(--gray2)}
.nf-terminal-body{padding:18px 20px;display:flex;flex-direction:column;gap:8px}
.nf-log-line{font-family:"Space Mono",monospace;font-size:11px;letter-spacing:0.04em;color:var(--gray);line-height:1.5}
.nf-log-err{color:var(--orange)}
.nf-log-prompt{color:var(--orange);margin-right:8px}
.nf-log-cmd{color:var(--white)}
.nf-log-str{color:#7ec8e3}
.nf-log-key{color:var(--gray2);margin-right:8px;text-transform:uppercase;font-size:10px}
.nf-log-val{color:var(--white)}
.nf-log-blink{font-family:"Space Mono",monospace;font-size:11px;color:var(--gray);margin-top:4px}
.nf-log-cursor{color:var(--orange);animation:blink 1.1s step-end infinite}
@keyframes blink{0%,100%{opacity:1}50%{opacity:0}}

.nf-desc{font-size:15px;color:var(--text-body);line-height:1.75;max-width:460px;margin-bottom:36px;animation:fadeUp 0.7s 0.2s ease both}
.nf-actions{display:flex;gap:14px;flex-wrap:wrap;animation:fadeUp 0.7s 0.25s ease both}

/* right card */
.nf-card{background:var(--bg2);border:1px solid var(--border);padding:0;position:relative;overflow:hidden;animation:fadeUp 0.7s 0.15s ease both}
.nf-card-top-bar{height:3px;background:var(--orange);width:100%}
.nf-card-eyebrow{padding:16px 28px 0;font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:var(--orange)}
.nf-identity{padding:18px 28px 20px}
.nf-monogram{font-family:"Space Mono",monospace;font-size:30px;font-weight:700;color:var(--orange);letter-spacing:0.08em;margin-bottom:6px}
.nf-full-name{font-family:"Bebas Neue",sans-serif;font-size:30px;letter-spacing:0.04em;color:var(--white);line-height:1.05}
.nf-role{font-family:"Space Mono",monospace;font-size:9px;color:var(--gray);letter-spacing:0.06em;line-height:1.65;margin-top:8px}
.nf-divider{height:1px;background:var(--border);margin:0 28px}
.nf-stats-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0;padding:20px 28px}
.nf-stat{display:flex;flex-direction:column;gap:6px;padding-right:16px}
.nf-stat+.nf-stat{padding-left:16px;padding-right:0;border-left:1px solid var(--border)}
.nf-stat-num{font-family:"Bebas Neue",sans-serif;font-size:26px;color:var(--orange);line-height:1}
.nf-stat-label{font-family:"Space Mono",monospace;font-size:9px;color:var(--gray);letter-spacing:0.06em;line-height:1.55}
.nf-section-label{padding:16px 28px 10px;font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.16em;text-transform:uppercase;color:var(--gray)}
.nf-tags{padding:0 28px 20px;display:flex;flex-wrap:wrap;gap:6px}
.nf-links{padding:0 0 0}
.nf-link-btn{display:flex;align-items:center;gap:14px;width:100%;background:none;border:none;border-top:1px solid var(--border);padding:14px 28px;cursor:pointer;text-align:left;transition:background 0.2s,color 0.2s;color:var(--gray)}
.nf-link-btn:hover{background:var(--bg3);color:var(--white)}
.nf-link-btn:hover .nf-link-arrow{color:var(--orange);transform:translateX(4px)}
.nf-link-icon{font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.08em;color:var(--orange);flex-shrink:0;width:22px}
.nf-link-text{flex:1;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.08em;text-transform:uppercase}
.nf-link-arrow{color:var(--gray2);font-size:13px;transition:color 0.2s,transform 0.2s}

/* responsive */
@media(max-width:900px){
  .nf-wrapper{padding:100px 24px 60px;align-items:flex-start}
  .nf-content{grid-template-columns:1fr;gap:48px}
  .nf-bg-code{font-size:clamp(120px,36vw,220px);right:-10px;top:80px;transform:none;opacity:0.6}
  .nf-card{margin-top:0}
}

/* CONTACT PAGE */
.contact-page{padding:120px 48px 80px;max-width:1200px;margin:0 auto}
.not-found-page{min-height:calc(100vh - 220px)}
.contact-headline{font-family:"Bebas Neue",sans-serif;font-size:clamp(52px,7vw,96px);line-height:0.95;letter-spacing:0.02em;margin-bottom:24px}
.contact-headline span{color:var(--orange)}
body.lang-zh .contact-headline{
  font-family:var(--font-display);
  font-weight:700;
  letter-spacing:0.02em;
  -webkit-text-stroke:0.9px currentColor;
  text-shadow:0.55px 0 currentColor,-0.55px 0 currentColor;
}
.contact-sub{font-size:15px;color:var(--gray);margin-bottom:56px;max-width:520px;line-height:1.7}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:var(--border);border:1px solid var(--border);margin-bottom:56px}
.contact-card{background:var(--bg);padding:36px;display:flex;flex-direction:column;gap:12px;transition:background 0.25s ease}
.contact-card:hover{background:var(--bg3)}
.contact-card-label{font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.18em;text-transform:uppercase;color:var(--orange)}
.contact-card-value{font-size:16px;color:var(--white);font-weight:400;word-break:break-all}
.contact-card-action{display:inline-flex;align-items:center;gap:8px;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--gray);text-decoration:none;cursor:pointer;border:none;background:none;padding:0;margin-top:4px;transition:color 0.2s}
.contact-card-action:hover{color:var(--orange)}
.contact-card-action::after{content:"→";color:var(--orange)}
.wechat-qr-display{margin-top:8px}
.wechat-qr-display img{width:140px;height:140px;object-fit:contain;background:#fff;padding:6px;display:block}

/* PRODUCT DEVELOPMENT */
.product-dev-header{padding-bottom:64px}
.page-header.product-dev-header > h1.section-title{font-size:clamp(44px,5.4vw,72px)!important;line-height:0.95!important}
body.lang-zh .page-header.product-dev-header > h1.section-title{font-size:clamp(44px,5.4vw,72px)!important;line-height:1.08!important}
body.lang-zh .page-header.product-dev-header > h1.section-title .zh{display:inline-block;letter-spacing:0.12em}
.product-dev-lede{max-width:720px;margin-top:28px;color:var(--text-body);font-size:16px;line-height:1.8}
.case-study-library{max-width:1200px;margin:0 auto;padding:64px 48px 96px}
.case-library-intro{max-width:760px;margin-bottom:36px}
.case-library-intro h2{font-family:"Bebas Neue",sans-serif;font-size:clamp(42px,5vw,72px);line-height:0.98;letter-spacing:0.02em;margin-bottom:18px}
.case-library-intro p{color:var(--text-body);font-size:15px;line-height:1.8}
.case-library-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border)}
.case-library-card{appearance:none;border:none;background:var(--bg);color:inherit;text-align:left;cursor:pointer;display:flex;flex-direction:column;min-height:560px;padding:0;overflow:hidden;transition:background 0.25s ease}
.case-library-card:hover{background:var(--bg3)}
.case-library-card img{width:100%;height:310px;object-fit:cover;display:block;filter:saturate(0.9) contrast(1.05)}
.case-library-card .case-kicker{margin:28px 28px 12px}
.case-library-card strong{display:block;font-family:"Bebas Neue",sans-serif;font-size:clamp(34px,4vw,54px);line-height:1;letter-spacing:0.02em;margin:0 28px 16px;color:var(--white)}
.case-library-card p{color:var(--text-body);font-size:14px;line-height:1.7;margin:0 28px 24px;flex:1}
.case-library-card em{font-style:normal;font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.12em;text-transform:uppercase;color:var(--orange);margin:0 28px 30px}
.product-case-detail[hidden],.case-study-library[hidden]{display:none!important}
.product-case-actions{max-width:1200px;margin:0 auto;padding:0 48px}
.product-case-actions-top{padding-top:120px;margin-bottom:32px}
.product-case-back{margin:0}
.product-case-back-bottom{margin:0 0 0 auto;justify-self:end}
.product-case-bottom-actions{margin-bottom:96px;padding-top:32px;border-top:1px solid var(--border);display:grid;justify-items:end}
.product-case-actions-top+.product-case-hero,.product-case-actions-top+.milu-case-hero{padding-top:0}
.product-case-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(280px,0.8fr);gap:48px;align-items:end;padding:64px 48px;max-width:1200px;margin:0 auto;border-bottom:1px solid var(--border)}
.case-kicker{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.16em;text-transform:uppercase;color:var(--orange);margin-bottom:14px}
.product-case-hero h2{font-family:"Bebas Neue",sans-serif;font-size:clamp(42px,5vw,76px);line-height:0.98;letter-spacing:0.02em;margin-bottom:22px;max-width:780px}
.product-case-hero p{color:var(--text-body);font-size:15px;line-height:1.8;max-width:720px}
.case-summary-grid{display:grid;grid-template-columns:1fr;gap:1px;background:var(--border);border:1px solid var(--border)}
.case-summary-grid div{background:var(--bg);padding:24px;display:flex;flex-direction:column;gap:8px}
.case-summary-grid strong{font-family:"Bebas Neue",sans-serif;font-size:42px;line-height:1;color:var(--orange);letter-spacing:0.03em}
.case-summary-grid span{font-family:"Space Mono",monospace;font-size:10px;color:var(--gray);letter-spacing:0.08em;text-transform:uppercase}
.product-case-nav{position:sticky;top:var(--nav-height);z-index:120;display:flex;gap:1px;max-width:1200px;margin:0 auto;padding:0 48px;background:var(--bg);border-bottom:1px solid var(--border)}
.product-case-nav a{flex:1;min-width:0;padding:14px 12px;border-left:1px solid var(--border);font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.08em;text-transform:uppercase;color:var(--gray);text-decoration:none;display:flex;align-items:center;justify-content:center;gap:8px;transition:color 0.2s,background 0.2s}
.product-case-nav a:last-child{border-right:1px solid var(--border)}
.product-case-nav a span:first-child{color:var(--orange)}
.product-case-nav a:hover{color:var(--white);background:var(--bg3)}
.product-case-list{max-width:1200px;margin:0 auto;padding:64px 48px 96px;display:flex;flex-direction:column;gap:40px}
.product-case-card{display:grid;grid-template-columns:minmax(280px,420px) minmax(0,1fr);gap:0;border:1px solid var(--border);background:var(--bg2);overflow:hidden;scroll-margin-top:calc(var(--nav-height) + 56px)}
.product-case-card[id]{scroll-margin-top:calc(var(--nav-height) + 56px)}
.product-case-card img{width:100%;height:420px;min-height:0;object-fit:cover;object-position:center 50%;align-self:center;display:block;filter:saturate(0.92) contrast(1.06)}
.product-case-card-haloumi img{object-position:center 42%}
.product-case-card-haloumi#haloumi-bbq img{object-position:center 52%}
.product-case-content{padding:42px;display:flex;flex-direction:column;justify-content:center}
.product-case-content h3{font-family:"Bebas Neue",sans-serif;font-size:clamp(34px,4vw,58px);line-height:1;letter-spacing:0.02em;margin-bottom:20px}
.product-case-content p{color:var(--text-body);font-size:15px;line-height:1.8;margin-bottom:28px}
.case-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--border);border:1px solid var(--border)}
.case-detail-grid div{background:var(--bg);padding:20px;color:var(--text-body);font-size:13px;line-height:1.7}
.case-detail-grid b{display:block;font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--orange);margin-bottom:8px}
.custom-case-page{max-width:1200px;margin:0 auto;padding:64px 48px 96px}
.custom-case-page h3{font-family:"Bebas Neue",sans-serif;font-size:clamp(38px,4.8vw,72px);line-height:0.98;letter-spacing:0.02em;margin-bottom:22px;color:var(--white)}
.custom-case-page h4{font-size:18px;font-weight:500;line-height:1.35;margin-bottom:10px;color:var(--white)}
.custom-case-page p{color:var(--text-body);font-size:15px;line-height:1.85}
.custom-case-page img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(0.92) contrast(1.05)}
.custom-case-page [id]{scroll-margin-top:calc(var(--nav-height) + 64px)}
.salted-case-lead{display:grid;grid-template-columns:minmax(0,0.92fr) minmax(340px,1.08fr);gap:1px;background:var(--border);border:1px solid var(--border);margin-bottom:40px}
.salted-case-lead-copy{background:var(--bg2);padding:48px;display:flex;flex-direction:column;justify-content:center;min-height:520px}
.salted-case-lead-copy p{max-width:580px}
.salted-case-lead-image{margin:0;background:var(--bg);height:520px;overflow:hidden}
.salted-case-lead-image img,
.salted-formula-layout figure img,
.salted-workflow-grid figure img,
.salted-extension-grid img{object-position:center center}
.salted-case-band,.salted-case-workflow,.salted-case-extension{border:1px solid var(--border);background:var(--bg2);padding:48px;margin-bottom:40px}
.salted-case-section-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,0.62fr);gap:36px;align-items:end;margin-bottom:32px}
.salted-case-section-head p{margin-bottom:0}
.salted-formula-layout,.salted-workflow-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(320px,0.96fr);gap:1px;background:var(--border);border:1px solid var(--border)}
.salted-formula-layout figure,.salted-workflow-grid figure{margin:0;height:420px;background:var(--bg);overflow:hidden}
.salted-spec-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--border)}
.salted-spec-grid article{background:var(--bg);padding:28px;min-height:210px;display:flex;flex-direction:column;justify-content:flex-end}
.salted-spec-grid b{display:block;font-family:"Bebas Neue",sans-serif;font-size:clamp(38px,4.2vw,68px);line-height:0.9;color:var(--orange);margin-bottom:16px;font-weight:400}
.salted-spec-grid span{display:block;color:var(--text-body);font-size:13px;line-height:1.65}
.salted-workflow-grid ol{margin:0;padding:0;list-style:none;display:grid;gap:1px;background:var(--border)}
.salted-workflow-grid li{background:var(--bg);padding:24px;display:grid;grid-template-columns:48px 1fr;gap:18px;align-items:start;color:var(--text-body);font-size:13px;line-height:1.65}
.salted-workflow-grid strong{font-family:"Space Mono",monospace;color:var(--orange);font-size:11px;letter-spacing:0.12em}
.salted-workflow-grid span{display:block}
.salted-extension-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border)}
.salted-extension-grid article{background:var(--bg);min-height:0}
.salted-extension-grid img{height:300px}
.salted-extension-grid div{padding:28px}
.foam-case-lead{display:grid;grid-template-columns:minmax(0,0.92fr) minmax(340px,1.08fr);gap:1px;background:var(--border);border:1px solid var(--border);margin-bottom:40px}
.foam-case-lead-copy{background:var(--bg2);padding:48px;display:flex;flex-direction:column;justify-content:center;min-height:520px}
.foam-case-lead-copy p{max-width:560px}
.foam-case-lead-image{margin:0;background:var(--bg);min-height:520px;overflow:hidden}
.foam-principles,.foam-process-panel,.foam-application-band{margin-top:40px;border-top:1px solid var(--border);padding-top:48px}
.foam-section-head{display:grid;grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr);gap:48px;align-items:end;margin-bottom:28px}
.foam-section-head h3{margin-bottom:0}
.foam-principle-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border)}
.foam-principle-grid article{background:var(--bg);padding:28px;min-height:260px;display:flex;flex-direction:column}
.foam-principle-grid article>span,.foam-application-grid article>div>span{font-family:"Bebas Neue",sans-serif;font-size:40px;line-height:1;color:rgba(245,110,15,0.32);margin-bottom:28px}
.foam-principle-grid p{font-size:13px;line-height:1.75;margin-top:auto}
.foam-process-layout{display:grid;grid-template-columns:minmax(320px,0.92fr) minmax(0,1.08fr);gap:24px;align-items:stretch}
.foam-process-layout figure{margin:0;border:1px solid var(--border);background:var(--bg2);min-height:620px;overflow:hidden}
.foam-process-steps{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border)}
.foam-process-steps article{background:var(--bg2);padding:30px;min-height:300px;display:flex;flex-direction:column;justify-content:flex-end}
.foam-process-steps b{font-family:"Bebas Neue",sans-serif;font-size:48px;line-height:1;color:var(--orange);font-weight:400;margin-bottom:auto}
.foam-process-steps p{font-size:13px;line-height:1.75}
.foam-application-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border)}
.foam-application-grid article{background:var(--bg2);min-height:520px;display:flex;flex-direction:column;scroll-margin-top:calc(var(--nav-height) + 64px)}
.foam-application-grid img{height:300px;flex:0 0 auto}
.foam-application-grid article>div{padding:28px;display:flex;flex-direction:column;flex:1}
.foam-application-grid article>div>span{margin-bottom:18px}
.foam-application-grid p{font-size:13px;line-height:1.75;margin-top:auto}
.milu-case-hero{max-width:1200px;margin:0 auto;padding:64px 48px 42px;display:grid;grid-template-columns:minmax(0,0.88fr) minmax(360px,1.12fr);gap:42px;align-items:end;border-bottom:1px solid var(--border)}
.milu-case-hero-copy h2{font-family:"Bebas Neue",sans-serif;font-size:clamp(44px,5.4vw,82px);line-height:0.96;letter-spacing:0.02em;margin-bottom:22px;max-width:760px}
.milu-case-hero-copy p{color:var(--text-body);font-size:15px;line-height:1.8;max-width:650px}
.milu-case-hero-visual{margin:0;border:1px solid var(--border);background:var(--bg2);overflow:hidden;aspect-ratio:4/3}
.milu-case-hero-visual img{width:100%;height:100%;object-fit:cover;object-position:center 48%;display:block;filter:saturate(0.95) contrast(1.05)}
.milu-case-snapshot{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1px;background:var(--border);border-bottom:1px solid var(--border);border-left:1px solid var(--border);border-right:1px solid var(--border)}
.milu-case-snapshot div{background:var(--bg);padding:22px 18px;min-height:112px;display:flex;flex-direction:column;justify-content:center;gap:8px}
.milu-case-snapshot strong{font-family:"Bebas Neue",sans-serif;font-size:clamp(34px,4vw,54px);line-height:0.9;color:var(--orange);letter-spacing:0.03em}
.milu-case-snapshot span{font-family:"Space Mono",monospace;font-size:9px;line-height:1.5;letter-spacing:0.08em;text-transform:uppercase;color:var(--gray)}
.milu-case-layout{max-width:1200px;margin:0 auto;padding:56px 48px 96px;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.milu-case-panel{grid-column:span 6;border:1px solid var(--border);background:var(--bg2);padding:36px;display:flex;flex-direction:column;justify-content:center;min-height:360px}
.milu-case-panel[id]{scroll-margin-top:110px}
.milu-case-panel-intro,.milu-case-panel-wide{grid-column:span 12}
.milu-case-panel h3{font-family:"Bebas Neue",sans-serif;font-size:clamp(36px,4vw,60px);line-height:0.98;letter-spacing:0.02em;margin-bottom:18px}
.milu-case-panel p{color:var(--text-body);font-size:15px;line-height:1.85;margin-bottom:24px}
.milu-case-image-panel{grid-column:span 6;margin:0;border:1px solid var(--border);background:var(--bg2);overflow:hidden;min-height:360px}
.milu-case-image-panel img{width:100%;height:100%;min-height:360px;object-fit:cover;object-position:center 52%;display:block;filter:saturate(0.98) contrast(1.04)}
.milu-case-contrast,.milu-format-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);margin-top:auto}
.milu-format-grid{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:8px}
.milu-case-contrast div,.milu-format-grid div{background:var(--bg);padding:20px;color:var(--text-body);font-size:13px;line-height:1.7}
.milu-case-contrast b,.milu-format-grid b{display:block;font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--orange);margin-bottom:8px}
.milu-process-flow{display:grid;grid-template-columns:1fr;gap:1px;background:var(--border);border:1px solid var(--border);margin-top:auto}
.milu-process-flow div{background:var(--bg);padding:16px 18px;display:grid;grid-template-columns:44px minmax(120px,0.7fr) minmax(0,1fr);gap:14px;align-items:center}
.milu-process-flow div>span:first-child{font-family:"Bebas Neue",sans-serif;font-size:30px;line-height:1;color:var(--orange)}
.milu-process-flow b{font-family:"Space Mono",monospace;font-size:10px;letter-spacing:0.08em;text-transform:uppercase;color:var(--text)}
.milu-process-flow em{font-style:normal;color:var(--text-body);font-size:13px;line-height:1.55}
.milu-process-flow b span,.milu-process-flow em span{font-family:inherit;font-size:inherit;line-height:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit}
.milu-case-matrix{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--border);border:1px solid var(--border);margin-top:auto}
.milu-case-matrix div{background:var(--bg);padding:20px;display:flex;flex-direction:column;gap:8px;color:var(--text-body);font-size:13px;line-height:1.6}
.milu-case-matrix b{font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.14em;text-transform:uppercase;color:var(--orange)}
.milu-case-matrix strong{font-family:"Bebas Neue",sans-serif;font-size:42px;line-height:0.9;color:var(--white);letter-spacing:0.03em}
.milu-case-note{border:1px solid var(--orange-mid);background:var(--orange-dim);color:var(--text-body);font-size:14px;line-height:1.8;padding:22px;margin-top:auto}

body.lang-zh .product-case-hero h2,
body.lang-zh .milu-case-hero-copy h2,
body.lang-zh .custom-case-page h3,
body.lang-zh .salted-case-lead-copy h3,
body.lang-zh .salted-case-band h3,
body.lang-zh .salted-case-workflow h3,
body.lang-zh .salted-case-extension h3,
body.lang-zh .product-case-content h3,
body.lang-zh .milu-case-panel h3{
  line-height:1.14;
  letter-spacing:0.01em;
  text-wrap:balance;
  word-break:normal;
  overflow-wrap:normal;
  line-break:strict;
}
body.lang-zh .product-case-hero h2,
body.lang-zh .milu-case-hero-copy h2{
  font-size:clamp(40px,4.4vw,64px);
  max-width:920px;
}
body.lang-zh .custom-case-page h3{
  font-size:clamp(34px,4vw,58px);
}
body.lang-zh .foam-section-head h3{
  max-width:720px;
}
body.lang-zh .product-case-content h3,
body.lang-zh .milu-case-panel h3{
  font-size:clamp(32px,3.4vw,50px);
}

@media(max-width:900px){
  .salted-case-lead,
  .salted-case-section-head,
  .salted-formula-layout,
  .salted-workflow-grid,
  .salted-extension-grid{grid-template-columns:1fr}
  .salted-case-lead-copy,
  .salted-case-band,
  .salted-case-workflow,
  .salted-case-extension{padding:32px}
  .salted-case-lead-copy{min-height:auto}
  .salted-case-lead-image,
  .salted-formula-layout figure,
  .salted-workflow-grid figure{height:340px}
  .salted-spec-grid{grid-template-columns:1fr}
  .salted-spec-grid article{min-height:auto}
  .salted-extension-grid img{height:260px}
}

/* FOOTER */
footer{border-top:1px solid var(--border);padding:28px 48px;display:flex;justify-content:space-between;align-items:center;background:var(--bg);transition:background 0.4s}
.footer-name{font-family:"Bebas Neue",sans-serif;font-size:20px;letter-spacing:0.08em;color:var(--gray)}
.footer-copy{font-family:"Space Mono",monospace;font-size:10px;color:var(--gray);letter-spacing:0.06em}

/* ANIM */
@keyframes fadeUp{from{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}
.reveal{opacity:0;transform:translateY(30px);transition:opacity 0.7s ease,transform 0.7s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* 图片懒加载样式 */
img.lazy{
  opacity:0;
  transition:opacity 0.3s ease-in-out;
}
img.lazy.loaded{
  opacity:1;
}

::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:var(--bg)}::-webkit-scrollbar-thumb{background:var(--gray2)}::-webkit-scrollbar-thumb:hover{background:var(--orange)}

@media(max-width:900px){
  nav{padding:16px 20px}
  .nav-links li:not(:last-child){display:none}
  .hero{grid-template-columns:1fr}.hero-left{padding:100px 24px 48px}.hero-right{display:none}
  .page-inner,.page-header,.blog-section,.contact-page{padding-left:24px;padding-right:24px}
  .case-study-library{padding:48px 24px}.case-library-grid{grid-template-columns:1fr}.case-library-card{min-height:auto}.case-library-card img{height:260px}.product-case-actions{padding-left:24px;padding-right:24px}.product-case-actions-top{padding-top:120px;margin-bottom:32px}.product-case-bottom-actions{margin-bottom:72px;padding-top:32px}
  .product-case-hero{grid-template-columns:1fr;padding:48px 24px}.product-case-nav{position:relative;top:auto;overflow:auto;padding:0 24px}.product-case-nav a{min-width:140px}.product-case-list{padding:48px 24px}.product-case-card,.product-case-card-haloumi{grid-template-columns:1fr}.product-case-card img,.product-case-card-haloumi img{height:280px;min-height:0}.product-case-content{padding:28px}.case-detail-grid{grid-template-columns:1fr}.custom-case-page{padding:48px 24px 72px}.foam-case-lead,.foam-section-head,.foam-process-layout{grid-template-columns:1fr}.foam-case-lead-copy{padding:32px;min-height:auto}.foam-case-lead-image,.foam-process-layout figure{min-height:340px}.foam-principle-grid,.foam-process-steps,.foam-application-grid{grid-template-columns:1fr}.foam-principle-grid article,.foam-process-steps article{min-height:auto}.foam-application-grid article{min-height:auto}.foam-application-grid img{height:260px}
  .milu-case-hero{grid-template-columns:1fr;padding:48px 24px 28px}.milu-case-hero-visual{aspect-ratio:4/3}.milu-case-snapshot{grid-template-columns:repeat(2,minmax(0,1fr));margin:0 24px}.milu-case-snapshot div:last-child{grid-column:1/-1}.milu-case-layout{grid-template-columns:1fr;padding:40px 24px 72px}.milu-case-panel,.milu-case-panel-intro,.milu-case-panel-wide,.milu-case-image-panel{grid-column:1;min-height:auto}.milu-case-panel{padding:28px}.milu-case-contrast,.milu-format-grid,.milu-case-matrix{grid-template-columns:1fr}.milu-process-flow div{grid-template-columns:38px 1fr;align-items:start}.milu-process-flow em{grid-column:2}
  .about-grid{grid-template-columns:1fr;gap:40px;padding:48px 24px}.about-right-padded{padding-top:0}
  .exp-timeline::before{display:none}
  .exp-entry{grid-template-columns:1fr}
  .exp-entry-aside{display:flex;flex-direction:row;align-items:center;padding-top:0;padding-bottom:10px;gap:10px}
  .exp-entry-period{position:static;text-align:left;white-space:normal}
  .exp-entry-dot{position:static;margin-top:0}
  .exp-entry-card{padding-left:0;padding-top:0}
  .exp-page-body{padding:56px 24px 80px}
  .blog-grid,.blog-latest-grid{grid-template-columns:1fr}
  .contact-grid{grid-template-columns:1fr}
  footer{flex-direction:column;gap:12px;text-align:center}
}

/* ════════════════════ HOME PAGE V2 ════════════════════ */

/* HERO V2 */
.hero-v2{min-height:100vh;display:grid;grid-template-rows:1fr auto;padding-top:80px;overflow:hidden}
.hero-v2-main{display:grid;grid-template-columns:1fr 1fr;position:relative}
.hero-v2-left{display:flex;flex-direction:column;justify-content:center;padding:64px 48px 48px;z-index:2}
.hero-v2-left .hero-badge{animation:fadeUp 0.8s ease both}
.hero-v2-name{font-family:"Bebas Neue",sans-serif;font-size:clamp(80px,11vw,148px);line-height:0.9;letter-spacing:0.02em;margin-top:28px;animation:fadeUp 0.8s 0.1s ease both}
.hero-v2-name span{color:var(--orange)}
.hero-v2-name .hero-sirui{color:var(--white)!important}
.hero-v2-wordmark{display:flex!important;flex-direction:column;align-items:flex-start;width:min(100%,clamp(330px,36vw,500px));line-height:0;color:inherit!important;gap:clamp(5px,0.8vw,10px)}
.hero-v2-wordmark-img{display:block;height:auto;filter:drop-shadow(0 6px 18px rgba(0,0,0,0.34));pointer-events:none;user-select:none;clip-path:inset(0 100% 0 0);opacity:0;transform:translateY(6px);animation:wordmarkWrite 1.65s cubic-bezier(.22,.72,.18,1) forwards;will-change:clip-path,opacity,transform}
.hero-v2-wordmark-sirui{width:min(72%,clamp(230px,27vw,360px));animation-delay:0.24s}
.hero-v2-wordmark-ouyang{width:100%;animation-delay:2.05s;animation-duration:1.85s}
@keyframes wordmarkWrite{
  0%{clip-path:inset(0 100% 0 0);opacity:0;transform:translateY(6px)}
  18%{opacity:1}
  100%{clip-path:inset(0 0 0 0);opacity:1;transform:translateY(0)}
}
@media(prefers-color-scheme:light){
  .hero-v2-wordmark-sirui{filter:brightness(0) saturate(100%) drop-shadow(0 4px 14px rgba(0,0,0,0.12))}
  .hero-v2-wordmark-ouyang{filter:brightness(0.9) saturate(1.06) drop-shadow(0 4px 14px rgba(217,87,0,0.1))}
  .nav-logo-mark{filter:brightness(0.9) saturate(1.06) drop-shadow(0 0 6px rgba(217,87,0,0.12))}
}
@media(prefers-reduced-motion:reduce){
  .hero-v2-wordmark-img{animation:none;clip-path:inset(0 0 0 0);opacity:1;transform:none}
}
body.lang-zh .hero-v2-wordmark{display:none!important}
body.lang-zh .hero-v2-name{font-size:clamp(76px,10vw,132px);line-height:0.95}
.hero-v2-subtitle{margin-top:28px;font-size:15px;color:var(--gray);line-height:1.75;max-width:400px;animation:fadeUp 0.8s 0.2s ease both}
.hero-v2-actions{display:flex;gap:12px;margin-top:40px;flex-wrap:wrap;animation:fadeUp 0.8s 0.3s ease both}
.hero-v2-photo-col{position:relative;overflow:hidden;animation:fadeUp 0.8s 0.15s ease both}
.hero-v2-photo{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center top;opacity:var(--hero-image-opacity);filter:var(--hero-image-filter)}
.hero-v2-photo-col::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,var(--bg) 0%,transparent 32%),linear-gradient(180deg,transparent 55%,var(--bg) 100%);pointer-events:none;z-index:1}

/* Stats bar */
.hero-v2-stats-bar{display:grid;grid-template-columns:1fr 1fr 1fr auto;border-top:1px solid var(--border);animation:fadeUp 0.8s 0.4s ease both}
.hero-v2-stat{padding:24px 40px;border-right:1px solid var(--border)}
.hero-v2-stat-cta{display:flex;align-items:center;padding:16px 36px;border-right:none}
.btn-sm{padding:9px 18px;font-size:10px}


/* ABOUT V2 */
.about-v2{display:grid;grid-template-columns:1fr 1fr;gap:80px;padding:80px 48px;position:relative;border-top:1px solid var(--border)}
.about-v2-left{position:relative}
.about-v2-ghost-num{font-family:"Bebas Neue",sans-serif;font-size:160px;line-height:1;color:rgba(245,110,15,0.05);position:absolute;top:-24px;left:-18px;pointer-events:none;user-select:none;letter-spacing:-0.05em;z-index:0}
.about-v2-heading{font-family:"Bebas Neue",sans-serif;font-size:clamp(42px,5vw,68px);line-height:1;letter-spacing:0.02em;margin:8px 0 24px;color:var(--white);position:relative;z-index:1}
body.lang-zh .about-v2-heading{font-family:var(--font-zh);font-weight:700;letter-spacing:0.01em}
.about-v2-left .section-label{position:relative;z-index:1}
.about-v2-left .about-text{position:relative;z-index:1}
.about-v2-right{padding-top:60px}

/* Chinese-specific improvements */
body.lang-zh .hero-v2-name{font-family:var(--font-zh);font-weight:600;letter-spacing:0.08em;margin-top:28px}
body.lang-zh .hero-v2-left .hero-badge{font-family:var(--font-zh);letter-spacing:0.14em;font-size:12px;line-height:1.3;padding:6px 14px;text-transform:none;white-space:nowrap}
body.lang-zh .hero-v2-subtitle{line-height:1.75;font-size:15px;max-width:680px;color:var(--text-body)}
body.lang-zh .section-label{letter-spacing:0.08em}
body.lang-zh .stat-label{font-family:var(--font-zh);letter-spacing:0.02em;font-size:12px;line-height:1.55;text-transform:none}
body.lang-zh .skill-group-title{letter-spacing:0.06em}
body.lang-zh .hero-v2-actions .btn,body.lang-zh .hero-v2-stat-cta .btn,body.lang-zh .work-preview-header .btn{font-family:var(--font-zh);letter-spacing:0.04em;font-size:13px;text-transform:none;white-space:nowrap}
body.lang-zh .hero-v2-actions{gap:12px;margin-top:40px}
body.lang-zh .hero-v2-actions .btn{padding:13px 22px}
body.lang-zh .work-card-num{font-family:var(--font-zh);font-size:12px;letter-spacing:0.04em;text-transform:none}
body.lang-zh .work-card-title{font-family:var(--font-zh);font-size:18px;font-weight:600;letter-spacing:0.01em;line-height:1.45;min-height:52px}
body.lang-zh .work-card-desc{font-family:var(--font-zh);font-size:14px;line-height:1.85;min-height:78px}
body.lang-zh .about-v2-heading{font-size:clamp(42px,4.8vw,64px);line-height:1.16;letter-spacing:0.08em;font-weight:600}
body.lang-zh .about-text{line-height:2;font-size:15px;color:var(--text-body)}
body.lang-zh .skill-tags{gap:10px}
body.lang-zh .tag{font-family:var(--font-mono);font-size:10px;letter-spacing:0.06em;padding:6px 14px}

/* WORK PREVIEW */
.work-preview{border-top:1px solid var(--border)}
.work-preview-header{display:flex;align-items:center;justify-content:space-between;padding:28px 48px;border-bottom:1px solid var(--border)}
.work-carousel{position:relative;background:var(--bg);overflow:hidden}
.work-carousel::before,.work-carousel::after{content:"";position:absolute;top:0;bottom:0;width:24px;z-index:2;pointer-events:none}
.work-carousel::before{left:0;background:linear-gradient(90deg,var(--bg),transparent)}
.work-carousel::after{right:0;background:linear-gradient(270deg,var(--bg),transparent)}
.work-preview-grid{display:flex;gap:1px;overflow-x:auto;overflow-y:hidden;scroll-behavior:auto;scrollbar-width:none;background:var(--border);-webkit-overflow-scrolling:touch;touch-action:pan-x;overscroll-behavior-y:none;will-change:scroll-position}
.work-preview-grid::-webkit-scrollbar{display:none}
.work-card{background:var(--bg);display:flex;flex:0 0 calc((100% - 2px)/3);flex-direction:column;cursor:pointer;border:none;text-align:left;color:inherit;transition:background 0.25s ease,filter 0.25s ease;overflow:hidden;position:relative;min-height:360px}
.work-card:hover{background:var(--bg2);filter:brightness(1.04)}
.work-card-img-wrap{overflow:hidden;aspect-ratio:2/1;flex-shrink:0}
.work-card-img{width:100%;height:100%;object-fit:cover;filter:saturate(0.82) brightness(0.88);transition:transform 0.5s ease,filter 0.3s ease;display:block}
.work-card:hover .work-card-img{transform:scale(1.04);filter:saturate(1) brightness(0.95)}
.work-card-body{padding:24px 28px 28px;flex:1;display:flex;flex-direction:column}
.work-card-num{font-family:"Space Mono",monospace;font-size:9px;letter-spacing:0.14em;color:var(--orange);margin-bottom:10px;text-transform:uppercase}
.work-card-title{font-size:16px;font-weight:500;color:var(--white);line-height:1.4;margin-bottom:8px;transition:color 0.2s}
.work-card:hover .work-card-title{color:var(--orange)}
.work-card-desc{font-size:13px;color:var(--text-body);line-height:1.65;flex:1}

.back-to-top{position:fixed;right:28px;bottom:calc(28px + env(safe-area-inset-bottom));z-index:1000;width:44px;height:44px;border-radius:50%;border:1px solid var(--orange-mid);background:var(--bg2);color:var(--orange);display:flex;align-items:center;justify-content:center;font-family:"Space Mono",monospace;font-size:18px;line-height:1;cursor:pointer;box-shadow:0 12px 30px rgba(0,0,0,0.28);opacity:0;visibility:hidden;pointer-events:none;transform:translateY(10px);transition:opacity 0.2s ease,visibility 0.2s ease,transform 0.2s ease,background 0.2s ease,border-color 0.2s ease,color 0.2s ease,bottom 0.2s ease}
.back-to-top.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0)}
.back-to-top.is-above-footer{bottom:calc(96px + env(safe-area-inset-bottom))}
.back-to-top:hover{background:var(--orange);border-color:var(--orange);color:#000}
.back-to-top:focus-visible{outline:2px solid var(--orange);outline-offset:4px}

/* Responsive – home v2 */
@media(max-width:900px){
  .hero-v2-main{grid-template-columns:1fr}
  .hero-v2-photo-col{height:60vw;min-height:260px}
  .hero-v2-stats-bar{grid-template-columns:1fr 1fr}
  .hero-v2-stat-cta{grid-column:1/-1;border-right:none;border-top:1px solid var(--border);justify-content:center}
  .about-v2{grid-template-columns:1fr;gap:48px;padding:56px 24px}
  .about-v2-right{padding-top:0}
  .work-preview-header{padding:20px 24px}
  .work-card{flex-basis:calc((100% - 1px)/2)}
  .hero-v2-wordmark{width:min(100%,clamp(320px,74vw,500px))}
  body.lang-zh .hero-v2-name{font-size:clamp(68px,18vw,104px);letter-spacing:0.06em}
  body.lang-zh .hero-v2-subtitle{font-size:15px;max-width:520px}
  body.lang-zh .work-card-title,body.lang-zh .work-card-desc{min-height:0}
}
@media(max-width:600px){
  .work-card{flex-basis:100%}
  .back-to-top{right:18px;bottom:calc(18px + env(safe-area-inset-bottom));width:40px;height:40px;font-size:17px}
  .back-to-top.is-above-footer{bottom:calc(110px + env(safe-area-inset-bottom))}
  .hero-v2-left{padding:40px 24px 36px}
  .hero-v2-photo-col{height:auto;min-height:0;aspect-ratio:1/1;background:var(--bg2)}
  .hero-v2-photo{object-fit:contain;object-position:center center}
  .hero-v2-photo-col::after{background:none}
  .hero-v2-stats-bar{grid-template-columns:1fr}
  .hero-v2-stat{border-right:none;padding:16px 24px}
  .hero-v2-stat-cta{border-top:1px solid var(--border);grid-column:unset;padding:14px 24px;justify-content:flex-start}
  .hero-v2-wordmark{width:min(100%,clamp(250px,74vw,360px))}
  body.lang-zh .hero-v2-name{font-size:clamp(60px,20vw,86px);line-height:0.95}
  body.lang-zh .hero-v2-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  body.lang-zh .hero-v2-actions .btn{justify-content:center;padding:11px 14px}
  body.lang-zh .hero-v2-actions .btn:first-child{grid-column:1/-1}
}
