@font-face{font-family:Pinyon Script;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/pinyon-script.woff2) format("woff2")}:root{--bg: #ffffff;--bg-page: #fafafa;--surface: #ffffff;--text: #2a2a2a;--text-2: #777777;--text-3: #aaaaaa;--border: #ececec;--border-soft: #f4f4f4;--hover: #f7f7f7;--red: #ff2442;--red-deep: #e91636;--red-soft: #ffe9ec;--red-soft-2: #fff5f7;--yellow: #ffc700;--yellow-soft: #fff5d0;--gradient-red: linear-gradient(135deg, #ff2442 0%, #ff5e7e 100%);--gradient-red-hover: linear-gradient(135deg, #e91636 0%, #f04060 100%);--shadow-sm: 0 1px 2px rgba(0,0,0,.03);--shadow-md: 0 6px 20px rgba(0,0,0,.06);--shadow-lg: 0 14px 40px rgba(0,0,0,.1);--shadow-red: 0 6px 18px rgba(255,36,66,.22);--radius-xs: 6px;--radius-sm: 10px;--radius-md: 14px;--radius-lg: 18px;--radius-pill: 999px;--t-fast: .12s ease;--t-mid: .2s ease;--t-slow: .32s cubic-bezier(.2, .8, .2, 1);--ui-font: -apple-system, BlinkMacSystemFont, "PingFang SC", "Helvetica Neue", "Hiragino Sans GB", "Microsoft YaHei", system-ui, Arial, sans-serif;--serif-font: "Songti SC", "STSong", Georgia, serif;--brand-font: "Pinyon Script", "Snell Roundhand", "Brush Script MT", cursive}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%}[hidden]{display:none!important}body{margin:0;font-family:var(--ui-font);font-size:15px;line-height:1.55;color:var(--text);background:var(--bg-page);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}button,input{font-family:inherit;font-size:inherit;color:inherit}button{cursor:pointer}input{background:transparent}::selection{background:var(--red-soft);color:var(--red-deep)}.topbar{position:sticky;top:0;z-index:100;background:#ffffffd9;backdrop-filter:saturate(180%) blur(20px);-webkit-backdrop-filter:saturate(180%) blur(20px);border-bottom:1px solid var(--border-soft)}.topbar-inner{max-width:540px;margin:0 auto;height:56px;padding:0 16px;display:flex;align-items:center;justify-content:space-between}.brand{display:flex;align-items:center;margin:0;font-size:18px;font-weight:700;letter-spacing:.2px}.brand-name{color:var(--text);font-family:var(--brand-font);font-weight:400;font-size:30px;line-height:1;letter-spacing:.5px}.brand-dot{font-family:var(--ui-font);color:var(--red);font-weight:700;font-size:.5em;vertical-align:middle;margin:0 .12em;position:relative;top:-.18em}.topbar-right{display:flex;align-items:center;gap:12px}.lang-pill{display:flex;background:var(--bg-page);border-radius:var(--radius-pill);padding:3px;gap:0}.lang-tab{border:0;background:transparent;color:var(--text-2);padding:5px 12px;border-radius:var(--radius-pill);font-size:13px;font-weight:600;transition:all var(--t-fast)}.lang-tab.active{background:var(--text);color:#fff}.lang-tab:disabled{opacity:.4;cursor:not-allowed}.feed{max-width:540px;margin:0 auto;padding:16px 16px 80px;display:flex;flex-direction:column;gap:14px}.theme-row{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:0 2px;animation:fade-in var(--t-slow)}.tag{display:inline-flex;align-items:center;padding:5px 12px;background:var(--red-soft);color:var(--red);border-radius:var(--radius-pill);font-size:12.5px;font-weight:600;text-decoration:none;transition:all var(--t-fast)}.tag:before{content:"#";margin-right:2px;font-weight:700;opacity:.85}.tag-main{background:var(--red);color:#fff}.tag:hover{transform:scale(1.04)}.theme-hint{color:var(--text-3);font-size:12.5px;margin-left:4px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.invite-pre{background:var(--red-soft-2);border:1px solid var(--red-soft);border-radius:var(--radius-md);padding:16px 18px}.invite-pre-title{margin:0 0 6px;font-weight:600}.invite-pre-sub{margin:6px 0 0;color:var(--text-2);font-size:13px}.composer{background:var(--surface);border-radius:var(--radius-lg);padding:20px 18px;box-shadow:var(--shadow-sm);border:1px solid var(--border-soft)}.field{margin-top:4px}.field input{width:100%;padding:12px 16px;border:1.5px solid var(--border);border-radius:var(--radius-pill);background:var(--surface);outline:none;transition:all var(--t-fast)}.field input:focus{border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}.field input::placeholder{color:var(--text-3)}.dedicate-field{margin-top:8px;animation:fade-up .2s ease}.place-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.place-hint{font-size:13px;color:var(--text-3)}.place-locate{flex:none;border:1.5px solid var(--border);background:var(--surface);color:var(--text-2);padding:6px 14px;border-radius:var(--radius-pill);font-size:12.5px;font-weight:600;transition:all var(--t-fast)}.place-locate:hover:not(:disabled){border-color:var(--red);color:var(--red)}.place-locate:disabled{opacity:.55}.place-chips{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.place-chip{border:1px solid var(--border);background:var(--surface);color:var(--text-2);padding:6px 14px;border-radius:var(--radius-pill);font-size:12.5px;font-weight:600;transition:all var(--t-fast)}.place-chip:hover{border-color:var(--red);color:var(--red)}.place-chip.active{background:var(--red);color:#fff;border-color:var(--red)}.place-custom{margin-top:10px}.chips-row{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}.chip-toggle{display:inline-flex;align-items:center;gap:5px;border:1.5px solid var(--border);background:var(--surface);color:var(--text-2);padding:6px 14px;border-radius:var(--radius-pill);font-size:13px;font-weight:600;transition:all var(--t-fast)}.chip-toggle:hover{border-color:var(--red);color:var(--red)}.chip-toggle:hover .chip-icon{color:var(--red)}.chip-toggle.open{background:var(--red);color:#fff;border-color:var(--red)}.chip-checkbox{cursor:pointer;position:relative}.chip-checkbox input{position:absolute;opacity:0;pointer-events:none}.chip-checkbox:has(input:checked){background:var(--text);color:#fff;border-color:var(--text)}.chip-checkbox:has(input:checked) .chip-icon{color:#fff}.chip-toggle.open .chip-icon{color:#fff;fill:#fff;stroke:#fff}.chip-icon{width:14px;height:14px;display:inline-flex;color:var(--text-3);transition:color var(--t-fast)}.chip-icon svg{width:100%;height:100%}.chip-toggle.open .chip-icon svg{fill:currentColor}.primary-btn{display:flex;align-items:center;justify-content:center;width:100%;margin-top:18px;padding:14px 20px;border:0;border-radius:var(--radius-pill);background:var(--gradient-red);background-size:200% 200%;color:#fff;font-size:15px;font-weight:700;letter-spacing:1px;box-shadow:var(--shadow-red);transition:all var(--t-mid);position:relative;overflow:hidden}.primary-btn:hover:not(:disabled){background-position:100% 100%;transform:translateY(-1px);box-shadow:0 10px 26px #ff24424d}.primary-btn:active:not(:disabled){transform:translateY(0)}.primary-btn:disabled{background:#f0f0f0;box-shadow:none;color:var(--text-3);cursor:not-allowed}.link-btn{display:block;width:100%;margin-top:10px;padding:10px;border:0;background:transparent;color:var(--red);font-size:13.5px;font-weight:600;letter-spacing:.3px;transition:opacity var(--t-fast)}.link-btn:hover:not(:disabled){opacity:.7}.link-btn:disabled{color:var(--text-3);cursor:not-allowed}.ghost-btn{margin-top:10px;padding:8px 18px;background:transparent;border:1.5px solid var(--red);border-radius:var(--radius-pill);color:var(--red);font-size:13px;font-weight:600;transition:all var(--t-fast)}.ghost-btn:hover{background:var(--red);color:#fff}.invite-link-card{background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-md);padding:16px;text-align:center;box-shadow:var(--shadow-sm)}.invite-link-title{margin:0 0 10px;color:var(--text-2);font-size:13px}.invite-link-url{display:block;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;background:var(--bg-page);padding:10px 12px;border-radius:var(--radius-sm);word-break:break-all;color:var(--text);border:1px solid var(--border-soft);user-select:all;-webkit-user-select:all;cursor:text}.muted-hint{margin:10px 0 0;color:var(--text-3);font-size:12px;font-style:italic}.owner-url-block{margin-top:18px;padding-top:14px;border-top:1px dashed var(--border)}.owner-url-label{margin:0 0 8px;color:var(--text-2);font-size:12.5px;font-weight:500}.owner-url-block .invite-link-url{border-color:#ff24422e;background:var(--red-soft-2)}#copy-owner-url{margin-top:8px}.duet-status{background:var(--surface);border:1px solid var(--red-soft);border-radius:var(--radius-lg);padding:28px 20px;text-align:center;background-image:linear-gradient(180deg,#fff8f9,#fff 60%);animation:fade-up var(--t-slow)}.duet-waiting,.duet-done{display:flex;flex-direction:column;align-items:center;gap:10px}.duet-spinner{width:36px;height:36px;border:3px solid var(--red-soft);border-top-color:var(--red);border-radius:999px;animation:spin .9s linear infinite;margin-bottom:6px}.duet-waiting-title{margin:0;font-size:15px;font-weight:600;color:var(--text)}.duet-waiting-sub{margin:0;font-size:12.5px;color:var(--text-3)}#duet-refresh{margin-top:6px}.duet-done-emoji{font-size:36px;line-height:1}.duet-done-title{margin:0;font-size:15px;font-weight:600}#duet-view-link{margin-top:8px;width:auto;padding:12px 28px}.result{animation:fade-up var(--t-slow)}.toast{margin:0 0 12px;padding:10px 14px;border-radius:var(--radius-md);font-size:13px;line-height:1.5;text-align:center;animation:fade-in var(--t-slow)}.toast-existing{background:var(--red-soft-2);color:var(--red-deep);border:1px solid var(--red-soft)}.note{background:var(--surface);border-radius:var(--radius-lg);padding:16px;box-shadow:var(--shadow-md);border:1px solid var(--border-soft)}.note-image-wrap{position:relative;border-radius:var(--radius-md);overflow:hidden;background:var(--bg-page);margin-bottom:14px}.note-image-wrap.rendering:after{content:"";position:absolute;right:12px;bottom:12px;width:18px;height:18px;border-radius:50%;border:2px solid rgba(0,0,0,.18);border-top-color:#0000008c;animation:card-render-spin .7s linear infinite;pointer-events:none}@keyframes card-render-spin{to{transform:rotate(360deg)}}.note-image-wrap img{display:block;width:100%;height:auto;max-height:70vh;object-fit:contain}.style-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin-bottom:14px}.style-tab{border:1px solid var(--border);background:var(--surface);color:var(--text-2);padding:6px 14px;border-radius:var(--radius-pill);font-size:12.5px;font-weight:600;transition:all var(--t-fast)}.style-tab:hover{border-color:var(--red);color:var(--red)}.style-tab.active{background:var(--red);color:#fff;border-color:var(--red)}.theme-row{display:flex;gap:8px;justify-content:center;flex-wrap:wrap;margin:-2px 0 14px}.theme-chip{border:1px solid var(--border);background:var(--surface);color:var(--text-2);padding:5px 16px;border-radius:var(--radius-pill);font-size:12.5px;font-weight:600;transition:all var(--t-fast)}.theme-chip:hover{border-color:var(--red);color:var(--red)}.theme-chip.active{background:var(--red);color:#fff;border-color:var(--red)}.note-author{display:flex;align-items:center;gap:10px;padding:10px 0;border-top:1px solid var(--border-soft)}.note-stamp{width:36px;height:36px;background:var(--red);color:#fff;border-radius:var(--radius-sm);display:inline-flex;align-items:center;justify-content:center;font-family:var(--serif-font);font-weight:600;font-size:16px;letter-spacing:-1px;box-shadow:0 2px 6px #ff244233;flex-shrink:0}.note-author-name{font-weight:600;color:var(--text)}.note-author-name.empty{color:var(--text-3);font-weight:400}.note-tags{display:flex;flex-wrap:wrap;gap:6px;margin:4px 0 12px}.note-tags:empty{display:none}.note-tag{display:inline-block;padding:4px 10px;background:var(--red-soft);color:var(--red);border-radius:var(--radius-pill);font-size:12px;font-weight:500}.note-tag:before{content:"#";margin-right:1px;opacity:.8}.action-bar{display:flex;justify-content:center;gap:4px;padding-top:8px;border-top:1px solid var(--border-soft)}.icon-btn{display:inline-flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:8px 18px;background:transparent;border:0;border-radius:var(--radius-md);color:var(--text);font-size:11.5px;font-weight:600;text-decoration:none;transition:all var(--t-fast);min-width:64px}.icon-btn:hover:not(:disabled){background:var(--bg-page);transform:translateY(-1px)}.icon-btn:active:not(:disabled){transform:translateY(0)}.icon-btn:disabled{opacity:.32;cursor:not-allowed}.icon-btn .icon{width:22px;height:22px}.icon-btn-red,#regen{color:var(--red)}#regen .icon-label:after{content:""}.share-url{margin:12px 0 0;padding:8px 10px;background:var(--bg-page);border-radius:var(--radius-sm);color:var(--text-2);font-size:11.5px;text-align:center;word-break:break-all;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;user-select:all;-webkit-user-select:all;cursor:text}.share-url:empty{display:none}.ephemeral-hint{margin:10px 0 0;color:var(--red);font-size:12px;text-align:center}.err{margin:14px 0 0;padding:10px 14px;background:var(--red-soft);color:var(--red-deep);border-radius:var(--radius-md);font-size:13px;text-align:center}.floating-toast{position:fixed;bottom:32px;left:50%;transform:translate(-50%) translateY(20px);background:#2a2a2af0;color:#fff;padding:10px 20px;border-radius:var(--radius-pill);font-size:13px;font-weight:600;box-shadow:var(--shadow-lg);z-index:200;opacity:0;transition:all var(--t-slow);pointer-events:none}.floating-toast.visible{opacity:1;transform:translate(-50%) translateY(0)}.is-loading .primary-btn .btn-text{opacity:0}.is-loading .primary-btn:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;margin:auto;width:18px;height:18px;border:2px solid rgba(255,255,255,.35);border-top-color:#fff;border-radius:999px;animation:spin .6s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes fade-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes pop-heart{0%{transform:scale(1)}40%{transform:scale(1.25)}to{transform:scale(1)}}.icon-btn .icon.pop{animation:pop-heart .28s ease}@media (min-width: 640px){.topbar-inner{max-width:none;height:62px;padding:0 36px}.brand-name{font-size:33px}.feed{max-width:560px;padding:52px 24px 120px;gap:18px}.guide{font-size:25px;margin:6px 6px 28px;letter-spacing:.4px}.composer{padding:30px 30px 26px;border-radius:22px}.text-field textarea{min-height:118px;font-size:17px;padding:18px 20px 34px}.field input{padding:13px 18px}.primary-btn{font-size:16px;padding:16px}}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}.history{width:100%;max-width:480px;margin:8px auto 0}.history-head{display:flex;align-items:baseline;justify-content:space-between;padding:0 4px 10px}.history-title{font-size:14px;font-weight:600;color:var(--text-2);letter-spacing:.3px}.history-clear{font-size:12px;color:var(--text-3);background:none;border:0;cursor:pointer;transition:color var(--t-fast)}.history-clear:hover{color:var(--red)}.history-list{display:flex;flex-direction:column;gap:8px}.history-item{display:flex;align-items:center;gap:12px;padding:10px;background:var(--surface);border:1px solid var(--border-soft);border-radius:var(--radius-md);cursor:pointer;text-align:left;width:100%;font:inherit;transition:border-color var(--t-fast),box-shadow var(--t-fast),transform var(--t-fast)}.history-item:hover{border-color:var(--border);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.history-meta{min-width:0;flex:1}.history-line{font-family:var(--serif-font, Georgia, serif);font-size:14px;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-sub{font-size:11.5px;color:var(--text-3);margin-top:3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-sub .history-author{color:var(--red);font-weight:600}.detail{width:100%;max-width:480px;margin:0 auto;display:flex;flex-direction:column;align-items:center}.detail-back{align-self:flex-start;background:none;border:0;color:var(--text-2);font:inherit;font-size:14px;cursor:pointer;padding:4px 2px 12px;transition:color var(--t-fast)}.detail-back:hover{color:var(--red)}.detail-card{width:100%;max-width:420px}.detail-card img{width:100%;display:block;filter:drop-shadow(0 12px 34px rgba(0,0,0,.13))}.detail .style-row{margin-top:20px}.detail-views{margin:18px 0 0;color:var(--text-3);font-size:12.5px;letter-spacing:.3px}.detail-share{width:100%;margin-top:12px;display:flex;gap:8px;align-items:center}.detail-share .share-url{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background:var(--bg-page);padding:9px 12px;border-radius:var(--radius-sm);font-size:12px;color:var(--text-3)}.detail-again{margin-top:22px}.compose-note{font-family:var(--serif-font, Georgia, serif);font-style:italic;font-size:14.5px;color:var(--text-2);text-align:center;margin:14px 0 0;letter-spacing:.3px}.detail .compose-note{margin-top:18px}.poem-ordinal{text-align:center;font-size:12px;color:var(--red);font-weight:600;letter-spacing:.4px;margin:6px 0 0}.announce{display:flex;align-items:center;gap:9px;margin:0 0 14px;padding:11px 15px;background:var(--red-soft-2);border:1px solid var(--red-soft);border-radius:var(--radius-md);color:var(--red-deep);font-size:13.5px;line-height:1.5}.announce-dot{flex:none;width:8px;height:8px;border-radius:999px;background:var(--red);box-shadow:0 0 8px #ff244273}.announce-text{flex:1;min-width:0}.guide{font-family:var(--serif-font);font-size:21px;line-height:1.5;color:var(--text);text-align:center;margin:30px 6px 22px;letter-spacing:.4px}@media (max-width: 420px){.guide{font-size:19px;margin:22px 4px 18px}}.text-field{position:relative;margin-top:6px}.text-field textarea{width:100%;min-height:92px;padding:16px 18px 30px;border:1.5px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);font:inherit;font-size:16px;line-height:1.6;color:var(--text);resize:none;outline:none;box-sizing:border-box;transition:all var(--t-fast)}.text-field textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px var(--red-soft)}.text-field textarea::placeholder{color:var(--text-3)}.char-count{position:absolute;right:14px;bottom:10px;font-size:12px;color:var(--text-3);pointer-events:none}.toast-support{background:#f3f6ff;border:1px solid #dbe4ff;color:#3a4a73}.history-item-text .history-meta{width:100%}.history-item-text .history-line{font-family:var(--serif-font);font-size:15px}#regen{margin-top:10px}
