.dy-chip{font-size:12px;color:var(--sub);background:var(--card-alt);border:none;border-radius:999px;padding:4px 12px;cursor:pointer;transition:all .15s}.dy-chip:hover{color:var(--text)}.dy-chip.active{color:#fff;background:var(--primary)}.mode-chip{font-size:12px;color:var(--sub);background:var(--card-alt);border:none;border-radius:999px;padding:4px 12px;cursor:pointer;transition:all .15s}.mode-chip:not(:disabled):hover{color:var(--text)}.mode-chip.active{color:#fff;background:var(--primary)}.mode-chip:disabled{cursor:not-allowed;opacity:.5}.poem-modal-btn.active,.poem-modal-btn.active:hover{background:var(--primary);color:#fff}.ext-tog{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--sub);padding:4px 10px 4px 6px;background:var(--card-alt);border-radius:999px;cursor:pointer;user-select:none;transition:color .15s}.ext-tog:hover{color:var(--text)}.ext-tog input{accent-color:var(--primary)}.poem-card{background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow-card);padding:14px 16px;cursor:pointer;transition:transform .15s,box-shadow .15s;display:flex;flex-direction:column;gap:6px}.poem-card:hover{transform:translateY(-1px);box-shadow:var(--shadow-card-hover, var(--shadow-card))}.poem-card .title{font-size:15px;font-weight:600;color:var(--text);line-height:1.4}.poem-card .meta{font-size:12px;color:var(--sub)}.poem-card .preview{font-size:13px;color:var(--text);line-height:1.55;opacity:.78;display:-webkit-box;-webkit-line-clamp:1;-webkit-box-orient:vertical;overflow:hidden;font-family:LXGW WenKai Screen,"Noto Serif SC",Songti SC,STSong,serif;letter-spacing:.02em}mark.hl{background:var(--primary-muted);color:var(--primary);padding:0 2px;border-radius:3px;font-weight:600}.poem-card .tag{display:inline-block;font-size:10px;color:var(--sub);background:var(--card-alt);padding:1px 8px;border-radius:999px;margin-right:4px}.poem-modal{display:none;position:fixed;inset:0;z-index:9999;background:#00000080;align-items:center;justify-content:center;padding:16px}.poem-modal.open{display:flex}.poem-modal-panel{background:var(--card);border-radius:var(--radius-card);box-shadow:0 12px 48px #00000040;width:min(720px,100%);max-height:min(88vh,720px);display:flex;flex-direction:column;overflow:hidden;animation:poemModalIn .18s ease both}@keyframes poemModalIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.poem-modal-head{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--border)}.poem-modal-meta{flex:1;min-width:0;font-size:12px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.poem-modal-x{flex-shrink:0;background:none;border:none;font-size:20px;color:var(--sub);width:32px;height:32px;border-radius:6px;cursor:pointer;transition:background .15s}.poem-modal-x:hover{background:var(--card-alt)}.poem-modal-body{flex:1;overflow-y:auto;padding:16px 20px}.poem-modal-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:12px 16px;border-top:1px solid var(--border)}.poem-modal-toggles{display:flex;gap:14px}.poem-modal-toggle{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text);cursor:pointer;user-select:none}.poem-modal-toggle input{accent-color:var(--primary)}.poem-modal-actions{display:flex;gap:8px}.poem-modal-btn{font-size:13px;padding:6px 12px;border:none;border-radius:6px;cursor:pointer;background:var(--card-alt);color:var(--text);transition:background .15s,color .15s}.poem-modal-btn:hover{background:var(--border)}.poem-modal-btn.primary{background:var(--primary-muted);color:var(--primary)}.poem-modal-btn.primary:hover{background:var(--primary);color:#fff}.poem-detail h2{font-size:22px;font-weight:700;color:var(--text);text-align:center;margin:0 0 6px}.poem-detail .meta{text-align:center;font-size:13px;color:var(--sub);margin-bottom:20px}.poem-detail .para{font-size:17px;line-height:2.2;color:var(--text);text-align:center;font-family:LXGW WenKai Screen,"Noto Serif SC",Songti SC,STSong,serif;letter-spacing:.05em}.poem-detail .para.with-py{line-height:3.2}.poem-detail .para ruby rt{font-size:11px;color:var(--sub);font-family:sans-serif;font-weight:400;letter-spacing:0}.poem-detail .notes{margin-top:18px;padding-top:14px;border-top:1px dashed var(--border);font-size:12px;color:var(--sub);line-height:1.8}.poem-detail .empty-state{text-align:center;color:var(--sub);padding:40px 0}.author-link{color:var(--primary);cursor:pointer;border-bottom:1px dashed var(--primary);transition:color .15s}.author-link:hover{color:var(--text);border-bottom-color:var(--text)}.author-view h2{font-size:22px;font-weight:700;color:var(--text);text-align:center;margin:0 0 4px}.author-view .meta{text-align:center;font-size:13px;color:var(--sub);margin-bottom:18px}.author-view .bio{font-size:14px;color:var(--text);line-height:1.8;text-indent:2em;margin-bottom:18px}.author-view .bio.empty{color:var(--sub);text-align:center;text-indent:0;padding:20px 0}.author-view .subheader{font-size:11px;color:var(--sub);text-transform:uppercase;letter-spacing:.1em;font-weight:700;padding-top:14px;border-top:1px dashed var(--border);margin-bottom:10px}.author-view .work-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:8px}.author-view .work-item{font-size:13px;color:var(--text);background:var(--card-alt);padding:8px 12px;border-radius:8px;cursor:pointer;transition:background .15s,color .15s;line-height:1.4;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.author-view .work-item:hover{background:var(--primary-muted);color:var(--primary)}.poem-modal-back{flex-shrink:0;background:none;border:none;font-size:13px;color:var(--sub);cursor:pointer;padding:4px 8px;border-radius:6px;margin-right:8px;transition:background .15s,color .15s}.poem-modal-back:hover{background:var(--card-alt);color:var(--text)}.poem-modal-back.hidden,.poem-modal.view-author .poem-modal-actions{display:none}.poster-preview{display:none;position:fixed;inset:0;z-index:10000;background:#000000d1;align-items:center;flex-direction:column;padding:16px;gap:10px;overflow-y:auto}.poster-preview.open{display:flex}.poster-preview.open>:first-child{margin-top:auto}.poster-preview.open>:last-child{margin-bottom:auto}.poster-preview-frame{border-radius:8px;box-shadow:0 12px 48px #0000008c;overflow:hidden;flex-shrink:0}.poster-preview-frame>#posterLive{transform-origin:top left}.poster-preview-controls{display:flex;flex-direction:column;gap:8px;background:#ffffff0f;padding:10px 14px;border-radius:10px;max-width:92vw}.poster-preview-controls .ctrl-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.poster-preview-controls .ctrl-label{font-size:11px;color:#fff9;font-weight:700;letter-spacing:.1em;margin-right:4px;text-transform:uppercase}.palette-chip{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:#ffffffd9;background:#ffffff1a;border:none;border-radius:999px;padding:3px 12px 3px 4px;cursor:pointer;transition:all .15s}.palette-chip:hover{color:#fff}.palette-chip.active{color:#1a1a1a;background:#fff}.palette-swatch{width:18px;height:18px;border-radius:50%;display:inline-block;border:1px solid rgba(0,0,0,.1)}.part-row{display:none;flex-direction:column;gap:5px;padding:4px 0 4px 14px;margin-left:60px;border-left:2px solid rgba(255,255,255,.18);font-size:11px}.part-row.active{display:flex}.part-controls{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.part-controls .part-label{width:30px;flex-shrink:0}.part-controls .scale-range{flex:1;min-width:80px}.part-row .part-label{font-size:11px;opacity:.85}.part-row .color-picker{width:22px;height:22px}.part-row .scale-range{width:100px}.part-text{font-size:12px;padding:5px 10px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#fff;outline:none;width:100%;box-sizing:border-box;font-family:inherit}.part-text:focus{border-color:var(--primary)}.part-textarea{resize:vertical;min-height:64px;line-height:1.6}.part-label{font-size:12px;color:#ffffffd9;font-weight:600}.font-chip.mini{padding:2px 10px;font-size:11px}.palette-swatch.bg-cream,.poetry-poster.bg-cream{background:linear-gradient(135deg,#fbf3df,#f3e6c5)}.palette-swatch.bg-white,.poetry-poster.bg-white{background:#fafafa}.palette-swatch.bg-blue,.poetry-poster.bg-blue{background:linear-gradient(135deg,#e0eaf3,#c5d4e2)}.palette-swatch.bg-green,.poetry-poster.bg-green{background:linear-gradient(135deg,#e0ebe1,#c5d8c8)}.palette-swatch.bg-pink,.poetry-poster.bg-pink{background:linear-gradient(135deg,#f9e4dc,#f0c8be)}.palette-swatch.bg-darkbrown,.poetry-poster.bg-darkbrown{background:linear-gradient(135deg,#8e1f1f,#5a0c0c)}.palette-swatch.bg-darkblue,.poetry-poster.bg-darkblue{background:linear-gradient(135deg,#1a3338,#0c1f23)}.font-chip{font-size:12px;color:#ffffffb3;background:#ffffff1a;border:none;border-radius:999px;padding:4px 12px;cursor:pointer;transition:all .15s}.font-chip:hover{color:#fff}.font-chip.active{color:#1a1a1a;background:#fff}.font-chip:disabled{opacity:.35;cursor:not-allowed}.font-chip:disabled:hover{color:#ffffffb3}.opt-tog{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:#ffffffd9;cursor:pointer;user-select:none}.opt-tog input{accent-color:var(--primary)}.size-input-wrap{display:inline-flex;align-items:center;gap:4px;margin-left:4px}.size-input-wrap input{width:78px;font-size:12px;padding:3px 4px 3px 8px;border-radius:6px;border:1px solid rgba(255,255,255,.2);background:#ffffff14;color:#fff;outline:none;text-align:left}.size-input-wrap input::-webkit-inner-spin-button{opacity:1;cursor:pointer}.size-input-wrap input:focus{border-color:var(--primary)}.color-picker{width:26px;height:26px;padding:0;border:2px solid rgba(255,255,255,.3);border-radius:50%;cursor:pointer;background:none;overflow:hidden}.color-picker::-webkit-color-swatch-wrapper{padding:0}.color-picker::-webkit-color-swatch{border:none;border-radius:50%}.scale-range{width:110px;accent-color:var(--primary);cursor:pointer}.scale-val{font-size:11px;color:#ffffffb3;font-variant-numeric:tabular-nums;min-width:38px;text-align:center}.poster-preview-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.poster-preview-btn{font-size:13px;padding:8px 16px;border:none;border-radius:8px;cursor:pointer;background:#ffffffeb;color:#333;transition:background .15s,color .15s,transform .05s}.poster-preview-btn:hover{background:#fff}.poster-preview-btn:active{transform:scale(.97)}.poster-preview-btn.primary{background:var(--primary);color:#fff}.poster-preview-btn.primary:hover{background:var(--primary);opacity:.9}.poster-preview-hint{font-size:12px;color:#ffffffb3;text-align:center;min-height:16px}.poetry-poster{position:relative;padding:64px 56px;box-sizing:border-box;display:flex;flex-direction:column;justify-content:var(--align-vert, center);overflow:hidden}.poetry-poster .poster-content{transform:translate(var(--off-x, 0px),var(--off-y, 0px))}.poetry-poster.layout-vertical{writing-mode:vertical-rl;display:block;padding:56px 64px}.poetry-poster.layout-vertical .poster-content{height:100%}.poetry-poster.layout-vertical .poster-divider{width:calc(1px * var(--s-divider, 1));height:60px;display:block;margin:auto 18px}.poetry-poster.layout-vertical .poster-title{margin:0 18px 0 0;font-size:calc(32px * var(--s-title) * var(--auto-fit, 1));text-align:center}.poetry-poster.layout-vertical .poster-meta{margin:0 12px 0 18px;font-size:calc(14px * var(--s-meta) * var(--auto-fit, 1));text-align:center}.poetry-poster.layout-vertical .poster-line{display:inline-block;margin:0 14px;font-size:calc(22px * var(--s-line) * var(--auto-fit, 1));line-height:1.7;letter-spacing:.05em;height:100%;vertical-align:top}.poetry-poster.layout-vertical .poster-line.long{font-size:calc(19px * var(--s-line) * var(--auto-fit, 1))}.poetry-poster.bg-cream{color:#3a2a16;box-shadow:inset 0 0 80px #78501e14}.poetry-poster.bg-white{color:#1a1a1a}.poetry-poster.bg-blue{color:#13243a}.poetry-poster.bg-green{color:#1c3528}.poetry-poster.bg-pink{color:#5a1c14}.poetry-poster.bg-darkbrown{color:#f5e8c8}.poetry-poster.bg-darkblue{color:#dcebe6}.poetry-poster.font-songti{font-family:"Noto Serif SC",Songti SC,STSong,serif}.poetry-poster.font-kaiti{font-family:KaiTi,STKaiti,"Noto Serif SC",serif}.poetry-poster.font-heiti{font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,sans-serif}.poetry-poster .poster-deco{position:absolute;width:36px;height:36px;border:calc(2px * var(--s-deco, 1)) solid var(--c-deco, currentColor);opacity:var(--o-deco, .3)}.poetry-poster .poster-deco.tl{top:calc(24px + var(--off-y-deco, 0px));left:calc(24px + var(--off-x-deco, 0px));border-right:none;border-bottom:none}.poetry-poster .poster-deco.tr{top:calc(24px + var(--off-y-deco, 0px));right:calc(24px + var(--off-x-deco, 0px));border-left:none;border-bottom:none}.poetry-poster .poster-deco.bl{bottom:calc(24px + var(--off-y-deco, 0px));left:calc(24px + var(--off-x-deco, 0px));border-right:none;border-top:none}.poetry-poster .poster-deco.br{bottom:calc(24px + var(--off-y-deco, 0px));right:calc(24px + var(--off-x-deco, 0px));border-left:none;border-top:none}.poetry-poster{--s-title: 1;--s-meta: 1;--s-line: 1}.poetry-poster .poster-title{text-align:var(--a-title, center);font-size:calc(38px * var(--s-title) * var(--auto-fit, 1));font-weight:700;letter-spacing:.12em;margin:0 0 12px;color:var(--c-title, inherit);transform:translate(var(--off-x-title, 0px),var(--off-y-title, 0px))}.poetry-poster .poster-title.no-meta{margin-bottom:28px}.poetry-poster .poster-meta{text-align:var(--a-meta, center);font-size:calc(16px * var(--s-meta) * var(--auto-fit, 1));color:var(--c-meta, inherit);opacity:.65;letter-spacing:.18em;margin-bottom:28px;transform:translate(var(--off-x-meta, 0px),var(--off-y-meta, 0px))}.poetry-poster .poster-divider{width:60px;height:calc(1px * var(--s-divider, 1));background:var(--c-divider, currentColor);transform:translate(var(--off-x-divider, 0px),var(--off-y-divider, 0px));margin:0 auto 28px;opacity:.4}.poetry-poster .poster-line{text-align:var(--a-line, center);font-size:calc(22px * var(--s-line) * var(--auto-fit, 1));line-height:2;letter-spacing:.08em;color:var(--c-line, inherit);transform:translate(var(--off-x-line, 0px),var(--off-y-line, 0px))}.poetry-poster .poster-line.long{font-size:calc(19px * var(--s-line) * var(--auto-fit, 1))}
