:root {
  color-scheme: light;
  --ink:#182951; --muted:#526585; --line:#dae4f7; --blue:#2553cc;
  font-family:Inter,"PingFang SC","Microsoft YaHei",sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scrollbar-gutter:stable; }
body { margin:0; color:var(--ink); background:#f3f6fd; }
[hidden] { display:none !important; }
a { color:inherit; text-decoration:none; }
button, summary { font:inherit; color:inherit; cursor:pointer; }
img { display:block; max-width:100%; }
:focus-visible { outline:3px solid #416bdd; outline-offset:3px; }
.masthead { border-bottom:1px solid var(--line); background:white; }
.mast-inner { min-height:68px; display:flex; align-items:center; justify-content:space-between; padding:0 25px; max-width:1250px; margin:auto; }
.brand,.share summary { display:flex; align-items:center; gap:8px; font-weight:750; }
.brand { font-size:19px; }
.share { position:relative; z-index:3; }
.share summary { padding:6px 12px; border:1px solid var(--line); border-radius:11px; list-style:none; font-size:13px; }
.share summary::-webkit-details-marker { display:none; }
.share img { width:24px; }
.popover { position:absolute; right:0; top:calc(100% + 8px); width:170px; padding:6px; border:1px solid var(--line); border-radius:12px; background:white; box-shadow:0 14px 40px #193a7522; }
.popover button { width:100%; border:0; background:none; padding:9px; text-align:left; border-radius:8px; }
.popover button:hover { background:#edf2ff; }
.shell { width:100%; min-width:0; max-width:1250px; margin:auto; padding:22px 25px 113px; }
.hero { display:flex; align-items:center; min-height:306px; position:relative; overflow:hidden; isolation:isolate; border:1px solid #d6e2fc; border-radius:25px; background:radial-gradient(ellipse at 77% 52%,#b9d0ff,transparent 61%),linear-gradient(105deg,#fbfdff,#e3ecff); }
.hero-copy { width:65%; z-index:1; padding:29px 0 33px 6%; }
.eyebrow { color:#2b53bc; font-size:14px; font-weight:800; letter-spacing:.16em; margin:0 0 10px; }
h1 { margin:0; line-height:1.08; letter-spacing:-.05em; font-size:clamp(33px,5.4vw,69px); overflow-wrap:anywhere; }
.hero-subtitle { color:var(--muted); margin:13px 0 22px; }
.primary { display:inline-flex; gap:14px; align-items:center; padding:11px 16px; border-radius:10px; background:var(--blue); color:white; font-size:13px; font-weight:750; box-shadow:0 8px 18px #2856bd30; }
.hero-object { position:absolute; right:2%; width:53%; height:112%; object-fit:contain; filter:drop-shadow(0 17px 24px #2b4ca746); }
.notification { display:flex; align-items:center; gap:11px; width:100%; padding:11px 15px; margin-top:14px; background:white; border:1px solid var(--line); border-radius:13px; font-size:13px; text-align:left; }
.notice-excerpt { flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--muted); }
.signal { width:8px; height:8px; border-radius:50%; background:#3d68de; box-shadow:0 0 0 4px #e6eeff; }
.hall-grid { margin-top:24px; display:grid; grid-template-columns:minmax(0,1fr) minmax(236px,25%); gap:20px; align-items:start; }
h2 { font-size:20px; margin:0 0 12px; }
.software-nav { display:flex; gap:8px; flex-wrap:wrap; }
.software-nav:empty { display:none; }
.software-nav a { background:white; border:1px solid var(--line); border-radius:100px; color:#234a9c; padding:8px 16px; font-size:13px; font-weight:700; }
.software-nav a:hover { background:#e9efff; }
.tool-group { scroll-margin-top:15px; margin-bottom:22px; }
.tool-group h3 { font-size:16px; margin:0 0 5px; }
.tool-group p { margin:0 0 10px; }
#entries { margin-top:22px; scroll-margin-top:16px; }
.entries { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:8px; }
.entry { min-height:68px; display:flex; align-items:center; gap:9px; padding:9px 11px; border:1px solid var(--line); border-radius:13px; background:white; }
.entry-icon { width:43px; height:43px; flex:none; object-fit:contain; border-radius:9px; }
.entry-copy { min-width:0; flex:1; display:grid; gap:4px; overflow-wrap:anywhere; }
.entry-copy strong { font-size:14px; }
.entry-copy span,.support-card small,.empty,.footer,.tool-group p { color:var(--muted); font-size:12px; }
.entry-arrow { color:var(--blue); }
.badge { background:#e9efff; color:#204ba9; border-radius:6px; padding:3px 5px; font-size:10px; }
.entry,.support-card { transition:transform .18s,box-shadow .18s; }
:is(a.channel,button.entry,.support-card):hover { transform:translateY(-2px); box-shadow:0 9px 20px #1c438515; }
.hall-side { display:grid; gap:11px; }
.featured,.support-card { border:1px solid var(--line); background:white; border-radius:16px; padding:12px; }
.section-head { display:flex; justify-content:space-between; align-items:center; margin-bottom:9px; }
.section-head h2 { margin:0; font-size:16px; }
.carousel-controls button,.dialog-heading button { border:1px solid var(--line); background:#f3f6fe; border-radius:7px; min-width:25px; height:25px; }
.feature-slide { overflow:hidden; border-radius:11px; background:#e9f0ff; }
.feature-slide img { width:100%; aspect-ratio:2.05; object-fit:cover; }
.feature-slide strong { display:block; padding:8px 10px; font-size:13px; }
.carousel-dots { display:flex; justify-content:center; gap:7px; margin-top:8px; }
.carousel-dots:empty { display:none; }
.carousel-dots button { width:8px; height:8px; border:0; border-radius:8px; background:#acbce3; padding:0; }
.carousel-dots [aria-current=true] { width:18px; background:var(--blue); }
.support-card { display:flex; align-items:center; gap:9px; width:100%; text-align:left; }
.support-card img { width:48px; }
.support-card span:nth-child(2) { flex:1; display:grid; gap:3px; }
.footer { margin-top:20px; }
.dock { position:fixed; bottom:max(12px,env(safe-area-inset-bottom)); left:50%; transform:translateX(-50%); z-index:2; display:grid; grid-template-columns:repeat(3,1fr); width:min(360px,calc(100% - 24px)); gap:5px; padding:5px; background:#fffffff2; border:1px solid var(--line); border-radius:18px; box-shadow:0 8px 34px #213c7829; backdrop-filter:blur(13px); }
.dock a,.dock button { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; min-height:54px; border:0; border-radius:12px; background:none; font-weight:700; font-size:12px; }
.dock .dock-home,.dock :is(a,button):hover { background:#edf2ff; color:#234eac; }
.dock img { width:29px; }
dialog { width:min(455px,calc(100% - 28px)); border:1px solid var(--line); border-radius:18px; padding:18px; color:var(--ink); box-shadow:0 20px 60px #19357045; }
dialog::backdrop { background:#15274d50; backdrop-filter:blur(4px); }
.notice-body { white-space:pre-wrap; overflow-wrap:anywhere; }
.dialog-heading,.service-row { display:flex; align-items:center; gap:8px; }
.dialog-heading { justify-content:space-between; margin-bottom:12px; }
.dialog-heading h2 { margin:0; }
.service-row { border-top:1px solid var(--line); padding:9px 0; }
.small-button { border:1px solid var(--line); border-radius:8px; background:#eef3ff; padding:5px 8px; font-size:12px; }
.toast { position:fixed; z-index:4; bottom:88px; left:50%; transform:translateX(-50%); background:var(--ink); color:white; border-radius:10px; padding:8px 14px; font-size:13px; }
@media(max-width:710px) {
  .mast-inner,.shell { padding-left:14px; padding-right:14px; }
  .mast-inner { min-height:58px; }
  .shell { padding-top:13px; }
  .hero { min-height:220px; border-radius:18px; }
  .hero-copy { width:63%; }
  .hero-subtitle { font-size:13px; }
  .hero-object { width:74%; right:-13%; }
  .hall-grid { grid-template-columns:1fr; gap:15px; }
}
.entry-arrow { font-size:12px; font-weight:700; white-space:nowrap; }
@media(max-width:540px) {
  .entry { flex-direction:column; align-items:flex-start; min-height:139px; gap:6px; }
  .entry .entry-copy { width:100%; }
  .entry-icon { width:36px; height:36px; }
  .entry-arrow { margin-top:auto; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } * { transition:none !important; } }

.hall-grid { display:block; }
.software-nav { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); padding:5px; gap:4px; border-radius:14px; border:1px solid #d4e1f8; background:#e7eefb; }
.software-nav button { min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; border:0; border-radius:10px; padding:11px 18px; background:transparent; color:#405885; font-size:14px; font-weight:750; }
.software-nav button[aria-selected=true] { background:#214499; color:#fff; box-shadow:0 3px 9px #26468730; }
#entries { margin-top:14px; }
.entries { gap:12px; }
.entry { display:grid; position:relative; min-width:0; min-height:116px; grid-template-columns:54px minmax(0,1fr); gap:8px 12px; padding:15px 17px; overflow:hidden; }
.entry .entry-icon { width:54px; height:54px; }
.entry-copy { padding-right:37px; }
.entry .visit { grid-column:2; justify-self:start; align-self:end; border-radius:9px; width:min(105px,100%); }
.visit img { width:100%; height:auto; }
.visit:hover { filter:brightness(1.12); }
.corner { position:absolute; top:0; right:0; width:57px; max-height:46px; object-fit:contain; object-position:top right; }
.dock a[aria-current=page] { background:#e4edff; color:#183c9b; }
.trial-head { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-bottom:13px; }
.trial-head h1 { font-size:24px; }
.trial-head a { color:#2453b4; font-size:13px; font-weight:700; }
.trial iframe { display:block; width:100%; height:calc(100dvh - 192px); min-height:420px; border:1px solid var(--line); border-radius:16px; background:white; }
@media(max-width:540px) {
  .entries { gap:8px; }
  .entry { min-height:151px; grid-template-columns:minmax(0,1fr); padding:10px; }
  .entry .entry-icon { width:44px; height:44px; }
  .entry .entry-copy { padding-right:0; }
  .entry .visit { grid-column:1; width:min(95px,100%); }
  .corner { width:46px; }
}

.banner { position:relative; width:100%; max-width:860px; margin-inline:auto; overflow:hidden; border-radius:19px; background:#e4ecff; border:1px solid var(--line); }
.banner-slide img { display:block; width:100%; height:auto; }
.banner-dots { position:absolute; left:50%; bottom:9px; transform:translateX(-50%); display:flex; gap:7px; padding:6px 9px; background:#14264d68; border-radius:999px; }
.banner-dots button { width:9px; height:9px; border:0; border-radius:999px; padding:0; background:#ffffff84; }
.banner-dots button[aria-current=true] { width:19px; background:#fff; }
.notice-excerpt { display:block; text-overflow:clip; }
.notice-motion { display:inline-flex; min-width:200%; width:max-content; }
.notice-motion > span { flex:1 0 auto; padding-inline-end:56px; }
.signal { flex:none; animation:signal-pulse 2s ease-in-out infinite; }
@keyframes signal-pulse { 0%,100% { box-shadow:0 0 0 2px #4d77ec44; opacity:.7; } 50% { box-shadow:0 0 0 6px #4d77ec18; opacity:1; } }
@media(prefers-reduced-motion:reduce) { .signal { animation:none; } }

/* Compact directory and full viewport trial page */
.mast-inner { min-height:53px; }
.brand { gap:9px; font-size:17px; }
.brand img { width:35px; height:35px; object-fit:contain; border-radius:8px; }
.shell { padding-top:12px; padding-bottom:82px; }
.notification { margin-top:8px; padding:8px 12px; }
.notice-motion { animation:notice-flow var(--notice-duration, 12s) linear infinite; }
@keyframes notice-flow { to { transform:translateX(-50%); } }
.hall-grid { margin-top:10px; }
#entries { margin-top:8px; }
.hall-main, #entries, .tool-group, .entries { min-width:0; max-width:100%; }
.entries { --card-logo-size:52.5px; --card-height:164px; gap:8px; grid-auto-rows:var(--card-height); }
.software-nav { gap:5px; padding:4px 5px 7px; background:linear-gradient(#dce8fb,#eef4ff); box-shadow:inset 0 2px 4px #94afd74f; }
.software-nav button {
  min-width:0;
  padding:7px 10px;
  color:#244071;
  border:1px solid #a9bde1;
  border-radius:8px;
  background:linear-gradient(180deg,#fff,#edf4ff 44%,#dce8fc);
  box-shadow:inset 0 1px 0 #fff, inset 0 -1px 0 #c5d7f3, 0 3px 0 #9ab1d6;
  transition:transform .15s, box-shadow .15s;
}
.software-nav button[aria-selected=true] {
  color:#fff;
  border-color:#244fac;
  background:linear-gradient(180deg,#4d79dc,#284fb3 49%,#173682);
  box-shadow:inset 0 1px 0 #9dc6ff, inset 0 -1px 1px #142960, 0 3px 0 #142d70;
}
.software-nav button:active { transform:translateY(2px); box-shadow:inset 0 1px 3px #15295273,0 1px 0 #526b9a; }
.entry { display:grid; height:var(--card-height); min-height:0; grid-template-columns:minmax(0,1fr); grid-template-rows:var(--card-logo-size) minmax(0,1fr) 31px; align-items:start; justify-items:center; text-align:center; gap:3px; padding:7px 7px 5px; border-radius:12px; }
.entry .entry-icon { width:var(--card-logo-size); height:var(--card-logo-size); justify-self:center; object-fit:contain; }
.entry .entry-copy { padding:0; width:100%; grid-template-columns:minmax(0,1fr); grid-auto-rows:max-content; align-content:start; gap:2px; }
.entry .entry-copy strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; line-height:1.18; }
.entry .entry-copy span { display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; overflow:hidden; line-height:1.2; }
.entry .entry-copy span:empty { display:none; }
.entry .visit { grid-column:1; justify-self:stretch; width:100%; height:32px; overflow:hidden; }
.entry .visit img { width:100%; height:100%; object-fit:fill; }
.corner { width:48px; }
.dock { bottom:max(7px,env(safe-area-inset-bottom)); padding:4px; }
.dock a { min-width:0; min-height:47px; font-size:10px; gap:0; }
.dock img { width:32px; height:32px; object-fit:contain; }
body[data-view=trial] { overflow:hidden; }
body[data-view=trial] .masthead { display:none; }
body[data-view=trial] .dock { top:max(6px,env(safe-area-inset-top)); bottom:auto; right:8px; left:auto; transform:none; width:min(256px,57vw); }
.trial { position:fixed; inset:0; display:grid; grid-template-rows:58px minmax(0,1fr); background:white; }
.trial-head { padding:0 8px; margin:0; justify-content:flex-start; gap:8px; padding-right:min(270px,59vw); }
.trial-head a { font-size:12px; }
.trial-back { display:inline-flex; align-items:center; padding:6px 8px; background:#eaf0ff; border-radius:8px; white-space:nowrap; }
.trial iframe { height:100%; min-height:0; border:0; border-radius:0; }
.service-page { max-width:680px; }
.service-heading { display:flex; align-items:center; gap:9px; padding:10px 0; }
.service-heading img { width:44px; height:44px; object-fit:contain; }
.service-heading h1 { margin:0; font-size:23px; letter-spacing:0; }
.service-list { border:1px solid var(--line); background:#fff; border-radius:13px; padding:0 12px; }
.service-list .service-row:first-child { border-top:0; }
.service-download { background:#244fb6; border-color:#244fb6; color:#fff; }
@media(max-width:480px) {
  .trial-head a:not(.trial-back) { width:45px; line-height:1.1; }
  .shell { padding-left:9px; padding-right:9px; }
  .entry .entry-copy strong { font-size:13px; }
}

.entry .visit {
  display:grid;
  grid-template-columns:minmax(0,1fr) min(87px,72%) minmax(0,1fr);
  height:31px;
  width:100%;
  border-radius:9px;
}
.entry .visit img { width:100%; min-width:0; max-width:100%; height:31px; object-fit:fill; }
body[data-view=trial] .dock { inset:auto 0 max(4px,env(safe-area-inset-bottom)); margin-inline:auto; width:min(360px,calc(100% - 16px)); }
.trial { grid-template-rows:43px minmax(0,1fr); padding-bottom:calc(56px + env(safe-area-inset-bottom)); }
.trial-head { padding:0 9px; justify-content:space-between; }
@media(max-width:480px) { .trial-head a:not(.trial-back) { width:auto; } }
