:root{--paper: #fafaf7;--paper-soft: #f3f0e9;--ink: #1a1a1a;--ink-soft: #3a3a3a;--ink-mute: #6e6e6e;--ink-whisper: #9a9a9a;--divider: #e5e2dc;--line: #e5e2dc;--cinnabar: #a8341f;--cinnabar-deep: #8a2516;--cinnabar-tint: #f5e7e1;--positive: #2e6b3c;--warning: #8a5a1f;--negative: #8a2516;--font-en: "EB Garamond", "LXGW WenKai", Georgia, serif;--font-cn: "LXGW WenKai", "Noto Serif SC", serif;--measure: 720px;--measure-wide: 960px;--motion-quick: .18s ease;--motion-glide: .26s ease;--motion-settle: .42s cubic-bezier(.2,.7,.2,1);--focus-ring: 0 0 0 2px var(--paper), 0 0 0 4px var(--cinnabar)}@media(prefers-reduced-motion:reduce){:root{--motion-quick: 0ms;--motion-glide: 0ms;--motion-settle: 0ms}html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition-duration:.01ms!important}}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:1px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}a{color:inherit;text-decoration:none}p a,li a{color:var(--ink-soft);text-decoration:underline;text-underline-offset:3px;text-decoration-color:var(--divider);transition:color var(--motion-quick),text-decoration-color var(--motion-quick)}p a:hover,li a:hover{color:var(--cinnabar);text-decoration-color:var(--cinnabar)}body{background:var(--paper);color:var(--ink);font-family:var(--font-en);font-size:18px;line-height:1.7;font-weight:400;-webkit-font-smoothing:antialiased}main{max-width:var(--measure);margin:0 auto;padding:0 32px}p{margin-bottom:20px;color:var(--ink-soft);text-wrap:pretty}p:last-child{margin-bottom:0}em{font-style:italic}nav.top{max-width:var(--measure);margin:0 auto;padding:32px;display:flex;justify-content:space-between;align-items:center;font-size:14px;letter-spacing:.05em;position:relative}nav.top .brand{color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:12px}nav.top .brand-mark{width:44px;height:44px;display:block;object-fit:contain}nav.top .brand-name{font-family:var(--font-en);font-size:24px;font-weight:500;letter-spacing:.01em;color:var(--ink)}nav.top .links{display:flex;align-items:center;gap:22px;color:var(--ink-mute)}nav.top .links a{color:var(--ink-mute);text-decoration:none;font-size:14px;letter-spacing:.04em;padding:4px 0;position:relative;transition:color var(--motion-quick)}nav.top .links a:hover{color:var(--ink)}nav.top .links a.active{color:var(--ink)}nav.top .links a.active:after{content:"";position:absolute;left:0;right:0;bottom:-2px;height:1px;background:var(--ink)}nav.top .links a.external span{display:inline-block;transition:transform var(--motion-glide);margin-left:2px}nav.top .links a.external:hover span{transform:translate(3px)}nav.top .links a.external:hover{color:var(--cinnabar)}.menu-toggle{display:none;background:transparent;border:none;cursor:pointer;padding:8px;width:36px;height:36px;flex-direction:column;justify-content:center;gap:5px}.menu-toggle span{display:block;width:20px;height:1.5px;background:var(--ink);transition:transform var(--motion-glide),opacity var(--motion-glide)}.menu-toggle.open span:nth-child(1){transform:translateY(6.5px) rotate(45deg)}.menu-toggle.open span:nth-child(2){opacity:0}.menu-toggle.open span:nth-child(3){transform:translateY(-6.5px) rotate(-45deg)}.hero{padding-top:96px;padding-bottom:60px;border-bottom:1px solid var(--divider)}.hero h1{font-family:var(--font-en);font-size:48px;font-weight:400;line-height:1.2;letter-spacing:-.01em;color:var(--ink);margin-bottom:24px}.hero p{font-size:17px;color:var(--ink-soft);max-width:580px;line-height:1.7}.hero--lg{padding-top:120px;padding-bottom:100px}.hero--lg h1{font-size:56px;line-height:1.15;margin-bottom:32px}.hero--lg p{font-size:18px;line-height:1.75;margin-bottom:40px}.character{font-family:var(--font-cn);font-weight:400;font-size:240px;line-height:1;color:var(--ink);letter-spacing:-.02em;margin-bottom:32px;display:inline-block}.character.character-multi{font-size:120px;letter-spacing:.04em}.pinyin{font-style:italic;font-size:22px;color:var(--ink-soft);margin-bottom:4px}.pinyin .tone-note{font-style:normal;color:var(--ink-mute);font-size:15px;letter-spacing:.05em}.gloss{font-size:18px;color:var(--ink-mute);margin-bottom:0}section.block{padding:64px 0;border-bottom:1px solid var(--divider)}section.block:last-of-type{border-bottom:none}.section-h2{font-family:var(--font-en);font-size:28px;font-weight:400;line-height:1.3;letter-spacing:-.005em;color:var(--ink);margin-bottom:20px}.label{font-size:12px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-mute);margin-bottom:24px}.inline-link{color:var(--ink);border-bottom:1px solid var(--divider);transition:color var(--motion-quick),border-color var(--motion-quick)}.inline-link:hover{color:var(--cinnabar);border-color:var(--cinnabar)}.inline-link:active{color:var(--cinnabar-deep);border-color:var(--cinnabar-deep)}.inline-link[aria-disabled=true]{color:var(--ink-whisper);border-color:var(--divider);pointer-events:none}.occasions{list-style:none;margin-top:8px}.occasions li{padding:18px 0;border-top:1px solid var(--divider);display:grid;grid-template-columns:180px 1fr;gap:24px;align-items:baseline}.occasions li:last-child{border-bottom:1px solid var(--divider)}.occasions .when{color:var(--ink);font-size:17px}.occasions .why{font-size:16px;color:var(--ink-soft);line-height:1.6}.signoff{margin-top:64px;padding:36px 0 8px;border-top:1px solid var(--divider)}.signoff p{font-size:15px;color:var(--ink-mute);letter-spacing:.02em;margin-bottom:24px}.signoff-button{display:inline-flex;align-items:center;gap:14px;padding:14px 28px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-family:var(--font-en);font-size:14px;letter-spacing:.18em;text-transform:uppercase;text-decoration:none;cursor:pointer;transition:color var(--motion-quick),border-color var(--motion-quick),background var(--motion-quick),transform var(--motion-quick)}.signoff-button span{font-size:16px;transition:transform var(--motion-glide)}.signoff-button:hover{border-color:var(--cinnabar);color:var(--cinnabar)}.signoff-button:hover span{transform:translate(4px)}.signoff-button:active{transform:translateY(1px);background:var(--paper-soft)}.signoff-button[aria-disabled=true],.signoff-button:disabled{border-color:var(--divider);color:var(--ink-whisper);cursor:not-allowed;pointer-events:none}.signoff-button[aria-busy=true]{color:var(--ink-mute);border-color:var(--divider);cursor:progress;pointer-events:none}.signoff-button[aria-busy=true]:after{content:"";width:10px;height:10px;border-radius:50%;border:1.5px solid var(--ink-mute);border-top-color:transparent;animation:btn-spin .7s linear infinite;margin-left:4px}@keyframes btn-spin{to{transform:rotate(360deg)}}.signoff-button--soft{border-color:var(--divider);color:var(--ink-soft)}.signoff-button--soft:hover{border-color:var(--ink);color:var(--ink)}.signoff-button--seal{background:var(--cinnabar);border-color:var(--cinnabar);color:var(--paper)}.signoff-button--seal:hover{background:var(--cinnabar-deep);border-color:var(--cinnabar-deep);color:var(--paper)}.signoff-button--seal:active{background:var(--cinnabar-deep);transform:translateY(1px)}footer{max-width:var(--measure);margin:0 auto;padding:40px 32px 80px;display:flex;justify-content:space-between;font-size:13px;color:var(--ink-mute);letter-spacing:.05em}footer a{color:var(--ink-mute);text-decoration:none;transition:color var(--motion-quick)}footer a:hover{color:var(--ink)}.bottom-cta{position:fixed;bottom:0;left:0;right:0;z-index:900;background:var(--paper);border-top:1px solid var(--divider);padding:12px 32px;transform:translateY(100%);transition:transform var(--motion-settle)}.bottom-cta[aria-hidden=false]{transform:translateY(0)}.bottom-cta-inner{max-width:var(--measure);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:20px}.bottom-cta-text{font-size:14px;color:var(--ink-mute);margin-bottom:0;letter-spacing:.01em;line-height:1.5}.bottom-cta-text strong{color:var(--ink-soft);font-weight:500}.bottom-cta-link{flex-shrink:0;display:inline-flex;align-items:center;gap:6px;padding:8px 20px;border:1px solid var(--cinnabar);color:var(--cinnabar);font-family:var(--font-en);font-size:13px;letter-spacing:.1em;text-transform:uppercase;text-decoration:none;white-space:nowrap;transition:background var(--motion-quick),color var(--motion-quick)}.bottom-cta-link span{transition:transform var(--motion-glide)}.bottom-cta-link:hover{background:var(--cinnabar);color:var(--paper)}.bottom-cta-link:hover span{transform:translate(3px)}.bottom-cta-close{position:absolute;top:4px;right:4px;background:none;border:none;color:var(--ink-whisper);font-size:18px;cursor:pointer;min-width:44px;min-height:44px;display:flex;align-items:center;justify-content:center;line-height:1;transition:color var(--motion-quick)}.bottom-cta-close:hover{color:var(--ink-mute)}@media(max-width:720px){body{font-size:17px}main,nav.top,footer{padding-left:24px;padding-right:24px}nav.top{padding:20px 24px;flex-wrap:wrap}nav.top .brand-mark{width:36px;height:36px}nav.top .brand-name{font-size:20px}.menu-toggle{display:flex}nav.top .links{display:none;width:100%;flex-direction:column;align-items:flex-start;gap:0;margin-top:24px;padding-top:20px;border-top:1px solid var(--divider)}nav.top .links.open{display:flex}nav.top .links a{width:100%;padding:14px 0;font-size:15px;border-bottom:1px solid var(--divider)}nav.top .links a:last-child{border-bottom:none}nav.top .links a.active:after{left:0;right:auto;width:24px;bottom:0}.hero{padding-top:40px;padding-bottom:36px}.hero--lg{padding-top:32px;padding-bottom:40px}.hero h1{font-size:36px;line-height:1.2;margin-bottom:20px}.hero p{font-size:16px;line-height:1.65;margin-bottom:28px}.hero--lg p{font-size:16px;line-height:1.65;margin-bottom:24px}.character{font-size:160px}.character.character-multi{font-size:72px}.pinyin{font-size:19px}.section-h2{font-size:24px}section.block{padding:48px 0}.occasions li{grid-template-columns:1fr;gap:6px;padding:16px 0}.signoff{margin-top:48px}.signoff p{font-size:14px}.signoff-button{padding:12px 22px;font-size:13px;letter-spacing:.15em}footer{flex-direction:column;gap:8px}.bottom-cta{padding:10px 24px 14px}.bottom-cta-inner{flex-direction:column;align-items:stretch;gap:10px}.bottom-cta-text{font-size:13px;text-align:center;padding-right:20px}.bottom-cta-link{justify-content:center;padding:10px 16px;font-size:12px}.bottom-cta-close{top:0;right:0}}
