:root{--purple:#9261dd;--ink:#333;--muted:#888}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:"Microsoft YaHei","PingFang SC",Arial,sans-serif;background:#fff}a{color:inherit;text-decoration:none}button,input,textarea{font:inherit}button,a,input,textarea{outline-offset:4px}button{cursor:pointer}.site-header{height:86px;background:#201e23;color:#fff}.nav-shell{max-width:1120px;height:100%;margin:auto;display:flex;align-items:center;justify-content:space-between;padding:0 20px}.logo{width:200px;max-height:72px;object-fit:contain}.site-header nav{display:flex;gap:42px;align-items:center;height:100%}.site-header nav a{font-size:16px;font-weight:600;position:relative;height:100%;display:flex;align-items:center}.site-header nav a.active:after,.site-header nav a:hover:after{content:"";position:absolute;bottom:18px;left:0;right:0;height:2px;background:var(--purple)}.menu-toggle{display:none;background:none;border:0;color:white;font-size:24px}.home-hero{width:100%;background:#452a80;line-height:0}.home-hero>img{width:100%;display:block;aspect-ratio:1920/650;object-fit:cover}.container{max-width:1200px;margin:auto;padding:0 16px}.section-title{text-align:center;padding-top:32px}.section-title h2{font-size:25px;letter-spacing:4px;margin:0 0 12px;font-weight:600}.title-rule{display:flex;align-items:center;justify-content:center;gap:20px}.title-rule:before,.title-rule:after{content:"";width:70px;height:2px;background:#f0f0f0}.title-rule i{width:20px;height:3px;background:var(--purple)}.section-title>p{color:#555;font-size:15px;letter-spacing:3px;margin:60px 0 16px}.culture-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.culture-grid img{width:100%;aspect-ratio:380/253;object-fit:cover;display:block}.culture-grid p{text-align:center;font-weight:600;font-size:18px;line-height:1.6;white-space:normal;margin:18px 0}.environment{padding-top:56px}.environment .section-title>p{margin-top:32px;letter-spacing:0}.environment-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:28px}.environment-grid img{width:100%;aspect-ratio:380/253;object-fit:cover;display:block}.home-news{padding-top:58px;padding-bottom:68px}.home-news .section-title>p,.news-page .section-title>p{margin-top:28px;letter-spacing:3px}.news-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 28px;margin-top:32px}.news-card{border:1px solid #eee;background:white;transition:box-shadow .2s,transform .2s}.news-card:hover{box-shadow:0 8px 30px #20102b0d;transform:translateY(-3px)}.news-cover{display:block;overflow:hidden;height:215px;background:#f4f1f8}.news-cover img{width:100%;height:100%;object-fit:cover;transition:transform .35s}.news-card:hover .news-cover img{transform:scale(1.035)}.news-card-content{padding:22px}.news-card time{font-size:13px;color:var(--muted)}.news-card h3{font-size:17px;line-height:1.65;font-weight:500;margin:10px 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;min-height:56px}.news-card p{font-size:14px;color:#888;line-height:1.9;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;min-height:80px}.read-more{font-size:13px;color:#777;display:flex;justify-content:space-between;margin-top:20px}.read-more:hover{color:var(--purple)}.section-more{text-align:center;margin-top:40px}.outline-button{display:inline-block;border:1px solid #d9d4df;padding:12px 28px;font-size:14px;transition:.2s}.outline-button:hover{border-color:var(--purple);color:var(--purple)}footer{background:#201e23;color:#a6a1ac;padding:30px 16px;font-size:13px}.footer-inner{max-width:1168px;margin:auto}.footer-top{display:flex;justify-content:space-between;align-items:center;padding-bottom:24px;border-bottom:1px solid #ffffff15}.footer-phone{color:#eee;font-size:20px}.footer-top nav{display:flex;gap:28px}footer p{text-align:center;margin:24px 0 0;font-size:12px}footer p a{margin-left:28px}.page-banner{height:290px;overflow:hidden;background:#f5f3f8}.page-banner img{width:100%;height:100%;object-fit:cover}.about,.contact,.jobs{padding-top:18px;padding-bottom:80px}.about .section-title>p,.jobs .section-title>p,.contact .section-title>p{margin-top:24px}.about-content{max-width:1000px;margin:42px auto;font-size:16px;line-height:2.1;text-align:justify}.about-content p{margin:0 0 20px}.about-content img{max-width:100%;height:auto}.about-divider{height:1px;background:#eee;margin:36px 0}.news-page{padding-top:28px;padding-bottom:70px}.pagination{display:flex;gap:10px;justify-content:center;margin-top:40px}.pagination a{border:1px solid #ddd;padding:8px 14px;font-size:14px}.pagination a.active{background:var(--purple);border-color:var(--purple);color:white}.article-shell{max-width:1000px;padding-top:34px;padding-bottom:60px}.breadcrumb{font-size:13px;color:#888;padding-bottom:30px}.breadcrumb a:hover{color:var(--purple)}.article-shell h1{font-size:28px;line-height:1.6;text-align:center;max-width:900px;margin:8px auto 14px;font-weight:500}.article-meta{text-align:center;color:#999;font-size:13px;border-bottom:1px solid #eee;padding:0 0 30px;margin-bottom:34px}.article-content{font-size:16px;line-height:2;color:#444;overflow-wrap:anywhere}.article-content p{margin:16px 0}.article-content img{display:block;max-width:100%;height:auto;margin:26px auto}.article-content h2,.article-content h3{line-height:1.6}.article-content a{color:#8052bf;text-decoration:underline}.article-content table{max-width:100%;border-collapse:collapse}.article-content td,.article-content th{border:1px solid #ddd;padding:8px}.article-back{margin-top:40px;text-align:center}.intro-text{text-align:center;color:#888;margin:24px 0 36px}.job-list{max-width:1000px;margin:auto}.job-list>a{display:flex;align-items:center;justify-content:space-between;gap:30px;border-top:1px solid #e8e8e8;padding:28px 8px}.job-list h3{font-weight:500;font-size:20px;margin:0 0 10px}.job-list p{font-size:14px;line-height:1.8;color:#888;margin:0;max-width:730px}.job-list span{white-space:nowrap;color:#8857c8;font-size:14px}.job-email{text-align:center;margin:40px 0;color:#777}.job-email a{color:#8857c8}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:90px;margin-top:45px}.contact form{display:grid;gap:18px}.contact label{display:grid;gap:8px;color:#777;font-size:14px}.contact input,.contact textarea{border:1px solid #ddd;background:#fafafa;padding:12px;width:100%;border-radius:0;resize:vertical}.contact input:focus,.contact textarea:focus{outline:1px solid var(--purple)}.primary-button{background:var(--purple);color:#fff;border:0;padding:13px 24px;justify-self:start}.contact-info h3{font-size:22px;font-weight:500;margin-top:0}.contact-info p{font-size:15px;line-height:2;margin:22px 0}.contact-status,#contact-status{font-size:13px;color:#999;margin:0}.image-placeholder{display:grid;place-items:center;width:100%;height:100%;background:linear-gradient(135deg,#f3eff9,#e6dfef);color:#9b86b5;letter-spacing:4px}.preview-bar{background:#f4e9c7;color:#6e5412;text-align:center;padding:10px;font-size:14px}.preview-bar a{margin-left:20px;text-decoration:underline}.not-found{min-height:50vh;padding-top:80px}.not-found a{color:var(--purple)}
@media(min-width:1600px){.home-hero>img{aspect-ratio:1920/650}.section-title{padding-top:38px}}
@media(max-width:800px){.site-header{height:72px}.logo{width:165px}.menu-toggle{display:block}.site-header nav{display:none;position:absolute;left:0;right:0;top:72px;height:auto;background:#201e23;z-index:20;flex-direction:column;gap:0;padding:12px}.site-header nav.open{display:flex}.site-header nav a{padding:14px;height:auto}.site-header nav a.active:after{bottom:5px}.home-hero>img{min-height:170px;object-fit:cover}.section-title h2{font-size:22px}.section-title>p{margin-top:28px}.culture-grid{gap:12px}.culture-grid p{font-size:13px}.environment{padding-top:28px}.environment-grid{grid-template-columns:repeat(2,1fr);gap:12px}.news-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.news-cover{height:185px}.footer-top{align-items:flex-start;gap:24px;flex-direction:column}.footer-top nav{gap:18px;flex-wrap:wrap}footer p{line-height:2}footer p a{display:block;margin-left:0}.contact-grid{grid-template-columns:1fr;gap:40px}.page-banner{height:190px}.article-shell h1{font-size:23px}.job-list>a{align-items:flex-start;flex-direction:column;gap:14px}.job-list p{font-size:13px}.home-news{padding-top:35px}.about-content{font-size:15px}.container{padding-left:20px;padding-right:20px}}
@media(max-width:480px){.news-grid{grid-template-columns:1fr}.news-cover{height:225px}.culture-grid{grid-template-columns:1fr;gap:18px}.culture-grid img{max-height:260px;object-fit:cover}.culture-grid p{font-size:16px}.environment-grid{grid-template-columns:1fr}.article-content{font-size:15px}.section-title>p{font-size:13px}.home-hero>img{min-height:145px}.article-shell{padding-left:18px;padding-right:18px}.page-banner{height:140px}}

/* About page: original five-poster culture gallery. */
.about-culture{background:#f7f7f7;padding:18px 0 52px;overflow:hidden}
.about-culture .section-title h2{letter-spacing:0;font-size:30px}
.about-culture .section-title>p{margin:28px 0 24px;letter-spacing:5px;color:#777}
.culture-stage{height:480px;position:relative;--near:clamp(170px,29vw,350px);--far:clamp(265px,42vw,500px)}
.culture-poster{position:absolute;left:50%;top:50%;width:235px;height:420px;border:0;padding:0;background:transparent;transform:translate(-50%,-50%);transition:transform .55s ease;z-index:3}
.culture-poster img{display:block;width:100%;height:100%;object-fit:contain}
.culture-poster[data-offset="-1"]{transform:translate(-50%,-50%) translateX(calc(-1 * var(--near))) scale(.6) perspective(1000px) rotateY(38deg);z-index:2}
.culture-poster[data-offset="1"]{transform:translate(-50%,-50%) translateX(var(--near)) scale(.6) perspective(1000px) rotateY(-38deg);z-index:2}
.culture-poster[data-offset="-2"]{transform:translate(-50%,-50%) translateX(calc(-1 * var(--far))) scale(.42) perspective(1000px) rotateY(55deg);z-index:1}
.culture-poster[data-offset="2"]{transform:translate(-50%,-50%) translateX(var(--far)) scale(.42) perspective(1000px) rotateY(-55deg);z-index:1}
.culture-poster:focus-visible{outline:3px solid #9261dd;outline-offset:5px}
.culture-dots{display:flex;gap:10px;justify-content:center;margin:20px 0 0}
.culture-dots button{position:relative;width:15px;height:15px;padding:0;border:0;border-radius:50%;background:#c9c9c9}
.culture-dots button:before{content:"";position:absolute;inset:-8px}
.culture-dots button[aria-pressed="true"]{background:#9254e9}
.culture-status{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
@media(max-width:600px){.about-culture{padding-bottom:40px}.about-culture .section-title h2{font-size:25px}.culture-stage{height:350px;--near:135px;--far:230px}.culture-poster{width:170px;height:304px}.about-culture .section-title>p{font-size:12px;letter-spacing:3px}.culture-dots{margin-top:10px}}
@media(prefers-reduced-motion:reduce){.culture-poster{transition:none}}

/* Preserve original article image rows and intrinsic dimensions. */
.article-shell{max-width:1200px}.article-content img{display:inline-block;max-width:100%;height:auto!important;margin:0;vertical-align:middle}.article-content p,.article-content div,.article-content table{max-width:100%}

/* Original article defaults; explicit paragraph styles still take precedence. */
.article-content{font-family:"Times New Roman",SimSun,serif;line-height:1.5;text-align:center;color:#111}.article-content p{margin:5px 0}

/* Company news banner: preserve the complete original 1920 x 650 image. */
.news-banner{width:100%;line-height:0;background:#eee}.news-banner img{display:block;width:100%;height:auto}

.contact-kicker {
  margin: 0;
  text-align: center;
  font-size: 15px;
  letter-spacing: 4px;
}
.contact .contact-grid {
  grid-template-columns: minmax(0, .88fr) minmax(0, 1fr);
  gap: 40px;
  margin-top: 42px;
}
.contact-enquiry {
  align-self: start;
  padding: 18px 39px 8px 0;
  border-right: 1px solid #d9d9d9;
}
.contact-enquiry h1,
.contact-info h2 {
  margin: 0;
  font-weight: 400;
}
.contact-enquiry h1 { font-size: 30px; }
.contact-info h2 { font-size: 26px; }
.contact-info address { font-style: normal; }
.contact-info address p {
  display: flex;
  gap: 9px;
  margin: 8px 0;
  line-height: 1.55;
  overflow-wrap: anywhere;
}
.contact-info address span { flex: 0 0 14px; }
.contact #contact-form {
  margin: 38px 0 0 10px;
  gap: 17px;
}
.contact-fields {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 20px 18px;
}
.contact #contact-form input:not([type="file"]),
.contact #contact-form textarea {
  min-width: 0;
  padding: 9px 6px;
  background: #fff;
  border: 1px solid #ccc;
  box-shadow: inset 0 1px 2px #0001;
  font-size: 14px;
}
.contact #contact-form input:not([type="file"]) { height: 40px; }
.contact #contact-form textarea { min-height: 90px; }
.contact-attachment,
.contact-captcha {
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0;
}
.contact-attachment { margin: 6px 0; }
.contact #contact-form .contact-file {
  position: relative;
  display: inline-block;
  flex-shrink: 0;
  padding: 5px 14px;
  border: 1px solid #d5d5d5;
  border-radius: 3px;
  background: #f1f1f1;
  color: #555;
  cursor: pointer;
}
.contact-file input {
  position: absolute;
  inset: 0;
  opacity: 0;
  cursor: pointer;
}
.contact-file:focus-within { outline: 2px solid #3688e9; }
#contact-filename {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  font-size: 13px;
}
.contact-captcha input { max-width: 234px; }
.contact-captcha button {
  flex: 0 0 auto;
  padding: 0;
  border: 0;
  background: none;
  cursor: pointer;
}
.contact-captcha img { display: block; }
.contact-submit {
  justify-self: start;
  width: 130px;
  min-height: 42px;
  margin-top: 10px;
  border: 0;
  border-radius: 4px;
  background: #3686e7;
  color: white;
  cursor: pointer;
}
.contact-submit:disabled { opacity: .65; cursor: wait; }
#contact-status { margin: 0; }
.contact-map {
  margin-top: 24px;
  padding-top: 20px;
  border-top: 1px solid #ddd;
}
.contact-map figure {
  margin: 0;
}
.contact-map-frame,
.contact-map-viewport {
  position: relative;
}
.contact-map-viewport {
  aspect-ratio: 752 / 520;
  overflow: hidden;
  background: #edf1f6;
}
.contact-map-viewport[data-interactive] {
  touch-action: none;
  cursor: grab;
}
.contact-map-viewport[data-dragging] { cursor: grabbing; }
.contact-map-viewport:focus-visible {
  outline: 2px solid #3686e7;
  outline-offset: 2px;
}
.contact-map-viewport img {
  position: absolute;
  top: 50%;
  left: 50%;
  display: block;
  width: calc(100% * 1120 / 752);
  max-width: none;
  height: auto;
  transform: translate(-50%, -50%);
  user-select: none;
  pointer-events: none;
}
.contact-map-controls {
  position: absolute;
  top: 10px;
  left: 10px;
  display: grid;
  border: 1px solid #c5d0db;
  border-radius: 4px;
  overflow: hidden;
  box-shadow: 0 1px 4px #24364926;
}
.contact-map-controls[hidden] { display: none; }
.contact-map-controls button {
  width: 34px;
  height: 34px;
  padding: 0;
  border: 0;
  background: #fff;
  color: #28558a;
  font: 600 20px/1 sans-serif;
  cursor: pointer;
}
.contact-map-controls button + button { border-top: 1px solid #dce3eb; }
.contact-map-controls button:hover { background: #edf5fd; }
.contact-map-controls button:focus-visible { outline: 2px solid #3686e7; outline-offset: -2px; }
.contact-map-controls button:disabled { color: #a6b1bd; cursor: default; }
.contact-map figcaption {
  margin-top: 8px;
  color: #555;
  font-size: 12px;
  text-align: right;
}
.contact-map figcaption a {
  color: inherit;
  text-decoration: underline;
}
.contact-map-link { margin-left: 12px; }
@media (max-width: 780px) {
  .contact .contact-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; }
  .contact-enquiry { padding: 0; border-right: 0; }
  .contact #contact-form { margin-left: 0; margin-top: 22px; }
}

/* Recruitment details */
.article-shell.job-detail { max-width: 960px; }
.job-detail > article {
  background: #fff;
  border: 1px solid #eee8f3;
  border-radius: 14px;
  padding: clamp(18px, 5vw, 56px);
}
.job-detail h1 {
  margin: 0 0 12px;
  font-size: clamp(22px, 3.5vw, 34px);
  line-height: 1.4;
  font-weight: 700;
  text-align: left;
}
.job-detail .article-meta { text-align: left; padding-bottom: 20px; margin-bottom: 24px; }
.job-detail .article-content {
  color: #3d3548;
  font-family: inherit;
  font-size: 16px;
  line-height: 1.85;
  text-align: left;
}
.job-detail .article-content p { margin: 0 0 0.8em; }
.job-detail .article-content h2,
.job-detail .article-content h3,
.job-detail .article-content h4 {
  margin: 1.5em 0 0.6em;
  color: #39294d;
  line-height: 1.5;
}
.job-detail .article-content h2 {
  padding-left: 0.65em;
  border-left: 3px solid var(--purple);
  font-size: 1.3em;
}
.job-detail .article-content ul,
.job-detail .article-content ol { padding-inline-start: 1.6em; margin: 0 0 1em; }
.job-detail .article-content li + li { margin-top: 0.3em; }
.job-detail .article-back { margin-top: 24px; text-align: left; }
@media (max-width: 480px) {
  .job-detail .article-content { font-size: 15px; }
  .job-detail .article-meta { padding-bottom: 14px; margin-bottom: 16px; }
}
