
:root{--paper:#f4f2eb;--ink:#20211d;--muted:#64665e;--line:#c9cbc0;--accent:#f2fb7a;--navy:#142640;--heading:Futura,"Futura PT","Century Gothic","Avenir Next",Arial,sans-serif;--body:Helvetica,"Helvetica Neue",Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.65;letter-spacing:-.018em}a{color:inherit;text-decoration-thickness:1px;text-underline-offset:5px}a:hover{color:#596218}a:focus-visible{outline:2px solid var(--ink);outline-offset:6px}.skip{position:absolute;left:24px;top:-100px;background:var(--accent);padding:10px;z-index:10}.skip:focus{top:10px}.site-header,main,footer{max-width:1600px;margin:auto;padding-left:5vw;padding-right:5vw}.site-header{display:flex;align-items:center;justify-content:space-between;gap:24px;padding-top:28px;padding-bottom:28px;border-bottom:1px solid var(--line)}.wordmark{font-family:var(--heading);font-weight:800;font-size:clamp(27px,3vw,46px);letter-spacing:-.065em;line-height:1;text-decoration:none}nav{display:flex;gap:30px;font-size:15px}nav a{text-decoration:none}nav a[aria-current]{text-decoration:underline;text-decoration-thickness:2px}h1,h2,h3,.display{font-family:var(--heading);font-weight:500;letter-spacing:-.055em;line-height:1.06;margin:0 0 28px}h1,.display{font-size:clamp(52px,8.6vw,132px)}h2{font-size:clamp(32px,4vw,60px)}h3{font-size:clamp(26px,2.7vw,40px);line-height:1.13}p{margin:0 0 23px}strong{font-weight:600}.eyebrow{font-size:12px;letter-spacing:.025em;font-weight:600;line-height:1.5}.home-editorial>.eyebrow{margin:30px 0 22px}.photo{margin:0;background:#e4e5db;position:relative;overflow:hidden;aspect-ratio:16/10}.photo img{display:block;width:100%;height:100%;object-fit:cover}.photo figcaption{display:none}.photo.missing img{display:none}.photo.missing figcaption{display:flex;position:absolute;inset:0;align-items:center;justify-content:center;text-align:center;padding:25px;color:#5c6051;font-family:var(--heading);font-size:clamp(18px,2.5vw,34px);letter-spacing:-.035em}.wide{width:100%;aspect-ratio:16/9}.home-editorial h1,.home-editorial .display{margin:35px 0 40px}.intro{max-width:790px;margin:0 0 110px auto}.lead{font-size:clamp(24px,2.7vw,38px);line-height:1.3;letter-spacing:-.035em}.text-link{display:inline-block;font-size:15px;font-weight:500;margin:12px 0}.text-link span{margin-left:10px}.section-grid{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:7vw;padding:72px 0;border-top:1px solid var(--line)}.square{aspect-ratio:1}.portrait{aspect-ratio:4/5}.playlist h2{font-size:clamp(40px,5.5vw,80px)}.platforms{border-top:1px solid var(--line);padding:40px 0 65px}.socials{display:flex;gap:24px;flex-wrap:wrap}.page-intro{padding:70px 0 65px;max-width:950px}.page-intro h1{margin-bottom:38px}.page-intro p{max-width:770px}.text-section{display:grid;grid-template-columns:1fr 1.2fr;gap:8vw;border-top:1px solid var(--line);padding:65px 0}.prose{max-width:740px}.prose h3{margin-top:30px}.prose h3:first-child{margin-top:0}.prose ul{padding-left:22px;margin:0 0 30px}.prose li{padding:3px 0}.project{border-top:1px solid var(--line);padding:55px 0 75px}.project-heading{margin-bottom:32px}.project-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:5vw;align-items:start}.video{position:relative;aspect-ratio:16/9;background:#242722}.video iframe{position:absolute;width:100%;height:100%;border:0}.project-note{padding:45px;background:var(--accent);min-height:240px;display:flex;flex-direction:column;justify-content:space-between}.project-note>p:last-child{font-family:var(--heading);font-size:38px;line-height:1.12;letter-spacing:-.04em;margin:0}.closing{border-top:1px solid var(--line);padding:70px 0;max-width:800px}.origin{padding:65px 0 85px;margin:auto}.origin strong{font-family:var(--heading);font-size:32px;line-height:1.2;display:block}.profile{align-items:start}.profile h2{font-size:clamp(30px,3.5vw,52px)}.profile-meta{color:var(--muted)}footer{border-top:1px solid var(--line);padding-top:45px;padding-bottom:30px}.footer-top,.footer-bottom{display:flex;justify-content:space-between;align-items:center;gap:30px}.footer-bottom{margin-top:40px;font-size:13px}.footer-bottom p{margin:0}.footer-bottom .text-link{font-size:13px}.footer-top>a:last-child{font-size:clamp(18px,2vw,28px)}@media(min-width:1800px){.site-header,main,footer{padding-left:80px;padding-right:80px}}@media(max-width:700px){body{font-size:16px}.site-header{align-items:flex-start;flex-direction:column;padding-top:24px;padding-bottom:20px;gap:22px}nav{width:100%;justify-content:space-between;gap:16px}.home-editorial>.eyebrow{font-size:10px;max-width:280px}.home-editorial h1,.home-editorial .display{margin:25px 0 30px}.wide{aspect-ratio:4/3}.intro{margin-bottom:65px}.section-grid,.text-section,.project-grid{grid-template-columns:1fr;gap:30px}.section-grid,.text-section{padding:45px 0}.page-intro{padding:45px 0}.project{padding:40px 0}.footer-top,.footer-bottom{align-items:flex-start;flex-direction:column;gap:24px}.footer-bottom{margin-top:30px}.socials{gap:18px}.origin{padding:40px 0 50px}.profile .portrait{max-width:480px;width:100%}.project-note{min-height:200px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}


/* Layout and colour are scoped to Services. */
.svc-page{--svc-lime:#f2fb7a;--svc-navy:#142640}
.svc-page main{padding-top:24px}
.svc-page main h2{font-size:clamp(32px,4vw,60px)}
.svc-hero{display:grid;grid-template-columns:1fr 1fr;gap:7vw;padding:45px 0 80px}
.svc-hero h1{font-size:clamp(64px,8vw,125px);max-width:550px}
.svc-statement{font-family:var(--heading);font-size:clamp(28px,3vw,44px);line-height:1.15;letter-spacing:-.04em}
.svc-intro-copy{padding-top:10px}
.svc-service{border-top:1px solid var(--line);padding:55px 0 65px}
.svc-service .eyebrow{display:inline-block;background:var(--svc-lime);padding:5px 10px;margin-bottom:24px}
.svc-service-layout{display:grid;grid-template-columns:1fr 1fr;gap:7vw;margin-top:36px}
.svc-description>p:first-child{font-family:var(--heading);font-size:clamp(28px,3vw,42px);line-height:1.15;letter-spacing:-.04em}
.svc-description strong{font-weight:500}
.svc-includes{list-style:none;margin:0;padding:0}
.svc-includes li{padding:12px 0;border-top:1px solid var(--line);line-height:1.5}
.svc-aside{display:grid;grid-template-columns:1fr 1.6fr;gap:5vw;border-left:4px solid var(--svc-lime);padding:10px 0 10px 26px;margin-top:40px}
.svc-aside p:first-child{font-family:var(--heading);font-size:clamp(24px,2.5vw,34px);line-height:1.2;letter-spacing:-.03em}
.svc-aside p:last-child{margin-bottom:0}
.svc-service-2 .svc-service-layout{grid-template-columns:1.2fr 1fr}
.svc-service-2 .svc-aside{display:block;max-width:850px}
.svc-service-2 .svc-aside p:first-child{font-size:clamp(28px,3vw,44px)}
.svc-service-3 .svc-aside{display:block;max-width:850px}
.svc-service-3 .svc-aside p:first-child{font:inherit;margin:0}
.svc-timing,.svc-ecosystem{border-top:1px solid var(--line);padding:65px 0}
.svc-timing table{width:100%;border-collapse:collapse;margin-top:35px;text-align:left;table-layout:fixed}
.svc-timing th,.svc-timing td{padding:24px;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:break-word}
.svc-timing thead{background:var(--svc-lime);font-size:14px}
.svc-timing th:first-child{width:34%}
.svc-timing tbody th{font-family:var(--heading);font-size:clamp(21px,2.2vw,30px);font-weight:500;line-height:1.2;letter-spacing:-.035em}
.svc-timing td strong{font-weight:600}
.svc-timing-note{padding:24px 0 0;max-width:760px}
.svc-timing-note p{margin:0}
.svc-platform-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 6vw;margin:35px 0}
.svc-platform-grid>div{padding:25px 0;border-top:1px solid var(--line)}
.svc-platform-grid dt{font-family:var(--heading);font-size:clamp(25px,2.7vw,38px);line-height:1.2;letter-spacing:-.04em;margin-bottom:15px}
.svc-platform-grid dd{margin:0}
.svc-timing>.text-link{background:var(--svc-lime);color:var(--ink);padding:14px 22px;text-decoration:none}
.svc-timing>.text-link:hover{text-decoration:underline}
.svc-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}
@media(max-width:750px){
 .svc-hero,.svc-service-layout,.svc-service-2 .svc-service-layout,.svc-aside,.svc-platform-grid{grid-template-columns:1fr}
 .svc-hero{gap:10px;padding:25px 0 40px}
 .svc-hero h1{margin-bottom:16px}
 .svc-service,.svc-timing,.svc-ecosystem{padding:40px 0}
 .svc-service-layout{gap:20px;margin-top:25px}
 .svc-aside{gap:0;margin-top:25px;padding-left:18px}
 .svc-timing th,.svc-timing td{padding:18px 12px}
 .svc-timing th:first-child{width:38%}
 .svc-timing tbody th{font-size:20px}
}

