:root{
    --teal:#0d9488;
    --amber:#d97706;

    --bg:#f6f8fa;
    --bg-alt:#eef1f6;
    --surface:#ffffff;
    --line:rgba(16,24,39,0.10);
    --line-strong:rgba(16,24,39,0.18);
    --text:#101826;
    --text-mist:#55677e;
    --text-dim:#8998ac;
    --teal-dim:#e3f6f2;
    --amber-dim:#fbeedd;

    --radius:14px;
    --maxw:1180px;
  }

  *,*::before,*::after{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--text);
    font-family:"Noto Sans TC","PingFang TC","Microsoft JhengHei",sans-serif;
    line-height:1.7;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  .mono{font-family:"IBM Plex Mono",ui-monospace,monospace;}

  .section{padding:112px 24px;position:relative;}
  .section-inner{max-width:var(--maxw);margin:0 auto;}
  .section-tight{padding-top:88px;padding-bottom:88px;}

  .eyebrow{
    font-family:"IBM Plex Mono",monospace;
    font-size:12.5px;
    letter-spacing:.22em;
    color:var(--teal);
    text-transform:uppercase;
    margin:0 0 18px;
    display:flex;
    align-items:center;
    gap:10px;
  }
  .eyebrow::before{
    content:"";
    width:22px;height:1px;
    background:currentColor;
    display:inline-block;
  }

  h1,h2,h3{
    font-weight:900;
    letter-spacing:.01em;
    margin:0;
    color:var(--text);
  }
  h2{font-size:clamp(28px,4vw,42px);line-height:1.28;}
  .lede{
    font-size:17px;
    color:var(--text-mist);
    max-width:640px;
    margin:20px 0 0;
  }

  .btn{
    display:inline-flex;
    align-items:center;
    gap:10px;
    padding:14px 26px;
    border-radius:999px;
    font-weight:700;
    font-size:15px;
    border:1px solid transparent;
    cursor:pointer;
    transition:transform .18s ease, border-color .18s ease, background .18s ease;
    white-space:nowrap;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-primary{background:var(--teal);color:#ffffff;}
  .btn-primary:hover{background:#0b7d73;}
  .btn-ghost{border-color:var(--line-strong);color:var(--text);background:transparent;}
  .btn-ghost:hover{border-color:var(--teal);color:var(--teal);}

  /* ---------- NAV ---------- */
  .nav{
    position:sticky;top:0;z-index:50;
    display:flex;align-items:center;justify-content:space-between;
    padding:16px 24px;
    background:rgba(246,248,250,0.9);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{max-width:var(--maxw);margin:0 auto;width:100%;display:flex;align-items:center;justify-content:space-between;}
  .brand{display:flex;flex-direction:row;align-items:center;gap:12px;}
  .brand-logo{height:38px;width:auto;flex-shrink:0;}
  .brand-text{display:flex;flex-direction:column;line-height:1.25;}
  .brand-cn{font-weight:900;font-size:17px;letter-spacing:.02em;color:var(--text);}
  .brand-tag{font-family:"IBM Plex Mono",monospace;font-size:10.5px;letter-spacing:.14em;color:var(--text-dim);text-transform:uppercase;}
  .nav-links{display:flex;align-items:center;gap:32px;font-size:14.5px;color:var(--text-mist);}
  .nav-links a:hover{color:var(--teal);}
  .nav-cta{display:flex;align-items:center;gap:18px;}
  .nav-phone{display:none;}
  @media(min-width:860px){
    .nav-phone{display:inline-flex;}
  }
  .nav-toggle{display:none;background:none;border:1px solid var(--line-strong);border-radius:8px;padding:8px 10px;color:var(--text);}
  @media(max-width:859px){
    .nav-links{display:none;}
    .nav-toggle{display:inline-flex;}
  }
  .mobile-menu{
    display:none;
    position:fixed;inset:0;z-index:60;
    background:rgba(255,255,255,0.98);
    padding:24px;
    flex-direction:column;
  }
  .mobile-menu.open{display:flex;}
  .mobile-menu .close-btn{align-self:flex-end;background:none;border:1px solid var(--line-strong);border-radius:8px;padding:8px 12px;color:var(--text);margin-bottom:36px;}
  .mobile-menu a{color:var(--text);font-size:22px;font-weight:700;padding:16px 0;border-bottom:1px solid var(--line);}
  .mobile-menu .btn{margin-top:28px;justify-content:center;}

  /* ---------- HERO ---------- */
  .hero{
    position:relative;
    background:var(--bg);
    padding:64px 24px 80px;
    overflow:hidden;
  }
  .hero-inner{
    max-width:var(--maxw);margin:0 auto;
    display:grid;grid-template-columns:1.05fr .95fr;gap:24px;
    align-items:center;
  }
  .hero-copy{position:relative;z-index:2;}
  .hero-credential{
    display:inline-flex;align-items:center;gap:10px;
    padding:7px 14px 7px 8px;border:1px solid var(--line-strong);border-radius:999px;
    font-size:12.5px;color:var(--text-mist);margin-bottom:26px;
  }
  .hero-credential .dot{width:7px;height:7px;border-radius:50%;background:var(--teal);box-shadow:0 0 8px rgba(13,148,136,.5);}
  .hero h1{
    font-size:clamp(34px,5.4vw,58px);
    line-height:1.22;
  }
  .hero h1 .accent{color:var(--teal);}
  .hero h1 small{
    display:block;
    font-family:"IBM Plex Mono",monospace;
    font-weight:500;
    font-size:.36em;
    letter-spacing:.08em;
    color:var(--text-mist);
    margin-top:14px;
  }
  .hero .lede{font-size:18px;max-width:520px;}
  .hero-cta{display:flex;flex-wrap:wrap;gap:16px;margin-top:38px;}

  /* Hero visual: image sits in a contained dark device frame instead of
     blending into the page — the source photos have dark baked-in
     backgrounds, so framing (not blending) is what keeps a light page light. */
  .hero-visual{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:20px;
  }
  .hero-frame{
    position:relative;z-index:2;
    width:100%;max-width:460px;
    background:#0f1b2b;
    border:1px solid rgba(255,255,255,.12);
    border-radius:18px;
    padding:14px;
    box-shadow:0 30px 60px -28px rgba(16,24,39,.35);
  }
  .hero-frame img{border-radius:10px;width:100%;}
  .hero-ring{
    position:absolute;
    width:400px;height:400px;
    border-radius:50%;
    border:1px dashed var(--line-strong);
    top:50%;left:50%;
    transform:translate(-50%,-50%);
    pointer-events:none;
    z-index:1;
  }
  .hero-glow{
    position:absolute;
    width:520px;height:520px;
    background:radial-gradient(circle, var(--teal-dim), transparent 72%);
    top:50%;left:50%;transform:translate(-50%,-50%);
    pointer-events:none;
    z-index:0;
  }
  @media(max-width:900px){
    .hero-inner{grid-template-columns:1fr;}
    .hero-visual{order:-1;margin-bottom:8px;}
    .hero-frame{max-width:320px;}
    .hero-ring{width:280px;height:280px;}
  }

  /* ---------- REVEAL ---------- */
  .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s ease, transform .7s ease;}
  .reveal.is-visible{opacity:1;transform:none;}
  @media(prefers-reduced-motion:reduce){
    .reveal{opacity:1;transform:none;transition:none;}
  }

  /* ---------- SIGNAL PATH ---------- */
  .signal-section{background:var(--bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .signal-diagram{
    position:relative;
    margin-top:56px;
    display:grid;
    grid-template-columns:1fr 200px 1fr;
    gap:28px;
    align-items:center;
  }
  .signal-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none;z-index:0;}
  .sig-path{fill:none;stroke:var(--teal);stroke-width:2;opacity:.5;stroke-dasharray:5 7;animation:flow 1.6s linear infinite;}
  @keyframes flow{to{stroke-dashoffset:-24;}}
  @media(prefers-reduced-motion:reduce){.sig-path{animation:none;}}

  .sig-col{display:flex;flex-direction:column;gap:14px;position:relative;z-index:1;}
  .sig-col--out{align-items:stretch;}
  .sig-col-label{
    font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.16em;
    color:var(--text-dim);text-transform:uppercase;margin:0 0 4px;
  }
  .sig-col-label span{color:var(--teal);}

  .sig-jack{
    background:var(--surface);
    border:1px solid var(--line);
    border-left:3px solid var(--teal);
    border-radius:8px;
    padding:12px 16px;
    font-size:14.5px;
    font-weight:500;
    color:var(--text);
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
  }
  .sig-col--out .sig-jack{border-left:1px solid var(--line);border-right:3px solid var(--amber);flex-direction:row-reverse;text-align:right;}
  .sig-jack small{display:block;font-family:"IBM Plex Mono",monospace;font-size:10.5px;color:var(--text-dim);font-weight:400;margin-top:3px;letter-spacing:.03em;}
  .jack-ch{font-family:"IBM Plex Mono",monospace;font-size:10px;color:var(--text-dim);letter-spacing:.08em;flex-shrink:0;}

  .sig-core{
    position:relative;z-index:1;
    background:var(--surface);
    border:1px solid var(--teal);
    border-radius:12px;
    padding:22px 16px;
    text-align:center;
    box-shadow:0 16px 32px -20px rgba(16,24,39,.25);
  }
  .core-rec{
    position:absolute;top:14px;right:14px;
    width:8px;height:8px;border-radius:50%;
    background:var(--amber);
    animation:pulse 1.8s ease-in-out infinite;
  }
  @keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(217,119,6,.45);}50%{box-shadow:0 0 0 6px rgba(217,119,6,0);}}
  @media(prefers-reduced-motion:reduce){.core-rec{animation:none;}}
  .core-eyebrow{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.2em;color:var(--text-dim);margin:0 0 8px;}
  .core-title{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:22px;color:var(--text);margin:0;}
  .core-sub{font-size:13px;color:var(--text-mist);margin:6px 0 14px;}
  .core-readout{font-family:"IBM Plex Mono",monospace;font-size:10.5px;color:var(--teal);border-top:1px solid var(--line);padding-top:12px;margin:0;letter-spacing:.02em;}

  @media(max-width:820px){
    .signal-diagram{grid-template-columns:1fr;}
    .sig-col--out{align-items:stretch;}
    .sig-col--out .sig-jack{flex-direction:row;text-align:left;border-left:3px solid var(--amber);border-right:none;}
    .sig-core{order:0;max-width:280px;margin:0 auto;}
  }

  /* ---------- SHOWCASE / DASHBOARD ---------- */
  .showcase-grid{
    display:grid;grid-template-columns:1.3fr .9fr;gap:56px;
    margin-top:52px;align-items:center;
  }
  .showcase-frame{
    background:#0f1b2b;
    border:1px solid rgba(255,255,255,.14);
    border-radius:16px;
    padding:10px;
    box-shadow:0 30px 60px -30px rgba(16,24,39,.35);
  }
  .showcase-frame .bar{
    display:flex;gap:6px;padding:6px 8px 12px;
  }
  .showcase-frame .bar span{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.18);}
  .showcase-frame img{border-radius:8px;}
  .feature-list{display:flex;flex-direction:column;gap:26px;}
  .feature-item{display:flex;gap:16px;}
  .feature-mark{
    flex-shrink:0;width:34px;height:34px;border-radius:9px;
    border:1px solid var(--line-strong);
    display:flex;align-items:center;justify-content:center;
    font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--teal);
  }
  .feature-item h4{margin:2px 0 6px;font-size:16px;font-weight:700;}
  .feature-item p{margin:0;color:var(--text-mist);font-size:14.5px;}
  @media(max-width:900px){.showcase-grid{grid-template-columns:1fr;gap:36px;}}

  /* ---------- PRODUCT / SIA-3201 ---------- */
  .product-section{background:var(--bg-alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
  .product-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:24px;}
  .product-name{font-family:"IBM Plex Mono",monospace;color:var(--text-dim);font-size:13px;letter-spacing:.1em;}
  .product-intro{margin-top:18px;max-width:760px;color:var(--text-mist);font-size:15.5px;}

  .checklist{
    display:grid;grid-template-columns:1fr 1fr;gap:14px 32px;
    margin-top:44px;list-style:none;padding:0;
  }
  .checklist li{
    display:flex;gap:12px;font-size:14.5px;color:var(--text);
    padding-bottom:14px;border-bottom:1px solid var(--line);
  }
  .checklist li::before{
    content:"";flex-shrink:0;width:16px;height:16px;margin-top:3px;border-radius:4px;
    background:var(--teal-dim);
    border:1px solid var(--teal);
    background-image:linear-gradient(135deg, transparent 45%, var(--teal) 45%, var(--teal) 55%, transparent 55%);
  }
  @media(max-width:720px){.checklist{grid-template-columns:1fr;}}

  .spec-table{width:100%;border-collapse:collapse;margin-top:60px;font-size:14.5px;}
  .spec-table caption{
    text-align:left;font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.18em;
    color:var(--text-dim);text-transform:uppercase;margin-bottom:16px;
  }
  .spec-table tr{border-bottom:1px solid var(--line);}
  .spec-table tr:hover{background:rgba(13,148,136,0.05);}
  .spec-table th,.spec-table td{padding:16px 14px;text-align:left;vertical-align:top;}
  .spec-table th{
    width:190px;font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:13px;
    color:var(--teal);letter-spacing:.03em;white-space:nowrap;
  }
  .spec-table td{color:var(--text-mist);}

  .screens-row{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:64px;}
  .screen-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;}
  .screen-card img{width:100%;height:170px;object-fit:cover;object-position:top;}
  .screen-card-body{padding:16px 18px 20px;}
  .screen-tag{font-family:"IBM Plex Mono",monospace;font-size:10.5px;color:var(--amber);letter-spacing:.12em;}
  .screen-card h4{margin:8px 0 6px;font-size:15.5px;color:var(--text);}
  .screen-card p{margin:0;font-size:13.5px;color:var(--text-mist);}
  @media(max-width:820px){.screens-row{grid-template-columns:1fr;}}

  /* ---------- DEVICES (jack grid) ---------- */
  .device-grid{
    display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:52px;
  }
  .device-jack{
    background:var(--surface);border:1px solid var(--line);border-radius:10px;
    padding:18px 16px;position:relative;
  }
  .device-jack::before{
    content:attr(data-ch);
    font-family:"IBM Plex Mono",monospace;font-size:10px;color:var(--text-dim);
    letter-spacing:.1em;display:block;margin-bottom:10px;
  }
  .device-jack .port{width:10px;height:10px;border-radius:50%;background:var(--teal-dim);border:1px solid var(--teal);margin-bottom:12px;}
  .device-jack h5{margin:0 0 4px;font-size:14.5px;font-weight:700;color:var(--text);}
  .device-jack small{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--text-dim);}
  @media(max-width:900px){.device-grid{grid-template-columns:repeat(2,1fr);}}

  /* ---------- SERVICES ---------- */
  .service-list{margin-top:52px;border-top:1px solid var(--line);}
  .service-row{
    display:flex;align-items:center;gap:28px;
    padding:28px 4px;border-bottom:1px solid var(--line);
  }
  .service-ch{font-family:"IBM Plex Mono",monospace;color:var(--teal);font-size:14px;letter-spacing:.06em;flex-shrink:0;width:74px;}
  .service-row h4{margin:0;font-size:17px;font-weight:700;flex-shrink:0;width:260px;color:var(--text);}
  .service-row p{margin:0;color:var(--text-mist);font-size:14.5px;}
  @media(max-width:760px){
    .service-row{flex-wrap:wrap;gap:8px 28px;}
    .service-row h4{width:auto;}
  }

  /* ---------- CASE GALLERY ---------- */
  .case-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:52px;}
  .case-card{border-radius:12px;overflow:hidden;border:1px solid var(--line);position:relative;aspect-ratio:1/1;}
  .case-card img{width:100%;height:100%;object-fit:cover;}
  @media(max-width:820px){.case-grid{grid-template-columns:repeat(2,1fr);}}

  /* ---------- CTA BAND ---------- */
  .cta-band{
    background:linear-gradient(180deg, var(--teal-dim), var(--bg) 60%);
    border-top:1px solid var(--line);
    text-align:center;
    padding:100px 24px;
  }
  .cta-band h2{max-width:680px;margin:0 auto;}
  .cta-band .lede{max-width:520px;margin-left:auto;margin-right:auto;}
  .cta-band .hero-cta{justify-content:center;margin-top:36px;}

  /* ---------- FOOTER ---------- */
  footer{background:var(--bg-alt);padding:56px 24px 40px;border-top:1px solid var(--line);}
  .footer-inner{max-width:var(--maxw);margin:0 auto;display:flex;flex-wrap:wrap;justify-content:space-between;gap:32px;}
  .footer-brand .brand-cn{font-size:19px;color:var(--text);}
  .footer-brand .brand-tag{margin-top:6px;}
  .footer-note{margin-top:16px;font-size:13px;color:var(--text-dim);max-width:360px;}
  .footer-contact{font-size:14px;color:var(--text-mist);}
  .footer-contact div{margin-bottom:8px;}
  .footer-bottom{
    max-width:var(--maxw);margin:40px auto 0;padding-top:24px;border-top:1px solid var(--line);
    font-family:"IBM Plex Mono",monospace;font-size:11.5px;color:var(--text-dim);
    display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;
  }

