@charset "UTF-8";
:root{color-scheme:dark;--ink:#f0eee7;--muted:#a3a8b4;--line:#ffffff24;--gold:#dcc5a1}*{box-sizing:border-box}[hidden]{display:none!important}html,body{margin:0;min-height:100%;background:#060b16;color:var(--ink)}body{font-family:"Segoe UI","Microsoft YaHei",sans-serif}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible{outline:2px solid #e0caaa;outline-offset:7px}.skip{position:fixed;left:20px;top:-100px;background:#eee;color:#141414;z-index:10;padding:14px}.skip:focus{top:15px}.home{height:100svh;min-height:640px;overflow-x:hidden;position:relative}.universe,.shade{position:absolute;inset:0;overflow:hidden}.universe{background:#060b16}.universe canvas{display:block;width:100%;height:100%;opacity:0;transition:opacity 1.4s}.ready .universe canvas{opacity:1}.still-scene{position:absolute;inset:0;background:linear-gradient(90deg,#060b16b0,transparent),url('assets/galaxy-atmosphere-v1.jpg') center/cover;transition:opacity 1s}.ready .still-scene{opacity:0}.still-sun{position:absolute;width:18vw;height:18vw;border-radius:50%;left:46%;top:52%;background:radial-gradient(circle at 30% 30%,#ffffd1,#ee973b 70%,#fdd889);box-shadow:0 0 70px 20px #fd9b382d}.still-earth{position:absolute;width:7vw;height:7vw;left:70%;top:32%;border-radius:50%;background:linear-gradient(90deg,transparent,#000e),url('assets/earth_daymap.jpg') center/cover;box-shadow:-3px 0 9px #86bdff6a}.still-moon{position:absolute;left:80%;top:68%;width:7vw;height:7vw;border-radius:50%;background:linear-gradient(90deg,transparent,#000d),url('assets/moon.jpg') center/cover}.shade{pointer-events:none;background:linear-gradient(90deg,#03071085,transparent 57%),linear-gradient(0deg,#030710e6,transparent 20%,transparent 85%,#03071033)}.masthead{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:38px 4.3vw}.signature{font-family:Georgia,serif;letter-spacing:-2px;font-size:39px;line-height:1}.signature span{color:var(--gold)}.top-link{font-size:13px;letter-spacing:2px;border-bottom:1px solid var(--line);padding:10px 0}.top-link span{margin-left:20px}.home-copy{position:absolute;z-index:2;left:8.3vw;top:27%;max-width:550px}.eyebrow{font-size:10px;letter-spacing:3.8px;color:var(--gold);margin:0 0 26px}.home h1{font-family:"Songti SC","Noto Serif SC",SimSun,serif;font-weight:400;font-size:clamp(42px,4.5vw,84px);line-height:1.34;letter-spacing:.08em;margin:0 0 26px}.home h1 span{color:#d9dce3}.intro{color:#b8bfcb;letter-spacing:2px;font-size:13px;line-height:2}.enter{display:inline-flex;gap:36px;align-items:center;font-size:14px;letter-spacing:2px;margin-top:30px;padding:8px 0 8px;border-bottom:1px solid #e5d1b359}.arrow{border:1px solid #e0c9a951;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;font-size:21px;transition:background .25s,transform .25s}.enter:hover .arrow{background:#dbc29e;color:#101625;transform:rotate(45deg)}.scene-note{position:absolute;right:6.5vw;top:20%;display:flex;gap:18px;align-items:flex-start;color:#cdd0d9;font-family:SimSun,serif;font-size:13px;letter-spacing:2px;pointer-events:none}.scene-note p{margin:0;line-height:1.8}.scene-note small{font-family:"Segoe UI",sans-serif;font-size:7px;letter-spacing:1.5px;color:#8e96a9}.note-line{display:block;width:38px;height:1px;background:#c7ae81;margin-top:11px}.home-footer{position:absolute;z-index:2;left:4.3vw;right:4.3vw;bottom:28px;display:flex;justify-content:space-between;align-items:center;font-size:10px;letter-spacing:1.3px;color:#a3aab9;gap:20px}.home-footer>div{display:flex;align-items:center;gap:26px}.home-footer button{border:0;background:transparent;padding:10px 0;font-size:11px;color:#c7cbd4}.home-footer button span{margin-left:8px}.art-note{font-size:9px;color:#8992a3}.credits-link{font-size:10px}@keyframes fade-in{to{opacity:1}}
/* Course selection is a quiet reading surface, separate from the animated entry. */
.courses{min-height:100svh;background:radial-gradient(ellipse at 90% 0%,#182336 0,transparent 55%),#080d17}.course-main{max-width:1280px;margin:7vh auto 10vh;padding:0 5vw;display:grid;grid-template-columns:.85fr 1.4fr;gap:9vw}.course-intro h1{font-family:SimSun,serif;font-size:clamp(34px,3.2vw,58px);line-height:1.5;font-weight:400;letter-spacing:3px;margin:0 0 25px}.course-intro .intro{font-size:13px;line-height:2.2}.mini-orbit{width:170px;height:100px;position:relative;border:1px solid #c7ae8140;border-radius:50%;transform:rotate(-25deg);margin:70px 0}.mini-orbit:before{content:"";position:absolute;width:44px;height:44px;left:60px;top:25px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff2c7,#b07c46);box-shadow:0 0 30px #dfab5730}.mini-orbit:after{content:"";position:absolute;left:10px;top:5px;width:15px;height:15px;border-radius:50%;background:#a3bdda}.course-item{padding:30px 0 35px;border-top:1px solid var(--line);display:grid;grid-template-columns:28px 1fr 28px;gap:22px}.course-item:last-child{border-bottom:1px solid var(--line)}.course-no{font-family:Georgia,serif;color:#9aa0ae;font-size:14px}.course-tag{font-size:9px;letter-spacing:2px;color:var(--gold)}.course-item h2{font-size:clamp(21px,2vw,29px);font-weight:400;letter-spacing:1px;margin:13px 0}.course-item p{font-size:12px;color:#a2abba;line-height:1.9;margin-bottom:22px}.status{font-size:11px;color:#e0d0b5;letter-spacing:1px}.pending{color:#959eae}.course-item.available:hover h2{color:#e5c797}.course-item .course-arrow{font-size:24px;color:#d2bd9b;align-self:center}.course-footer{border-top:1px solid var(--line);display:flex;justify-content:space-between;gap:20px;margin:0 4.3vw;padding:24px 0 30px;font-size:10px;color:#a3aab9;letter-spacing:1px}.credit-main{max-width:800px;padding:50px 28px;margin:auto;font-size:15px;line-height:2;color:#b7becb}.credit-main h1{color:#eee;font-size:28px}.credit-main a{text-decoration:underline;color:#dbc8a6}.credit-main li{margin-bottom:15px}
@media(min-width:1700px){.home-copy{top:29%}.home h1{font-size:82px}}
@media(max-width:900px){.home{min-height:740px}.masthead{padding:28px 6vw}.home-copy{top:19%;left:7vw}.home h1{font-size:50px}.scene-note{display:none}.home-footer{left:6vw;right:6vw}.art-note{display:none}.course-main{grid-template-columns:1fr;gap:30px;max-width:660px;margin:50px auto;padding:0 6vw}.mini-orbit{display:none}.course-intro .intro br{display:none}.course-intro h1{font-size:38px}.course-intro h1 br{display:none}.course-footer{margin:0 6vw}.course-item{gap:12px}}
@media(max-width:540px){.home{min-height:680px}.signature{font-size:31px}.top-link{font-size:11px}.home-copy{top:18%;left:7vw;max-width:88vw}.eyebrow{font-size:8px;letter-spacing:2px;margin-bottom:18px}.home h1{font-size:42px;line-height:1.35;margin-bottom:14px}.intro{font-size:10px;letter-spacing:1px}.enter{font-size:12px;margin-top:16px;gap:25px}.arrow{width:34px;height:34px;font-size:18px}.home-footer{bottom:20px;font-size:8px;letter-spacing:.5px;gap:8px}.home-footer>div{gap:14px}.home-footer button{font-size:9px}.still-sun{width:29vw;height:29vw;left:8%;top:65%}.still-earth{width:14vw;height:14vw;left:74%;top:55%}.still-moon{width:16vw;height:16vw;left:57%;top:77%}.shade{background:linear-gradient(0deg,#030710e6,transparent 15%,transparent 50%,#03071099 95%)}.course-item{grid-template-columns:22px 1fr 20px}.course-item h2{font-size:21px}.course-tag{letter-spacing:1px;font-size:8px}.course-footer{font-size:9px;letter-spacing:0}}
@media(max-height:620px) and (min-width:700px){.home{min-height:520px}.masthead{padding-top:20px}.home-copy{top:21%}.home h1{font-size:42px;margin-bottom:12px}.eyebrow{margin-bottom:13px}.enter{margin-top:10px}.home-footer{bottom:12px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}.leaving .universe{transform:none}}

/* Lz: personal signature, clearer entry, and an independent portrait composition. */
.signature{font-size:48px;letter-spacing:-4px;font-style:italic;padding-right:6px}
.signature span{margin-left:3px;font-style:normal}
.home-copy{top:29%;max-width:550px}
.home h1{font-size:clamp(48px,4.7vw,82px);line-height:1.28;letter-spacing:.07em;margin-bottom:24px}
.home .eyebrow{font-size:10px;letter-spacing:3px;color:#b5b0a5;margin-bottom:25px}
.home .intro{font-size:14px;letter-spacing:1px;color:#bac1cc;line-height:1.9}
.enter{font-size:15px;letter-spacing:1.5px;min-height:58px;gap:40px;margin-top:26px;border-bottom-color:#c7b49185;padding:8px 0 12px}
.arrow{width:44px;height:44px;border-color:#bda78380;background:#10162366}
.top-link{min-height:44px;display:flex;align-items:center}
.home-footer{font-size:11px;letter-spacing:1px;bottom:22px}
.home-footer button{min-height:44px;padding:10px 8px;font-size:12px;border-bottom:1px solid #c1cad126}
.home-footer button:hover{color:#fff;border-bottom-color:#c7b491}
.home-footer .credits-link{display:inline-flex;align-items:center;min-height:44px;padding:0 8px;font-size:11px}
.footer-divider{padding:0 9px;color:#7d8493}
.shade{background:linear-gradient(90deg,#030710aa,transparent 58%),linear-gradient(0deg,#030710d6,transparent 16%,transparent 89%,#03071022)}
.still-sun{width:10vh;height:10vh;left:52%;top:24%}
.still-earth{width:22vh;height:22vh;left:65%;top:38%}
.still-moon{width:10vh;height:10vh;left:81%;top:70%}
@media(max-aspect-ratio:19/20){
  .home{min-height:640px}
  .home-copy{top:14%;left:7vw;max-width:86vw}
  .home h1{font-size:clamp(38px,6vw,58px);line-height:1.3;margin-bottom:18px}
  .home .intro{font-size:13px;letter-spacing:.5px}
  .home .eyebrow{font-size:9px;letter-spacing:2px;margin-bottom:21px}
  .enter{font-size:14px;margin-top:20px;gap:32px}
  .home-footer{left:6vw;right:6vw;bottom:14px;font-size:10px}
  .home-footer>div{gap:12px}
  .home-footer button{font-size:11px;padding:10px 4px}
  .art-note{display:none}
  .shade{background:linear-gradient(0deg,#030710d6,transparent 15%,transparent 48%,#03071070 80%)}
  .still-sun{width:6.6vh;height:6.6vh;left:79%;top:41%}
  .still-earth{width:29vh;height:29vh;left:calc(71% - 14.5vh);top:53%}
  .still-moon{width:6.5vh;height:6.5vh;left:calc(22% - 3.25vh);top:81%}
}
@media(max-width:540px){
  .masthead{padding:24px 7vw}
  .signature{font-size:42px}
  .home-copy{top:14%;max-width:86vw}
  .home h1{font-size:40px}
  .home .intro{font-size:12px}
  .home .eyebrow{font-size:8px;letter-spacing:1.8px}
  .enter{font-size:14px;margin-top:17px;min-height:56px}
  .arrow{width:42px;height:42px;font-size:20px}
  .home-footer>div{gap:8px}
  .footer-divider{padding:0 5px}
}
@media(max-width:360px){.home-copy{top:12%}.home h1{font-size:36px}.home .intro{font-size:11px}.home .eyebrow{font-size:7px;letter-spacing:1.5px}.enter{margin-top:10px}.home-footer{font-size:9px}}
@media(max-height:620px) and (min-aspect-ratio:19/20){
  .home{min-height:480px}.home-copy{top:22%}.home h1{font-size:39px;margin-bottom:12px}.home .eyebrow{margin-bottom:16px;font-size:8px}.home .intro{font-size:12px}.enter{margin-top:8px;font-size:13px;min-height:50px}.arrow{width:36px;height:36px}.home-footer{bottom:8px}.masthead{padding-top:20px}
}
.still-moon{width:6.4vh;height:6.4vh;left:calc(83% - 3.2vh);top:62%;background:linear-gradient(135deg,transparent 20%,#02040af2 83%),url('assets/moon.jpg') center/cover}
.still-moon:after{content:none}
@media(max-aspect-ratio:19/20){.still-moon{width:8.6vh;height:8.6vh;left:calc(33% - 4.3vh);top:79%;background:linear-gradient(225deg,transparent 20%,#02040af2 83%),url('assets/moon.jpg') center/cover}}

/* The wordmark stays in the same place across the two entry pages. */
.signature.brand-mark{display:flex;align-items:center;width:172px;height:50px;padding:0;line-height:1}
.brand-mark img{display:block;width:100%;height:auto}
.transition-veil{position:fixed;inset:0;z-index:5;background:#080d17;opacity:0;pointer-events:none}
.leaving .transition-veil{opacity:1;transition:opacity 340ms 180ms ease-in}
.leaving .home-copy,.leaving .home-footer{opacity:0;transition:opacity 180ms ease-out}
.leaving:not(.ready) .universe{transform:scale(1.035);transform-origin:72% 49%;transition:transform 520ms ease}
.course-nav{display:flex;gap:28px;align-items:center;font-size:12px;letter-spacing:1px}
.course-nav a{display:flex;align-items:center;min-height:44px;gap:10px;color:#b8c1cf}
.course-nav a:hover{color:#f0d5ae}
.course-selection{display:flex;flex-direction:column;background:radial-gradient(ellipse at 76% 30%,#14203666,transparent 55%),#080d17}
.course-selection .course-main{width:86%;max-width:1320px;padding:0;grid-template-columns:minmax(260px,.9fr) minmax(0,1.35fr);gap:9%;margin:36px auto 40px;flex:1}
.course-selection .course-intro h1{font-size:clamp(35px,3.5vw,53px);line-height:1.45;letter-spacing:2px;margin:0 0 26px}
.course-selection .course-intro .eyebrow{font-size:10px;letter-spacing:3px;margin-bottom:26px}
.course-selection .course-intro .intro{font-size:13px;line-height:2.1;letter-spacing:.7px;color:#b3bdcc}
.course-seal{position:relative;width:210px;height:155px;margin-top:48px}
.seal-orbit{position:absolute;inset:23px -2px 12px;border:1px solid #acbddb26;border-radius:50%;transform:rotate(-29deg)}
.seal-earth{position:absolute;left:29px;top:21px;width:99px;height:99px;border-radius:50%;background:linear-gradient(110deg,transparent 15%,#040a18f5 90%),url('assets/earth_daymap.jpg') 54% 50%/210% 110%;box-shadow:inset 2px 1px 5px #6baffc70,-1px 0 6px #234a7344}
.seal-moon{position:absolute;left:157px;top:104px;width:24px;height:24px;border-radius:50%;background:linear-gradient(125deg,transparent 15%,#02050ced 89%),url('assets/moon.jpg') center/cover}
.course-intro .course-byline{font-size:11px;color:#9ca7b9;letter-spacing:1px;margin-top:15px}
.course-byline span,.author-sign{font-family:Georgia,serif;font-style:italic;font-size:20px;color:#d8dce5;margin-right:5px}
.course-selection .course-item{padding:23px 0 24px;gap:20px}
.course-selection .course-item.available{border-top-color:#cbb18a70;padding-top:25px;background:linear-gradient(100deg,transparent,#b3c8e805);transition:background .2s}
.course-selection .course-item.available:hover{background:#aebdd408}
.course-selection .course-no{padding-top:1px;font-size:13px;color:#a4afc2}
.course-selection .course-tag{color:#bdb2a0;font-size:9px;letter-spacing:1.7px}
.course-selection .course-item h2{font-size:clamp(22px,2.15vw,32px);line-height:1.35;margin:10px 0 9px;letter-spacing:1px}
.course-selection .course-item p{font-size:13px;line-height:1.9;color:#acb6c6;margin:0 0 18px}
.course-bottom{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px}
.course-format{font-size:10px;color:#98a4b7;letter-spacing:.5px}
.course-selection .available .status{font-size:12px;color:#ead3b1}
.course-selection .course-arrow{align-self:center;justify-self:end;transition:transform .2s}
.course-selection .available:hover .course-arrow{transform:translate(3px,-3px)}
.planned-mark{color:#748092;align-self:center;justify-self:end}
.course-selection .pending{display:inline-flex;align-items:center;gap:7px;color:#a9b1bf;font-size:11px}
.course-selection .pending:before{content:"";width:4px;height:4px;border:1px solid #8490a3;border-radius:50%}
.course-selection .course-footer{margin-top:auto;align-items:center;padding:18px 0 25px}
.course-footer a{display:inline-flex;align-items:center;min-height:44px}
.course-arrival .course-main{animation:course-arrive 380ms ease-out both}
@keyframes course-arrive{from{opacity:0;transform:translateY(9px)}to{opacity:1;transform:translateY(0)}}
@media(max-width:900px){
  .course-selection .course-main{grid-template-columns:1fr;gap:30px;max-width:660px;margin:42px auto 48px}
  .course-selection .course-intro h1{font-size:38px;margin-bottom:16px}
  .course-selection .course-intro h1 br{display:none}
  .course-selection .course-intro .intro{font-size:13px}
  .course-seal,.course-intro .course-byline{display:none}
  .course-selection .course-intro .eyebrow{margin-bottom:17px}
  .course-selection .course-item{padding:24px 0 27px}
}
@media(max-width:540px){
  .signature.brand-mark{width:127px;height:44px}
  .course-nav{gap:13px;font-size:10px;letter-spacing:0}
  .course-nav a{gap:3px}
  .course-selection .masthead{padding:23px 6vw}
  .course-selection .course-main{width:88%;margin:25px auto 30px;gap:24px}
  .course-selection .course-intro h1{font-size:31px;letter-spacing:1px}
  .course-selection .course-intro h1 br{display:block}
  .course-selection .course-intro .intro{font-size:12px;letter-spacing:0;max-width:290px}
  .course-selection .course-item{grid-template-columns:21px minmax(0,1fr) 18px;gap:10px}
  .course-selection .course-item h2{font-size:21px;letter-spacing:0}
  .course-selection .course-item p{font-size:12px;margin-bottom:19px}
  .course-selection .course-tag{font-size:8px;letter-spacing:.9px}
  .course-selection .course-arrow{font-size:22px}
  .course-bottom{align-items:flex-start;flex-direction:column;gap:14px}
  .course-selection .course-footer{font-size:10px}
  .desktop-break{display:none}
  .leaving:not(.ready) .universe{transform-origin:71% 68%}
}
@media(prefers-reduced-motion:reduce){.leaving .transition-veil{transition:none}.course-arrival .course-main{animation:none}.leaving:not(.ready) .universe{transform:none}}
/* Match the initial orbital composition when WebGL is unavailable. */
.still-earth{width:22.6vh;height:22.6vh;left:calc(72% - 11.3vh);top:38%}
.still-moon{left:calc(72% + 14.8vh);top:58.5%}
@media(max-aspect-ratio:19/20){
  .still-earth{width:24vh;height:24vh;left:calc(64% - 12vh);top:58.2%}
  .still-moon{width:6.8vh;height:6.8vh;left:calc(64% + 6.35vh);top:80.8%}
}

/* Static fallback follows the revised desktop Sun position. */
@media(min-aspect-ratio:951/1000){.still-sun{width:10.8vh;height:10.8vh;left:calc(83% - 5.4vh);top:21.1%}}

/* A larger desktop Earth anchors the lower half; portrait keeps its safe framing. */
@media(min-aspect-ratio:951/1000){
 .home-copy{top:31%}
 .home .enter{margin-top:22px}
 .still-earth{width:28vh;height:28vh;left:calc(72% - 14vh);top:42.8%}
 .still-moon{width:7.8vh;height:7.8vh;left:calc(72% + 17.4vh);top:68%}
}
@media(max-height:620px) and (min-aspect-ratio:951/1000){.home-copy{top:22%}.home .enter{margin-top:8px}}
.enter{transition:color .25s,border-color .25s}
.enter:hover,.enter:focus-visible{color:#f1d4a5;border-bottom-color:#e7c68e}
.enter:focus-visible .arrow{background:#dbc29e;color:#101625}
.leaving .transition-veil{transition:opacity 300ms 220ms ease-in}
.course-seal{width:244px;height:180px;margin-top:34px}
.seal-earth{width:132px;height:132px;left:42px;top:15px;background:linear-gradient(225deg,transparent 15%,#040a18e8 88%),url('assets/earth_day.jpg') 52% 48%/210% 110%;box-shadow:inset -2px -1px 6px #71b5fb55,1px 0 7px #315b7d44}
.seal-orbit{inset:23px -2px 15px;transform:rotate(35deg);border-color:#acbddb1c}
.seal-moon{width:35px;height:35px;left:192px;top:124px;background:linear-gradient(225deg,transparent 10%,#02050ccb 92%),url('assets/moon.jpg') center/cover}
.course-arrival .course-seal{animation:earth-arrive 520ms ease-out both}
.course-arrival .course-list{animation:course-arrive 380ms 50ms ease-out both}
@keyframes earth-arrive{from{opacity:0;transform:scale(1.055) translateY(5px)}to{opacity:1;transform:none}}
@media(max-width:900px){
 .course-selection .course-intro .eyebrow{display:flex;align-items:center;gap:11px}
 .course-selection .course-intro .eyebrow:before{content:'';display:block;width:28px;height:28px;flex:0 0 28px;border-radius:50%;background:linear-gradient(225deg,transparent,#040a18bd),url('assets/earth_day.jpg') center/cover;box-shadow:1px 0 3px #71b5fb55}
}
@media(prefers-reduced-motion:reduce){.course-arrival .course-seal,.course-arrival .course-list{animation:none}}

/* Full-globe visual with the Moon initially on the upper-left orbital arc. */
@media(min-aspect-ratio:951/1000){
 .still-earth{width:39vh;height:39vh;left:calc(72% - 19.5vh);top:37.3%}
 .still-moon{left:calc(72% - 25.2vh);top:37.8%}
}
@media(max-aspect-ratio:19/20){.still-moon{left:calc(64% - 13.15vh);top:53%}}

/* One clear classroom entry; its arrow is part of the same link. */
.home .enter{gap:22px;border:0;padding:10px 0;min-height:48px;letter-spacing:1px}
.entry-arrow{display:block;width:36px;height:20px;flex:0 0 36px;fill:none;stroke:currentColor;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s ease}
.enter:hover .entry-arrow,.enter:focus-visible .entry-arrow{transform:translateX(5px)}
@media(max-width:540px){.home .enter{gap:18px}.entry-arrow{width:30px;flex-basis:30px}}
@media(prefers-reduced-motion:reduce){.entry-arrow{transition:none}.enter:hover .entry-arrow,.enter:focus-visible .entry-arrow{transform:none}}

/* Custom vector masthead; the classroom entry now follows the title directly. */
.signature.brand-mark{width:172px;height:50px}
.home h1{margin-bottom:0}
.home .enter{margin-top:32px}
@media(max-width:540px){.signature.brand-mark{width:127px;height:44px}.home .enter{margin-top:22px}}
@media(max-height:620px) and (min-aspect-ratio:951/1000){.home .enter{margin-top:16px}}