/* Clickable service map and return-to-top control. */
.svc-page{--svc-lime:#f2fb7a;--svc-navy:#142640}
.svc-map{padding:55px 0 70px;border-top:1px solid var(--line)}
.svc-map-intro{max-width:850px;margin-bottom:40px}
.svc-map-flow{text-align:center}
.svc-map-source{max-width:640px;margin:auto;padding:24px;border:1px solid var(--line)}
.svc-map-source h3{font-size:30px;margin-bottom:10px}
.svc-map-source p{margin:0;font-size:14px}
.svc-map-arrow{display:block;font-size:24px;line-height:1;padding:18px 0;color:var(--muted)}
.svc-map-foundation{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:0}
.svc-map-foundation>div{padding:20px 12px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.svc-map-foundation dt{font-family:var(--heading);font-size:clamp(21px,2.3vw,32px);line-height:1.15;letter-spacing:-.035em;margin-bottom:10px}
.svc-map-foundation dd{margin:0;font-size:14px}
.svc-map-brief{max-width:660px;margin:auto;padding:22px 12px}
.svc-map-brief h3{font-size:clamp(25px,3vw,40px);margin-bottom:12px}
.svc-map-brief p{margin:0}
.svc-map-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;text-align:left}
.svc-map-link{display:flex;flex-direction:column;justify-content:space-between;gap:20px;background:var(--svc-lime);color:var(--ink);padding:26px;text-decoration:none;border:1px solid transparent;transition:background .15s ease}
.svc-map-link:hover{background:var(--svc-navy);color:var(--svc-lime);border-color:var(--svc-navy)}
.svc-map-link .eyebrow{margin:0}
.svc-map-link strong{font-family:var(--heading);font-size:clamp(25px,2.8vw,39px);font-weight:500;letter-spacing:-.045em;line-height:1.1}
.svc-map-link small{font-size:14px}
.svc-map-outcome h3{font-size:clamp(28px,3.5vw,48px);margin-bottom:12px}
.svc-map-outcome p{margin:0}
.svc-page .svc-service{scroll-margin-top:25px}
.svc-service:target>header h2{ text-decoration:underline;text-decoration-color:var(--svc-lime);text-decoration-thickness:6px;text-underline-offset:10px }
.svc-top{position:fixed;right:14px;bottom:28px;z-index:20;width:52px;min-height:64px;display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--paper);color:var(--ink);border:1px solid var(--ink);text-decoration:none;box-shadow:0 3px 12px #20211d12}
.svc-top span:first-child{font-size:24px;line-height:1.2}
.svc-top span:last-child{font-size:10px;letter-spacing:.03em}
.svc-top:hover{background:var(--svc-lime);color:var(--ink)}
.svc-page footer{padding-bottom:110px}
@media(min-width:751px){.svc-page main,.svc-page .site-header,.svc-page footer{padding-right:max(5vw,82px)}}
@media(max-width:750px){
 .svc-map{padding:40px 0}.svc-map-foundation,.svc-map-links{grid-template-columns:1fr;gap:12px}
 .svc-map-foundation>div{padding:18px}.svc-map-foundation>div+div{border-top:0}
 .svc-map-link{padding:22px;gap:14px}.svc-map-link strong{font-size:30px}
 .svc-map-brief{padding:18px 5px}.svc-top{right:10px;bottom:calc(16px + env(safe-area-inset-bottom,0px));width:46px;min-height:52px}
}
@media(prefers-reduced-motion:reduce){.svc-map-link{transition:none}}

/* The yellow is sampled from the supplied reference; navy marks practical information. */
.svc-map-link{color:var(--svc-navy)}
.svc-map-brief h3,.svc-map-outcome h3{color:var(--svc-navy)}
.svc-timing,.svc-ecosystem{border-top-color:var(--svc-navy)}
.svc-timing>.eyebrow,.svc-ecosystem>.eyebrow{color:var(--svc-navy);font-weight:600;letter-spacing:.06em}
.svc-timing>h2,.svc-ecosystem>h2{color:var(--svc-navy)}
.svc-timing thead{background:var(--svc-navy);color:var(--svc-lime)}
.svc-timing>.text-link{margin-top:30px;background:var(--svc-navy);color:var(--svc-lime)}
.svc-timing>.text-link:hover{background:var(--svc-lime);color:var(--svc-navy)}
.svc-top{background:var(--svc-navy);color:var(--svc-lime);border-color:var(--svc-navy)}
.svc-top:hover{background:var(--svc-lime);color:var(--svc-navy)}

/* Shared v4 visual language. */
body{--svc-lime:#f2fb7a;--svc-navy:#142640}
h1,h2,h3,.wordmark{color:var(--navy)}
nav a[aria-current]{text-decoration-color:var(--navy);text-decoration-thickness:3px;text-underline-offset:7px}
a:hover{color:var(--navy)}
a:focus-visible{outline-color:var(--navy)}
.site-header{border-bottom-color:var(--navy)}
.eyebrow{color:var(--navy)}
.section-tag{display:inline-block;background:var(--accent);padding:5px 10px}
.action-link{background:var(--accent);color:var(--navy);padding:14px 22px;text-decoration:none}
.action-link:hover{background:var(--navy);color:var(--accent)}
.home-editorial h1{font-size:clamp(52px,8.6vw,132px);margin:40px 0}
.home-editorial .intro{max-width:none;margin:0 0 75px;display:grid;grid-template-columns:1fr 1fr;gap:7vw}
.home-editorial .intro .lead{color:var(--navy)}
.playlist-text{display:grid;grid-template-columns:1fr 1fr;gap:7vw;border-top:1px solid var(--navy);padding:65px 0;align-items:start}
.playlist-text h2{font-size:clamp(42px,5.5vw,80px)}
.playlist-text .playlist-copy{padding-top:30px}
.project-heading{display:grid;grid-template-columns:1fr 2fr;gap:3vw;align-items:start}
.project-heading .eyebrow{justify-self:start;background:var(--accent);padding:5px 10px}
.project-heading h2{margin:0}
.project{border-top-color:var(--navy)}
.project-grid .prose{border-left:3px solid var(--accent);padding-left:25px}
.project-note{background:var(--accent);color:var(--navy)}
.closing{max-width:none;display:grid;grid-template-columns:1fr 1.4fr;gap:12px 7vw;border-top-color:var(--navy)}
.closing h2{grid-row:span 4}.closing p{grid-column:2}.closing .text-link{grid-column:2;justify-self:start}
.origin{max-width:900px}.origin strong{border-left:4px solid var(--accent);padding-left:24px;color:var(--navy)}
.profile-meta{border-left:4px solid var(--accent);padding-left:18px;color:var(--navy)}
.profile,.text-section{border-top-color:var(--navy)}
#contact{background:var(--navy);color:var(--paper);padding:40px;margin:25px 0 50px}
#contact h2,#contact a{color:var(--accent)}
#contact a{overflow-wrap:anywhere}
footer{border-top-color:var(--navy);padding-bottom:110px}
.footer-top .wordmark{color:var(--navy)}
@media(min-width:751px){main,.site-header,footer{padding-right:max(5vw,82px)}}
@media(max-width:750px){
.home-editorial .intro,.playlist-text,.project-heading,.closing{grid-template-columns:1fr;gap:24px}
.home-editorial .intro{margin-bottom:45px}.playlist-text{padding:40px 0}.playlist-text .playlist-copy{padding:0}
.project-heading{gap:12px}.project-grid .prose{padding-left:18px}
.closing h2{grid-row:auto}.closing p,.closing .text-link{grid-column:1}
#contact{padding:28px 20px}.origin{padding:40px 0 50px}
}

/* Combined contact and music submissions */
#contact.contact-combined {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  gap: clamp(32px, 6vw, 90px);
  padding: clamp(28px, 5vw, 70px);
  margin: 30px 0 65px;
  background: #142640;
  color: #f4f2eb;
  border: 0;
}

#contact.contact-combined .eyebrow,
#contact.contact-combined h2 {
  color: #f2fb7a;
}

