
:root{
  --bg:#fcfdff;
  --bg-soft:#f6f7ff;
  --bg-lilac:#faf6ff;
  --card:#ffffff;
  --line:#e8e9fb;
  --text:#4a4f74;
  --muted:#70789d;
  --purple:#cdbaf7;
  --purple-strong:#b9a3ef;
  --blue:#c6e6ff;
  --blue-strong:#a9d7ff;
  --shadow:0 18px 45px rgba(181, 190, 235, 0.18);
  --radius:26px;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:-apple-system,BlinkMacSystemFont,"PingFang TC","Noto Sans TC","Microsoft JhengHei",sans-serif;
  color:var(--text);
  line-height:1.75;
  background:
    radial-gradient(circle at 0% 100%, rgba(205,186,247,.20), transparent 24%),
    radial-gradient(circle at 100% 20%, rgba(198,230,255,.22), transparent 28%),
    linear-gradient(180deg, #ffffff 0%, #f7f9ff 45%, #fbf7ff 100%);
}
a{text-decoration:none;color:inherit}
img{max-width:100%;display:block}
.wrap{width:min(calc(100% - 32px), var(--max));margin:auto}

.nav{
  position:sticky;top:0;z-index:50;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.nav-inner{
  display:flex;justify-content:space-between;align-items:center;gap:18px;
  padding:16px 0;
}
.brand{
  display:flex;align-items:center;gap:12px;font-weight:700;color:#8f86d8;
}
.brand-mark{
  width:38px;height:38px;border-radius:50%;
  background:linear-gradient(135deg,var(--purple),var(--blue));
  box-shadow:0 0 16px rgba(190,190,255,.40);
}
.brand small{
  display:block;font-size:12px;letter-spacing:2px;color:#9a93db;font-weight:600;
}
.nav-links{display:flex;gap:22px;align-items:center}
.nav-links a{color:#687095}
.nav-links a.active,.nav-links a:hover{color:#7d72cf}
.btn{
  display:inline-flex;align-items:center;justify-content:center;
  padding:14px 24px;border-radius:999px;border:1px solid transparent;
  font-weight:650;transition:.22s ease;
}
.btn:hover{transform:translateY(-1px)}
.btn-primary{
  background:linear-gradient(90deg,var(--purple),var(--blue));
  color:#5c6390;box-shadow:0 10px 26px rgba(190,200,255,.28);
}
.btn-ghost{
  background:#fff;border-color:#cfe1fb;color:#7690c6;
}

.hero{padding:58px 0 40px}
.hero-grid{
  display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:center;
}
.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  background:#fff;border:1px solid var(--line);
  color:#9a93db;padding:8px 14px;border-radius:999px;
  box-shadow:var(--shadow);font-size:.92rem;
}
h1,h2,h3{margin:0 0 14px;line-height:1.18}
h1{font-size:clamp(2.3rem,5vw,4.1rem);letter-spacing:-.03em}
h2{font-size:clamp(1.7rem,3vw,2.8rem);letter-spacing:-.02em}
h3{font-size:1.28rem}
.lead{font-size:1.08rem;color:var(--muted)}
.accent{color:#97baf7}
.accent2{color:#ab90ea}
.btn-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:26px}

.hero-art{
  min-height:520px;border-radius:42px;position:relative;overflow:hidden;
  background:
    linear-gradient(180deg, rgba(255,255,255,.90), rgba(246,247,255,.96)),
    linear-gradient(135deg, #fbfbff, #f6f7ff);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.hero-art:before{
  content:"";position:absolute;inset:0;
  background-image:
    radial-gradient(circle at 18% 18%, rgba(186,170,240,.8) 0 1.2px, transparent 1.8px),
    radial-gradient(circle at 78% 24%, rgba(168,207,255,.7) 0 1.2px, transparent 1.8px),
    radial-gradient(circle at 68% 68%, rgba(198,180,245,.7) 0 1.2px, transparent 1.8px),
    radial-gradient(circle at 36% 80%, rgba(173,208,255,.8) 0 1.2px, transparent 1.8px);
  opacity:.8;
}
.arch{
  position:absolute;right:56px;top:56px;width:340px;height:390px;
  border:4px solid rgba(215,219,252,.95);
  border-bottom-width:6px;
  border-radius:180px 180px 18px 18px;
  background:
    radial-gradient(circle at 50% 28%, rgba(255,255,255,.96) 0 42px, rgba(226,216,255,.95) 43px, rgba(194,221,255,.92) 95px, rgba(248,240,255,.8) 138px, transparent 139px),
    linear-gradient(180deg, #dcecff 0%, #f6ecff 45%, #fefcff 100%);
  box-shadow:0 14px 35px rgba(190,200,240,.20);
}
.arch:before{
  content:"";position:absolute;inset:12px;
  border:2px solid rgba(226,228,251,.85);
  border-radius:170px 170px 12px 12px;
}
.crystal{
  position:absolute;right:36px;bottom:36px;width:168px;height:168px;
  background:
    linear-gradient(145deg, rgba(255,255,255,.95), rgba(212,193,255,.75) 45%, rgba(197,232,255,.80));
  clip-path:polygon(50% 0%, 68% 24%, 78% 70%, 60% 100%, 40% 100%, 22% 70%, 32% 24%);
  filter:drop-shadow(0 12px 20px rgba(190,190,240,.28));
  opacity:.92;
}
.crystal.small{
  width:72px;height:72px;right:164px;bottom:38px;opacity:.8
}
.branch{
  position:absolute;width:110px;height:180px;border-radius:80px;
  border-left:3px solid rgba(172,200,255,.45);
  opacity:.75;
}
.branch.left{left:36px;bottom:42px;transform:rotate(-18deg)}
.branch.right{right:188px;bottom:48px;transform:rotate(18deg)}
.branch:before,.branch:after{
  content:"";position:absolute;width:18px;height:34px;border-radius:16px 16px 16px 2px;
  background:linear-gradient(180deg, rgba(190,170,245,.45), rgba(172,208,255,.45));
}
.branch:before{left:-2px;top:44px;transform:rotate(-26deg)}
.branch:after{left:10px;top:92px;transform:rotate(18deg)}
.sparkle{
  position:absolute;color:#c5b6f3;font-size:28px;opacity:.82;
}
.s1{left:54px;top:72px}
.s2{left:112px;top:146px;color:#c4ddff}
.s3{right:70px;top:96px}
.s4{right:118px;bottom:144px;color:#c4ddff}

.section{padding:32px 0 74px}
.section-head{text-align:center;margin-bottom:28px}
.section-head p{max-width:760px;margin:0 auto;color:var(--muted)}

.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}

.card,.panel,.course-card{
  background:rgba(255,255,255,.92);
  border:1px solid var(--line);
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.card,.course-card{padding:28px}
.panel{padding:30px}
.icon{
  width:72px;height:72px;border-radius:50%;
  background:linear-gradient(180deg, rgba(241,233,255,.95), rgba(229,241,255,.95));
  border:1px solid #ecebff;
  display:grid;place-items:center;
  font-size:30px;color:#a28ee7;margin:0 auto 18px;
}
.card h3,.course-card h3{text-align:center}
.card p,.course-card p,.panel p{color:var(--muted);margin:0}
.center{text-align:center}
.link-btn{
  margin-top:18px;display:inline-flex;padding:10px 18px;border-radius:999px;
  border:1px solid #d7dcff;background:#fff;color:#8b82d8;font-weight:600;
}

.soft-list{display:grid;gap:12px;margin-top:18px}
.soft-item{
  padding:14px 16px;border:1px solid var(--line);border-radius:18px;
  background:#fff;color:var(--muted);
}

.cta{
  text-align:center;
  padding:42px 24px;
  background:linear-gradient(180deg, rgba(246,240,255,.95), rgba(240,247,255,.95));
}

.contact-box{
  display:grid;grid-template-columns:1fr 1fr;gap:20px;
}
.input{
  width:100%;padding:14px 16px;border-radius:16px;border:1px solid #dde3fb;
  background:#fff;color:var(--text);font:inherit;
}
.textarea{min-height:140px;resize:vertical}
.form-demo{display:grid;gap:12px;margin-top:16px}
.note{font-size:.92rem;color:var(--muted)}

footer{
  padding:18px 0 42px;color:#8a92b8;font-size:.92rem;
}
.footer-line{
  border-top:1px solid var(--line);padding-top:18px;
  display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;
}

@media (max-width:980px){
  .hero-grid,.grid-3,.grid-2,.contact-box{grid-template-columns:1fr}
  .nav-links{display:none}
  .hero-art{min-height:420px}
  .arch{right:50%;transform:translateX(50%);width:280px;height:330px}
  .crystal{width:138px;height:138px}
  .crystal.small{right:140px}
}
@media (max-width:680px){
  .hero{padding-top:42px}
  .hero-art{min-height:360px}
  .arch{width:220px;height:270px;top:36px}
  .crystal{width:110px;height:110px;right:26px;bottom:28px}
  .crystal.small{width:56px;height:56px;right:116px;bottom:30px}
  .branch.right{right:126px}
}
