:root{--cream: #f3ead7;--dark: #070605;--brown-dark: #120f0b;--muted: rgba(243, 234, 215, .68);--accent: #c89b5c;--accent-strong: #e2b36f;--nav-clearance: 104px;--serif: "Cormorant Garamond", Georgia, "Times New Roman", serif;--sans: "Inter", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--script: "Caveat", "Bradley Hand", "Segoe Print", cursive;--motion-ease-standard: cubic-bezier(.22, .8, .22, 1);--motion-ease-exit: cubic-bezier(.4, 0, .2, 1);--motion-ease-write: cubic-bezier(.32, 0, .12, 1);--motion-duration-page-enter: .32s;--motion-duration-page-exit: .24s;--motion-duration-reveal: .82s;--motion-duration-write: 1.16s;--motion-distance-reveal: 26px;--motion-delay-short: .08s;--motion-delay-medium: .16s;--motion-delay-long: .28s;--motion-invite-duration: 2.8s}*{box-sizing:border-box}html{scroll-behavior:smooth;background:var(--dark)}body{margin:0;position:relative;min-height:100vh;overflow-x:hidden;background:var(--dark);color:var(--cream);font-family:var(--sans)}body.about-page{background:radial-gradient(circle at 82% 12%,rgba(201,148,79,.08),transparent 32rem),linear-gradient(180deg,#0b0907,#120f0a 46%,#0d0b08)}body.contact-page{color:#4a3b2c}body:not(.home-page):not(.contact-page) main{padding-bottom:var(--nav-clearance)}a{color:inherit;text-decoration:none}img,video{display:block;max-width:100%}.corner-logo{position:fixed;z-index:80;top:20px;left:28px;font-size:12px;letter-spacing:.28em;text-transform:uppercase;font-weight:700;color:#f3ead7e6;text-shadow:0 3px 18px rgba(7,6,5,.48)}body.contact-page .corner-logo{color:#4a3b2cdb;text-shadow:0 1px 0 rgba(247,238,221,.56),0 6px 22px rgba(74,59,44,.18)}.language-switcher{position:fixed;z-index:100;top:max(18px,calc(env(safe-area-inset-top) + 14px));right:max(24px,calc(env(safe-area-inset-right) + 20px));display:flex;align-items:center;justify-content:center;gap:3px;padding:5px;border:1px solid rgba(244,234,217,.12);border-radius:999px;background:#0c0a0761;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 12px 34px #00000047,inset 0 1px #ffffff12}.language-switcher a{display:inline-flex;align-items:center;justify-content:center;min-width:32px;min-height:28px;padding:0 8px;border-radius:999px;color:#f4ead9b8;font-size:11px;line-height:1;font-weight:700;letter-spacing:.05em;transition:color .25s ease,background .25s ease,transform .25s ease}.language-switcher a:hover,.language-switcher a.active{color:var(--cream);background:#f4ead914;transform:translateY(-1px)}body.contact-page .language-switcher{border-color:#4a3b2c1f;background:#f7eedd7a;box-shadow:0 12px 34px #4a3b2c1f,inset 0 1px #ffffff57}body.contact-page .language-switcher a{color:#4a3b2cad}body.contact-page .language-switcher a:hover,body.contact-page .language-switcher a.active{color:#4a3b2cf0;background:#4a3b2c12}.site-copyright{position:absolute;z-index:80;right:28px;bottom:28px;margin:0;font-size:10px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;color:#f3ead76b;text-shadow:0 3px 18px rgba(7,6,5,.46);pointer-events:none}body.contact-page .site-copyright{color:#4a3b2c85;text-shadow:0 1px 0 rgba(247,238,221,.44),0 4px 18px rgba(74,59,44,.12)}.bottom-nav{position:fixed;left:50%;bottom:max(18px,calc(env(safe-area-inset-bottom) + 14px));transform:translate(-50%);z-index:90;display:flex;align-items:center;justify-content:center;gap:clamp(16px,3vw,46px);padding:10px 20px;border-radius:999px;background:#0c0a0761;border:1px solid rgba(244,234,217,.1);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);box-shadow:0 12px 34px #0000004d,inset 0 1px #ffffff12;scrollbar-width:none;-ms-overflow-style:none}.bottom-nav::-webkit-scrollbar{display:none}.bottom-nav a{white-space:nowrap;font-size:12px;font-weight:600;letter-spacing:.05em;color:#f4ead9b8;transition:color .25s ease,transform .25s ease,background .25s ease}.bottom-nav a:hover,.bottom-nav a.active{color:var(--cream);transform:translateY(-1px)}.bottom-nav a.active{background:#f4ead90f;padding:6px 11px;border-radius:999px}.nav-label-mobile{display:none}.nav-appear{opacity:0;animation:navFadeIn var(--motion-duration-reveal) ease forwards;animation-delay:1.9s}@keyframes navFadeIn{0%{opacity:0}to{opacity:1}}@media(prefers-reduced-motion:no-preference){body.page-dragging main{opacity:var(--page-drag-opacity, 1);transform:translate(var(--page-drag-x, 0));transition:none;will-change:transform,opacity}body.page-enter-left main,body.page-enter-right main{animation-duration:var(--motion-duration-page-enter);animation-timing-function:var(--motion-ease-standard);animation-fill-mode:both}body.page-enter-left main{animation-name:pageEnterLeft}body.page-enter-right main{animation-name:pageEnterRight}body.page-exit-left main,body.page-exit-right main{pointer-events:none;animation-duration:var(--motion-duration-page-exit);animation-timing-function:var(--motion-ease-exit);animation-fill-mode:both}body.page-exit-left main{animation-name:pageExitLeft}body.page-exit-right main{animation-name:pageExitRight}}@keyframes pageEnterLeft{0%{opacity:0;transform:translate(28px)}to{opacity:1;transform:translate(0)}}@keyframes pageEnterRight{0%{opacity:0;transform:translate(-28px)}to{opacity:1;transform:translate(0)}}@keyframes pageExitLeft{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(-26px)}}@keyframes pageExitRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(26px)}}@keyframes motionButtonInvite{0%,to{transform:translateY(0) scale(1)}42%{transform:translateY(-4px) scale(1.022)}58%{transform:translateY(0) scale(1)}78%{transform:translateY(-2px) scale(1.01)}}@keyframes motionArrowDrift{0%,to{transform:translateY(0);opacity:.78}50%{transform:translateY(8px);opacity:1}}@keyframes motionCurtainIn{0%{opacity:.72;clip-path:inset(0 100% 0 0 round 24px)}to{opacity:1;clip-path:inset(0 0 0 0 round 24px)}}@keyframes motionPhraseIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@keyframes motionEchoWord{0%{opacity:0;transform:translateY(10px) scale(.96)}70%{opacity:1;transform:translateY(-2px) scale(1.015)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes motionLineGrow{0%{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}@keyframes motionSoftVeil{0%{opacity:.62}to{opacity:0}}@media(max-width:900px)and (orientation:portrait){.corner-logo{top:16px;left:18px;font-size:10px;letter-spacing:.22em}.language-switcher{top:max(12px,calc(env(safe-area-inset-top) + 10px));right:max(12px,calc(env(safe-area-inset-right) + 10px));gap:2px;padding:4px}.language-switcher a{min-width:28px;min-height:26px;padding:0 7px;font-size:10px}.site-copyright{right:18px;bottom:max(72px,calc(env(safe-area-inset-bottom) + 66px));font-size:9px;letter-spacing:.12em}.bottom-nav{width:max-content;max-width:calc(100vw - 22px);bottom:max(12px,calc(env(safe-area-inset-bottom) + 8px));gap:10px;padding:9px 12px;overflow-x:auto;justify-content:flex-start}.bottom-nav a{flex:0 0 auto;font-size:11px}}@media(max-width:900px)and (orientation:portrait){.bottom-nav .nav-label-full{display:none}.bottom-nav .nav-label-mobile{display:inline}}@media(max-width:460px){.bottom-nav{left:7px;width:calc(100vw - 14px);max-width:none;bottom:max(6px,calc(env(safe-area-inset-bottom) + 5px));transform:none;justify-content:space-evenly;gap:3px;padding:5px}.bottom-nav a{min-width:0;text-align:center;font-size:clamp(8.5px,2.28vw,10px);letter-spacing:0}.bottom-nav a.active{padding:5px 6px}}@media(orientation:landscape)and (max-height:560px){.corner-logo{top:max(10px,calc(env(safe-area-inset-top) + 8px));left:18px;font-size:9px;letter-spacing:.2em}.language-switcher{top:max(8px,calc(env(safe-area-inset-top) + 6px));right:max(12px,calc(env(safe-area-inset-right) + 10px));padding:3px}.language-switcher a{min-width:27px;min-height:24px;padding:0 7px;font-size:9px}.site-copyright{right:18px;bottom:max(52px,calc(env(safe-area-inset-bottom) + 48px));font-size:8px;letter-spacing:.1em}.bottom-nav{width:max-content;max-width:calc(100vw - 64px);bottom:max(8px,calc(env(safe-area-inset-bottom) + 6px));gap:clamp(12px,3vw,34px);padding:6px 12px;overflow-x:auto;justify-content:flex-start}.bottom-nav a{flex:0 0 auto;font-size:10px}.bottom-nav a.active{padding:6px 10px}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.nav-appear{opacity:1!important;animation:none!important}}@font-face{font-family:HaoYuWeiXingShu;src:url(/fonts/hao-yuwei-xingshu.ttf) format("truetype");font-weight:400;font-style:normal;font-display:swap}html:lang(zh) body{font-family:Noto Sans SC,Source Han Sans SC,Microsoft YaHei,system-ui,sans-serif}html:lang(zh) h1,html:lang(zh) h2,html:lang(zh) h3,html:lang(zh) .hero-title,html:lang(zh) .music-hero-title,html:lang(zh) .section-title,html:lang(zh) .closing-title,html:lang(zh) .panel-content h2,html:lang(zh) .projects-heading-group h1,html:lang(zh) .project-content h2,html:lang(zh) .selected-projects-header h2,html:lang(zh) .selected-project-card h3,html:lang(zh) .lessons-page .hero-inner h1,html:lang(zh) .contact-card h1{font-family:"Noto Serif SC","Source Han Serif SC",Songti SC,serif!important;font-weight:300!important;letter-spacing:.105em;color:#f6eeddf5;text-shadow:0 1px 12px rgba(8,7,5,.42),0 8px 32px rgba(8,7,5,.26)}html:lang(zh) .artist-name{font-family:Cormorant Garamond,Georgia,Times New Roman,serif!important;letter-spacing:-.06em}html:lang(zh) .panel-kicker,html:lang(zh) .projects-audience,html:lang(zh) .section-kicker,html:lang(zh) .work-subtitle,html:lang(zh) .selected-project-meta,html:lang(zh) .project-role,html:lang(zh) .panel-button,html:lang(zh) .project-button,html:lang(zh) .nav-link,html:lang(zh) .language-switcher,html:lang(zh) button{font-family:Noto Sans SC,Source Han Sans SC,Microsoft YaHei,sans-serif!important;font-weight:600;letter-spacing:.24em}html:lang(zh) .panel-button,html:lang(zh) .project-button,html:lang(zh) button{letter-spacing:.12em}html:lang(zh) .handwrite,html:lang(zh) .script-line,html:lang(zh) .projects-core,html:lang(zh) .projects-write,html:lang(zh) .lesson-core,html:lang(zh) .music-core,html:lang(zh) .approach-subtitle,html:lang(zh) .contact-handwrite{font-family:HaoYuWeiXingShu,Long Cang,Ma Shan Zheng,LXGW WenKai,KaiTi,STKaiti,cursive!important;font-weight:400!important;letter-spacing:.095em!important;line-height:1.28!important;font-size:clamp(28px,2.65vw,43px)!important;color:#f3ead7e8!important;transform:rotate(-.12deg);transform-origin:center;text-wrap:balance;word-break:keep-all;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;text-shadow:0 1px 6px rgba(7,6,5,.32),0 8px 24px rgba(7,6,5,.2)!important}html:lang(zh) .contact-handwrite{text-shadow:0 1px 7px rgba(58,43,27,.34),0 8px 26px rgba(58,43,27,.18)!important}html:lang(zh) .handwrite .write-line:nth-child(2),html:lang(zh) .projects-core .projects-write:nth-child(2),html:lang(zh) .lesson-core .lesson-write:nth-child(2),html:lang(zh) .music-core .music-write:nth-child(2),html:lang(zh) .approach-subtitle .write-line:nth-child(2){transform:translate(.12em) translateY(.015em) rotate(.12deg)}html:lang(zh) .handwrite .write-line,html:lang(zh) .projects-core .projects-write,html:lang(zh) .lesson-core .lesson-write,html:lang(zh) .music-core .music-write,html:lang(zh) .approach-subtitle .write-line,html:lang(zh) .contact-handwrite .write-line{padding-left:.07em;padding-right:.07em}html:lang(zh) .handwrite .accent-word,html:lang(zh) .script-line .accent-word,html:lang(zh) .projects-core .accent-word,html:lang(zh) .lesson-core .accent-word,html:lang(zh) .music-core .accent-word{color:#caa263f5!important;font-family:HaoYuWeiXingShu,Long Cang,Ma Shan Zheng,LXGW WenKai,KaiTi,cursive!important;font-weight:400!important;font-size:1.02em;letter-spacing:.085em!important;display:inline-block;transform:translateY(.004em) rotate(-.12deg);text-shadow:0 1px 5px rgba(7,6,5,.32),0 0 4px rgba(207,170,103,.08)!important}