#contact.contact-combined h2 {
  margin-bottom: 28px;
}

#contact.contact-combined h3 {
  color: #f4f2eb;
  margin-top: 0;
  font-size: clamp(28px, 3vw, 40px);
}

#contact.contact-combined .contact-heading,
#contact.contact-combined .contact-submissions {
  min-width: 0;
}

#contact.contact-combined .contact-email {
  display: inline-block;
  margin-top: 12px;
  color: #f2fb7a;
  font-size: clamp(20px, 2.3vw, 32px);
  line-height: 1.4;
  letter-spacing: -0.035em;
  text-decoration-thickness: 1px;
  text-underline-offset: 7px;
  overflow-wrap: anywhere;
}

#contact.contact-combined .contact-email span {
  display: inline-block;
  margin-left: 8px;
}

#contact.contact-combined .contact-submissions {
  border-left: 1px solid rgb(244 242 235 / 25%);
  padding-left: clamp(24px, 4vw, 55px);
}

#contact.contact-combined .contact-playlist {
  display: inline-block;
  margin-top: 12px;
  padding: 12px 18px;
  background: #f2fb7a;
  color: #142640;
  text-decoration: none;
}

#contact.contact-combined .contact-playlist:hover {
  background: #f4f2eb;
  color: #142640;
}