/* ---------- BRAND / CATEGORY PAGES (shared) ---------- */
.brand-hero{padding:72px 24px 36px;}
.brand-hero-inner{max-width:var(--maxw);margin:0 auto;}
.brand-hero .lede{font-size:17px;}

.flagship-banner{
  margin-top:44px;
  display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:center;
  background:linear-gradient(135deg, var(--surface), var(--teal-dim) 150%);
  border:1px solid var(--line-strong);
  border-radius:16px;
  padding:22px 30px;
}
.flagship-banner .thumb{
  width:150px;height:104px;border-radius:10px;overflow:hidden;flex-shrink:0;
  border:1px solid var(--line-strong);
}
.flagship-banner .thumb img{width:100%;height:100%;object-fit:cover;}
.flagship-banner .tag{font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.16em;color:var(--amber);text-transform:uppercase;margin:0 0 10px;}
.flagship-banner h3{font-size:21px;margin:0 0 8px;}
.flagship-banner p{margin:0;color:var(--text-mist);font-size:14.5px;max-width:480px;}
@media(max-width:760px){
  .flagship-banner{grid-template-columns:1fr;text-align:left;}
  .flagship-banner .thumb{width:100%;height:160px;}
}

.category-block{margin-top:76px;}
.category-block:first-of-type{margin-top:56px;}
.category-head{display:flex;align-items:baseline;gap:14px;margin-bottom:28px;border-bottom:1px solid var(--line);padding-bottom:16px;}
.category-head h3{font-size:21px;font-weight:900;margin:0;}
.category-head .count{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--text-dim);letter-spacing:.06em;}

