:root{
  --sky:#EAF1F4;--surface:#FFFFFF;--ink:#1D2B36;--muted:#4A5A66;--line:#C9D6DE;
  --family:#F2C14E;--family-soft:#FFF3CF;--biz:#2A9D8F;--biz-soft:#DDF0EC;--link:#1F7A6F;
  --on-ink:#FFFFFF;--focus:#1F7A6F;
  --sans:"Noto Sans TC","PingFang TC","Microsoft JhengHei",system-ui,sans-serif;
  --display:"LXGW WenKai TC","Noto Sans TC",serif;
  --wrap:1200px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --sky:#12191E;--surface:#1B252C;--ink:#E6EEF1;--muted:#A3B3BC;--line:#2D3B44;
    --family-soft:#3A3018;--biz-soft:#15332F;--biz:#4CC2B2;--link:#6FD3C4;--on-ink:#12191E;--focus:#6FD3C4;color-scheme:dark;
  }
}
html{scroll-padding-top:88px}
*,*::before,*::after{box-sizing:border-box}
body{margin:0;background:var(--sky);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px;border-radius:6px}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;z-index:50;background:var(--surface);padding:8px 12px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:24px}
@media (max-width:520px){.wrap{padding-inline:16px}}
h1,h2,h3{line-height:1.3;margin:0;font-weight:700;font-family:var(--display);text-wrap:balance}
h1{font-size:clamp(2.1rem,5vw,3.75rem)}
h2{font-size:clamp(1.6rem,3.2vw,2.25rem)}
h3{font-size:1.25rem}
p{margin:0}
.lead{font-size:1.125rem;color:var(--muted);max-width:34em}
.num{font-variant-numeric:tabular-nums}

