@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;1,400;1,500&family=DM+Sans:wght@400;500;600&display=swap');
:root{--gold:#edcf91;--ink:#34304b;--muted:#696179}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 50% 20%,#414061,#171b36 75%);color:#fff6df;font:16px/1.65 'DM Sans',sans-serif;min-height:100dvh}a{color:inherit;text-decoration:none}button,select{font:inherit}button,a,select{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,select:focus-visible,[tabindex]:focus-visible{outline:3px solid #a38cd4;outline-offset:4px}header{display:flex;align-items:center;justify-content:space-between;gap:25px;max-width:1300px;margin:auto;padding:24px 5%}.brand{font:italic 44px/.9 'Cormorant Garamond',serif;display:block}.brand span{color:var(--gold)}.brand small{display:block;font:9px 'DM Sans',sans-serif;letter-spacing:2px;margin-top:10px}.chapter-picker{display:flex;align-items:center;gap:15px}.chapter-picker label{font-size:13px;color:#d8cfe6}.chapter-picker select{background:#292d4d;color:#fff6df;border:1px solid #766b83;border-radius:6px;padding:9px 30px 9px 12px;max-width:330px;font-size:14px}.contact-top{font-size:14px;color:var(--gold)}main{max-width:1260px;padding:0 4%;margin:auto}.book-heading{display:flex;align-items:center;justify-content:center;gap:25px;font-size:11px;letter-spacing:2px;color:#d5c8dd}.book-heading span{color:var(--gold)}.book{height:min(730px,calc(100dvh - 220px));min-height:480px;position:relative;perspective:2200px;border:9px solid #665064;border-radius:8px;box-shadow:0 25px 65px #080b22aa,4px 6px 0 #cebcac,8px 10px 0 #42334d;background:#fff8ed}.book-page{position:absolute;inset:0;display:grid;grid-template-columns:40% 60%;color:var(--ink);background:#fff9f0;transform-origin:left center;backface-visibility:hidden;border-radius:2px}.book-page[hidden]{display:none}.chapter-front{position:relative;background:linear-gradient(90deg,#f0e7ec,#faf0e9 96%,#d3c2bf);padding:42px 30px;display:flex;flex-direction:column;align-items:center;text-align:center;overflow:auto;border-right:1px solid #cbb9ba}.eyebrow{font-size:11px;letter-spacing:1.7px;text-transform:uppercase;color:#826285;line-height:1.6;margin:0 0 20px}.chapter-front h2{font:46px/1.06 'Cormorant Garamond',serif;margin:0 0 25px}.chapter-ornament{font-size:42px;color:#ae8448}.chapter-motto{font:italic 26px/1.5 'Cormorant Garamond',serif;color:#826285;margin:auto 0}.folio{font-size:10px;letter-spacing:2px;color:#8d7786;margin-top:auto;padding-top:28px}.sandy-photo{width:180px;max-height:270px;object-fit:cover;border-radius:110px 110px 4px 4px;margin-bottom:20px}.page-content{overflow-y:auto;overscroll-behavior:contain;padding:42px 40px 55px;background:linear-gradient(90deg,#dacbc255,#fff9f0 4%,#fffdf8 95%,#eadbc944);scrollbar-width:thin;scrollbar-color:#c8b7c9 transparent}.page-content h2{font:38px/1.1 'Cormorant Garamond',serif;margin:0 0 22px}.page-content h3{font:27px/1.15 'Cormorant Garamond',serif;margin:0 0 12px}.page-content p{color:var(--muted);margin:0 0 20px}.page-content em{color:#805c91}.page-content .about-image{display:none}.page-content a:not(.button){color:#745080;text-decoration:underline;text-underline-offset:4px}.page-content .button,.gold-button{display:inline-flex;align-items:center;gap:22px;border:1px solid #dbc28e;border-radius:30px;background:#edcf91;color:#332943;padding:13px 22px;font-size:14px;font-weight:600}.page-content .button:hover,.gold-button:hover{background:#ffe4b4}.lesson-grid article{padding:25px 0;border-top:1px solid #dfd0d9}.number{display:block;font-size:11px;letter-spacing:1.5px;color:#805c91;margin-bottom:14px}.lesson-meta{font-size:13px;margin-bottom:13px;color:#74637c}.text-link,.concert-link{font-size:14px}.concert-link{display:block;margin-top:22px}.availability,.archive-note{font-size:13px}.record-list,.concert-list{list-style:none;padding:0;margin:0 0 24px}.record-list li{display:grid;grid-template-columns:62px 1fr;gap:14px;padding:18px 0;border-bottom:1px solid #e2d4dd}.record-year{font-size:13px;color:#89668e}.record-list h3{font-size:24px}.record-list p{font-size:15px;margin:0}.record-list.compact li{grid-template-columns:85px 1fr}.year-heading{display:flex;justify-content:space-between;align-items:center}.year-heading span{font-size:12px}.concert-list li{padding:20px 0;border-top:1px solid #e2d4dd}.concert-list h3{font-size:25px}.concert-list p{font-size:14px;margin:0}.concert-list .concert-date{font-size:12px;color:#805c91;margin-bottom:10px}.undated{padding-top:20px}.contact-details{border-top:1px solid #dfd0d9;margin-top:30px;padding-top:25px}.contact-details>div{margin-bottom:23px}.contact-details a{display:block;overflow-wrap:anywhere}.contact-details p,.contact-details a{font-size:14px}.image-label{display:none}.cover-page{display:block;background:radial-gradient(ellipse at 50% 45%,#594870,#262a4b 75%);color:#fff3d9;padding:24px}.cover{height:100%;border:1px solid #bea373;outline:1px solid #bea37366;outline-offset:-8px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px}.cover .eyebrow{color:var(--gold);letter-spacing:3px}.cover-star{font-size:42px;color:var(--gold);text-shadow:0 0 28px #edcf9166}.cover h1{font:clamp(45px,5vw,72px)/1.08 'Cormorant Garamond',serif;margin:18px 0}.cover h1 em{color:var(--gold)}.cover>p:not(.eyebrow){font-size:16px;color:#e8def0;margin:0 0 25px}.cover .cover-small{font-size:10px!important;letter-spacing:2px;margin:25px 0 0!important}.book-controls{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:23px;text-align:center}.book-controls button{background:#ffffff0b;border:1px solid #8f7d94;color:#f9e0b2;border-radius:30px;padding:10px 23px;min-width:125px;font-size:14px}.book-controls button:hover:not(:disabled){background:#ffffff18}.book-controls button:disabled{opacity:.3;cursor:default}.book-controls p{font-size:13px;margin:0;color:#f8e7c8}.turn-hint{font:italic 18px 'Cormorant Garamond',serif;color:#c4b7d3}footer{max-width:1260px;margin:20px auto;padding:0 4%;display:flex;justify-content:space-between;gap:25px;color:#bcaec9;font-size:11px}footer a{text-decoration:underline}.skip{position:fixed;top:-100px;left:15px;background:white;color:#222;padding:15px;z-index:50}.skip:focus{top:15px}.turn-out{animation:turnout .22s ease-in forwards;pointer-events:none}.turn-in{animation:turnin .28s ease-out}.backward.turn-out{animation-name:backout}.backward.turn-in{animation-name:backin}@keyframes turnout{to{transform:rotateY(-88deg);filter:brightness(.7)}}@keyframes turnin{from{transform:rotateY(88deg);filter:brightness(.7)}to{transform:rotateY(0)}}@keyframes backout{to{transform:rotateY(88deg);filter:brightness(.7)}}@keyframes backin{from{transform:rotateY(-88deg);filter:brightness(.7)}to{transform:rotateY(0)}}
@media(max-width:700px){header{padding:18px 5%;gap:15px;flex-wrap:wrap}.brand{font-size:36px}.chapter-picker{order:3;width:100%;justify-content:space-between}.chapter-picker select{max-width:70%;font-size:12px;padding:8px}.chapter-picker label{font-size:12px}.book-heading{font-size:9px;letter-spacing:1px;gap:10px}.book{min-height:500px;height:calc(100dvh - 255px);border-width:6px}.book-page{grid-template-columns:1fr;grid-template-rows:auto 1fr}.chapter-front{padding:18px 20px;overflow:visible;border-right:0;border-bottom:1px solid #d6c5ce;background:#eee3ed;align-items:start;text-align:left}.chapter-front .eyebrow{font-size:10px;margin-bottom:5px}.chapter-front h2{font-size:28px;margin:0}.chapter-front .chapter-ornament,.chapter-front .chapter-motto,.chapter-front .folio,.chapter-front .sandy-photo{display:none}.page-content{padding:25px 23px 40px;min-height:0}.page-content h2{font-size:34px}.page-content h3{font-size:26px}.cover-page{display:block;padding:15px}.cover{padding:22px 14px}.cover h1{font-size:48px}.cover-star{font-size:34px}.cover>p:not(.eyebrow){font-size:14px}.cover .eyebrow{font-size:10px;letter-spacing:2px}.gold-button{font-size:13px;padding:12px 18px}.book-controls{margin-top:18px;gap:8px}.book-controls button{min-width:48px;padding:10px 13px}.book-controls button span{display:none}.book-controls p{font-size:11px}.turn-hint{font-size:15px}footer{font-size:10px;margin-top:18px}.record-list li{grid-template-columns:44px 1fr;gap:10px}.record-list.compact li{grid-template-columns:70px 1fr}.record-list h3{font-size:23px}.contact-top{font-size:13px}}
@media(prefers-reduced-motion:reduce){.turn-in,.turn-out{animation:none!important}}
@media(max-width:700px){#meet-sandy .page-content .about-image{display:block;margin:0 0 24px}#meet-sandy .page-content .about-image img{width:150px;height:200px;object-fit:cover;border-radius:90px 90px 3px 3px}}
.resume-top{font-size:14px;color:var(--gold);border-bottom:1px solid #edcf9155}.resume-callout{border:1px solid #c9b492;background:#f3e8da;padding:22px;margin:0 0 30px;border-radius:8px}.resume-callout h3{font-size:29px}.resume-callout p{font-size:14px}.resume-callout .eyebrow{margin-bottom:10px}.resume-callout .button{margin-bottom:12px}.resume-download{display:inline-block;font-size:13px;margin-left:5px}.performance-video{margin:0 0 30px}.performance-video video{display:block;width:100%;max-height:360px;background:#171b36;border-radius:7px}.performance-video figcaption{font-size:12px;color:var(--muted);margin-top:9px}.page-content .year-heading:not(:first-child){margin-top:28px}@media(max-width:700px){.resume-top{font-size:13px;margin-left:auto}.resume-callout{padding:18px}.performance-video video{max-height:270px}}
.sandy-gallery{max-width:350px;margin:0 auto 30px;touch-action:pan-y}.gallery-window{border:1px solid #cdb793;border-radius:150px 150px 8px 8px;padding:8px;background:#f0e7df}.gallery-slide{margin:0}.gallery-slide[hidden]{display:none}.gallery-slide img{width:100%;height:350px;object-fit:cover;object-position:50% 28%;border-radius:145px 145px 4px 4px}.gallery-controls{display:flex;align-items:center;justify-content:center;gap:25px;padding:12px 0 0}.gallery-controls button{border:1px solid #b9a5c2;background:#f3e9f2;color:#584260;border-radius:50%;width:40px;height:40px}.gallery-status{font-size:13px;color:#6b5778}.page-content .gallery-hint{text-align:center;font-size:12px;margin:8px 0 0}.lesson-options details{border-top:1px solid #d9c8d6;padding:16px 0}.lesson-options details:last-child{border-bottom:1px solid #d9c8d6}.lesson-options summary{cursor:pointer;color:#604469;font:26px/1.3 'Cormorant Garamond',serif;padding:5px 0}.lesson-options details>div{padding:15px 0 5px}.lesson-options details p{font-size:15px}.availability{margin-top:22px!important}.music-quote{margin:32px 0 0;border-top:1px solid #d9c7d5;padding:24px 5px 5px}.page-content .music-quote p{font:italic 26px/1.35 'Cormorant Garamond',serif;color:#79618b;margin-bottom:10px}.music-quote cite{font-size:12px;font-style:normal;color:#7a6a80}.gallery-slide img{max-width:100%}@media(max-width:700px){.gallery-slide img{height:330px}.sandy-gallery{max-width:290px}.page-content .music-quote p{font-size:25px}}

/* Bilingual storybook */
.language-toggle{display:flex;flex-shrink:0;border:1px solid #a58d61;border-radius:999px;padding:3px;gap:2px}.language-toggle button{font:500 14px/1.3 "DM Sans","PingFang TC","Microsoft JhengHei",sans-serif;border:0;border-radius:999px;background:transparent;color:#f4e3be;padding:8px 11px;cursor:pointer;white-space:nowrap}.language-toggle button[aria-pressed="true"]{background:#edcf91;color:#222647}.language-toggle button:focus-visible{outline:2px solid white;outline-offset:3px}
html[lang="zh-Hant"]{font-family:"PingFang TC","Microsoft JhengHei",sans-serif}html[lang="zh-Hant"] h1,html[lang="zh-Hant"] h2,html[lang="zh-Hant"] .music-quote{font-family:"Songti TC","Noto Serif TC","PMingLiU",serif;letter-spacing:.025em}html[lang="zh-Hant"] em{font-style:normal}html[lang="zh-Hant"] .eyebrow,html[lang="zh-Hant"] .chapter-motto,html[lang="zh-Hant"] .book-heading p{letter-spacing:.08em}html[lang="zh-Hant"] .page-content p{line-height:1.85}html[lang="zh-Hant"] .cover h1{font-size:clamp(2.6rem,4.7vw,4.7rem);line-height:1.4}html[lang="zh-Hant"] .chapter-front h2{line-height:1.5}html[lang="zh-Hant"] .page-content h2{line-height:1.5}header{flex-wrap:wrap}@media(max-width:700px){.language-toggle{margin-left:auto}.language-toggle button{padding:7px 9px}html[lang="zh-Hant"] .cover h1{font-size:2.55rem}html[lang="zh-Hant"] .chapter-front h2{font-size:1.65rem}}

html[lang="zh-Hant"] body{font-family:"PingFang TC","Microsoft JhengHei",sans-serif}html[lang="zh-Hant"] .chapter-motto{font-family:"Songti TC","PMingLiU",serif;font-style:normal}
