body{margin:0}.handnote-product{--ink:#171316;--muted:#665e58;--line:rgba(23,19,22,.1);--paper:#fffaf2;--paper-soft:#f3eadf;--mint:#0c7669;--mint-soft:#e7f6f2;--fire:#e65d3f;width:100%;max-width:100vw;min-height:100svh;overflow-x:hidden;background:linear-gradient(180deg,#fbf5ec,#f4eadf 46%,#fbf5ec);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;letter-spacing:0}.handnote-product *,.handnote-product :after,.handnote-product :before{box-sizing:border-box}.handnote-product button,.handnote-product input,.handnote-product select,.handnote-product textarea{font:inherit}.mobile-topbar{position:-webkit-sticky;position:sticky;top:0;z-index:50;width:100%;max-width:100vw;height:54px;display:flex;align-items:center;justify-content:space-between;gap:10px;padding:0 14px;background:hsla(36,65%,95%,.88);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-bottom:1px solid rgba(23,19,22,.07)}.account-pill,.product-mark{min-height:38px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;text-decoration:none;font-weight:850}.product-mark{flex:1 1 auto;min-width:0;justify-content:flex-start;color:var(--ink)}.product-logo{width:30px;height:30px;flex:0 0 30px;display:block;border-radius:8px;object-fit:cover;box-shadow:0 8px 18px rgba(36,26,91,.16)}.account-pill{flex:0 0 auto;max-width:min(154px,calc(100vw - 132px));min-width:0;padding:0 12px;overflow:hidden;color:#fff;font-size:14px;white-space:nowrap;text-overflow:ellipsis;background:linear-gradient(135deg,#171316,#271a52 72%,#4f38d5);box-shadow:0 10px 22px rgba(39,26,82,.2)}.mobile-hero{position:relative;min-height:min(560px,calc(100svh - 54px));display:grid;align-content:end;grid-gap:18px;gap:18px;padding:20px 18px 28px;overflow:hidden;background:#171316}.mobile-hero:before{content:"";position:absolute;inset:0;background-image:linear-gradient(180deg,rgba(23,19,22,.2),rgba(23,19,22,.78)),url(/handnote-demo.png);background-size:cover;background-position:center 44%;transform:scale(1.02)}.hero-copy,.hero-upload{position:relative;z-index:1}.hero-copy{color:#fff;animation:handnote-rise .52s ease both}.hero-copy p,.section-title p{margin:0 0 8px;color:#88e0d0;font-size:13px;font-weight:850}.hero-copy h1{margin:0;max-width:8em;font-size:clamp(46px,14vw,76px);line-height:.96;letter-spacing:0}.hero-copy span{display:block;max-width:360px;margin-top:14px;color:hsla(0,0%,100%,.82);font-size:15px;line-height:1.62}.hero-upload{min-height:54px;width:100%;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:18px;color:var(--ink);background:#fff;font-weight:900;box-shadow:0 16px 36px rgba(0,0,0,.2);cursor:pointer;animation:handnote-rise .62s ease 80ms both;transition:transform .18s ease,box-shadow .18s ease}.hero-upload:active{transform:translateY(1px) scale(.99);box-shadow:0 12px 28px rgba(0,0,0,.22)}.hero-upload input,.inline-upload input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.creator-stack{display:grid;grid-gap:14px;gap:14px;width:min(100%,1160px);margin:-16px auto 0;padding:0 12px 88px;position:relative;z-index:2}.control-surface,.history-surface,.phone-stage,.pricing-surface,.share-lab{border:1px solid rgba(23,19,22,.08);border-radius:22px;background:rgba(255,250,242,.94);box-shadow:0 14px 34px rgba(23,19,22,.07)}.phone-stage{display:grid;grid-gap:12px;gap:12px;padding:12px;background:linear-gradient(var(--paper),var(--paper)) padding-box,linear-gradient(135deg,rgba(79,56,213,.28),rgba(12,118,105,.22),rgba(230,93,63,.14)) border-box;border-color:transparent}.control-heading,.stage-heading,.workflow-steps{display:flex;align-items:center}.stage-heading{justify-content:space-between;gap:12px}.stage-heading>div:not(.stage-actions){min-width:0;display:grid;grid-gap:3px;gap:3px}.control-heading>span,.stage-heading span{color:var(--mint);font-size:12px;font-weight:900}.stage-heading strong{color:var(--ink);font-size:16px}.stage-actions{display:inline-flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.inline-download,.inline-upload{position:relative;min-height:36px;display:inline-flex;align-items:center;justify-content:center;gap:6px;flex:0 0 auto;border-radius:999px;padding:0 12px;color:var(--ink);background:var(--paper-soft);font-size:13px;font-weight:900;cursor:pointer}.inline-download{border:0;color:#fff;background:var(--ink)}.story-frame{position:relative;width:min(100%,430px);margin:0 auto;overflow:hidden;border-radius:22px;background:var(--ink);box-shadow:0 10px 26px rgba(23,19,22,.1)}.story-frame img{width:100%;height:100%;display:block;object-fit:contain}.source-frame{background:#eee4d8}.file-row{min-height:36px;display:flex;align-items:center;gap:8px;color:var(--muted);font-size:13px}.file-row span{flex:1 1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.file-row strong{color:var(--mint)}.control-surface,.history-surface,.pricing-surface,.share-lab{display:grid;grid-gap:16px;gap:16px;padding:16px}.control-heading{display:grid;grid-gap:6px;gap:6px}.control-heading h2,.control-heading p{margin:0}.control-heading h2{font-size:24px;line-height:1.16;letter-spacing:0}.control-heading p{color:var(--muted);font-size:13px;line-height:1.58}.workflow-steps{position:relative;gap:8px;border-radius:999px;padding:5px;background:var(--paper-soft)}.workflow-steps span{min-height:32px;flex:1 1;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;color:var(--muted);font-size:13px;font-weight:900}.workflow-steps span.done{color:#07584f;background:#e2f2ed}.workflow-steps span.active{color:#fff;background:var(--ink);box-shadow:0 8px 18px rgba(23,19,22,.16)}.credit-row,.poster-actions,.prompt-reminder,.status-ribbon,.switch-line{display:flex;align-items:center}.status-ribbon{justify-content:space-between;gap:12px;border-radius:16px;padding:12px 14px;color:#fff;background:var(--ink)}.status-ribbon span,.status-ribbon strong{min-width:0}.status-ribbon span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.status-ribbon strong{color:#ffe0a6;font-size:13px}.switch-line{gap:8px}.switch-line span{flex:1 1;font-weight:850}.chip-group button,.credit-row button,.poster-actions button,.secondary-action,.sheet-packages button,.switch-line button{border:1px solid rgba(23,19,22,.1);background:#fff;color:var(--ink)}.switch-line button{min-height:38px;min-width:58px;border-radius:999px;font-weight:850}.switch-line button.active{color:#fff;background:var(--mint);border-color:var(--mint)}.chip-group{display:grid;grid-gap:10px;gap:10px}.chip-group>span,.high-weight-field span,.setting-grid span{color:#4d4540;font-size:13px;font-weight:850}.chip-group>div{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:9px;gap:9px}.chip-group button{min-height:40px;display:inline-flex;align-items:center;justify-content:center;gap:5px;border-radius:999px;padding:0 10px;font-weight:760;text-align:center}.chip-group button.selected{border-color:rgba(12,118,105,.32);background:var(--mint-soft);color:#07584f}.setting-grid{display:grid;grid-template-columns:1fr 1fr;grid-gap:12px;gap:12px}.high-weight-field,.setting-grid label{display:grid;grid-gap:8px;gap:8px}.bottom-sheet input,.high-weight-field textarea,.setting-grid select{width:100%;border:1px solid rgba(23,19,22,.14);border-radius:14px;background:#fff;color:var(--ink);outline:none}.setting-grid select{min-height:46px;padding:0 12px}.ratio-nudge{margin:-4px 0 0;border-radius:14px;padding:10px 12px;color:#07584f;background:var(--mint-soft);font-size:12px;line-height:1.5}.ratio-nudge.warn{color:#8a3e21;background:#fff0d9}.bottom-sheet input,.high-weight-field textarea{padding:12px;line-height:1.58}.high-weight-field textarea{resize:vertical}.prompt-reminder{align-items:flex-start;gap:10px;border-radius:16px;padding:12px;color:#5d524c;background:#fff1dc}.prompt-reminder svg{flex:0 0 auto;color:#d05d35}.message,.pay-note,.prompt-reminder p,.section-title h2,.section-title p{margin:0}.pay-note,.prompt-reminder p{font-size:13px;line-height:1.62}.generate-cta,.sheet-primary{min-height:54px;display:flex;align-items:center;justify-content:center;gap:9px;border:0;border-radius:16px;color:#fff;background:var(--fire);font-weight:920;box-shadow:0 18px 36px rgba(230,93,63,.26)}.generate-cta:disabled,.secondary-action:disabled{opacity:.62}.generate-cta span{border-radius:999px;padding:4px 8px;color:var(--fire);background:#fff;font-size:12px}.secondary-action{min-height:46px;display:flex;align-items:center;justify-content:center;gap:8px;border-radius:14px;font-weight:850}.message{color:#0c7669;font-size:13px;line-height:1.58}.message.error{color:#bd3e30}.share-lab{order:3}.history-surface{order:4}.pricing-surface{order:5}.history-item,.history-lock,.history-toolbar{display:flex;align-items:center}.history-lock{gap:12px;border-radius:16px;padding:14px;background:var(--paper-soft)}.history-lock svg{flex:0 0 auto;color:var(--mint)}.history-lock div{min-width:0;display:grid;grid-gap:4px;gap:4px;flex:1 1}.history-lock strong{font-size:15px}.history-empty,.history-lock span,.history-meta em,.history-meta small,.history-toolbar span{color:#6d625c;font-size:12px;line-height:1.48}.history-lock button,.history-toolbar button{min-height:36px;flex:0 0 auto;border:0;border-radius:999px;padding:0 12px;color:#fff;background:var(--ink);font-weight:850}.history-toolbar{justify-content:space-between;gap:12px}.history-toolbar button{display:inline-flex;align-items:center;justify-content:center;gap:6px}.history-empty{border:1px dashed rgba(23,19,22,.16);border-radius:16px;padding:18px;background:hsla(0,0%,100%,.42)}.handnote-history-list{display:grid;grid-gap:10px;gap:10px}.history-item{width:100%;gap:12px;border:1px solid rgba(23,19,22,.08);border-radius:16px;padding:10px;color:var(--ink);background:#fff;text-align:left}.history-thumb{width:72px;height:72px;flex:0 0 72px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;border-radius:12px;color:var(--mint);background:#eee4d8}.history-thumb img{width:100%;height:100%;display:block;object-fit:cover}.history-meta{min-width:0;display:grid;grid-gap:4px;gap:4px;flex:1 1}.history-meta b{font-size:14px}.history-meta em{display:-webkit-box;overflow:hidden;font-style:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}.section-title{display:grid;grid-gap:6px;gap:6px}.section-title h2{font-size:21px;line-height:1.22;letter-spacing:0}.poster-preview{position:relative;width:min(100%,430px);margin:0 auto;border-radius:22px}.poster-image-frame{position:relative;overflow:hidden;border-radius:16px;background:var(--ink);box-shadow:0 12px 28px rgba(23,19,22,.12)}.poster-image-frame>img{width:100%;height:100%;display:block;object-fit:contain}.qr-strip{position:absolute;right:10px;bottom:10px;z-index:2;width:auto;display:inline-flex;align-items:center;gap:6px;border:1px solid rgba(23,19,22,.08);border-radius:11px;padding:5px 6px 5px 8px;color:var(--ink);background:hsla(0,0%,100%,.88);box-shadow:0 7px 18px rgba(0,0,0,.12);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.poster-preview.poster-portrait .qr-strip{right:auto;left:50%;bottom:12px;transform:translateX(-50%)}.poster-preview.poster-wide .qr-strip{transform:scale(.88);transform-origin:right bottom}.qr-strip div{display:grid;grid-gap:2px;gap:2px}.qr-strip b{font-size:11px;line-height:1.2}.qr-strip span{color:#6d625c;font-size:8px;letter-spacing:.04em;line-height:1.2}.qr-strip i{width:1px;height:26px;background:rgba(23,19,22,.12)}.qr-strip img{width:36px;height:36px}.poster-preview.poster-portrait .qr-strip img{width:38px;height:38px}.credit-row,.poster-actions{gap:10px}.credit-row button,.poster-actions button{min-height:44px;flex:1 1;display:inline-flex;align-items:center;justify-content:center;gap:7px;border-radius:14px;font-weight:850}.poster-actions button:first-child:not(:disabled){color:#fff;background:var(--ink);border-color:var(--ink)}.poster-action-label{display:grid;grid-gap:1px;gap:1px;line-height:1.1}.poster-action-label small{color:var(--muted);font-size:10px;font-weight:750}.poster-actions button:disabled{color:#8c837d;background:#eee6da;border-color:rgba(23,19,22,.08)}.member-plan{position:relative;min-height:112px;display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"badge price arrow" "badge detail check";align-items:center;grid-gap:8px 14px;gap:8px 14px;border:0;border-radius:18px;padding:16px;color:#fff;background:linear-gradient(135deg,rgba(255,224,166,.08),transparent 36%),linear-gradient(145deg,#151316,#182a26 68%,#2b1c4b);text-align:left;box-shadow:0 14px 30px rgba(23,19,22,.14)}.member-plan>span{grid-area:badge;align-self:center;border-radius:999px;padding:5px 9px;color:#171316;background:#ffe0a6;font-size:12px;font-weight:900}.member-plan strong{grid-area:price;font-size:28px;line-height:1}.member-plan em{grid-area:detail;min-width:0;color:hsla(0,0%,100%,.72);font-style:normal;font-size:13px;line-height:1.45}.member-check{grid-area:check;justify-self:end;display:inline-flex;align-items:center;gap:5px;border-radius:999px;padding:5px 9px;color:#ffe0a6;background:rgba(255,224,166,.12);font-size:11px;font-weight:850;white-space:nowrap}.member-plan>svg{grid-area:arrow;justify-self:end}.credit-row button{flex-direction:column;gap:4px;padding:12px 8px;background:hsla(0,0%,100%,.78)}.credit-row strong{font-size:15px}.credit-row span{color:var(--fire);font-weight:900}.pay-note{color:var(--muted)}.sheet-backdrop{position:fixed;inset:0;z-index:80;background:rgba(0,0,0,.42)}.bottom-sheet{position:fixed;left:0;right:0;bottom:0;z-index:90;display:grid;grid-gap:12px;gap:12px;border-radius:28px 28px 0 0;padding:12px 18px 24px;background:var(--paper);box-shadow:0 -20px 60px rgba(0,0,0,.2);animation:sheet-in .24s ease both}.sheet-handle{width:44px;height:5px;margin:0 auto 4px;border-radius:999px;background:rgba(23,19,22,.18)}.sheet-tabs{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.sheet-tabs button{min-height:42px;border:0;border-radius:999px;background:var(--paper-soft);font-weight:850}.sheet-tabs button.active{color:#fff;background:var(--ink)}.bottom-sheet h2,.bottom-sheet p{margin:0}.bottom-sheet p{color:var(--muted);line-height:1.58}.sheet-packages{display:grid;grid-template-columns:1fr 1fr;grid-gap:10px;gap:10px}.sheet-ghost,.sheet-packages button{min-height:44px;border-radius:14px;font-weight:850}.sheet-ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;color:var(--muted);background:transparent}.save-preview-backdrop{position:fixed;inset:0;z-index:110;display:grid;place-items:end center;padding:16px;background:rgba(0,0,0,.58)}.save-preview-sheet{width:min(430px,100%);max-height:calc(100svh - 32px);display:grid;grid-gap:12px;gap:12px;overflow:auto;border-radius:28px;padding:12px 16px 18px;background:var(--paper);box-shadow:0 -20px 60px rgba(0,0,0,.28);animation:save-preview-in .22s ease both}.save-preview-sheet h2,.save-preview-sheet p{margin:0}.save-preview-sheet h2{font-size:22px}.save-preview-sheet p{color:var(--muted);line-height:1.56}.save-preview-image{overflow:hidden;border-radius:22px;background:var(--ink)}.save-preview-image img{width:100%;max-height:min(64svh,680px);display:block;object-fit:contain}.spin{animation:spin .9s linear infinite}@media (min-width:780px){.mobile-hero{min-height:540px;padding-left:8vw}.hero-upload{width:260px}.creator-stack{grid-template-columns:.82fr 1.18fr;align-items:start;margin-top:-28px;padding-top:0}.chip-group>div{grid-template-columns:repeat(auto-fit,minmax(128px,1fr))}.phone-stage{position:-webkit-sticky;position:sticky;top:78px}.history-surface,.pricing-surface,.share-lab{grid-column:2}.bottom-sheet{left:50%;right:auto;width:min(430px,calc(100% - 28px));transform:translateX(-50%);border-radius:28px;bottom:22px}}@media (max-width:380px){.credit-row,.setting-grid,.sheet-packages{grid-template-columns:1fr}.poster-actions{flex-direction:column}.poster-actions button{width:100%}}@keyframes handnote-rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes save-preview-in{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}@media (min-width:780px){@keyframes sheet-in{0%{transform:translateX(-50%) translateY(24px);opacity:0}to{transform:translateX(-50%) translateY(0);opacity:1}}}@keyframes spin{to{transform:rotate(1turn)}}