@font-face{font-family:"Zhuque Fangsong";src:url(/assets/font-BHXM9ZiR.woff2) format("woff2"),url(/assets/font-B2KKBN9i.woff) format("woff");font-weight:400;font-style:normal;font-display:swap}:root{--ink: #1c2126;--ink-2: #4a5158;--ink-3: #7b838b;--ink-4: #a8afb5;--paper: #fdfcf8;--paper-2: #f6f4ee;--paper-3: #eeebe3;--page: #eef3f5;--rule: rgb(28 33 38 / 10%);--rule-strong: rgb(28 33 38 / 18%);--blue: #2a7f9e;--blue-deep: #1f6a86;--blue-soft: #5fa8c2;--blue-100: #dcecf2;--blue-50: #eef6f9;--blue-ring: rgb(42 127 158 / 22%);--danger: #a4534a;--font-ui: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--font-poem: "Zhuque Fangsong", "Songti SC", "STFangsong", "FangSong", "Noto Serif CJK SC", "Source Han Serif SC", serif;--shadow-paper: 0 1px 2px rgb(23 44 58 / 6%), 0 8px 18px -10px rgb(23 44 58 / 28%);--shadow-paper-hover: 0 2px 4px rgb(23 44 58 / 8%), 0 14px 26px -12px rgb(23 44 58 / 35%);--shadow-card: 0 2px 6px rgb(23 44 58 / 6%), 0 24px 48px -24px rgb(23 44 58 / 35%);--ease-out: cubic-bezier(.22, 1, .36, 1);--ease-spring: cubic-bezier(.34, 1.4, .64, 1);--dur-fast: .16s;--dur: .26s;--dur-slow: .48s;--radius: 10px;--radius-sm: 6px;--tilt: 0deg;color:var(--ink);font-family:var(--font-ui);font-synthesis:none;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{background:radial-gradient(120% 70% at 0% 0%,#dcefef 0%,transparent 60%),radial-gradient(90% 60% at 100% 10%,#cfe3ef 0%,transparent 60%),radial-gradient(80% 60% at 60% 100%,#f2e6ec 0%,transparent 55%),var(--page);background-attachment:fixed;scroll-behavior:smooth}body{position:relative;margin:0;min-width:320px;min-height:100svh}body:before{content:"";position:fixed;top:0;right:0;bottom:0;left:0;z-index:0;pointer-events:none;opacity:.28;mix-blend-mode:multiply;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .55 0 0 0 0 .6 0 0 0 0 .62 0 0 0 .5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");background-size:240px 240px}button,input,select{font:inherit}button{color:inherit}button:not(:disabled){cursor:pointer}.app-shell{position:relative;z-index:1;width:100%;max-width:520px;min-height:100svh;--gutter: 18px;margin:0 auto;padding:env(safe-area-inset-top) var(--gutter) calc(40px + env(safe-area-inset-bottom))}.app-shell.has-sheet{padding-bottom:calc(var(--sheet-h, 200px) + 28px)}.topbar{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;padding:26px 2px 18px}h1.logo{display:flex;flex-direction:column;align-items:flex-start;gap:2px;margin:0;font-family:var(--font-poem);font-size:22px;font-weight:400;letter-spacing:.04em;line-height:1.1}.logo-line{display:block;white-space:nowrap}.logo .accent{color:var(--blue)}.logo em{font-style:normal;color:var(--ink-2);font-size:.8em;margin-left:.35em}.topbar-actions{display:flex;align-items:center;gap:14px;padding-bottom:4px}.text-button{border:0;background:transparent;padding:6px 2px;color:var(--blue);font-size:13px;border-radius:4px;transition:color var(--dur-fast),opacity var(--dur-fast),transform var(--dur-fast) var(--ease-out)}.text-button:hover:not(:disabled){color:var(--blue-deep)}.text-button:active:not(:disabled){transform:translateY(1px)}.text-button:disabled{color:var(--ink-4)}.text-button.danger{color:var(--danger)}.primary-button,.secondary-button{min-height:42px;padding:0 20px;border-radius:999px;font-size:14px;letter-spacing:.04em;transition:transform var(--dur-fast) var(--ease-out),box-shadow var(--dur) var(--ease-out),background var(--dur-fast),border-color var(--dur-fast),color var(--dur-fast)}.primary-button{border:1px solid var(--blue-deep);background:linear-gradient(180deg,var(--blue) 0%,var(--blue-deep) 100%);color:#fff;box-shadow:0 1px 2px #1f6a8640,0 8px 18px -8px #1f6a868c}.primary-button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 2px 4px #1f6a8640,0 12px 24px -8px #1f6a8699}.primary-button:active:not(:disabled){transform:translateY(0) scale(.98)}.primary-button:disabled{border-color:var(--rule);background:var(--paper-3);color:var(--ink-4);box-shadow:none}.secondary-button{border:1px solid var(--rule-strong);background:#ffffff8c;color:var(--ink);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.secondary-button:hover{background:#fff;border-color:var(--blue-soft);color:var(--blue-deep);transform:translateY(-1px)}.secondary-button:active{transform:translateY(0) scale(.98)}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}.section-heading div{display:flex;align-items:baseline;gap:9px}.section-heading b{font-family:var(--font-poem);font-size:17px;font-weight:400;letter-spacing:.06em}.section-heading small{color:var(--ink-3);font-size:12px}.words{display:flex;flex-wrap:wrap;gap:10px 8px;padding:6px 2px 2px}.word{position:relative;display:inline-flex;align-items:center;min-height:38px;padding:7px 12px;border:1px solid rgb(28 33 38 / 9%);border-radius:3px;background:linear-gradient(180deg,#fff 0%,var(--paper) 100%);box-shadow:var(--shadow-paper);font-family:var(--font-poem);font-size:16px;line-height:1.25;letter-spacing:.02em;color:var(--ink);transform:rotate(var(--tilt));transform-origin:50% 60%;animation:tile-in var(--dur-slow) var(--ease-out) both;animation-delay:calc(var(--i, 0) * 22ms);transition:transform var(--dur) var(--ease-spring),box-shadow var(--dur) var(--ease-out),border-color var(--dur-fast),background var(--dur-fast),color var(--dur-fast)}.word:hover:not(:disabled){transform:rotate(0) translateY(-3px) scale(1.03);box-shadow:var(--shadow-paper-hover);border-color:var(--blue-soft);z-index:1}.word:active:not(:disabled){transform:rotate(0) translateY(0) scale(.97);transition-duration:80ms}.word:disabled{color:var(--ink-4);background:var(--paper-3);border-style:dashed;border-color:var(--rule-strong);box-shadow:none;transform:rotate(var(--tilt)) scale(.96)}.word:disabled:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:repeating-linear-gradient(135deg,transparent 0 6px,rgb(28 33 38 / 4%) 6px 7px);pointer-events:none}.word-bank{padding:24px 2px 2px}.word-bank .section-heading{flex-wrap:wrap;gap:8px}.section-heading .word-bank-actions{gap:14px;flex-shrink:0}.search-field{position:relative;margin-bottom:6px}.search-field input{width:100%;height:44px;padding:0 14px 0 38px;border:1px solid var(--rule-strong);border-radius:999px;outline:none;background:#ffffffbf;color:var(--ink);font-size:14px;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);transition:border-color var(--dur-fast),box-shadow var(--dur) var(--ease-out),background var(--dur-fast)}.search-field input::placeholder{color:var(--ink-4)}.search-field input:focus{border-color:var(--blue);background:#fff;box-shadow:0 0 0 4px var(--blue-ring)}.search-field svg{position:absolute;left:14px;top:50%;width:16px;height:16px;transform:translateY(-50%);color:var(--ink-4);pointer-events:none;transition:color var(--dur-fast)}.search-field:focus-within svg{color:var(--blue)}.word-bank-empty{margin:36px 4px;color:var(--ink-3);font-size:13px;line-height:1.7;text-align:center}.bottom-bar{position:sticky;bottom:16px;z-index:10;display:flex;align-items:center;justify-content:space-between;margin:14px 0 0;padding:10px 12px 10px 20px;border:1px solid rgb(28 33 38 / 8%);border-radius:999px;background:#fdfcf8d1;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:var(--shadow-card)}.bottom-bar span{color:var(--ink-3);font-size:13px}.bottom-bar strong{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.bank-sheet{position:fixed;z-index:20;right:0;bottom:0;left:0;display:flex;flex-direction:column;width:min(100%,520px);margin:0 auto;border:1px solid rgb(28 33 38 / 8%);border-bottom:0;border-radius:18px 18px 0 0;background:#fdfcf8e0;backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);box-shadow:0 -12px 40px -20px #172c3a59;overflow:hidden;transition:height var(--dur-slow) var(--ease-out);will-change:height}.bank-sheet.is-dragging{transition:none}.sheet-handle{position:relative;display:flex;flex-shrink:0;align-items:center;justify-content:space-between;height:52px;padding:10px 10px 0 18px;cursor:grab;touch-action:none;user-select:none;-webkit-user-select:none}.sheet-handle:active{cursor:grabbing}.sheet-grabber{position:absolute;top:6px;left:50%;width:40px;height:5px;padding:0;border:0;border-radius:999px;background:#1c21262e;transform:translate(-50%);transition:background var(--dur-fast),width var(--dur) var(--ease-spring)}.sheet-handle:hover .sheet-grabber,.bank-sheet.is-dragging .sheet-grabber{background:var(--blue-soft);width:52px}.sheet-grabber:focus-visible{outline-offset:6px}.sheet-count{color:var(--ink-3);font-size:12px}.sheet-count strong{color:var(--ink);font-weight:600;font-variant-numeric:tabular-nums}.sheet-finish{min-height:36px;padding:0 16px;font-size:13px}.sheet-body{display:flex;flex:1;min-height:0;flex-direction:column}.safe-probe{flex-shrink:0;height:env(safe-area-inset-bottom)}.word-bank.is-sheet{display:flex;flex:1;min-height:0;flex-direction:column;padding:4px 12px 0}.bank-controls{display:flex;flex-shrink:0;align-items:center;gap:6px}.bank-controls .search-field{flex:1;min-width:0;margin:0}.bank-controls .search-field input{height:40px;font-size:14px}.icon-button{display:inline-flex;flex-shrink:0;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:1px solid var(--rule-strong);border-radius:999px;background:#fff9;color:var(--blue);transition:background var(--dur-fast),border-color var(--dur-fast),transform var(--dur-fast) var(--ease-out)}.icon-button svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.icon-button:hover:not(:disabled){background:#fff;border-color:var(--blue-soft)}.icon-button:active:not(:disabled){transform:scale(.92)}.icon-button:disabled{color:var(--ink-4);border-color:var(--rule);background:transparent;opacity:.7}.history-actions{display:flex;gap:6px}.history-actions .icon-button{width:36px;height:36px}.history-actions .icon-button svg{width:15px;height:15px}.sheet-actions,.bar-actions{display:flex;align-items:center;gap:10px}.word-bank.is-sheet .words{flex:1;min-height:0;overflow:auto;overscroll-behavior:contain;padding:10px 2px 12px;margin:0 -2px;-webkit-overflow-scrolling:touch}.word-bank.is-sheet .words::-webkit-scrollbar{display:none}.bank-sheet.is-peek .words{flex-wrap:nowrap;align-items:center;gap:8px;padding-inline:4px;-webkit-mask-image:linear-gradient(90deg,transparent,#000 20px,#000 calc(100% - 28px),transparent);mask-image:linear-gradient(90deg,transparent,#000 20px,#000 calc(100% - 28px),transparent)}.bank-sheet.is-peek .word{flex-shrink:0;white-space:nowrap}.words.is-marquee{scroll-snap-type:none;scrollbar-width:none}.words-group{display:flex;flex-shrink:0;align-items:center;gap:8px}.words.is-marquee .word{animation-delay:calc(min(var(--i, 0),12)*22ms)}.bank-sheet.is-peek .word:disabled{display:none}.bank-sheet:not(.is-peek) .words{align-content:flex-start}.word-bank.is-sheet .word-bank-empty{margin:18px 4px}.editor{padding:20px 2px 2px}.poem-sheet{position:relative;padding:18px 14px 16px;border:1px solid rgb(28 33 38 / 8%);border-radius:var(--radius);background:linear-gradient(180deg,#dcecf28c,#dcecf200 120px),var(--paper);box-shadow:var(--shadow-card)}.poem-sheet:before,.poem-card:before{content:"";position:absolute;top:-10px;left:50%;width:92px;height:22px;transform:translate(-50%) rotate(-2deg);background:#ffffff73;border:1px solid rgb(255 255 255 / 70%);box-shadow:0 1px 2px #172c3a1f;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 4px,#000 calc(100% - 4px),transparent 100%);mask-image:linear-gradient(90deg,transparent 0,#000 4px,#000 calc(100% - 4px),transparent 100%);pointer-events:none}.poem-editor-lines{display:grid;gap:8px}.editor-line{position:relative;min-width:0;padding:4px 6px 10px;border-radius:var(--radius-sm);border:1px dashed transparent;transition:background var(--dur),border-color var(--dur)}.editor-line+.editor-line{border-top:1px dashed transparent}.editor-line:after{content:"";position:absolute;left:6px;right:6px;bottom:0;height:1px;background:var(--rule)}.editor-line.is-active{background:#2a7f9e0d;border-color:#2a7f9e2e}.line-heading{display:flex;align-items:center;justify-content:space-between;min-height:28px;padding:0 4px 2px;color:var(--ink-4);font-size:11px;letter-spacing:.08em}.line-heading .text-button{font-size:11px;min-height:28px;opacity:0;transition:opacity var(--dur-fast)}.editor-line:hover .line-heading .text-button,.editor-line.is-active .line-heading .text-button,.line-heading .text-button:focus-visible{opacity:1}@media (hover: none){.line-heading .text-button{opacity:1}}.line-words{display:flex;flex-wrap:wrap;align-items:center;row-gap:8px;min-height:48px}.editor-word{display:inline-flex;align-items:stretch;max-width:calc(100% - 14px);min-height:42px;border:1px solid rgb(28 33 38 / 10%);border-radius:3px;background:linear-gradient(180deg,#fff 0%,var(--paper) 100%);box-shadow:var(--shadow-paper);transform:rotate(var(--tilt));animation:tile-in var(--dur-slow) var(--ease-spring) both;transition:transform var(--dur) var(--ease-spring),box-shadow var(--dur) var(--ease-out),border-color var(--dur-fast),opacity var(--dur-fast)}.editor-word:hover{transform:rotate(0) translateY(-1px);box-shadow:var(--shadow-paper-hover)}.editor-word.is-selected{border-color:var(--blue);box-shadow:0 0 0 3px var(--blue-ring),var(--shadow-paper-hover);transform:rotate(0) translateY(-2px);z-index:1}.editor-word.is-lifted{opacity:.35;transform:rotate(0) scale(.96);box-shadow:none}.word-label{min-width:0;border:0;border-radius:3px 0 0 3px;padding:8px 10px;background:transparent;font-family:var(--font-poem);font-size:16px;letter-spacing:.02em;text-align:left;overflow-wrap:anywhere}.drag-handle{flex-shrink:0;width:26px;border:0;border-left:1px dashed var(--rule);border-radius:0 3px 3px 0;background:transparent;color:var(--ink-4);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;font-size:18px;transition:color var(--dur-fast),background var(--dur-fast)}.drag-handle:hover{color:var(--blue);background:var(--blue-50)}.drag-handle:active{cursor:grabbing}.insertion-slot{display:flex;flex-shrink:0;align-items:center;justify-content:center;width:14px;height:42px;padding:0;border:0;background:transparent;cursor:text}.insertion-slot span{width:2px;height:18px;border-radius:2px;background:#1c21261f;transition:height var(--dur) var(--ease-spring),background var(--dur-fast),width var(--dur-fast)}.insertion-slot:hover span{background:var(--blue-soft);height:26px}.insertion-slot.is-current span{width:3px;height:32px;background:var(--blue);animation:caret-blink 1.1s steps(1,end) infinite}.is-dragging .insertion-slot.is-current span{animation:none;box-shadow:0 0 0 3px var(--blue-ring)}.line-end{min-height:42px;padding:5px 8px;border:0;border-radius:4px;background:transparent;color:var(--ink-4);font-size:12px;transition:color var(--dur-fast),background var(--dur-fast)}.line-end:hover{color:var(--blue);background:var(--blue-50)}.new-line{min-height:42px;margin-top:4px;border:1px dashed rgb(28 33 38 / 18%);border-radius:var(--radius-sm);background:transparent;color:var(--ink-3);font-size:12px;letter-spacing:.06em;transition:color var(--dur-fast),border-color var(--dur-fast),background var(--dur-fast)}.new-line:hover,.new-line.is-current{border-color:var(--blue);background:var(--blue-50);color:var(--blue)}.word-tools-slot{position:sticky;bottom:calc(var(--sheet-h, 200px) + 10px);z-index:11;display:flex;justify-content:center;height:56px;margin-top:6px;pointer-events:none}.word-tools{display:inline-flex;align-items:center;gap:2px;max-width:100%;padding:4px 4px 4px 14px;border:1px solid rgb(42 127 158 / 22%);border-radius:999px;background:#fdfcf8e0;backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);box-shadow:0 1px 2px #172c3a0f,0 10px 24px -14px #172c3a4d;pointer-events:auto;animation:tools-in var(--dur) var(--ease-spring) both;transform-origin:50% 100%}.word-tools-label{max-width:10em;margin-right:8px;overflow:hidden;color:var(--blue-deep);font-family:var(--font-poem);font-size:14px;letter-spacing:.02em;white-space:nowrap;text-overflow:ellipsis}.word-tools button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:0;border-radius:999px;background:transparent;color:var(--ink-2);transition:background var(--dur-fast),color var(--dur-fast),transform var(--dur-fast) var(--ease-out)}.word-tools button svg,.split-chip svg{width:16px;height:16px;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.word-tools button:hover:not(:disabled){background:var(--blue-50);color:var(--blue-deep)}.word-tools button:active:not(:disabled){transform:scale(.9)}.word-tools button:disabled{color:var(--ink-4);opacity:.55}.word-tools .delete-word:hover:not(:disabled){background:#a4534a1a;color:var(--danger)}.split-chip{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;width:24px;height:24px;margin:0 2px 0 -2px;padding:0;border:1px dashed rgb(42 127 158 / 45%);border-radius:999px;background:#ffffffb3;color:var(--blue);animation:tools-in var(--dur) var(--ease-spring) both;transition:background var(--dur-fast),border-color var(--dur-fast),transform var(--dur-fast) var(--ease-out)}.split-chip svg{width:12px;height:12px}.split-chip:hover{background:var(--blue-50);border-style:solid}.split-chip:active{transform:scale(.9)}.drag-preview{position:fixed;z-index:30;pointer-events:none;transform:translate(-50%,calc(-100% - 14px)) rotate(-3deg);max-width:260px;padding:10px 14px;border:1px solid var(--blue);border-radius:3px;background:#fff;color:var(--ink);font-family:var(--font-poem);font-size:16px;box-shadow:0 0 0 3px var(--blue-ring),0 18px 36px -12px #172c3a73;animation:lift var(--dur-fast) var(--ease-out) both}.is-dragging{-webkit-user-select:none;user-select:none}.is-dragging .word-tools{pointer-events:none;opacity:.4}.is-dragging .editor-line{border-color:#2a7f9e38}.preview-screen{padding-top:28px}.poem-card{position:relative;display:flex;flex-direction:column;min-height:480px;padding:30px 28px 24px;border:1px solid rgb(28 33 38 / 8%);border-radius:4px;background:radial-gradient(120% 80% at 100% 0%,#cfe3efd9,#cfe3ef00 60%),linear-gradient(180deg,#dcecf2b3,#fdfcf800 45%),var(--paper);box-shadow:var(--shadow-card);transform:rotate(-.6deg);animation:card-in var(--dur-slow) var(--ease-out) both}.poem-lines{--slip-size: 22px;flex:1;display:flex;flex-direction:column;align-items:flex-start;gap:calc(var(--slip-size) * 1.05);padding:34px 0}.poem-lines p{display:flex;flex-wrap:wrap;align-items:baseline;row-gap:calc(var(--slip-size) * .32);margin:0;padding:0 2px}.poem-slip{--slip-tilt: 0deg;--slip-shift: 0em;--slip-gap: 0em;position:relative;display:inline-block;margin:3px var(--slip-gap) 3px 0;padding:.16em .3em .2em;border-radius:2px;background:#fffdf8;color:var(--ink);font-family:var(--font-poem);font-size:var(--slip-size);line-height:1.45;letter-spacing:.05em;max-width:100%;overflow-wrap:anywhere;transform:translateY(var(--slip-shift)) rotate(var(--slip-tilt));box-shadow:inset 0 0 0 1px #1c21260f,0 1px 3px -1px #172c3a2e;animation:slip-in var(--dur-slow) var(--ease-spring) both;animation-delay:calc(.14s + var(--j, 0) * 32ms)}.poem-card footer{display:flex;flex-direction:column;align-items:flex-end;margin-top:auto;padding-top:14px;border-top:1px solid var(--rule);color:#b0b5ba;font-size:12px;letter-spacing:.04em;text-align:right;overflow-wrap:anywhere}.poem-card footer small{min-width:0;max-width:92%;font-size:inherit;line-height:1.6;transform:rotate(-.7deg);transform-origin:100% 50%}.action-row{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:22px}.action-row .primary-button{grid-column:1 / -1}.library-panel{box-sizing:border-box;width:min(100%,520px);max-width:100%;height:92svh;max-height:100svh;margin:auto auto 0;padding:0;border:0;border-radius:18px 18px 0 0;background:var(--paper);color:var(--ink);overflow:hidden;box-shadow:0 -20px 60px -20px #172c3a66}.library-panel[open]{display:flex;flex-direction:column;animation:sheet-up var(--dur-slow) var(--ease-out) both}.library-panel::backdrop{background:#172c3a73;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fade-in var(--dur) ease-out both}.library-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:22px 22px 14px}.library-header h2{margin:0;font-family:var(--font-poem);font-size:22px;font-weight:400;letter-spacing:.06em}.library-header p{margin:6px 0 0;color:var(--ink-3);font-size:12px}.library-filters{flex-shrink:0;display:grid;gap:10px;padding:0 22px 14px;border-bottom:1px solid var(--rule)}.library-filters input,.library-filters select{box-sizing:border-box;width:100%;min-width:0;height:44px;padding:0 14px;border:1px solid var(--rule-strong);border-radius:999px;background:#ffffffbf;color:var(--ink);font:inherit;font-size:16px;outline:none;transition:border-color var(--dur-fast),box-shadow var(--dur) var(--ease-out)}.library-filters input:focus,.library-filters select:focus{border-color:var(--blue);box-shadow:0 0 0 4px var(--blue-ring)}.library-result-count{margin:0;color:var(--ink-3);font-size:12px}.library-content{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:0 22px 22px}.library-song{padding:20px 0;border-bottom:1px dashed var(--rule-strong);content-visibility:auto;contain-intrinsic-size:auto 300px}.library-song h3{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px;margin:0 0 8px;font-family:var(--font-poem);font-size:17px;font-weight:400;letter-spacing:.04em}.library-song h3 span{color:var(--ink-3);font-family:var(--font-ui);font-size:12px}.library-song .word{animation:none}.library-song .word:disabled{border-color:#2a7f9e59;background:var(--blue-50);color:var(--blue-deep)}.library-empty{margin:40px 0;color:var(--ink-3);font-size:14px;line-height:1.7;text-align:center}.library-footer{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid var(--rule);padding:12px 22px calc(12px + env(safe-area-inset-bottom));background:#fdfcf8e5}.library-footer span{color:var(--ink-3);font-size:13px}:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:3px}.view{animation:view-in var(--dur-slow) var(--ease-out) both}@keyframes tile-in{0%{opacity:0;transform:rotate(var(--tilt)) translateY(10px) scale(.94)}to{opacity:1;transform:rotate(var(--tilt)) translateY(0) scale(1)}}@keyframes lift{0%{opacity:0;transform:translate(-50%,calc(-100% - 6px)) rotate(0) scale(.9)}to{opacity:1;transform:translate(-50%,calc(-100% - 14px)) rotate(-3deg) scale(1)}}@keyframes caret-blink{50%{opacity:.25}}@keyframes tools-in{0%{opacity:0;transform:translateY(6px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes card-in{0%{opacity:0;transform:translateY(22px) rotate(1.5deg) scale(.98)}to{opacity:1;transform:translateY(0) rotate(-.6deg) scale(1)}}@keyframes slip-in{0%{opacity:0;transform:translateY(calc(var(--slip-shift) + 10px)) rotate(0) scale(.95)}to{opacity:1;transform:translateY(var(--slip-shift)) rotate(var(--slip-tilt)) scale(1)}}@keyframes view-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-up{0%{opacity:0;transform:translateY(40px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*,*:before,*:after{animation-duration:1ms!important;animation-delay:0s!important;transition-duration:1ms!important;scroll-behavior:auto!important}.word,.editor-word,.poem-card{transform:none}.insertion-slot.is-current span{animation:none}}@media (max-width: 1023px){:root{--shadow-paper: 0 1px 1px rgb(23 44 58 / 5%);--shadow-paper-hover: 0 2px 6px rgb(23 44 58 / 10%);--shadow-card: 0 1px 2px rgb(23 44 58 / 5%)}.topbar{position:sticky;top:0;z-index:15;align-items:center;margin:0 calc(-1 * var(--gutter)) 4px;padding:calc(10px + env(safe-area-inset-top)) var(--gutter) 10px;background:#eef3f5c7;backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border-bottom:1px solid var(--rule)}h1.logo{font-size:18px;gap:1px}.topbar-actions{padding-bottom:0}.editor{padding-top:10px}.poem-sheet{padding:0;border:0;border-radius:0;background:none;box-shadow:none}.poem-sheet:before{display:none}.editor-line{padding-inline:2px}.editor-line:after{left:2px;right:2px}.editor-word{box-shadow:var(--shadow-paper)}.editor-word.is-selected{box-shadow:0 0 0 3px var(--blue-ring)}.word-tools{box-shadow:0 1px 2px #172c3a0f,0 6px 16px -10px #172c3a40}.bank-sheet{box-shadow:0 -1px #172c3a0f,0 -8px 24px -18px #172c3a40}.primary-button{box-shadow:none}.primary-button:hover:not(:disabled){box-shadow:none}.poem-card{box-shadow:0 1px 3px #172c3a14,0 10px 24px -18px #172c3a40}}@media (min-width: 720px){.app-shell{--gutter: 28px;max-width:720px}.bank-sheet{width:min(100%,720px)}.library-panel{width:min(100%,720px);height:88svh;margin:auto;border-radius:18px}.library-filters{grid-template-columns:1fr 220px;align-items:center}.library-result-count{grid-column:1 / -1}.action-row{grid-template-columns:1fr 1fr 1.4fr}.action-row .primary-button{grid-column:auto}}@media (min-width: 1024px){.app-shell{--gutter: 40px;max-width:1240px;padding:env(safe-area-inset-top) var(--gutter) 40px}.topbar{padding:30px 2px 20px}.workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,440px);gap:36px;align-items:start}.workspace-poem{position:relative;min-width:0}.workspace-bank{position:sticky;top:20px;display:flex;flex-direction:column;max-height:calc(100vh - 40px);min-width:0;border:1px solid rgb(28 33 38 / 8%);border-radius:var(--radius);background:#fdfcf8a6;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 1px 2px #172c3a0a}.workspace-bank .word-bank{display:flex;flex-direction:column;min-height:0;flex:1;padding:18px 18px 14px}.workspace-bank .words{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;align-content:flex-start;padding:8px 4px 12px;margin:0 -4px}.editor{padding-top:4px}.poem-sheet{padding:26px 22px 22px;min-height:420px}.word-tools-slot{bottom:92px}.preview-screen{display:grid;grid-template-columns:minmax(0,620px) 240px;gap:40px;justify-content:center;align-items:start;padding-top:40px}.poem-card{min-height:560px;padding:40px 44px 32px}.poem-lines{--slip-size: 26px}.action-row{grid-template-columns:1fr;margin-top:0;position:sticky;top:40px}.action-row .primary-button{order:-1}.library-panel{width:min(100%,880px);height:84svh}}@media (min-width: 1440px){.app-shell{max-width:1360px}.workspace{grid-template-columns:minmax(0,1fr) 480px;gap:48px}.poem-sheet{padding:32px 30px 26px}}
