:root{--bg:#f6f6f3;--card:#fff;--ink:#0d0d0d;--mute:#6b6b66;--line:#e2e2dc;--lime:#d6ff3f;--sans:"Helvetica Neue","PingFang HK","PingFang TC","Microsoft JhengHei","Noto Sans TC",system-ui,-apple-system,"Segoe UI",sans-serif;--mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;--r:22px}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{font-family:var(--sans);background:var(--bg);color:var(--ink);line-height:1.65;font-size:16px;overflow-x:hidden}
a{color:inherit;text-decoration:none}ul,ol{list-style:none}button{font-family:inherit}
.wrap{width:min(1280px,100% - 6vw);margin-inline:auto}
h1,h2,h3{font-weight:800;letter-spacing:-.035em;line-height:1.08}
mark{background:var(--lime);color:var(--ink);padding:0 .12em;border-radius:.12em}
.no{font-family:var(--mono);font-size:13px;font-weight:600;letter-spacing:.06em}

.nav{position:fixed;top:14px;left:50%;transform:translateX(-50%);z-index:50;width:min(1100px,100% - 28px);display:flex;align-items:center;justify-content:space-between;gap:16px;padding:9px 10px 9px 20px;background:rgba(255,255,255,.82);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:99px}
.logo{display:flex;align-items:center;gap:9px;white-space:nowrap}
.mark{width:22px;height:22px;border-radius:50%;background:var(--ink);position:relative;flex:none}.mark::after{content:"";position:absolute;inset:7px;background:var(--lime);border-radius:50%}
.logo b{font-size:17px;letter-spacing:-.01em;font-weight:800}.logo small{font-family:var(--mono);font-size:9px;letter-spacing:.2em;color:var(--mute);margin-left:2px}
.nav nav{display:flex;gap:6px}.nav nav a{padding:8px 16px;border-radius:99px;font-size:14px;font-weight:500;color:#333;transition:background .2s}.nav nav a:hover{background:var(--bg)}
.nav-r{display:flex;align-items:center;gap:8px}
.lang{font:600 12px/1 var(--mono);color:var(--ink);background:none;border:1px solid var(--line);border-radius:99px;padding:10px 13px;cursor:pointer}.lang:hover{background:var(--bg)}
.pill{background:var(--ink);color:#fff;padding:10px 20px;border-radius:99px;font-size:14px;font-weight:600;transition:background .2s,color .2s}.pill:hover{background:var(--lime);color:var(--ink)}

.hero{padding:clamp(120px,15vw,170px) 0 40px}
.tag{font-family:var(--mono);font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--mute);margin-bottom:22px}
.hero h1{font-size:clamp(46px,9.4vw,150px);letter-spacing:-.05em;line-height:1.16}
.lede{margin-top:30px;max-width:36em;font-size:clamp(16px,1.5vw,21px);color:#3a3a36}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:clamp(36px,5vw,64px)}
.panel{position:relative;display:flex;flex-direction:column;justify-content:space-between;gap:18px;min-height:clamp(340px,34vw,460px);padding:26px;border-radius:var(--r);overflow:hidden;transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.panel:hover{transform:translateY(-6px)}
.panel.lime{background:var(--lime)}.panel.ink{background:var(--ink);color:#fff}
.p-top{display:flex;justify-content:space-between;align-items:center}
.chip{font-size:13px;font-weight:600;padding:6px 14px;border-radius:99px;border:1px solid currentColor}
.p-bot{display:flex;justify-content:space-between;align-items:flex-end;gap:12px}
.p-bot h2{font-size:clamp(26px,3vw,44px)}
.arr{width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:var(--ink);color:#fff;font-size:20px;flex:none;transition:transform .3s}
.ink .arr{background:var(--lime);color:var(--ink)}.panel:hover .arr{transform:rotate(-45deg)}
.anno,.topo{width:100%;flex:1;min-height:0;overflow:visible}
.anno .ln{fill:none;stroke:#0d0d0d;stroke-width:1;stroke-dasharray:3 5;opacity:.5}
.anno .bx rect{fill:rgba(13,13,13,.06);stroke:#0d0d0d;stroke-width:2;stroke-dasharray:420;stroke-dashoffset:420;animation:draw 5s infinite}
.anno .bx text{font:600 10px var(--mono);fill:#0d0d0d;opacity:0;animation:lab 5s infinite}
.anno .b2 rect,.anno .b2 text{animation-delay:.9s}.anno .b3 rect,.anno .b3 text{animation-delay:1.8s}
@keyframes draw{0%{stroke-dashoffset:420}25%,85%{stroke-dashoffset:0}100%{stroke-dashoffset:-420}}
@keyframes lab{0%,18%{opacity:0}30%,85%{opacity:1}100%{opacity:0}}
.topo .lk path{stroke:rgba(255,255,255,.28);stroke-width:1.2;stroke-dasharray:4 6;animation:flow 1.6s linear infinite}
@keyframes flow{to{stroke-dashoffset:-20}}
.topo .core{fill:var(--lime)}.topo .ct{font:700 9px var(--mono);fill:#0d0d0d;text-anchor:middle;letter-spacing:.08em}
.topo .nd circle{fill:#1c1c1c;stroke:#fff;stroke-width:1.5;transform-box:fill-box;transform-origin:center;animation:pulse 3s ease-in-out infinite}
.topo .nd text{font:500 11px var(--mono);fill:#cfcfc8;text-anchor:middle}
.topo .n2 circle{animation-delay:.7s}.topo .n3 circle{animation-delay:1.4s}.topo .n4 circle{animation-delay:2.1s}
@keyframes pulse{0%,100%{fill:#1c1c1c;transform:scale(1)}50%{fill:var(--lime);transform:scale(1.18)}}

.figs{padding:16px 0 0}
.figs ul{display:grid;grid-template-columns:repeat(4,1fr);background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.figs li{padding:28px 26px}.figs li+li{border-left:1px solid var(--line)}
.figs b{display:block;font-size:clamp(30px,4vw,60px);font-weight:800;letter-spacing:-.04em;line-height:1.1;white-space:nowrap}
.figs span{font-size:14px;color:var(--mute)}

.sec{padding:clamp(80px,11vw,150px) 0 0}
.sec.soft{margin-top:clamp(80px,11vw,150px);padding:clamp(80px,10vw,130px) 0;background:var(--card);border-block:1px solid var(--line)}
.sh{display:grid;grid-template-columns:auto 1fr;gap:6px 22px;align-items:baseline;margin-bottom:clamp(32px,4vw,56px)}
.sh .no{grid-row:1;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--ink);color:var(--lime);align-self:center}
.sh h2{font-size:clamp(34px,5.4vw,80px);grid-column:2}
.sh p{grid-column:2;color:var(--mute);font-size:clamp(15px,1.3vw,19px);max-width:36em;margin-top:12px}

.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.bt{grid-column:span 2;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,2.4vw,34px);display:flex;flex-direction:column;gap:14px;min-height:340px;transition:transform .4s}
.bt:hover{transform:translateY(-5px)}
.bt.big{grid-column:span 3;grid-row:span 1}.bt.ink{grid-column:span 3}.bt:nth-child(3){grid-column:span 6;min-height:0}
.bt.lime{background:var(--lime);border-color:var(--lime)}.bt.ink{background:var(--ink);color:#fff;border-color:var(--ink)}
.bt h3{font-size:clamp(24px,2.5vw,36px);margin-top:auto}
.bt p{color:var(--mute);max-width:30em}.bt.lime p{color:#2c3300}.bt.ink p{color:#b9b9b2}
.bt ul{display:flex;flex-wrap:wrap;gap:8px}.bt li{font-size:13px;font-weight:500;padding:6px 14px;border:1px solid currentColor;border-radius:99px;opacity:.85}
.bt:nth-child(3){display:grid;grid-template-columns:1fr 1fr;gap:10px 40px;align-content:start}.bt:nth-child(3) .no{grid-column:1}.bt:nth-child(3) h3{grid-column:1;margin:0}.bt:nth-child(3) p{grid-column:2;grid-row:1/3;align-self:end}.bt:nth-child(3) ul{grid-column:1/-1;margin-top:8px}
.sol{margin-top:clamp(40px,5vw,70px)}.sol h3{font-size:22px;margin-bottom:16px}
.sol ul{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.sol li{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:22px;display:flex;flex-direction:column;gap:6px;transition:background .25s,border-color .25s}
.sol li:hover{background:var(--lime);border-color:var(--lime)}
.sol b{font-size:18px;letter-spacing:-.02em}.sol span{font-size:14px;color:var(--mute)}.sol li:hover span{color:#2c3300}

.cloud{background:var(--ink);color:#fff;margin-top:clamp(80px,11vw,150px);padding-bottom:clamp(60px,8vw,110px)}
.cloud .sh p{color:#a8a8a1}.cloud .sh .no{background:var(--lime);color:var(--ink)}
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;counter-reset:s;position:relative}
.flow li{background:#161616;border:1px solid #2a2a2a;border-radius:var(--r);padding:26px;display:flex;flex-direction:column;gap:12px;min-height:290px;transition:background .3s,color .3s,transform .4s}
.flow li:hover{background:var(--lime);color:var(--ink);transform:translateY(-6px)}
.flow i{font:normal 800 clamp(54px,6vw,92px)/1 var(--sans);letter-spacing:-.05em;color:transparent;-webkit-text-stroke:1.5px var(--lime)}
.flow li:hover i{-webkit-text-stroke-color:var(--ink)}
.flow h3{font-size:clamp(20px,1.9vw,26px);margin-top:auto}.flow p{color:#a8a8a1;font-size:15px}.flow li:hover p{color:#2c3300}

.tabs{display:grid;grid-template-columns:1fr 1.2fr;gap:14px}
.tab-l{display:flex;flex-direction:column;gap:10px}
.tab-l button{display:flex;align-items:center;gap:18px;text-align:left;padding:22px 24px;border-radius:18px;border:1px solid var(--line);background:var(--card);font-size:clamp(18px,1.8vw,24px);font-weight:700;letter-spacing:-.02em;cursor:pointer;color:var(--ink);transition:background .25s,border-color .25s,transform .25s}
.tab-l button i{font:normal 600 13px var(--mono);color:var(--mute)}
.tab-l button:hover{transform:translateX(4px)}
.tab-l button.on{background:var(--ink);color:#fff;border-color:var(--ink)}.tab-l button.on i{color:var(--lime)}
.tab-r{position:relative;background:var(--lime);border-radius:var(--r);min-height:320px;overflow:hidden}
.tp{position:absolute;inset:0;padding:clamp(24px,3vw,44px);display:flex;flex-direction:column;justify-content:space-between;opacity:0;transform:translateY(14px);transition:opacity .4s,transform .4s;pointer-events:none}
.tp.on{opacity:1;transform:none;pointer-events:auto}
.big-n{font-size:clamp(70px,11vw,170px);font-weight:800;letter-spacing:-.06em;line-height:.95}
.tp p{font-size:clamp(16px,1.5vw,21px);max-width:24em;font-weight:500}

.about{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(30px,6vw,100px)}
.about .big{font-size:clamp(26px,3.4vw,50px);font-weight:800;letter-spacing:-.03em;line-height:1.2}
.about-r>p{color:#3a3a36;margin-bottom:26px}
.about dl{border-top:1px solid var(--ink)}.about dl>div{display:grid;grid-template-columns:110px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid var(--line)}
.about dt{font-family:var(--mono);font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--mute);padding-top:3px}.about dd{font-size:15px}

.cta{background:var(--lime);padding:clamp(80px,11vw,150px) 0;text-align:center}
.cta .tag{color:#2c3300}
.mail{display:inline-block;font-size:clamp(30px,7vw,110px);font-weight:800;letter-spacing:-.05em;line-height:1.05;border-bottom:.06em solid var(--ink);word-break:break-word}
.mail:hover{background:var(--ink);color:var(--lime)}
.addr{margin-top:34px;font-size:16px}
footer{padding:28px 0;background:var(--bg)}
.foot{display:flex;justify-content:space-between;align-items:center;gap:20px;flex-wrap:wrap;font-size:13px;color:var(--mute)}

.reveal{opacity:0;transform:translateY(28px);transition:opacity .8s,transform .8s cubic-bezier(.2,.8,.2,1)}.reveal.in{opacity:1;transform:none}

@media(max-width:1000px){
  .nav nav{display:none}.logo small{display:none}
  .duo,.tabs,.about{grid-template-columns:1fr}
  .figs ul{grid-template-columns:1fr 1fr}.figs li:nth-child(3){border-left:0}.figs li:nth-child(n+3){border-top:1px solid var(--line)}
  .bento{grid-template-columns:1fr 1fr}.bt,.bt.big,.bt.ink{grid-column:span 1}.bt:nth-child(3){grid-column:span 2;display:flex;flex-direction:column}
  .sol ul,.flow{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .nav{padding:8px 8px 8px 16px}.pill{padding:9px 14px}
  .hero{padding-top:104px}
  .figs ul{grid-template-columns:1fr 1fr}.figs li{padding:20px 16px}
  .bento,.sol ul,.flow{grid-template-columns:1fr}.bt,.bt.big,.bt.ink,.bt:nth-child(3){grid-column:span 1}.bt{min-height:0}.bt h3{margin-top:12px}
  .flow li{min-height:0}.flow i{font-size:56px}
  .sh{grid-template-columns:1fr}.sh .no,.sh h2,.sh p{grid-column:1}.sh .no{margin-bottom:10px}
  .tab-r{min-height:280px}.about dl>div{grid-template-columns:1fr;gap:4px}
  .panel{min-height:330px;padding:20px}
}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.reveal{opacity:1;transform:none}.anno .bx rect{stroke-dashoffset:0}.anno .bx text{opacity:1}html{scroll-behavior:auto}}
@media(max-width:400px){.figs li{padding:18px 12px;min-width:0}.figs b{font-size:clamp(20px,7.2vw,28px)}.figs span{font-size:12px}}
.cloud-cta{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:clamp(24px,3vw,40px);border:1px solid #2a2a2a;border-radius:var(--r);font-size:clamp(22px,3vw,44px);font-weight:800;letter-spacing:-.03em;transition:background .3s,color .3s}
.cloud-cta .arr{background:var(--lime);color:var(--ink);font-style:normal}
.cloud-cta:hover{background:var(--lime);color:var(--ink)}.cloud-cta:hover .arr{background:var(--ink);color:var(--lime);transform:rotate(-45deg)}
.caps{display:flex;flex-wrap:wrap;gap:10px;margin:clamp(28px,4vw,48px) 0 clamp(28px,4vw,48px)}
.caps li{font-size:14px;font-weight:600;padding:9px 18px;border:1px solid #3a3a3a;border-radius:99px;color:#d8d8d2;transition:background .25s,color .25s,border-color .25s}
.caps li:hover{background:var(--lime);color:var(--ink);border-color:var(--lime)}
@media(max-width:420px){.nav{width:calc(100% - 16px);padding:7px 7px 7px 12px;gap:6px}.logo{gap:6px;min-width:0}.logo b{font-size:14px}.mark{width:18px;height:18px}.mark::after{inset:6px}.lang{padding:9px 10px;font-size:11px}.pill{padding:9px 12px;font-size:13px;white-space:nowrap}.nav-r{gap:5px;flex:none}}
@media(max-width:330px){.logo b{font-size:12px}.logo .mark{display:none}.pill{padding:8px 10px;font-size:12px}.lang{padding:8px 8px}}