.product-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;}
@media(max-width:760px){.product-grid{grid-template-columns:1fr;}}
.product-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;}
.product-card .thumb{width:100%;height:180px;background:#fdfdfd;display:flex;align-items:center;justify-content:center;padding:20px;border-bottom:1px solid var(--line);}
.product-card .thumb img{width:100%;height:100%;object-fit:contain;}
.product-card .thumb.thumb-photo{padding:0;border-bottom:none;background:var(--bg-alt);}
.product-card .thumb.thumb-photo img{object-fit:cover;}
.product-card .thumb.thumb-mono{
  position:relative;overflow:hidden;
  background:linear-gradient(135deg, var(--teal-dim), var(--amber-dim) 140%);
  border-bottom:1px solid var(--line);
}
.product-card .thumb.thumb-mono .mono-glyph{
  font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:88px;line-height:1;
  color:rgba(16,24,39,0.08);letter-spacing:-.04em;
}
.product-card .thumb.thumb-mono .mono-tag{
  position:absolute;bottom:14px;left:20px;
  font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.16em;
  color:var(--text-mist);text-transform:uppercase;
}
.product-card .body{padding:22px 24px 24px;display:flex;flex-direction:column;flex-grow:1;}
.product-card h4{font-size:17px;margin:0 0 10px;font-weight:700;color:var(--text);}
.product-card p.tagline{color:var(--text-mist);font-size:14px;margin:0 0 18px;flex-grow:1;}
.spec-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px;}
.spec-chip{font-family:"IBM Plex Mono",monospace;font-size:11px;background:var(--teal-dim);color:var(--teal);border:1px solid rgba(13,148,136,.28);border-radius:6px;padding:4px 9px;white-space:nowrap;}
.product-card .detail-link{font-size:12.5px;color:var(--amber);display:inline-flex;align-items:center;gap:5px;font-family:"IBM Plex Mono",monospace;}
.product-card .detail-link:hover{color:#b45f04;}

.empty-note{padding:26px;border:1px dashed var(--line-strong);border-radius:12px;color:var(--text-dim);font-size:14px;text-align:center;}

.nav-links a.active{color:var(--teal);}


/* ---------- 修正版：保留明亮風格、再放大 20%、並維持右側間距 ---------- */

/* 1. 重新調整左右區塊的比例與間距，徹底拉開文字與圖片的距離 */
.hero-inner {
  grid-template-columns: 1.05fr 1fr; 
  gap: 80px; 
}

/* 2. 讓圖片區塊靠右對齊 */
.hero-visual {
  justify-content: flex-end; 
  padding-right: 0; 
}

/* 3. 解除原本的小方框限制，讓去背圖自由浮動 */
.hero-frame {
  max-width: 550px; 
  background: transparent; 
  border: none; 
  box-shadow: none; 
  padding: 0;
}

/* 4. 再次放大 20%！(從 1.2 提升至 1.44)，並維持向右推移 */
.hero-frame img {
  width: 100%;
  height: auto;
  /* 【關鍵調整】scale(1.44) 讓圖片變得更大；配合放大微調 translateX 確保不過度裁切 */
  transform: scale(1.44) translateX(calc(10% + 50px)); 
  transform-origin: center center; 
  filter: drop-shadow(0 25px 40px rgba(16, 24, 39, 0.12)); 
}

/* 5. 配合圖片變大與右移，微調背景裝飾圈與光暈的位置 */
.hero-ring, .hero-glow {
  left: calc(65% + 50px); 
}

/* 6. 手機版/平板的保護機制，避免圖片跑出版面外 */
@media (max-width: 900px) {
  .hero-inner {
    grid-template-columns: 1fr;
    gap: 24px; 
  }
  .hero-visual {
    justify-content: center;
  }
  .hero-frame {
    max-width: 400px;
  }
  .hero-frame img {
    /* 手機版稍微放大並置中顯示 */
    transform: scale(1.2) translateX(0); 
  }
  .hero-ring, .hero-glow {
    left: 50%;
  }
}