:root{
  color-scheme:dark;
  --bg:#111315; --panel:#1a1d20; --ink:#f3f1ec; --muted:#a6abb0; --line:#2c3136;
  --accent:#d92a24; --accent-ink:#ffffff; --signal:#d92a24; --hero:#111315; --rotor:#79818a; --link:#ff7d75;
  box-sizing:border-box;
  padding-top:env(safe-area-inset-top,0px);
  padding-bottom:env(safe-area-inset-bottom,0px);
}
html{scroll-behavior:smooth;scroll-padding-top:16px;height:auto}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;font-size:17px;line-height:1.8}
a{color:var(--link)}
a:focus-visible,summary:focus-visible{outline:3px solid var(--signal);outline-offset:3px}
.w{max-width:1080px;margin:0 auto;padding:0 24px}
header.top{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;padding:20px 0}
.brand{font-weight:900;font-size:19px;letter-spacing:.02em;text-decoration:none;color:var(--ink)}
.brand span{color:var(--muted);font-weight:400}
header.top nav{display:flex;gap:24px;flex-wrap:wrap}
header.top nav a{color:var(--muted);text-decoration:none}
header.top nav a:hover{color:var(--ink)}
.hero{background:var(--hero);border-bottom:1px solid var(--line)}
.hero .w{display:grid;grid-template-columns:1.2fr 1fr;gap:32px;align-items:center;padding-top:40px;padding-bottom:72px}
h1{font-weight:900;font-size:clamp(38px,6vw,68px);line-height:1.12;margin:0 0 24px}
h1 mark{background:linear-gradient(transparent 60%,var(--signal) 60% 94%,transparent 94%);color:inherit}
.lead{color:var(--muted);max-width:30em;margin:0 0 32px}
.cta{display:flex;gap:16px;flex-wrap:wrap}
.btn{display:inline-block;padding:12px 28px;border-radius:4px;text-decoration:none;font-weight:500;border:2px solid var(--accent);background:var(--accent);color:var(--accent-ink)}
.btn.alt{background:transparent;color:var(--link)}
.btn:hover{filter:brightness(1.08)}
.rotor{width:100%;max-width:420px;justify-self:center;color:var(--rotor)}
.spin{transform-origin:200px 200px;animation:spin 40s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
section{padding:72px 0 0;margin-top:72px;border-top:1px solid var(--line)}
main section:first-child{border-top:0;margin-top:0}
h2{font-weight:900;font-size:clamp(32px,5vw,48px);line-height:1.2;margin:0 0 24px}
.eyebrow{color:var(--link);font-size:14px;font-weight:500;letter-spacing:.2em;margin:0 0 12px}
.contact .eyebrow{color:var(--accent-ink);opacity:.85}
.num{display:block;color:var(--link);font-size:13px;font-weight:500;letter-spacing:.18em;margin-bottom:8px}
h3{margin:0 0 8px;font-size:20px}
p{margin:0 0 16px}
.muted{color:var(--muted)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.card{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:28px}
.card.tall{border-top:6px solid var(--signal)}
ul.plain{margin:0 0 16px;padding-left:1.2em}
ul.plain li{margin-bottom:4px}
.spec{display:grid;grid-template-columns:auto 1fr;gap:8px 24px;margin:0 0 16px}
.spec dt{color:var(--muted)}
.spec dd{margin:0;font-weight:500}
.note{border-left:4px solid var(--signal);padding:8px 16px;background:var(--panel);color:var(--muted);font-size:15px;margin-top:16px}
details{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:16px 24px;margin-bottom:12px}
summary{cursor:pointer;font-weight:500}
details[open] summary{margin-bottom:8px}
.cases{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
.cases .card h3{font-size:19px}
.cases .card p{margin:0 0 8px;color:var(--muted);font-size:16px}
.contact{background:var(--accent);color:var(--accent-ink);margin-top:96px;padding:80px 0}
.contact h2{margin-bottom:16px}
.contact a{color:var(--accent-ink)}
.contact .btn.alt{color:var(--accent-ink)}
.contact .btn{background:var(--accent-ink);color:var(--accent);border-color:var(--accent-ink)}
.contact .btn.alt{background:transparent;color:var(--accent-ink)}
.contact address{font-style:normal;margin-bottom:24px}
footer{padding:24px 0 32px;font-size:14px;color:var(--muted)}
@media (max-width:760px){
  .hero .w{grid-template-columns:1fr;padding-bottom:48px}
  .rotor{max-width:260px;order:-1}
  .two,.cases{grid-template-columns:1fr}
  section{padding-top:56px}
}
@media (prefers-reduced-motion:reduce){.spin{animation:none}html{scroll-behavior:auto}}
.gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;align-items:start}
.gallery figure{margin:0;background:var(--panel);border:1px solid var(--line);border-radius:4px;overflow:hidden}
.gallery img{display:block;width:100%;height:auto}
.gallery figcaption{padding:12px 16px;font-size:15px;color:var(--muted);line-height:1.6}
@media (max-width:900px){.gallery{grid-template-columns:repeat(2,1fr)}}
@media (max-width:480px){.gallery{grid-template-columns:1fr}}
.cases .card:last-child{grid-column:1/-1}
.shots{display:grid;grid-template-columns:repeat(2,1fr);gap:16px;margin-top:24px;align-items:start;max-width:720px}
.shots img{display:block;width:100%;height:auto;border-radius:4px;border:1px solid var(--line)}
@media (max-width:600px){.shots{grid-template-columns:1fr}}
.clip{display:block;width:100%;max-width:260px;height:auto;margin-top:16px;border-radius:4px;border:1px solid var(--line);background:#000}
.hero.solo .w{grid-template-columns:1fr;padding-bottom:48px}
.hero.solo h1{font-size:clamp(32px,5vw,52px);margin-bottom:16px}
.answer{background:var(--panel);border-left:6px solid var(--accent);padding:20px 24px;margin:0 0 32px;max-width:48em}
.answer p{margin:0}
nav a[aria-current="page"]{color:var(--ink);border-bottom:2px solid var(--accent)}
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
@media (max-width:760px){.cards3{grid-template-columns:1fr}}
.more{display:inline-block;margin-top:8px}
.ph{margin:0 0 24px}.ph img{display:block;width:100%;max-width:420px;height:auto;border-radius:4px;border:1px solid var(--line)}
.ph figcaption{color:var(--muted);font-size:15px;margin-top:8px}

.cases .card:last-child{grid-column:auto}

.actionbar{display:none}
@media (max-width:760px){
.actionbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:50;background:var(--bg);border-top:1px solid var(--line);padding:8px 12px calc(8px + env(safe-area-inset-bottom,0px));gap:8px}
.actionbar a{flex:1;text-align:center;padding:12px 8px;border-radius:4px;font-weight:500;text-decoration:none}
.actionbar .call{background:var(--accent);color:var(--accent-ink)}
.actionbar .line{border:2px solid var(--accent);color:var(--link)}
body{padding-bottom:76px}
}
