/* V2 — material courseware, chromatic intersections, restrained highlights. */
:root{--bg:#0e1015;--ink:#f3f0fa;--accent:#c9b5ff;--line:rgba(215,209,255,.16)}
body{background:#0e1015}.header{background:#0e1015;border-bottom-color:#35303f}.hero{min-height:660px;background:radial-gradient(ellipse at 76% 48%,#302142 0,#14131e 32%,#0e1015 65%)}
.hero:before{content:'';position:absolute;inset:0;z-index:-1;pointer-events:none;background-image:radial-gradient(#b99fff35 .6px,transparent .9px);background-size:13px 13px;mask-image:linear-gradient(90deg,transparent 35%,#000 80%);opacity:.3}
.hero-content{max-width:760px;padding-top:79px;pointer-events:none;z-index:2}.hero-content a{pointer-events:auto}.hero .eyebrow{color:#c6b2df}.hero h1{font-weight:400;text-shadow:0 5px 30px #0b0c1780}.hero h1 span{background:linear-gradient(110deg,#ece0ff,#b9a1ff 75%,#9bdfe7);background-clip:text;-webkit-text-fill-color:transparent}.hero-description{color:#bbb4ca}.hero .primary{background:#d0bdff;box-shadow:0 0 36px #a183db1f;border:1px solid #e3d4ff66}.hero .primary:hover{box-shadow:0 0 48px #ba98f345}.hero-footer{pointer-events:none;z-index:3}.hero-footer a{pointer-events:auto}.hero-footer>p{color:#d3c4e8}
.knowledge-scene{position:absolute;inset:-27px -4% 1px 31%;z-index:1;touch-action:pan-y}.knowledge-scene canvas{display:block;width:100%;height:100%;outline:0}.hero-scene-caption{position:absolute;right:5%;bottom:63px;z-index:3;display:grid;grid-template-columns:auto auto;gap:8px 22px;align-items:center;pointer-events:none}.scene-index{font-size:11px;color:#c2acd8;letter-spacing:.14em}.hero-scene-caption p{font-size:11px;letter-spacing:.18em;color:#e0d2f5}.scene-tip{font-size:11px;color:#a494b7;grid-column:1/3}.hero-scene-caption button{background:none;border-bottom:1px solid #655373;padding:4px 0;font-size:11px;color:#b7a2ce;pointer-events:auto;justify-self:start;grid-column:1/3}.hero-scene-caption button:hover{color:#fff}.hero .scroll-note{display:none}.scene-fallback{position:absolute;inset:20%;display:flex;flex-direction:column;align-items:center;justify-content:center;border:1px solid #b9a8e344;color:#c9b5ef;transform:rotate(-12deg);background:radial-gradient(#4b38504d,#161520);box-shadow:30px 24px 0 -1px #121624,30px 24px 0 0 #74bdcd35}.scene-fallback>span{font-size:120px;font-family:Georgia,serif}.scene-fallback p{font-size:26px;letter-spacing:.13em;line-height:1.4}.scene-fallback small{margin-top:18px;font-size:12px}.scene-ready .scene-fallback{display:none}
.subjects{background:radial-gradient(ellipse at 50% 61%,#32233e 0,rgba(33,27,44,.4) 33%,transparent 65%),#0e1015;padding-top:69px}.section-heading .eyebrow{color:#bda5da}.subject-explorer{margin-top:39px}.orbit-stage{height:442px}.orbit-guide{height:149px;top:278px;border-color:#bc9bfc2b;box-shadow:0 1px 16px #956deb0a;max-width:1100px}.orbit-guide:after{content:'';position:absolute;inset:-30px -42px;border:1px dashed #af95d914;border-radius:50%}.subject-cards{perspective:1400px;transform-style:preserve-3d}
.subject-card,.subject-card.is-active,.subject-card:hover{--glint-x:80%;width:238px;height:330px;top:30px;padding:0;background:none;border:0;box-shadow:none;overflow:visible;transform-style:preserve-3d;transition:none;border-radius:2px;isolation:auto}.subject-card{font-family:var(--font)}.book-solid{position:absolute;inset:0;transform-style:preserve-3d;pointer-events:none}.book-cover{position:absolute;inset:0;transform:translateZ(20px);backface-visibility:hidden;overflow:hidden;border-radius:2px 5px 5px 2px;border:1px solid color-mix(in srgb,var(--book-accent) 45%,#342a46);background:radial-gradient(ellipse at 85% 10%,color-mix(in srgb,var(--book-accent) 24%,#201b2e),transparent 66%),linear-gradient(140deg,#33273f,#171a28 64%,#252036);box-shadow:inset 3px 0 3px #ffffff19,inset 7px 0 5px #0809149c,inset -1px 0 2px #cdb4f75c;filter:brightness(var(--book-light,1))}.book-cover:before{content:'';position:absolute;inset:0;background-image:radial-gradient(color-mix(in srgb,var(--book-accent) 43%,transparent) .65px,transparent .7px);background-size:7px 7px;mask-image:linear-gradient(10deg,transparent 3%,#000 82%);opacity:.39;pointer-events:none}.book-cover:after{content:'';position:absolute;top:0;bottom:0;left:12px;width:1px;background:#0a0a17a6;box-shadow:1px 0 #ffffff0f}.book-glint{position:absolute;inset:0;z-index:2;background:linear-gradient(112deg,transparent calc(var(--glint-x) - 30%),#e0eaff0a calc(var(--glint-x) - 15%),#e0eaff25 var(--glint-x),transparent calc(var(--glint-x) + 16%));mix-blend-mode:screen;opacity:.6;transition:opacity .2s;pointer-events:none}.subject-card:hover .book-glint{opacity:1}.book-cover>header{position:relative;z-index:1;display:flex;justify-content:space-between;padding:20px 17px 0 23px;font-size:10px;letter-spacing:.09em;color:#c4b4d4}.book-cover .subject-diagram{position:relative;height:157px;padding:6px 19px 0 22px;margin-top:7px;filter:drop-shadow(0 0 13px color-mix(in srgb,var(--book-accent) 35%,transparent))}.book-label{position:relative;padding:6px 24px}.book-label>small{font-size:9px;letter-spacing:.08em;color:#aa96c2}.book-label h3{font-size:32px;font-weight:400;letter-spacing:.09em;margin-top:7px;line-height:1.25;color:#f0e4ff}.book-cover .card-subtitle{font-size:11px;line-height:1.7;color:#baa9cf;margin-top:7px}.book-cover .card-open{bottom:51px;right:18px;font-size:22px;color:var(--book-accent)}.book-footer{position:absolute;bottom:15px;left:23px;right:17px;display:flex;justify-content:space-between;align-items:center;color:#a38bbb;font-size:7px;letter-spacing:.13em}.book-footer i{width:34px;height:12px;background:repeating-linear-gradient(90deg,#cbb6de 0 1px,transparent 1px 3px);opacity:.65}
.book-back{position:absolute;inset:0;background:#292038;transform:translateZ(-20px) rotateY(180deg);border:1px solid #6c567d;border-radius:2px;backface-visibility:hidden}.book-spine{position:absolute;top:0;left:-20px;width:40px;height:100%;transform:rotateY(-90deg);background:linear-gradient(90deg,#23182e 0,#594567 28%,#34243f 85%,#685371);border:1px solid #a688bb55;display:flex;align-items:center;flex-direction:column;justify-content:space-between;padding:18px 0;backface-visibility:hidden}.book-spine span{writing-mode:vertical-rl;font-size:9px;letter-spacing:.14em;color:#ceb5e3}.book-spine b{writing-mode:vertical-rl;font-size:17px;letter-spacing:.2em;font-weight:400;color:#ded0ed}.book-spine i{font-size:10px;font-style:normal;color:#b99bce}.book-pages{position:absolute;top:4px;bottom:4px;right:-17px;width:34px;transform:rotateY(90deg);background:repeating-linear-gradient(90deg,#b9b4cb 0px,#b9b4cb 1px,#777087 1px,#8f879f 2px);border:1px solid #c3bed077;box-shadow:inset 0 10px 16px #2020354d;backface-visibility:hidden}.book-top,.book-bottom{position:absolute;left:2px;right:2px;height:34px;background:repeating-linear-gradient(0deg,#aba5bc 0 1px,#777085 1px 2px);backface-visibility:hidden}.book-top{top:-13px;transform:rotateX(90deg)}.book-bottom{bottom:-13px;transform:rotateX(-90deg);background:#3c2d48}.book-shadow{position:absolute;width:94%;height:39px;left:9%;bottom:-52px;border-radius:50%;background:radial-gradient(ellipse,#ad8aee31,transparent 72%);transform:rotateX(76deg) translateZ(-28px);filter:blur(7px);pointer-events:none}.subject-card.is-active .book-cover{border-color:#ceacfc99;box-shadow:inset 4px 0 4px #ffffff2e,inset 8px 0 5px #0909188f,inset -1px 0 2px #d9c9ff99,0 0 29px #a073cf15}.subject-card.is-active .book-label h3{color:#f0e3ff}.orbit-caption>span{color:#d3b8f3}.orbit-caption>p{color:#e4d6f6}.subject-tabs button[aria-pressed=true]{background:#bb8aee22;border-color:#ad89ce;box-shadow:0 0 21px #a16fce17;color:#efdfff}.round-button{border-color:#826395;color:#dec2f3}.round-button:hover{background:#593c6b}.drag-hint{color:#a998bc}
.selected{background:linear-gradient(140deg,#0e1015,#161420)}.lesson-art{background:radial-gradient(ellipse at 65% 40%,#4b385a,#171923 75%)}.lesson-art.chinese-art{background:radial-gradient(ellipse at 50% 100%,#444f67,#1a1724 80%)}.lesson-art svg{filter:drop-shadow(0 0 13px #c6b5ef42)}.lesson-card:hover{box-shadow:0 6px 40px #b789eb15}.about{background:radial-gradient(ellipse at 0% 0%,#272037,#111219 65%)}
@media(min-width:1700px){.hero{min-height:760px}.knowledge-scene{left:33%;right:0}.orbit-stage{height:459px}.hero-content{padding-top:110px}}
@media(max-width:1100px){.hero{min-height:650px}.knowledge-scene{left:25%;right:-12%}.hero-content{max-width:640px}.hero h1{font-size:57px}.hero-scene-caption{right:5%;bottom:50px}}
@media(max-width:760px){.hero{min-height:895px;background:radial-gradient(ellipse at 60% 68%,#32223e,#0e1015 66%)}.hero-content{padding-top:42px;max-width:none}.hero h1{font-size:clamp(40px,8.9vw,65px)}.knowledge-scene{inset:310px -12% 41px -12%;z-index:1}.hero-scene-caption{right:7%;bottom:55px;gap:6px 16px}.scene-tip{font-size:10px}.hero-scene-caption p,.scene-index{font-size:9px}.hero-scene-caption button{font-size:10px}.hero-footer>p{font-size:9px}.hero-footer small{font-size:7px}.hero .eyebrow{font-size:10px}.subjects{padding-top:48px}.subject-explorer{margin-top:30px}.orbit-stage{height:389px}.subject-card,.subject-card.is-active,.subject-card:hover{width:216px;height:312px;top:26px}.book-cover>header{padding-left:21px;font-size:9px}.book-cover .subject-diagram{height:143px;padding-left:15px;padding-right:13px}.book-label{padding-left:21px}.book-label h3{font-size:29px}.book-label small{font-size:9px}.book-cover .card-subtitle{font-size:10px}.book-footer{left:21px;font-size:6px}.book-pages{width:30px;right:-15px}.book-spine{width:36px;left:-18px}.book-top,.book-bottom{height:30px}.book-cover{transform:translateZ(18px)}.book-back{transform:translateZ(-18px) rotateY(180deg)}.orbit-guide{top:286px}.subject-tabs button{min-height:36px}.hero-footer{bottom:21px}}
.subject-cards{transform-style:flat;pointer-events:none}.orbit-navigation,.subject-tabs{position:relative;z-index:4}.hero-scene-caption{left:4.2%;right:auto;bottom:99px;gap:5px 16px}.hero-scene-caption .scene-index,.hero-scene-caption p{display:none}.hero-scene-caption .scene-tip{grid-column:1;font-size:11px}.hero-scene-caption button{grid-column:2;grid-row:1;font-size:11px;border-bottom-color:#73618a}.hero-footer>p{font-size:11px}
@media(max-width:760px){.hero-scene-caption{left:6%;right:auto;bottom:56px;gap:4px 12px}.hero-scene-caption .scene-tip,.hero-scene-caption button{font-size:10px}.hero-footer>p{font-size:9px}}
@media(prefers-reduced-motion:reduce){.book-glint{transition:none}.book-shadow{opacity:.55}}