#contact.contact-combined a:focus-visible {
  outline: 2px solid #f2fb7a;
  outline-offset: 6px;
}

@media (max-width: 750px) {
  #contact.contact-combined {
    grid-template-columns: 1fr;
    gap: 32px;
    margin-bottom: 45px;
  }

  #contact.contact-combined .contact-submissions {
    border-left: 0;
    border-top: 1px solid rgb(244 242 235 / 25%);
    padding-left: 0;
    padding-top: 30px;
  }
}

/* Playlist: image left, copy right */
.playlist-text.playlist-with-image {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
  align-items: center;
  gap: clamp(28px, 5vw, 72px);
  padding: clamp(40px, 5vw, 70px) 0;
  border-top: 1px solid #142640;
}

.playlist-with-image .playlist-artwork {
  min-width: 0;
  margin: 0;
}

.playlist-with-image .playlist-artwork img {
  display: block;
  width: 100%;
  height: auto;
}

.playlist-text.playlist-with-image .playlist-copy {
  min-width: 0;
  padding-top: 0;
}

.playlist-with-image .playlist-copy h2 {
  margin-bottom: 24px;
  color: #142640;
  font-size: clamp(38px, 5vw, 76px);
  line-height: 1.06;
}

.playlist-with-image .playlist-copy > p:not(.eyebrow) {
  max-width: 650px;
}