header.site{position:sticky;top:0;z-index:20;background:var(--sky);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:24px;height:72px}
.logo{display:flex;align-items:baseline;gap:8px;text-decoration:none;font-family:var(--display);font-weight:700;font-size:1.5rem;white-space:nowrap}
.logo small{font-family:var(--sans);font-weight:500;font-size:.875rem;color:var(--muted)}
nav.main{display:flex;gap:4px;margin-left:8px}
nav.main a{text-decoration:none;padding:8px 12px;border-radius:10px;font-weight:500}
nav.main a:hover{background:var(--surface)}
nav.main a[aria-current="page"]{background:var(--surface);box-shadow:inset 0 -3px 0 var(--biz)}
.bar .right{margin-left:auto;display:flex;gap:8px;align-items:center}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:12px 24px;border-radius:14px;font:inherit;font-weight:700;text-decoration:none;border:1px solid transparent;cursor:pointer}
.btn.ghost{background:var(--surface);color:var(--ink)}
.btn.family{background:var(--family);color:#1D2B36}
.btn.biz{background:var(--ink);color:var(--on-ink)}
.btn.small{min-height:40px;padding:8px 16px;font-size:.9375rem;font-weight:500}
.menu-toggle{display:none}
nav.main .only-sm{display:none}
@media (max-width:860px){
  nav.main{display:none;position:absolute;left:0;right:0;top:72px;background:var(--sky);border-bottom:1px solid var(--line);flex-direction:column;padding:8px 16px 16px;margin:0}
  nav.main.open{display:flex}
  nav.main .only-sm{display:block}
  .menu-toggle{display:inline-flex}
  .bar .right .hide-sm{display:none}
}

.block{padding-block:80px}
.block.tight{padding-block:56px}
.block.white{background:var(--surface)}
.head{display:flex;flex-direction:column;gap:12px;margin-bottom:32px;max-width:40em}
@media (max-width:640px){.block{padding-block:56px}.block.tight{padding-block:40px}}

.hero{padding-block:56px 0;text-align:center}
.hero h1{max-width:16em;margin:0 auto 16px}
.hero .lead{margin:0 auto 28px}
.hero .split-cta{justify-content:center}
.street{max-width:1280px;margin:40px auto 0;padding-inline:16px}
.street svg{display:block;width:100%;height:auto}
.spots{display:grid;grid-template-columns:repeat(5,1fr);gap:16px;margin-top:-4px}
.spot{background:var(--surface);border-radius:20px;padding:24px;text-decoration:none;display:flex;flex-direction:column;gap:6px}
.spot strong{font-family:var(--display);font-size:1.375rem}
.spot span{color:var(--muted)}
.spot .go{color:var(--link);font-weight:700;margin-top:auto;padding-top:8px}
@media (max-width:1100px){.spots{grid-template-columns:repeat(3,1fr)}}
@media (max-width:900px){.spots{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.spots{grid-template-columns:1fr}}
.split-cta{display:flex;flex-wrap:wrap;gap:12px}

.day{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:0;border-top:3px solid var(--ink);margin-top:8px}
.day li{list-style:none;padding:20px 16px 0 0;position:relative}
.day li::before{content:"";position:absolute;top:-10px;left:0;width:16px;height:16px;border-radius:50%;background:var(--biz);border:3px solid var(--sky)}
.day li.f::before{background:var(--family)}
.day .t{display:block;font-weight:700;font-size:1.25rem;font-variant-numeric:tabular-nums}
.day p{color:var(--muted);font-size:.9375rem}
.day-wrap{overflow-x:auto;padding-top:12px}
.day-wrap ol{margin:0;padding:0;min-width:980px}
.legend{display:flex;gap:20px;font-size:.875rem;color:var(--muted);margin-top:24px}
.dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;vertical-align:-1px}
.dot.f{background:var(--family)}.dot.b{background:var(--biz)}

.entries{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.entry{border-radius:28px;padding:40px;display:flex;flex-direction:column;gap:16px}
.entry.f{background:var(--family-soft)}
.entry.b{background:var(--biz-soft)}
.entry h3{font-size:2rem}
.entry ul{margin:0;padding:0;list-style:none;display:grid;gap:12px}
.entry li{display:grid;gap:2px}
.entry li span{color:var(--muted);font-size:.9375rem}
.entry .btn{align-self:flex-start;margin-top:auto}
@media (max-width:760px){.entries{grid-template-columns:1fr}.entry{padding:28px}}

.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px}
.cols .item{background:var(--surface);border-radius:20px;padding:24px}
.item{display:grid;gap:8px;align-content:start}
.item p{color:var(--muted)}
.rule-list{list-style:none;margin:0;padding:0;display:grid;gap:12px}
.rule-list li{display:grid;grid-template-columns:minmax(140px,220px) 1fr;gap:16px;padding:20px 24px;background:var(--surface);border-radius:16px}
.rule-list li p{color:var(--muted)}
@media (max-width:640px){.rule-list li{grid-template-columns:1fr;gap:4px}}

.pic{aspect-ratio:4/3;border-radius:20px;background:var(--sky);display:grid;place-items:center;overflow:hidden}
.pic img{width:100%;height:100%;object-fit:contain;background:#fff}
.pic svg{width:80%;height:auto}
.product-row{display:grid;grid-template-columns:300px 1fr;gap:32px;padding:32px;margin-bottom:16px;background:var(--surface);border-radius:28px;align-items:start}
.product-row .tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
.tag{font-size:.8125rem;padding:4px 12px;border-radius:999px;background:var(--sky);color:var(--muted)}
.product-row .item{gap:10px}
.product-row .btn.ghost{background:var(--sky)}
@media (max-width:760px){.product-row{grid-template-columns:1fr;padding:20px}}

.industries{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ind{display:flex;flex-direction:column;gap:6px;padding:22px;border-radius:20px;background:var(--surface);text-decoration:none;min-height:160px;border:2px solid transparent}
.ind:hover{border-color:var(--biz)}
.roof{display:block;width:44px;height:8px;border-radius:4px;margin-bottom:6px}
.ind strong{font-family:var(--display);font-size:1.25rem}
.ind span{color:var(--muted);font-size:.875rem}
.ind .state{margin-top:auto;font-size:.875rem;color:var(--link);font-weight:700}
@media (max-width:900px){.industries{grid-template-columns:repeat(2,1fr)}}
@media (max-width:420px){.industries{grid-template-columns:1fr}}

.stack{display:grid;gap:12px}
.stack .layer{display:grid;grid-template-columns:220px 1fr;gap:16px;padding:20px 24px;border-radius:16px;background:var(--surface)}
.stack .layer:first-child{background:var(--biz-soft)}
.stack .layer p{color:var(--muted)}
@media (max-width:640px){.stack .layer{grid-template-columns:1fr;gap:4px}}

.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tier{border-radius:24px;padding:28px;background:var(--surface);display:grid;gap:12px;align-content:start;border:2px solid transparent}
.tier.main{border-color:var(--ink)}
.tier ul{margin:0;padding-left:1.1em;color:var(--muted);display:grid;gap:4px}
.tier .who{color:var(--muted);font-size:.9375rem}
@media (max-width:860px){.tiers{grid-template-columns:1fr}}

.steps{counter-reset:s;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:16px}
.steps li{counter-increment:s;display:grid;gap:6px;align-content:start;background:var(--surface);border-radius:20px;padding:22px}
.steps li::before{content:counter(s);font-family:var(--display);font-weight:700;font-size:1.75rem;color:var(--link)}
.steps li p{color:var(--muted);font-size:.9375rem}
@media (max-width:860px){.steps{grid-template-columns:1fr 1fr}}

.service-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.svc{display:grid;gap:6px;padding:24px;border-radius:20px;background:var(--surface);text-decoration:none;align-content:start}
.block.white .svc{background:var(--sky)}
.svc span{color:var(--muted);font-size:.9375rem}
.svc .go{margin-top:8px;font-weight:700;color:var(--link)}
@media (max-width:860px){.service-grid{grid-template-columns:1fr 1fr}}
@media (max-width:480px){.service-grid{grid-template-columns:1fr}}

.crumb{font-size:.875rem;color:var(--muted);margin-bottom:16px}
.crumb a{color:var(--muted)}
.note{font-size:.875rem;color:var(--muted)}
.note a{color:var(--link)}

form.lead-form{display:grid;grid-template-columns:1fr 1fr;gap:16px;max-width:760px;background:var(--surface);padding:32px;border-radius:28px}
.field{display:grid;gap:6px}
.field.full{grid-column:1/-1}
label{font-weight:500;font-size:.9375rem}
input,select,textarea{font:inherit;color:var(--ink);background:var(--sky);border:1px solid var(--line);border-radius:12px;padding:10px 12px;min-height:44px;width:100%}
textarea{min-height:120px;resize:vertical}
.check{display:flex;gap:10px;align-items:flex-start;font-weight:400}
.check input{width:20px;min-height:20px;margin-top:4px;flex:none}
.hp{position:absolute;left:-9999px}
.form-msg{grid-column:1/-1;padding:16px;border-radius:14px;background:var(--biz-soft);display:none}
.form-msg.show{display:block}
@media (max-width:640px){form.lead-form{grid-template-columns:1fr;padding:20px}}

.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.facts div{display:grid;gap:2px;padding:18px 20px;background:var(--surface);border-radius:16px}
.facts dt{color:var(--muted);font-size:.875rem}
.facts dd{margin:0}

.kicker{font-size:.875rem;font-weight:700;color:var(--link);margin:0}
.scenes{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.scene{background:var(--surface);border-radius:20px;padding:24px;display:grid;gap:8px;align-content:start}
.scene p{color:var(--muted)}
.addon{background:var(--biz-soft);border-radius:24px;padding:28px;display:grid;gap:10px}
.addon ul{margin:0;padding-left:1.2em;display:grid;gap:6px}
.spec{margin:0;display:grid;background:var(--surface);border-radius:20px;overflow:hidden}
.spec div{display:grid;grid-template-columns:200px 1fr;gap:16px;padding:14px 24px;border-top:1px solid var(--line)}
.spec div:first-child{border-top:0}
.spec dt{font-weight:700}
.spec dd{margin:0;color:var(--muted)}
@media (max-width:640px){.spec div{grid-template-columns:1fr;gap:2px}}
.notes{margin:0;padding-left:1.2em;display:grid;gap:6px;color:var(--muted)}
.rule-list h3 a,.stack h3 a{color:var(--ink);text-decoration-color:var(--biz);text-underline-offset:4px}
.prose{max-width:44em;display:grid;gap:16px}
.prose h2{font-size:1.375rem;margin-top:16px}
.prose ul{margin:0;padding-left:1.2em;display:grid;gap:6px}
.prose p,.prose li{color:var(--muted)}
footer.site{border-top:1px solid var(--line);padding:48px 0 32px}
.foot{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:32px}
.foot h2{margin:0 0 12px;font-size:.9375rem;font-family:var(--sans)}
.foot ul{list-style:none;margin:0;padding:0;display:grid;gap:6px;font-size:.9375rem}
.foot ul a{text-decoration:none;color:var(--muted)}
.foot ul a:hover{color:var(--ink)}
.foot p{color:var(--muted);font-size:.875rem}
.legal{margin-top:32px;padding-top:16px;border-top:1px solid var(--line);font-size:.8125rem;color:var(--muted);display:flex;flex-wrap:wrap;gap:8px 24px}
.legal a{color:var(--muted)}
@media (max-width:760px){.foot{grid-template-columns:1fr 1fr}}
