.recitation-header{position:sticky;top:0;z-index:12;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;min-height:72px;padding:8px 12px;border-bottom:1px solid rgba(216,203,178,.8);background:rgba(245,239,226,.94);backdrop-filter:blur(10px)}
.recitation-header>div{text-align:center;min-width:0}.recitation-header h1{margin:1px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:var(--font-wen);font-size:21px;letter-spacing:.1em}.recitation-header p{margin:0;color:var(--ink-soft);font-size:10px;letter-spacing:.08em}.recitation-my-link,.recitation-share-copy{display:grid;place-items:center;width:44px;height:44px;color:var(--cinnabar);font-size:12px;text-decoration:none}.recitation-main{flex:1;padding:0px 20px 34px}.recitation-intro{position:relative;margin:0 -20px 22px;padding:30px 24px 26px;color:#fff8e9;background:linear-gradient(150deg,rgba(63,75,64,.98),rgba(39,50,43,.98));overflow:hidden}.recitation-intro:after{content:"诵";position:absolute;right:-12px;bottom:-46px;color:rgba(255,255,255,.08);font-family:var(--font-wen);font-size:148px}.recitation-kicker{margin:0;color:#e9d7b7;font-size:11px;letter-spacing:.18em}.recitation-intro h2{position:relative;margin:10px 0 8px;font-family:var(--font-wen);font-size:29px;font-weight:500;letter-spacing:.08em}.recitation-intro>p:last-of-type{position:relative;max-width:285px;margin:0;color:rgba(255,248,233,.78);font-size:13px;line-height:1.8}.recitation-usage{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:20px;padding-top:14px;border-top:1px solid rgba(255,255,255,.18);font-size:12px}.recitation-usage a{color:inherit;font-weight:700;text-underline-offset:3px}.recitation-poem-list{display:flex;flex-direction:column}.recitation-poem-link{position:relative;display:grid;grid-template-columns:36px minmax(0,1fr) auto;align-items:center;gap:10px;padding:15px 2px;border-bottom:1px solid var(--rule);text-decoration:none;transition:padding .16s ease,background .16s ease}.recitation-poem-link b{color:rgba(158,59,44,.75);font-family:var(--font-wen);font-size:13px;font-weight:500}.recitation-poem-link strong{display:block;font-family:var(--font-wen);font-size:19px;font-weight:600}.recitation-poem-link span{display:block;margin-top:3px;color:var(--ink-soft);font-size:11px}.recitation-poem-link em{color:var(--ink-soft);font-style:normal;font-size:18px}.recitation-state{margin:40px 0;text-align:center;color:var(--ink-soft);font-size:13px;line-height:1.8}.recitation-manuscript{min-height:278px;margin:0 -20px;padding:34px 26px 30px;text-align:center;background:linear-gradient(rgba(253,250,242,.78),rgba(253,250,242,.78)),repeating-linear-gradient(90deg,rgba(158,59,44,.035) 0 1px,transparent 1px 34px)}.recitation-manuscript h2{margin:0;font-family:var(--font-wen);font-size:28px;font-weight:500;letter-spacing:.12em}.recitation-manuscript .poem-byline{margin:8px 0 23px;color:var(--ink-soft);font-family:var(--font-wen);font-size:13px}.recitation-manuscript .poem-line{margin:6px 0;font-family:var(--font-wen);font-size:22px;line-height:1.72;letter-spacing:.12em}.recitation-studio{margin:20px 0 0;padding-top:2px}.recitation-studio-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.recitation-studio-head p{margin:0;color:var(--cinnabar);font-size:10px;letter-spacing:.15em}.recitation-studio-head h2{margin:5px 0 0;font-family:var(--font-wen);font-size:17px;font-weight:500}.recitation-studio-head>span{padding:5px 9px;border:1px solid var(--rule);border-radius:20px;color:var(--ink-soft);font-size:10px;white-space:nowrap}.recitation-status{min-height:42px;margin:17px 0 4px;color:var(--ink-soft);font-size:12px;line-height:1.7;text-align:center}.recitation-timer{text-align:center;font-variant-numeric:tabular-nums;font-size:30px;font-weight:300;letter-spacing:.08em}.recitation-pulse{height:34px;display:flex;align-items:center;justify-content:center;gap:4px}.recitation-pulse i{display:block;width:3px;height:8px;border-radius:4px;background:var(--cinnabar);opacity:.3}.is-recording .recitation-pulse i{opacity:.8;animation:recitation-wave .75s ease-in-out infinite alternate}.is-recording .recitation-pulse i:nth-child(2),.is-recording .recitation-pulse i:nth-child(4){animation-delay:.18s}.is-recording .recitation-pulse i:nth-child(3){animation-delay:.35s}.recitation-record-actions{display:flex;align-items:center;justify-content:center;gap:10px;min-height:78px}.recitation-record-button{width:76px;height:76px;padding:6px;border:1px solid rgba(158,59,44,.32);border-radius:50%;background:rgba(158,59,44,.08);color:var(--cinnabar)}.recitation-record-button span{display:grid;place-items:center;width:100%;height:100%;border-radius:50%;background:var(--cinnabar);color:#fff8e9;font-size:12px;line-height:1.3}.is-recording .recitation-record-button span{border-radius:18px;transform:scale(.64)}.recitation-studio audio{width:100%;height:38px;margin-top:8px}.recitation-privacy{margin:14px 0 0;text-align:center;color:var(--ink-soft);font-size:10px;line-height:1.6}.recitation-result{margin-top:26px;padding-top:24px;border-top:1px solid var(--rule)}.recitation-result-head{text-align:center}.recitation-total{font-family:var(--font-wen);font-size:66px;line-height:1;color:var(--cinnabar)}.recitation-total small{font-family:var(--font-ui);font-size:13px;color:var(--ink-soft)}.recitation-result-head h2{margin:8px 0 18px;font-family:var(--font-wen);font-size:21px;font-weight:500}.recitation-score-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}.recitation-score-grid div{padding:13px 12px;background:var(--paper-light)}.recitation-score-grid span{display:block;color:var(--ink-soft);font-size:10px}.recitation-score-grid strong{display:block;margin-top:4px;font-size:21px}.recitation-characters{margin:22px 0;padding:18px 14px;background:rgba(253,250,242,.68);font-family:var(--font-wen);font-size:25px;line-height:1.85;letter-spacing:.08em;text-align:center}.recitation-char{display:inline-block;min-width:1.15em;border-bottom:2px solid transparent}.recitation-char.correct{color:var(--bamboo)}.recitation-char.needs_correction{color:#b56d22;border-color:#b56d22}.recitation-char.missing{color:var(--cinnabar);border-color:var(--cinnabar)}.recitation-char.extra{padding:0 5px;border-radius:4px;background:rgba(158,59,44,.1);color:var(--cinnabar);font-size:14px}.recitation-legend{display:flex;justify-content:center;gap:12px;color:var(--ink-soft);font-size:10px}.recitation-result-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.recitation-result-actions .wide{grid-column:1/-1}.recitation-publish-note{margin:12px 0 0;color:var(--ink-soft);font-size:10px;line-height:1.6;text-align:center}.recitation-me-usage{margin:0 0 18px;padding:13px 0;border-top:0;border-bottom:1px solid var(--rule)}.recitation-work-item{padding:18px 0;border-bottom:1px solid var(--rule)}.recitation-work-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.recitation-work-head h2{margin:0;font-family:var(--font-wen);font-size:20px}.recitation-work-head p{margin:4px 0 0;color:var(--ink-soft);font-size:10px}.recitation-work-score{font-family:var(--font-wen);font-size:30px;color:var(--cinnabar)}.recitation-work-item audio{width:100%;height:38px;margin:13px 0}.recitation-work-actions{display:flex;gap:8px;flex-wrap:wrap}.recitation-work-actions .button{min-height:34px;padding:6px 12px;font-size:11px}.recitation-share{padding-top:28px}.recitation-share-author{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--ink-soft);font-size:12px}.recitation-share-author img,.recitation-avatar-fallback{width:44px;height:44px;border-radius:50%;object-fit:cover}.recitation-avatar-fallback{display:grid;place-items:center;background:var(--paper-deep);font-family:var(--font-wen);font-size:18px}.recitation-share-poem{text-align:center;margin:24px 0}.recitation-share-poem h2{margin:0;font-family:var(--font-wen);font-size:29px}.recitation-share-poem p{margin:8px 0;color:var(--ink-soft);font-size:11px}.recitation-share-poem div{margin-top:18px;font-family:var(--font-wen);font-size:19px;line-height:1.8}.recitation-share-audio{width:100%;margin:4px 0 22px}.recitation-share-score{display:flex;align-items:center;justify-content:center;gap:18px;padding:22px 0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}.recitation-share-score strong{font-family:var(--font-wen);font-size:54px;color:var(--cinnabar)}.recitation-share-score span{color:var(--ink-soft);font-size:11px;line-height:1.7}.recitation-social{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.recitation-like[aria-pressed=true]{border-color:var(--cinnabar);color:var(--cinnabar);background:rgba(158,59,44,.07)}
.recitation-share{padding-top:14px;padding-bottom:calc(82px + env(safe-area-inset-bottom))}.recitation-share-header .recitation-share-author{display:flex;align-items:center;justify-content:center;gap:8px;min-width:0;color:var(--ink-soft);text-align:left}.recitation-share-author img,.recitation-avatar-fallback{flex:0 0 auto;width:38px;height:38px;border-radius:50%;object-fit:cover}.recitation-share-author>span{min-width:0}.recitation-share-author strong{display:block;overflow:hidden;color:var(--ink);font-size:13px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}.recitation-share-author small,.recitation-share-author-loading{display:block;margin-top:2px;color:var(--ink-soft);font-size:10px;line-height:1.3;white-space:nowrap}.recitation-share-stage{--recitation-share-background-image:none;position:relative;isolation:isolate;display:grid;grid-template-rows:minmax(0,1fr) auto;height:clamp(430px,calc(100svh - 188px),600px);min-height:0;margin:0 -20px;overflow:hidden;background:linear-gradient(180deg,#f4eddd,#eee2ca)}.recitation-share-stage:before{content:"";position:absolute;z-index:-2;inset:0;background-image:linear-gradient(180deg,rgba(253,250,242,.42),rgba(253,250,242,.22) 65%,rgba(238,226,202,.78)),var(--recitation-share-background-image);background-position:center top;background-repeat:no-repeat;background-size:cover;opacity:0;transition:opacity .28s ease}.recitation-share-stage:after{content:"";position:absolute;z-index:-1;inset:0;background:repeating-linear-gradient(90deg,rgba(158,59,44,.025) 0 1px,transparent 1px 34px);pointer-events:none}.recitation-share-stage.has-background-image:before{opacity:1}.recitation-share .recitation-share-poem{min-height:0;margin:0;padding:28px 24px 34px;overflow-y:auto;overscroll-behavior:contain;text-align:center;scrollbar-width:thin}.recitation-share-poem h2{margin:0;font-family:var(--font-wen);font-size:24px;font-weight:500;letter-spacing:.08em;text-shadow:0 1px 2px rgba(255,255,255,.92)}.recitation-share-poem p{margin:8px 0;color:var(--ink-soft);font-size:11px;text-shadow:0 1px 2px rgba(255,255,255,.92)}.recitation-share-poem .recitation-share-lines{margin-top:22px;font-family:var(--font-wen);font-size:27px;line-height:1.78;letter-spacing:.08em;text-shadow:0 1px 2px rgba(255,255,255,.96),0 0 8px rgba(255,255,255,.7)}.recitation-share-lines span{display:block}.recitation-share-player{position:relative;padding:12px 16px 14px;background:linear-gradient(180deg,rgba(245,239,226,.2),rgba(245,239,226,.92) 38%);backdrop-filter:blur(4px)}.recitation-share .recitation-share-audio{display:block;width:100%;height:42px;margin:0}.recitation-share .recitation-share-score{padding:22px 0;border-top:0}.recitation-share .recitation-social{position:fixed;z-index:14;left:50%;bottom:0;transform:translateX(-50%);display:grid;grid-template-columns:1fr 1fr;gap:10px;width:min(100%,420px);margin:0;padding:10px 20px calc(10px + env(safe-area-inset-bottom));border-top:1px solid rgba(216,203,178,.86);background:rgba(245,239,226,.96);box-shadow:0 -8px 24px rgba(45,37,26,.06);backdrop-filter:blur(12px)}
.recitation-main.recitation-share{padding-top:0}.recitation-share .recitation-share-stage{display:block;width:auto;height:auto;aspect-ratio:1/1;min-height:0;margin:0 -20px}.recitation-share .recitation-share-stage:before{background-size:100% 100%}.recitation-share .recitation-share-poem{box-sizing:border-box;height:100%;padding:10px 26px 30px;overscroll-behavior:auto}.recitation-share .recitation-share-lines span{position:relative;width:max-content;max-width:100%;margin:0 auto;padding-left:12px;color:var(--ink);font-weight:400;transition:color .2s ease,opacity .2s ease,transform .2s ease}.recitation-share .recitation-share-lines span:before{content:"";position:absolute;top:50%;left:0;width:4px;height:18px;border-radius:3px;background:var(--cinnabar);opacity:0;transform:translateY(-50%) scaleY(.45);transition:opacity .2s ease,transform .2s ease}.recitation-share .recitation-share-lines span.is-complete{color:var(--ink-soft);opacity:.48}.recitation-share .recitation-share-lines span.is-current{color:var(--cinnabar);font-weight:700;opacity:1;transform:scale(1.025)}.recitation-share .recitation-share-lines span.is-current:before{opacity:1;transform:translateY(-50%) scaleY(1)}.recitation-share .recitation-share-player{margin:0;padding:10px 0 6px;background:none;backdrop-filter:none}.recitation-share .recitation-share-score{padding:16px 0 18px}
.recitation-me .recitation-login-link{color:var(--cinnabar);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.recitation-studio{margin:10px 0 0;padding-top:0}
.recitation-work-head{align-items:center}.recitation-work-identity{display:flex;align-items:center;min-width:0;gap:10px;color:inherit;text-decoration:none}.recitation-work-cover{position:relative;display:grid;place-items:center;flex:0 0 44px;width:44px;height:44px;border:1px solid rgba(121,89,52,.18);border-radius:50%;overflow:hidden;background:var(--paper-deep);color:var(--ink-soft)}.recitation-work-cover img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.recitation-work-cover i{font-family:var(--font-wen);font-size:17px;font-style:normal}.recitation-work-copy{min-width:0}.recitation-work-copy h2{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recitation-work-copy p{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.recitation-work-score{display:inline-flex;align-items:flex-end;gap:3px;white-space:nowrap}.recitation-work-score small{padding-bottom:3px;color:var(--ink-soft);font-family:var(--font-ui);font-size:10px;font-weight:400}.recitation-work-actions{align-items:center;flex-wrap:nowrap}.recitation-work-actions .button{flex:0 0 auto;min-width:0;white-space:nowrap}.recitation-work-actions .recitation-work-share{flex:1 1 auto;text-align:center}.recitation-work-actions .recitation-work-visibility{display:flex;align-items:center;flex:1 1 auto;gap:8px;min-width:0;margin:0;padding:0;border:0;color:var(--ink-soft);text-align:left}.recitation-work-actions .recitation-work-visibility label{display:inline-flex;align-items:center;gap:2px;margin:0;color:var(--ink);font-size:11px;white-space:nowrap}.recitation-work-actions .recitation-work-visibility input{margin:0;accent-color:var(--cinnabar)}
.recitation-share .recitation-share-score{border-bottom:0}.recitation-share-comment{display:flex;flex-direction:column;align-items:flex-start;gap:1px}.recitation-share-comment b{color:var(--ink);font-family:var(--font-wen);font-size:17px;font-weight:500;line-height:1.25;letter-spacing:.08em;white-space:nowrap}.recitation-share-comment small{margin-top:4px;color:var(--ink-soft);font-size:10px;line-height:1.4;white-space:nowrap}.recitation-wechat-share-guide{position:fixed;z-index:40;top:max(8px,env(safe-area-inset-top));right:12px;display:flex;align-items:flex-start;gap:7px;pointer-events:none;color:#fffaf0;opacity:0;transform:translateY(-7px);transition:opacity .22s ease,transform .22s ease;text-align:right;text-shadow:0 1px 4px rgba(43,31,22,.72)}.recitation-wechat-share-guide[hidden]{display:none}.recitation-wechat-share-guide.is-visible{opacity:1;transform:translateY(0)}.recitation-wechat-share-guide span{display:block;font-size:38px;font-weight:300;line-height:1;animation:recitation-share-arrow .9s ease-in-out infinite alternate}.recitation-wechat-share-guide p{margin:26px 0 0;padding:7px 9px;border-radius:8px;background:rgba(45,37,26,.76);font-size:11px;font-weight:600;line-height:1.55;letter-spacing:.03em}@keyframes recitation-share-arrow{to{transform:translate(4px,-4px)}}
@keyframes recitation-wave{to{height:28px}}
@media(hover:hover){.recitation-poem-link:hover{padding-left:8px;background:rgba(237,228,208,.35)}}
@media(prefers-reduced-motion:no-preference){.recitation-intro>*{animation:recitation-enter .4s ease-out both}.recitation-intro>*:nth-child(2){animation-delay:.06s}.recitation-intro>*:nth-child(3){animation-delay:.12s}.recitation-poem-link{animation:recitation-enter .28s ease-out both;animation-delay:calc(var(--item-index,0)*24ms)}.recitation-char{animation:recitation-char-in .2s ease-out both;animation-delay:calc(var(--char-index,0)*18ms)}@keyframes recitation-enter{from{opacity:0;transform:translateY(8px)}}@keyframes recitation-char-in{from{opacity:0;transform:translateY(5px)}}}
@media(prefers-reduced-motion:reduce){.recitation-pulse i{animation:none!important}.recitation-share-stage:before{transition:none}.recitation-wechat-share-guide span{animation:none}.recitation-wechat-share-guide{transition:opacity .22s ease}}
.recitation-manuscript .poem-line{position:relative;width:max-content;max-width:100%;margin:6px auto;padding-left:14px;color:var(--ink);font-family:var(--font-wen);font-size:22px;font-weight:400;line-height:1.72;letter-spacing:.12em;transition:color .22s ease,opacity .22s ease,transform .22s ease}
.recitation-manuscript .poem-line:before{content:"";position:absolute;top:50%;left:0;width:5px;height:18px;border-radius:3px;background:var(--cinnabar);opacity:0;transform:translateY(-50%) scaleY(.45);transition:opacity .22s ease,transform .22s ease}
.recitation-manuscript .poem-line.is-complete{color:var(--ink-soft);opacity:.48}
.recitation-manuscript .poem-line.is-current{color:var(--cinnabar);font-weight:700;opacity:1;transform:scale(1.025)}
.recitation-manuscript .poem-line.is-current:before{opacity:1;transform:translateY(-50%) scaleY(1)}
.recitation-preview{display:flex;align-items:center;gap:13px;margin:4px 0 12px;padding:14px 2px;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule)}
.recitation-preview[hidden]{display:none}
.recitation-preview-toggle{display:grid;place-items:center;flex:0 0 48px;width:48px;height:48px;padding:0;border:0;border-radius:50%;background:var(--cinnabar);color:#fff8e9;cursor:pointer}
.recitation-preview-toggle svg{width:24px;height:24px;overflow:visible;fill:currentColor}
.recitation-preview-icon-pause,.recitation-preview-icon-replay{display:none}
.recitation-preview-toggle[data-preview-state="pause"] .recitation-preview-icon-play,.recitation-preview-toggle[data-preview-state="replay"] .recitation-preview-icon-play{display:none}
.recitation-preview-toggle[data-preview-state="pause"] .recitation-preview-icon-pause,.recitation-preview-toggle[data-preview-state="replay"] .recitation-preview-icon-replay{display:block}
.recitation-preview-toggle:disabled{cursor:wait;opacity:.55}
.recitation-preview-body{flex:1;min-width:0}
.recitation-preview-meta{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:9px}
.recitation-preview-meta strong{font-family:var(--font-wen);font-size:15px;font-weight:600}
.recitation-preview-meta span{color:var(--ink-soft);font-size:11px;font-variant-numeric:tabular-nums;white-space:nowrap}
.recitation-preview-track{position:relative;height:5px;border-radius:5px;background:var(--paper-deep);overflow:hidden}
.recitation-preview-track i{display:block;width:0;height:100%;border-radius:inherit;background:var(--cinnabar);transition:width .1s linear}
.recitation-sample-player{display:grid;grid-template-columns:auto 34px minmax(56px,1fr);align-items:center;gap:9px;margin:9px 0 0;color:var(--ink-soft);font-size:10px;line-height:1.2}
.recitation-sample-player[hidden]{display:none}
.recitation-sample-player strong{color:var(--ink);font-family:var(--font-wen);font-size:13px;font-weight:600;white-space:nowrap}
.recitation-sample-toggle{display:grid;place-items:center;width:34px;height:34px;padding:0;border:0;border-radius:50%;background:var(--cinnabar);color:#fff8e9;cursor:pointer}
.recitation-sample-toggle svg{width:18px;height:18px;fill:currentColor}
.recitation-sample-icon-pause{display:none}
.recitation-sample-toggle[data-state="pause"] .recitation-sample-icon-play{display:none}
.recitation-sample-toggle[data-state="pause"] .recitation-sample-icon-pause{display:block}
.recitation-sample-toggle:disabled{cursor:wait;opacity:.55}
.recitation-sample-progress{width:100%;height:20px;margin:0;accent-color:var(--cinnabar);cursor:pointer}
.recitation-sample-progress:disabled{cursor:default;opacity:.45}
.recitation-guide-note,.recitation-privacy{margin:9px 0 0;text-align:center;font-size:10px;line-height:1.65}
.recitation-guide-note{color:var(--cinnabar)}
.recitation-privacy{color:var(--ink-soft)}
.is-reviewing .recitation-timer,.is-reviewing .recitation-pulse{display:none}
.is-analyzing .recitation-pulse{height:12px;opacity:.32}
.is-analyzing .recitation-pulse i{opacity:.82;animation:recitation-wave .75s ease-in-out infinite alternate}.is-analyzing .recitation-pulse i:nth-child(2),.is-analyzing .recitation-pulse i:nth-child(4){animation-delay:.18s}.is-analyzing .recitation-pulse i:nth-child(3){animation-delay:.35s}
.is-reviewing .recitation-record-actions,.is-analyzing .recitation-record-actions{min-height:62px}
.recitation-record-actions>.button{min-height:44px}
.recitation-status{height:24px;min-height:24px;margin:7px 0 5px;overflow:hidden;color:var(--ink-soft);font-size:12px;line-height:24px;text-align:center;white-space:nowrap;text-overflow:ellipsis}
.recitation-status-track{height:96px;will-change:transform;animation:recitation-status-roll 10.5s ease-in-out infinite}
.recitation-status-track span{display:block;height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.recitation-status.is-static{font-weight:500}
.recitation-status.is-active,.recitation-status.is-error{color:var(--cinnabar)}
.recitation-status.is-success{color:var(--bamboo)}
.recitation-status.is-quota{height:auto;min-height:24px;overflow:visible;line-height:1.6;white-space:normal}.recitation-status.is-quota a{margin:0 2px;color:var(--cinnabar);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.recitation-status.is-login{height:auto;min-height:24px;overflow:visible;line-height:1.6;white-space:normal}.recitation-status.is-login .recitation-login-link{margin:0 2px;color:var(--cinnabar);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.is-reviewing .recitation-preview{margin-top:4px}
.is-result .recitation-timer,.is-result .recitation-pulse,.is-result .recitation-record-actions,.is-result .recitation-guide-note,.is-result .recitation-review-usage,.is-result .recitation-privacy{display:none}
.is-result .recitation-preview{margin:4px 0 0}
@keyframes recitation-status-roll{0%,25%{transform:translateY(0)}32%,57%{transform:translateY(-25%)}64%,89%{transform:translateY(-50%)}96%,100%{transform:translateY(-75%)}}
@media(prefers-reduced-motion:reduce){.recitation-manuscript .poem-line,.recitation-manuscript .poem-line:before,.recitation-preview-track i{transition:none!important}.recitation-manuscript .poem-line.is-current{transform:none}.recitation-status-track{animation:none}}
/* v2 material catalog, pinyin guidance, grade filters and visibility */
.recitation-grade-filter{display:flex;gap:.48rem;overflow-x:auto;padding:.2rem .1rem .8rem;scrollbar-width:none;-webkit-overflow-scrolling:touch}.recitation-grade-filter::-webkit-scrollbar{display:none}.recitation-grade-filter a{flex:0 0 auto;border:1px solid rgba(121,89,52,.22);border-radius:999px;padding:.42rem .78rem;color:#675b4e;background:rgba(255,252,243,.65);font-size:.84rem;text-decoration:none;white-space:nowrap}.recitation-grade-filter a.is-active{color:#fff;background:#a83a2b;border-color:#a83a2b}.poem-line ruby{ruby-align:center;ruby-position:over}.poem-line rt{display:none;font-family:system-ui,sans-serif;font-size:.42em;font-weight:400;line-height:1.1;letter-spacing:0;color:#665d53;text-shadow:0 1px 2px rgba(255,255,255,.98),0 0 5px rgba(255,255,255,.9);transition:color .2s ease}.poem-line.is-current rt{display:ruby-text;color:#a73527}.poem-line .poem-punct{display:inline}.recitation-visibility{max-width:30rem;margin:.75rem auto 0;border:0;border-top:1px solid rgba(121,89,52,.16);padding:.75rem 0 0;text-align:center;color:#655d53}.recitation-visibility legend{float:left;width:100%;margin:0 0 .5rem;font-size:.82rem;color:#8c7964}.recitation-visibility label{display:inline-flex;align-items:center;gap:.3rem;margin:0 .55rem;font-size:.9rem}.recitation-visibility input{accent-color:#aa3829}.recitation-visibility small{display:block;margin-top:.48rem;font-size:.73rem;color:#91877a}.recitation-assessment-note{margin:.6rem 0;color:#8a5a32;font-size:.86rem}
.recitation-result .recitation-visibility{margin-top:14px}.recitation-result-actions.is-single{grid-template-columns:minmax(140px,220px);justify-content:center}.recitation-result-actions [hidden]{display:none}
.recitation-review-usage{margin:0 0 8px;color:var(--ink-soft);font-size:11px;line-height:1.6;text-align:center}.recitation-review-usage a{margin-left:6px;color:var(--cinnabar);font-weight:600;text-underline-offset:3px}.recitation-result-controls[hidden],.recitation-review-usage[hidden]{display:none}.recitation-result-controls .recitation-publish-note{margin:9px 0 0}.recitation-result-controls .recitation-result-actions{margin-top:12px}.recitation-work-visibility{margin:2px 0 12px;padding:10px 0;border:0;border-top:1px solid var(--rule);border-bottom:1px solid var(--rule);color:var(--ink-soft);text-align:center}.recitation-work-visibility legend{float:left;width:100%;margin:0 0 7px;font-size:11px}.recitation-work-visibility label{display:inline-flex;align-items:center;gap:4px;margin:0 12px;color:var(--ink);font-size:12px}.recitation-work-visibility input{accent-color:var(--cinnabar)}
.recitation-studio>.recitation-privacy{display:none}.recitation-studio.is-reviewing>.recitation-privacy{display:block}.recitation-inline-link{color:var(--cinnabar);font-weight:600;text-decoration:underline;text-underline-offset:3px}.recitation-recommendations{margin:26px 0 0;padding:18px 0 0;border-top:1px dashed rgba(121,89,52,.42)}.recitation-recommendations[hidden]{display:none}.recitation-recommendations h2{margin:0 0 16px;color:var(--ink);font-family:var(--font-wen);font-size:17px;font-weight:600;letter-spacing:.12em}.recitation-recommendation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px 10px}.recitation-recommendation-card{display:flex;min-width:0;align-items:center;flex-direction:column;padding:8px 4px 10px;border-radius:12px;color:var(--ink);text-align:center;text-decoration:none;background:rgba(253,250,242,.5);transition:background .18s ease,transform .18s ease}.recitation-recommendation-avatar{position:relative;display:grid;place-items:center;width:52px;height:52px;margin-bottom:7px;border:1px solid rgba(121,89,52,.18);border-radius:50%;overflow:hidden;background:var(--paper-deep)}.recitation-recommendation-avatar img{position:absolute;z-index:2;inset:0;width:100%;height:100%;object-fit:cover}.recitation-recommendation-avatar i{font-family:var(--font-wen);font-size:19px;font-style:normal;color:var(--ink-soft)}.recitation-recommendation-card strong{display:block;width:100%;overflow:hidden;font-size:12px;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.recitation-recommendation-card small{display:block;margin-top:3px;color:var(--ink-soft);font-size:9px}.recitation-recommendation-card:focus-visible{outline:2px solid var(--cinnabar);outline-offset:2px}@media(hover:hover){.recitation-recommendation-card:hover{background:rgba(237,228,208,.58);transform:translateY(-2px)}}@media(prefers-reduced-motion:reduce){.recitation-recommendation-card{transition:none}.recitation-recommendation-card:hover{transform:none}}

/* Material artwork audio player shared by My Recitations and public work pages. */
.recitation-audio-skin{--recitation-audio-skin-image:none;--recitation-audio-progress:0%;position:relative;isolation:isolate;min-height:56px;margin:13px 0;overflow:hidden;border:2px solid rgba(255,255,255,.5);border-radius:999px;background:linear-gradient(135deg,#746b5a,#3d473e);box-shadow:0 8px 22px rgba(45,37,26,.13),inset 0 0 0 1px rgba(48,38,25,.12);color:#fff;transition:transform .18s ease,box-shadow .18s ease}
.recitation-audio-skin:before,.recitation-audio-skin:after{content:"";position:absolute;pointer-events:none;inset:0}
.recitation-audio-skin:before{z-index:-2;background-image:var(--recitation-audio-skin-image);background-position:center bottom;background-repeat:no-repeat;background-size:100% auto;opacity:0;transform:scale(1.025);transition:opacity .28s ease,transform 8s ease}
.recitation-audio-skin.has-background-image:before{opacity:1}
.recitation-audio-skin:after{z-index:-1;background:rgba(0,0,0,.2)}
.recitation-audio-skin.is-playing{box-shadow:0 9px 26px rgba(45,37,26,.2),inset 0 0 0 1px rgba(255,255,255,.1)}
.recitation-audio-skin.is-playing:before{transform:scale(1.07)}
.recitation-audio-skin>audio{display:none}
.recitation-audio-skin-controls{position:relative;z-index:1;display:grid;grid-template-columns:38px auto minmax(52px,1fr) 34px;align-items:center;gap:8px;min-height:52px;padding:0 10px}
.recitation-audio-toggle,.recitation-audio-mute{display:grid;place-items:center;padding:0;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;cursor:pointer;filter:drop-shadow(0 1px 2px rgba(0,0,0,.72));transition:background .16s ease,transform .16s ease}
.recitation-audio-toggle{width:38px;height:38px}.recitation-audio-mute{width:32px;height:32px}
.recitation-audio-toggle svg{width:22px;height:22px;fill:currentColor}.recitation-audio-mute svg{width:19px;height:19px;fill:currentColor}
.recitation-audio-icon-pause,.recitation-audio-icon-muted{display:none}.recitation-audio-toggle[data-state="pause"] .recitation-audio-icon-play,.recitation-audio-mute[data-state="muted"] .recitation-audio-icon-volume{display:none}.recitation-audio-toggle[data-state="pause"] .recitation-audio-icon-pause,.recitation-audio-mute[data-state="muted"] .recitation-audio-icon-muted{display:block}
.recitation-audio-toggle:focus-visible,.recitation-audio-mute:focus-visible,.recitation-audio-progress:focus-visible{outline:2px solid #fff;outline-offset:2px}.recitation-audio-toggle:active,.recitation-audio-mute:active{transform:scale(.94)}
.recitation-audio-time{display:flex;align-items:center;gap:3px;min-width:70px;color:#fff;font-size:10px;font-variant-numeric:tabular-nums;white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.95),0 0 5px rgba(255,255,255,.38)}.recitation-audio-time i{font-style:normal;opacity:.72}
.recitation-audio-progress{width:100%;height:28px;margin:0;padding:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:pointer}
.recitation-audio-progress::-webkit-slider-runnable-track{height:4px;border-radius:999px;background:linear-gradient(90deg,#fff 0 var(--recitation-audio-progress),rgba(255,255,255,.4) var(--recitation-audio-progress) 100%);box-shadow:0 1px 3px rgba(0,0,0,.48)}
.recitation-audio-progress::-webkit-slider-thumb{width:14px;height:14px;margin-top:-5px;border:2px solid rgba(255,255,255,.9);border-radius:50%;appearance:none;-webkit-appearance:none;background:#fff;box-shadow:0 1px 5px rgba(0,0,0,.5)}
.recitation-audio-progress::-moz-range-track{height:4px;border:0;border-radius:999px;background:rgba(255,255,255,.4);box-shadow:0 1px 3px rgba(0,0,0,.48)}
.recitation-audio-progress::-moz-range-progress{height:4px;border-radius:999px;background:#fff}.recitation-audio-progress::-moz-range-thumb{width:12px;height:12px;border:2px solid rgba(255,255,255,.9);border-radius:50%;background:#fff;box-shadow:0 1px 5px rgba(0,0,0,.5)}
.recitation-audio-progress:disabled{cursor:wait;opacity:.62}
.recitation-share .recitation-share-player{padding:10px 0 8px}.recitation-share .recitation-audio-skin{margin:0}
@media(hover:hover){.recitation-audio-toggle:hover,.recitation-audio-mute:hover{background:rgba(255,255,255,.24)}}
@media(max-width:350px){.recitation-audio-skin-controls{grid-template-columns:36px auto minmax(36px,1fr) 30px;gap:6px;padding:0 8px}.recitation-audio-time{min-width:65px;font-size:9px}.recitation-audio-toggle{width:36px;height:36px}.recitation-audio-mute{width:30px;height:30px}}
@media(prefers-reduced-motion:reduce){.recitation-audio-skin,.recitation-audio-skin:before,.recitation-audio-toggle,.recitation-audio-mute{transition:none}.recitation-audio-skin.is-playing:before{transform:scale(1.025)}}