@media (max-width: 700px) {
  .playlist-text.playlist-with-image {
    grid-template-columns: 1fr;
    gap: 32px;
  }

  .playlist-with-image .playlist-artwork {
    width: min(100%, 340px);
    justify-self: center;
  }
}

/* Match the service label to its link colour on hover and keyboard focus. */
.svc-map-link .eyebrow { color: inherit; }
.svc-map-link:focus-visible {
  outline: 2px solid var(--navy);
  outline-offset: 5px;
}
/* Navy playlist panel */
.playlist-text.playlist-with-image {
  background: #142640;
  color: #f4f2eb;
  border: 0;
  padding: clamp(24px, 4vw, 60px);
  margin: 30px 0 65px;
  gap: clamp(28px, 4vw, 60px);
}

.playlist-with-image .playlist-copy h2 {
  color: #f2fb7a;
}

.playlist-with-image .section-tag {
  background: #f2fb7a;
  color: #142640;
}

.playlist-with-image .playlist-artwork {
  background: transparent;
}

.playlist-with-image .action-link {
  background: #f2fb7a;
  color: #142640;
}

.playlist-with-image .action-link:hover {
  background: #f4f2eb;
  color: #142640;
}

.playlist-with-image a:focus-visible {
  outline: 2px solid #f2fb7a;
  outline-offset: 6px;
}

@media (max-width: 700px) {
  .playlist-text.playlist-with-image {
    margin: 24px 0 45px;
  }
}
.footer-copyright {
  margin: 28px 0 0;
  padding-top: 20px;
  border-top: 1px solid var(--line);
  color: var(--muted);
  font-size: 12px;
  line-height: 1.5;
  text-align: left;
}
/* 1. 基础过渡 */
.svc-map-link,
.action-link,
.contact-playlist,
.services-contact,
.svc-top {
  transition:
    background-color 180ms ease,
    color 180ms ease,
    border-color 180ms ease,
    transform 180ms ease;
}

/* 服务卡片的小字跟随卡片变色 */
.svc-map-link .eyebrow {
  color: inherit;
}

/* 链接箭头 */
.text-link span[aria-hidden="true"],
.svc-platform-grid dt a span[aria-hidden="true"] {
  display: inline-block;
  transition: transform 180ms ease;
}

/* 平台名称 */
.svc-platform-grid dt a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 6px;
  transition: text-decoration-color 180ms ease;
}

/* 2. 只在支持鼠标悬停的设备上启用 */
@media (hover: hover) and (pointer: fine) {

  /* 服务卡片：海军蓝底、柠檬黄字，轻微上移 */
  .svc-map-link:hover {
    background-color: #142640;
    color: #f2fb7a;
    border-color: #142640;
    transform: translateY(-4px);
  }

  /* 常规行动按钮：反色 */
  .action-link:hover,
  .services-contact:hover {
    background-color: #142640;
    color: #f2fb7a;
    transform: translateY(-2px);
  }

  /* 海军蓝区块中的按钮：变成米白底 */
  .playlist-with-image .action-link:hover,
  #contact.contact-combined .contact-playlist:hover {
    background-color: #f4f2eb;
    color: #142640;
  }

  /* 链接箭头向右上方移动 */
  .text-link:hover span[aria-hidden="true"],
  .svc-platform-grid dt a:hover span[aria-hidden="true"] {
    transform: translate(3px, -3px);
  }

  /* 平台名称：柠檬黄色下划线 */
  .svc-platform-grid dt a:hover {
    color: #142640;
    text-decoration-color: #f2fb7a;
    text-decoration-thickness: 3px;
  }

  /* 返回顶部按钮 */
  .svc-top:hover {
    background-color: #f2fb7a;
    color: #142640;
    transform: translateY(-3px);
  }
}

/* 3. 点击时的轻微反馈 */
.svc-map-link:active,
.action-link:active,
.contact-playlist:active,
.services-contact:active,
.svc-top:active {
  transform: translateY(1px);
}

/* 4. 键盘操作也能看清当前位置 */
.svc-map-link:focus-visible {
  background-color: #142640;
  color: #f2fb7a;
  outline: 2px solid #142640;
  outline-offset: 5px;
}

.svc-platform-grid dt a:focus-visible {
  outline: 2px solid #142640;
  outline-offset: 5px;
}

/* 5. 尊重系统的“减少动态效果”设置 */
@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  .svc-map-link,
  .action-link,
  .contact-playlist,
  .services-contact,
  .svc-top,
  .text-link span[aria-hidden="true"],
  .svc-platform-grid dt a,
  .svc-platform-grid dt a span[aria-hidden="true"] {
    transition: none;
    transform: none !important;
  }
}
/* Custom lemon cursor */
.goat-cursor {
  position: fixed;
  top: 0;
  left: 0;
  width: 80px;
  height: 80px;
  z-index: 2147483647;
  pointer-events: none;
  opacity: 0;
  transform: translate(-50%, -50%);
}

.goat-cursor::before,
.goat-cursor::after {
  content: "";
  position: absolute;
  border-radius: 50%;
  transition: opacity 140ms ease;
}

/* Default: yellow centre fading to transparent */
.goat-cursor::before {
  inset: 0;
  background: radial-gradient(
    circle,
    rgba(242, 251, 122, 1) 0%,
    rgba(242, 251, 122, 0.85) 22%,
    rgba(242, 251, 122, 0.35) 48%,
    rgba(242, 251, 122, 0) 72%
  );
}

/* Interactive: smaller solid-stroke ring */
.goat-cursor::after {
  width: 18px;
  height: 18px;
  top: 50%;
  left: 50%;
  box-sizing: border-box;
  transform: translate(-50%, -50%);
  border: 2px solid #f2fb7a;
  background: transparent;
  box-shadow: 0 0 0 1px rgba(20, 38, 64, 0.2);
  opacity: 0;
}

.goat-cursor.is-visible {
  opacity: 1;
}

.goat-cursor.is-interactive::before {
  opacity: 0;
}

.goat-cursor.is-interactive::after {
  opacity: 1;
}

/* Hide native cursor only while custom cursor is active */
@media (hover: hover) and (pointer: fine) {
  html.goat-cursor-active,
  html.goat-cursor-active * {
    cursor: none !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .goat-cursor::before,
  .goat-cursor::after {
    transition: none;
  }
}
/* Hover: solid circle that inverts the colours underneath */
.goat-cursor.is-interactive {
  mix-blend-mode: difference;
}

.goat-cursor.is-interactive::before {
  opacity: 0;
}

.goat-cursor.is-interactive::after {
  width: 50px;
  height: 50px;
  background: #fff;
  border: 0;
  box-shadow: none;
  opacity: 1;
}
