*{box-sizing:border-box}body{color:#111;overscroll-behavior:none;background:radial-gradient(circle, #0000000d 1.5px, transparent 1.5px), radial-gradient(ellipse 70% 55% at var(--p1x,15%) var(--p1y,20%), #ff8c782e 0%, transparent 70%), radial-gradient(ellipse 60% 65% at var(--p2x,85%) var(--p2y,75%), #ffd27829 0%, transparent 70%), radial-gradient(ellipse 55% 50% at var(--p3x,60%) var(--p3y,10%), #ffb46e21 0%, transparent 65%), #faf9f2;background-size:24px 24px,220% 220%,220% 220%,220% 220%,auto;margin:0;font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;animation:14s ease-in-out infinite bg-aurora}#root{min-height:100vh}@keyframes marching-ants{0%{background-position:0 0,0 100%,0 0,100% 0}to{background-position:20px 0,-20px 100%,0 -20px,100% 20px}}:root{--rc-drag-handle-size:12px;--rc-drag-handle-mobile-size:24px;--rc-drag-handle-bg-colour:#0003;--rc-drag-bar-size:6px;--rc-border-color:#ffffffb3;--rc-focus-color:#08f}.ReactCrop{cursor:crosshair;max-width:100%;display:inline-block;position:relative}.ReactCrop *,.ReactCrop :before,.ReactCrop :after{box-sizing:border-box}.ReactCrop--disabled,.ReactCrop--locked{cursor:inherit}.ReactCrop__child-wrapper{max-height:inherit;overflow:hidden}.ReactCrop__child-wrapper>img,.ReactCrop__child-wrapper>video{max-width:100%;max-height:inherit;display:block}.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>img,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__child-wrapper>video,.ReactCrop:not(.ReactCrop--disabled) .ReactCrop__crop-selection{touch-action:none}.ReactCrop__crop-mask{pointer-events:none;width:calc(100% + .5px);height:calc(100% + .5px);position:absolute;inset:0}.ReactCrop__crop-selection{cursor:move;position:absolute;top:0;left:0;transform:translateZ(0)}.ReactCrop--disabled .ReactCrop__crop-selection{cursor:inherit}.ReactCrop--circular-crop .ReactCrop__crop-selection{border-radius:50%}.ReactCrop--circular-crop .ReactCrop__crop-selection:after{pointer-events:none;content:"";border:1px solid var(--rc-border-color);opacity:.3;position:absolute;inset:-1px}.ReactCrop--no-animate .ReactCrop__crop-selection{outline:1px dashed #fff}.ReactCrop__crop-selection:not(.ReactCrop--no-animate .ReactCrop__crop-selection){color:#fff;background-image:linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(90deg,#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%),linear-gradient(#fff 50%,#444 50%);background-position:0 0,0 100%,0 0,100% 0;background-repeat:repeat-x,repeat-x,repeat-y,repeat-y;background-size:10px 1px,10px 1px,1px 10px,1px 10px;animation:1s linear infinite marching-ants}.ReactCrop__crop-selection:focus{outline:2px solid var(--rc-focus-color);outline-offset:-1px}.ReactCrop--invisible-crop .ReactCrop__crop-mask,.ReactCrop--invisible-crop .ReactCrop__crop-selection{display:none}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after,.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{content:"";background-color:#fff6;display:block;position:absolute}.ReactCrop__rule-of-thirds-vt:before,.ReactCrop__rule-of-thirds-vt:after{width:1px;height:100%}.ReactCrop__rule-of-thirds-vt:before{left:33.3333%}.ReactCrop__rule-of-thirds-vt:after{left:66.6667%}.ReactCrop__rule-of-thirds-hz:before,.ReactCrop__rule-of-thirds-hz:after{width:100%;height:1px}.ReactCrop__rule-of-thirds-hz:before{top:33.3333%}.ReactCrop__rule-of-thirds-hz:after{top:66.6667%}.ReactCrop__drag-handle{width:var(--rc-drag-handle-size);height:var(--rc-drag-handle-size);background-color:var(--rc-drag-handle-bg-colour);border:1px solid var(--rc-border-color);position:absolute}.ReactCrop__drag-handle:focus{background:var(--rc-focus-color)}.ReactCrop .ord-nw{cursor:nw-resize;top:0;left:0;transform:translate(-50%,-50%)}.ReactCrop .ord-n{cursor:n-resize;top:0;left:50%;transform:translate(-50%,-50%)}.ReactCrop .ord-ne{cursor:ne-resize;top:0;right:0;transform:translate(50%,-50%)}.ReactCrop .ord-e{cursor:e-resize;top:50%;right:0;transform:translate(50%,-50%)}.ReactCrop .ord-se{cursor:se-resize;bottom:0;right:0;transform:translate(50%,50%)}.ReactCrop .ord-s{cursor:s-resize;bottom:0;left:50%;transform:translate(-50%,50%)}.ReactCrop .ord-sw{cursor:sw-resize;bottom:0;left:0;transform:translate(-50%,50%)}.ReactCrop .ord-w{cursor:w-resize;top:50%;left:0;transform:translate(-50%,-50%)}.ReactCrop__disabled .ReactCrop__drag-handle{cursor:inherit}.ReactCrop__drag-bar{position:absolute}.ReactCrop__drag-bar.ord-n{width:100%;height:var(--rc-drag-bar-size);top:0;left:0;transform:translateY(-50%)}.ReactCrop__drag-bar.ord-e{width:var(--rc-drag-bar-size);height:100%;top:0;right:0;transform:translate(50%)}.ReactCrop__drag-bar.ord-s{width:100%;height:var(--rc-drag-bar-size);bottom:0;left:0;transform:translateY(50%)}.ReactCrop__drag-bar.ord-w{width:var(--rc-drag-bar-size);height:100%;top:0;left:0;transform:translate(-50%)}.ReactCrop--new-crop .ReactCrop__drag-bar,.ReactCrop--new-crop .ReactCrop__drag-handle,.ReactCrop--fixed-aspect .ReactCrop__drag-bar,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-n,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-e,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-s,.ReactCrop--fixed-aspect .ReactCrop__drag-handle.ord-w{display:none}@media (pointer:coarse){.ReactCrop .ord-n,.ReactCrop .ord-e,.ReactCrop .ord-s,.ReactCrop .ord-w{display:none}.ReactCrop__drag-handle{width:var(--rc-drag-handle-mobile-size);height:var(--rc-drag-handle-mobile-size)}}.app-shell{box-sizing:border-box;min-height:100vh;padding:0}.page{max-width:960px;margin:0 auto}.page-collection{box-sizing:border-box;max-width:960px;min-height:100vh;margin:0 auto;padding:0 16px 96px}@keyframes bg-aurora{0%{background-position:0 0,0 0,100% 100%,50% 0}33%{background-position:0 0,100%,0%,80% 100%}66%{background-position:0 0,50% 100%,50% 0,0%}to{background-position:0 0,0 0,100% 100%,50% 0}}@keyframes slide-from-center{0%{opacity:0;transform:translateY(-35vh)}to{opacity:1;transform:none}}@keyframes fade-slide-down{0%{opacity:0;transform:translateY(-12px)}to{opacity:1;transform:none}}@keyframes fade-slide-up{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:none}}@keyframes fade-in{0%{opacity:0}to{opacity:1}}.page-print{background:radial-gradient(circle, #0000000d 1.5px, transparent 1.5px), radial-gradient(ellipse 70% 55% at var(--p1x,15%) var(--p1y,20%), #ff8c782e 0%, transparent 70%), radial-gradient(ellipse 60% 65% at var(--p2x,85%) var(--p2y,75%), #ffd27829 0%, transparent 70%), radial-gradient(ellipse 55% 50% at var(--p3x,60%) var(--p3y,10%), #ffb46e21 0%, transparent 65%), #fefaf5;background-size:24px 24px,220% 220%,220% 220%,220% 220%,auto;flex-direction:column;animation:14s ease-in-out infinite bg-aurora;display:flex;position:fixed;inset:0;overflow:hidden}.print-toolbar{z-index:10;padding:calc(env(safe-area-inset-top,0px) + 12px) 16px 12px;background:0 0;justify-content:space-between;align-items:center;animation:.4s cubic-bezier(.4,0,.2,1) backwards fade-slide-down;display:flex;position:absolute;top:0;left:0;right:0}.print-toolbar:before{content:"";z-index:-1;background:#faf9f299;-webkit-backdrop-filter:blur(40px)saturate(1.8);pointer-events:none;opacity:0;background:color(display-p3 .98 .976 .949/.6);transition:opacity .25s;position:absolute;inset:0 0 -20px;-webkit-mask-image:linear-gradient(#000 0% calc(100% - 20px),#0000 100%);mask-image:linear-gradient(#000 0% calc(100% - 20px),#0000 100%)}.print-toolbar.toolbar-scrolled:before{opacity:1}.print-toolbar .back-home-button{margin-bottom:0;margin-right:auto}.print-circle-btn{background:#ffffff8c;-webkit-backdrop-filter:blur(40px)saturate(1.8);box-shadow:0 4px 28px #0000000f;cursor:pointer;color:#000c;-webkit-tap-highlight-color:transparent;background:color(display-p3 1 1 1/.55);border:1px solid #fff;border:1px solid color(display-p3 1 1 1);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:44px;height:44px;line-height:0;transition:opacity .15s;display:inline-flex;box-shadow:0 4px 28px color(display-p3 0 0 0/.06)}.print-circle-btn:hover{opacity:.7}.print-circle-btn:disabled{opacity:.35;cursor:default}.print-toolbar-capsule{box-shadow:0 4px 28px #0000000f;background:0 0;border:1px solid #fff;border:1px solid color(display-p3 1 1 1);border-radius:22px;align-items:center;gap:8px;height:44px;padding:0 4px;display:inline-flex;position:relative;box-shadow:0 4px 28px color(display-p3 0 0 0/.06)}.print-toolbar-capsule:before{content:"";z-index:-1;border-radius:inherit;background:#ffffff8c;-webkit-backdrop-filter:blur(40px)saturate(1.8);pointer-events:none;background:color(display-p3 1 1 1/.55);position:absolute;inset:0}.toolbar-capsule-btn{cursor:pointer;color:#555;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;line-height:0;transition:background .15s,opacity .15s;display:inline-flex}.toolbar-capsule-btn:hover{background:#0000000d}.toolbar-capsule-btn:active{opacity:.7}.toolbar-capsule-divider{background:#0000001a;flex-shrink:0;width:1px;height:20px}.toolbar-dropdown-wrap{position:relative}.toolbar-dropdown-backdrop{z-index:9;position:fixed;inset:0}.toolbar-dropdown-menu{background:#ffffff8c;-webkit-backdrop-filter:blur(40px)saturate(1.8);z-index:10;background:color(display-p3 1 1 1/.55);border-radius:16px;gap:4px;padding:6px;animation:.15s ease-out dropdown-fade-in;display:flex;position:absolute;top:calc(100% + 8px);left:50%;transform:translate(-50%);box-shadow:0 4px 20px #0000001a}.toolbar-dropdown-group{flex-direction:column;gap:2px;min-width:100px;display:flex}@keyframes dropdown-fade-in{0%{opacity:0;transform:translate(-50%)translateY(-4px)}to{opacity:1;transform:translate(-50%)translateY(0)}}.toolbar-dropdown-item{color:#333;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:10px;align-items:center;gap:10px;padding:10px 14px;font-family:inherit;font-size:14px;transition:background .12s;display:flex}.toolbar-dropdown-item:hover{background:#0000000a}.toolbar-dropdown-item.is-active{color:#111;background:#0000000f;font-weight:600}.toolbar-dropdown-item img{opacity:.7;filter:brightness(0)}.toolbar-dropdown-item.is-active img{opacity:1}.toolbar-dropdown-label{color:#00000059;text-transform:uppercase;letter-spacing:.04em;padding:6px 14px 2px;font-size:11px;font-weight:600}.toolbar-dropdown-divider{background:#0000000f;align-self:stretch;width:1px;margin:8px 0;display:block}.print-preview-wrap{-webkit-overflow-scrolling:touch;scrollbar-width:none;-ms-overflow-style:none;overscroll-behavior-y:contain;background:linear-gradient(#0000 0%,#faf9f299 15%,#faf9f2 30%);flex:1;justify-content:flex-start;align-items:flex-start;animation:.5s cubic-bezier(.4,0,.2,1) both fade-in;display:flex;overflow:hidden auto}.print-preview-wrap::-webkit-scrollbar{display:none}.print-preview-card{box-sizing:border-box;align-items:flex-start;width:100%;min-height:100%;padding:120px 24px 14px;display:flex;position:relative;overflow:visible}.print-theme-label{text-align:left;color:#000000bf;white-space:nowrap;text-overflow:ellipsis;letter-spacing:.01em;background:#faf9f2;flex-shrink:0;max-width:90%;margin:0;padding:4px 16px 0;font-size:20px;font-weight:700;line-height:1.3;overflow:hidden}.print-default-header{padding:calc(env(safe-area-inset-top,0px) + 12px) 16px 12px;flex-shrink:0;justify-content:space-between;align-items:center;animation:.35s both fade-in;display:flex}.print-page-title{text-align:center;color:#000000b3;letter-spacing:.04em;flex:1;margin:0;font-size:18px;font-weight:600}.print-header-spacer{flex-shrink:0;width:44px}.print-center-layout{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:24px;padding:0 28px 60px;animation:.45s cubic-bezier(.4,0,.2,1) both fade-slide-up;display:flex}.print-empty-hint{color:#00000047;flex-direction:column;justify-content:center;align-items:center;gap:12px;padding:0;display:flex}.print-empty-icon{margin:0;font-size:44px;line-height:1}.print-empty-text{letter-spacing:.02em;margin:0;font-size:15px}.print-input-wrap.print-input-centered{width:100%;max-width:400px}.share-overlay{z-index:300;background:#000000d9;flex-direction:column;animation:.2s both sheet-overlay-in;display:flex;position:fixed;inset:0}.share-close-btn{top:calc(env(safe-area-inset-top,0px) + 12px);cursor:pointer;color:#fffc;z-index:2;-webkit-tap-highlight-color:transparent;background:#ffffff26;border:none;border-radius:50%;justify-content:center;align-items:center;width:36px;height:36px;transition:background .15s;display:flex;position:absolute;right:16px}.share-close-btn:active{background:#ffffff40}.share-image-wrap{flex:1;justify-content:center;align-items:center;min-height:0;padding:60px 24px 16px;display:flex}.share-image{object-fit:contain;border-radius:12px;max-width:100%;max-height:100%;display:block;box-shadow:0 8px 40px #00000059}.share-bottom{padding:12px 20px calc(env(safe-area-inset-bottom,0px) + 20px);flex-direction:column;flex-shrink:0;align-items:center;gap:14px;display:flex}.share-hint{color:#fff6;margin:0;font-size:12px}.share-actions{gap:12px;width:100%;display:flex}.share-action-btn{cursor:pointer;color:#fff;-webkit-tap-highlight-color:transparent;background:#ffffff26;border:none;border-radius:14px;flex:1;justify-content:center;align-items:center;gap:6px;padding:14px 0;font-family:inherit;font-size:15px;font-weight:600;transition:background .15s;display:flex}.share-action-btn:active{background:#ffffff40}.print-input-bar{z-index:12;padding:0 16px calc(env(safe-area-inset-bottom,0px) + 20px);animation:.55s cubic-bezier(.4,0,.2,1) backwards slide-from-center;display:grid;position:absolute;bottom:0;left:0;right:0}.print-input-bar>*{grid-area:1/1;align-self:end;min-width:0;max-width:100%}.print-input-capsule{background:#ffffff8c;-webkit-backdrop-filter:blur(40px)saturate(1.8);box-shadow:0 4px 28px #0000000f;cursor:pointer;-webkit-tap-highlight-color:transparent;background:color(display-p3 1 1 1/.55);border:1px solid #fff;border:1px solid color(display-p3 1 1 1);border-radius:16px;align-items:center;gap:8px;padding:10px 14px 10px 18px;transition:opacity .28s cubic-bezier(.4,0,.2,1),transform .28s cubic-bezier(.4,0,.2,1),visibility linear,background .2s;display:flex;box-shadow:0 4px 28px color(display-p3 0 0 0/.06)}.print-input-bar.is-expanded .print-input-capsule{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s cubic-bezier(.4,0,.2,1),transform .22s cubic-bezier(.4,0,.2,1),visibility 0s linear .22s;transform:translateY(4px)scale(.98)}.print-input-capsule:hover{background:#ffffffe6}.print-input-capsule:active{background:#ffffffbf}.capsule-text{color:#00000073;white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;font-size:14px;line-height:1.4;overflow:hidden}.capsule-icon{color:#0000004d;flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.capsule-collapse-btn{color:#00000059;cursor:pointer;-webkit-tap-highlight-color:transparent;background:0 0;border:none;border-radius:6px;justify-content:center;align-items:center;padding:4px;display:inline-flex}.capsule-collapse-btn:hover{color:#0009}.print-input-wrap{box-sizing:border-box;background:#ffffff8c;-webkit-backdrop-filter:blur(40px)saturate(1.8);box-shadow:0 4px 28px #0000000f;background:color(display-p3 1 1 1/.55);border:1px solid #fff9;border:1px solid color(display-p3 1 1 1/.6);border-radius:24px;flex-direction:column;max-width:100%;display:flex;box-shadow:0 4px 28px color(display-p3 0 0 0/.06)}.print-input-bar .print-input-wrap{opacity:0;visibility:hidden;pointer-events:none;transition:opacity .22s cubic-bezier(.4,0,.2,1),transform .22s cubic-bezier(.4,0,.2,1),visibility 0s linear .22s;transform:translateY(10px)}.print-input-bar.is-expanded .print-input-wrap{opacity:1;visibility:visible;pointer-events:auto;transition:opacity .32s cubic-bezier(.4,0,.2,1) 80ms,transform .32s cubic-bezier(.4,0,.2,1) 80ms,visibility linear;transform:none}.ai-prompt-input{color:#111;resize:none;box-sizing:border-box;overflow-wrap:anywhere;word-break:break-word;background:0 0;border:none;outline:none;width:100%;min-width:0;max-height:38vh;padding:14px 16px 0;font-family:inherit;font-size:15px;line-height:1.5;display:block;overflow-y:auto}.ai-prompt-input::placeholder{color:#b0b0b0}.ai-prompt-input:disabled{opacity:.5}.ai-prompt-actions{justify-content:flex-end;align-items:center;gap:8px;padding:6px 12px 12px 16px;display:flex}.ai-prompt-actions .theme-dropdown-wrap{margin-right:auto}.theme-dropdown-wrap{min-width:0;position:relative}.theme-pill-btn{color:#0009;cursor:pointer;-webkit-tap-highlight-color:transparent;background:#0000000d;border:none;border-radius:16px;align-items:center;gap:4px;max-width:160px;padding:6px 8px 6px 12px;font-family:inherit;font-size:13px;transition:background .15s;display:inline-flex}.theme-pill-btn:hover{background:#00000014}.theme-pill-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.theme-sheet-backdrop{z-index:199;position:fixed;inset:0}.print-theme-popover{z-index:200!important;overscroll-behavior:contain!important;min-width:140px!important;max-width:180px!important;max-height:220px!important;position:absolute!important;top:auto!important;bottom:calc(100% + 8px)!important;left:0!important;overflow-y:auto!important}@media (pointer:fine){.print-theme-popover::-webkit-scrollbar{width:4px}.print-theme-popover::-webkit-scrollbar-track{background:0 0;margin:12px 0}.print-theme-popover::-webkit-scrollbar-thumb{background:#00000026;border-radius:999px}}.print-input-backdrop{z-index:11;position:fixed;inset:0}.poem-reveal-overlay{z-index:250;-webkit-backdrop-filter:blur(8px)saturate(1.2);-webkit-user-select:none;user-select:none;pointer-events:none;background:#faf9f2d1;align-items:center;padding:40px 32px;animation:.18s ease-out reveal-fade-in;display:flex;position:fixed;inset:0}.poem-reveal-overlay.align-left{justify-content:flex-start}.poem-reveal-overlay.align-right{justify-content:flex-end}.poem-reveal-overlay.align-center{justify-content:center}.poem-reveal-text{white-space:pre-line;letter-spacing:.04em;color:#2a241c;text-align:inherit;font-size:20px;line-height:1.9}.poem-reveal-overlay.align-left .poem-reveal-text{text-align:left}.poem-reveal-overlay.align-right .poem-reveal-text{text-align:right}.poem-reveal-overlay.align-center .poem-reveal-text{text-align:center}@keyframes reveal-fade-in{0%{opacity:0}to{opacity:1}}.ai-generate-btn{color:#fff;cursor:pointer;white-space:nowrap;-webkit-tap-highlight-color:transparent;background:#111;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;padding:0;font-family:inherit;font-size:15px;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.ai-generate-btn:disabled{opacity:.25;cursor:default}.ai-generate-btn:not(:disabled):active{background:#333}.ai-btn-loading{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:14px;height:14px;animation:.7s linear infinite spin;display:inline-block}.print-input-textarea{box-sizing:border-box;color:#111;resize:none;background:0 0;border:none;border-radius:0;outline:none;width:100%;padding:12px 20px;font-family:inherit;font-size:16px;line-height:1.5;display:block;overflow:hidden auto}.print-input-textarea::placeholder{color:#aaa}.print-input-textarea::-webkit-scrollbar{width:4px}.print-input-textarea::-webkit-scrollbar-track{background:0 0}.print-input-textarea::-webkit-scrollbar-thumb{background:#0000002e;border-radius:999px}.print-input-textarea::-webkit-scrollbar-thumb:hover{background:#00000052}h1{text-align:left;margin:0 0 20px;font-size:28px;font-weight:600}.letter-grid{grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:12px;margin-top:24px;display:grid}.letter-card{aspect-ratio:1;cursor:pointer;background-color:#0000;border:1px solid #0000;border-radius:10px;flex-direction:column;padding:0;transition:background-color .12s,border-color .12s;display:flex;overflow:hidden}.letter-card.is-selected{border-color:#111}.letter-preview{box-sizing:border-box;flex:1;justify-content:center;align-items:center;width:100%;height:100%;padding:6px;display:flex}.letter-empty-label{color:#bbb;-webkit-user-select:none;user-select:none;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:32px;font-weight:700}.letter-placeholder{background-color:#faf9f2;border:1px dashed #c9c9c9;border-radius:8px;width:100%;height:100%}.letter-image{object-fit:contain;border-radius:6px;width:auto;max-width:100%;height:auto;max-height:100%;display:block}.letter-label{display:none}@keyframes panel-expand{0%{opacity:0;max-height:0}to{opacity:1;max-height:600px}}@keyframes panel-collapse{0%{opacity:1;max-height:600px}to{opacity:0;max-height:0}}.letter-expand-panel{background:0 0;grid-column:1/-1;margin:0;padding:0;animation:.28s cubic-bezier(.4,0,.2,1) both panel-expand;overflow:hidden}.letter-expand-panel.is-closing{pointer-events:none;animation:.22s cubic-bezier(.4,0,.2,1) both panel-collapse}.upload-modal-mask{background:#0006;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.upload-modal{background:#fff;border-radius:12px;flex-direction:column;gap:10px;width:100%;max-width:520px;padding:18px;display:flex;position:relative}.ghost-button{cursor:pointer;background:#fff;border:1px solid #ddd;border-radius:8px;margin-top:6px;padding:8px 12px}.assets-gallery{grid-template-columns:repeat(auto-fill,minmax(44px,1fr));gap:6px;padding:6px 0 12px;display:grid}.asset-add-button{aspect-ratio:1;cursor:pointer;background:0 0;border:1.5px solid silver;border-radius:6px;justify-content:center;align-items:center;width:100%;transition:opacity .12s;display:flex}.asset-add-button img{filter:brightness(0)}.asset-add-button:hover{opacity:.6}.asset-item{aspect-ratio:1;cursor:pointer;-webkit-touch-callout:none;-webkit-user-select:none;user-select:none;border:1px solid #0000001a;border-radius:6px;width:100%;position:relative;overflow:hidden}.asset-item img{object-fit:contain;box-sizing:border-box;background:#faf9f2;width:100%;height:100%;padding:3px;display:block}.modal-overlay{z-index:200;background:#0006;justify-content:center;align-items:center;padding:24px;animation:.18s both sheet-overlay-in;display:flex;position:fixed;inset:0}.context-backdrop{z-index:190;background:0 0;position:fixed;inset:0}.context-card{z-index:191;background:#ffffff8c;-webkit-backdrop-filter:blur(40px)saturate(1.8);width:160px;box-shadow:none;background:color(display-p3 1 1 1/.55);border-radius:12px;animation:.15s cubic-bezier(.34,1.56,.64,1) both context-pop;position:fixed;overflow:hidden}@keyframes context-pop{0%{opacity:0;transform:scale(.85)}to{opacity:1;transform:scale(1)}}.context-item{color:#111;cursor:pointer;text-align:center;background:0 0;border:none;width:100%;padding:16px 0;font-family:inherit;font-size:16px;display:block}.context-item:active{background:#f0f0f0}.context-item-danger{color:#e53935}.context-divider{background:#0000001f;width:100%;height:.5px}.confirm-card{background:#fff;border-radius:14px;width:100%;max-width:300px;padding:24px 20px 16px;overflow:hidden;box-shadow:0 8px 32px #0000002e}.confirm-title{color:#111;text-align:center;margin:0 0 20px;font-size:16px;font-weight:600}.confirm-desc{color:#00000080;text-align:center;margin:-10px 0 18px;font-size:13px;line-height:1.5}.theme-name-card{max-width:320px}.theme-name-input{box-sizing:border-box;color:#111;background:#f5f5f7;border:1px solid #0000;border-radius:10px;outline:none;width:100%;margin:-8px 0 18px;padding:10px 12px;font-family:inherit;font-size:15px;transition:border-color .15s,background-color .15s;display:block}.theme-name-input:focus{background:#fff;border-color:#111}.confirm-actions{gap:10px;display:flex}.confirm-btn{cursor:pointer;border:none;border-radius:10px;flex:1;padding:11px 0;font-family:inherit;font-size:15px;font-weight:600}.confirm-btn-cancel{color:#444;background:#f0f0f0}.confirm-btn-delete{color:#fff;background:#e53935}.confirm-btn-save{color:#fff;background:#111}.confirm-btn:disabled{opacity:.4;cursor:default}.bg-removal-overlay{z-index:200;background:#00000059;justify-content:center;align-items:center;padding:16px;animation:.18s both sheet-overlay-in;display:flex;position:fixed;inset:0}.bg-removal-card{width:calc(100vw - 32px);max-width:460px;height:calc(100dvh - 32px);box-shadow:none;background:0 0;border-radius:0;flex-direction:column;justify-content:center;align-items:center;padding:0;display:flex;position:relative;overflow:visible}.bg-removal-card--loading,.bg-removal-card--cropping{justify-content:center}.bg-removal-overlay.is-saving{pointer-events:none;background:0 0}.bg-removal-overlay.is-saving .bg-removal-card{opacity:0;transition:opacity .12s,transform .12s;transform:scale(.98)}.imgproc-tool-row{flex-shrink:0;align-items:center;gap:8px;width:100%;margin-bottom:12px;display:flex}.imgproc-tool-btn{color:#000000b3;cursor:pointer;background:#fffffff0;border:none;border-radius:999px;justify-content:center;align-items:center;gap:6px;height:36px;padding:0 14px;font-family:inherit;font-size:13px;font-weight:600;line-height:1;display:inline-flex;box-shadow:0 1px 3px #00000014}.imgproc-tool-btn:disabled{opacity:.92;cursor:default}.imgproc-tool-icon{width:20px;height:20px;display:block}.imgproc-tool-spacer{flex:1}.imgproc-close-btn{cursor:pointer;background:#fffffff0;border:none;border-radius:999px;justify-content:center;align-items:center;width:36px;height:36px;margin-left:auto;padding:0;display:inline-flex;box-shadow:0 1px 6px #0000001a}.imgproc-close-btn img{width:16px;height:16px;display:block}.imgproc-close-btn:active{opacity:.7}.imgproc-stage{justify-content:center;align-items:center;width:100%;min-height:0;display:flex}.bg-removal-card--preview .imgproc-stage,.bg-removal-card--done .imgproc-stage,.bg-removal-card--error .imgproc-stage,.bg-removal-card--loading .imgproc-stage,.bg-removal-card--cropping .imgproc-stage{margin:0}.imgproc-img-wrap{background:0 0;border-radius:16px;justify-content:center;align-items:center;width:100%;max-height:calc(100dvh - 188px);display:flex;position:relative;overflow:hidden}.imgproc-img-wrap--glass{-webkit-backdrop-filter:blur(18px)saturate(170%);backdrop-filter:blur(18px)saturate(170%);background:#ebebf0ad;box-shadow:inset 0 0 0 1px #ffffff47}.imgproc-img{object-fit:contain;width:100%;height:auto;max-height:calc(100dvh - 188px);display:block}.bg-removal-card--done .imgproc-img{object-fit:contain}.imgproc-img-wrap .ReactCrop{width:100%;max-height:calc(100dvh - 188px)}.imgproc-img-wrap .ReactCrop__child-wrapper{width:100%}.imgproc-img-wrap .ReactCrop__child-wrapper img{object-fit:contain;width:100%;height:auto;max-height:calc(100dvh - 188px)}.imgproc-loading-overlay{-webkit-backdrop-filter:blur(7px)saturate(115%);backdrop-filter:blur(7px)saturate(115%);background:#f5f5f557;justify-content:center;align-items:center;display:flex;position:absolute;inset:0;overflow:hidden}.imgproc-loading-overlay:before{content:"";background:radial-gradient(circle at 35% 45%,#ffffffb8 0 18%,#0000 38%),linear-gradient(115deg,#0000 18%,#ffffff6b 42%,#ffffff1f 58%,#0000 82%);animation:2.2s ease-in-out infinite alternate soft-loading-glow;position:absolute;inset:-25%;transform:translate(-18%)rotate(8deg)}.imgproc-loading-overlay:after{content:"";background:#ffffff14;animation:1.8s ease-in-out infinite alternate loading-breathe;position:absolute;inset:0}@keyframes soft-loading-glow{0%{opacity:.48;transform:translate(-20%)rotate(8deg)}to{opacity:.78;transform:translate(20%)rotate(8deg)}}@keyframes loading-breathe{0%{opacity:.25}to{opacity:.55}}.imgproc-img--transparent-bg{background:0 0}.imgproc-erase-canvas{touch-action:none;-webkit-user-select:none;user-select:none;cursor:crosshair;background:0 0}.imgproc-loading-text{z-index:1;color:#0000009e;text-align:center;background:0 0;border-radius:0;margin:0;padding:0;font-size:12px;font-weight:700;position:relative}.imgproc-footer{flex-direction:column;align-items:center;gap:8px;width:100%;margin-top:24px;display:flex}.bg-removal-card--loading .imgproc-footer{margin-top:12px}.imgproc-save-btn{color:#fff;cursor:pointer;background:#111;border:none;border-radius:999px;width:100%;padding:15px 16px;font-family:inherit;font-size:15px;font-weight:700;line-height:1}.imgproc-save-btn:active{opacity:.75}.imgproc-cancel{color:#0000007a;cursor:pointer;text-align:center;background:0 0;border:none;padding:0;font-family:inherit;font-size:12px}.imgproc-crop-actions{justify-content:center;align-items:center;gap:12px;width:100%;margin-top:12px;display:flex}.imgproc-crop-action{color:#0000009e;cursor:pointer;background:#ffffffeb;border:none;border-radius:999px;min-width:78px;height:36px;padding:0 20px;font-family:inherit;font-size:13px;font-weight:600;box-shadow:0 1px 4px #00000014}.imgproc-crop-action--primary{color:#fff;background:#111}.imgproc-crop-action:active{opacity:.7}.imgproc-crop-action:disabled{opacity:.45;cursor:default}.save-fly-image{left:var(--fly-start-x);top:var(--fly-start-y);width:var(--fly-start-w);height:var(--fly-start-h);object-fit:contain;z-index:260;pointer-events:none;filter:drop-shadow(0 12px 28px #00000038);will-change:left, top, width, height, border-radius, opacity, transform;border-radius:16px;animation:.62s cubic-bezier(.22,.9,.28,1) forwards save-fly-to-letter;position:fixed}@keyframes save-fly-to-letter{0%{left:var(--fly-start-x);top:var(--fly-start-y);width:var(--fly-start-w);height:var(--fly-start-h);opacity:1;border-radius:16px;transform:scale(1)}70%{opacity:1;transform:scale(.92)}to{left:var(--fly-end-x);top:var(--fly-end-y);width:var(--fly-end-w);height:var(--fly-end-h);opacity:.18;border-radius:18px;transform:scale(.86)}}.bg-removal-spinner{border:3px solid #0000001f;border-top-color:#111;border-radius:50%;flex-shrink:0;width:36px;height:36px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.bg-removal-label{color:#111;margin:0;font-size:15px;font-weight:600}.bg-removal-time{color:#00000073;text-align:center;margin:0;font-size:13px}.bg-removal-error-detail{color:#00000080;text-align:center;word-break:break-word;max-height:96px;margin:6px 0 0;padding:0 8px;font-size:12px;line-height:1.4;overflow-y:auto}.bg-removal-preview{object-fit:contain;background:0 0;border-radius:8px;flex:1;width:100%;min-height:0}.bg-removal-actions{flex-shrink:0;gap:10px;width:100%;display:flex}.modal-close-button{cursor:pointer;background:0 0;border:none;font-size:24px;line-height:1;position:absolute;top:8px;right:8px}@keyframes sheet-overlay-in{0%{opacity:0}to{opacity:1}}@keyframes sheet-overlay-out{0%{opacity:1}to{opacity:0}}@keyframes sheet-panel-in{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes sheet-panel-out{0%{transform:translateY(0)}to{transform:translateY(100%)}}.sheet-overlay{z-index:100;background:#00000059;animation:.22s both sheet-overlay-in;position:fixed;inset:0}.sheet-overlay.is-closing{animation:.22s both sheet-overlay-out}.sheet-panel{padding:0;padding-bottom:env(safe-area-inset-bottom);background:#fff;border:none;border-radius:16px 16px 0 0;outline:none;animation:.28s cubic-bezier(.4,0,.2,1) both sheet-panel-in;position:absolute;bottom:0;left:0;right:0;overflow:hidden}.sheet-panel.is-closing{animation:.22s cubic-bezier(.4,0,.2,1) both sheet-panel-out}.sheet-group{background:#fff}.sheet-item{width:100%;box-shadow:none;color:#111;cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent;background:#fff;border:none;outline:none;padding:18px 0;font-family:inherit;font-size:17px;line-height:1.2;display:block}.sheet-item:focus{outline:none}.sheet-divider{background:#e5e5ea;width:100%;height:.5px}.sheet-gap{background:#f2f2f7;height:8px}.sheet-item:active{background:#ebebeb;outline:none}.hidden-input{display:none}.result-placeholder{box-sizing:border-box;background-color:#f5f5f5;border:none;border-radius:0;padding:16px;position:relative;overflow:auto;box-shadow:0 10px 24px #0000001f}.square-area{aspect-ratio:1;width:min(100%,520px);max-height:70vh;margin:0 auto}.collage-output{flex-direction:column;flex-shrink:0;justify-content:flex-start;align-items:stretch;gap:0;width:max-content;min-width:100%;padding:0;display:flex}.collage-line{box-sizing:border-box;border-bottom:1px solid #aa967826;flex-wrap:nowrap;align-items:center;gap:0;width:100%;height:58px;min-height:58px;display:flex}.collage-line-filler{pointer-events:none}.collage-line.align-left{justify-content:flex-start}.collage-line.align-center{justify-content:center}.collage-line.align-right{justify-content:flex-end}.collage-line-empty{width:1px;height:58px}.collage-tile-image{object-fit:contain;width:auto;height:42px;max-height:42px;display:inline-block}.collage-tile-placeholder{background:#ffffff80;border:1px dashed #bdbdbd;justify-content:center;align-items:center;width:42px;height:42px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:32px;font-weight:600;line-height:42px;display:inline-flex}.collage-space{width:21px;height:42px;display:inline-block}@keyframes tile-fly-in{0%{opacity:0;transform:translate(calc(var(--fly-x,0) * 1px), calc(var(--fly-y,60) * 1px)) scale(.15) rotate(calc(var(--fly-r,0) * 1deg))}60%{opacity:1;transform:translate(0)scale(1.06)rotate(0)}to{opacity:1;transform:none}}.tile-animate-in{animation:.55s cubic-bezier(.34,1.56,.64,1) both tile-fly-in}.text-input-box{resize:vertical;background:#fff;border:1px solid #d0d0d0;width:min(100%,520px);margin:12px auto 0;padding:10px 12px;font-size:16px;line-height:1.5;display:block}.back-home-button{cursor:pointer;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;margin-bottom:12px;padding:6px;line-height:0;display:inline-flex}.back-home-button img{opacity:1;filter:brightness(0)}.back-home-button:hover{opacity:.6}.align-controls{box-sizing:border-box;background:0 0;border-radius:8px;flex-shrink:0;height:36px;padding:3px;display:inline-flex;position:relative}.align-indicator{pointer-events:none;z-index:0;background:#00000014;border-radius:50%;width:30px;height:30px;transition:transform .22s cubic-bezier(.4,0,.2,1);position:absolute;top:0;left:0}.page-align-controls{z-index:3;position:absolute;top:0;right:0}.align-button{cursor:pointer;z-index:1;background:0 0;border:none;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:30px;height:30px;padding:0;line-height:0;transition:none;display:inline-flex;position:relative}.align-button img{opacity:1;filter:brightness(0);transition:filter .22s cubic-bezier(.4,0,.2,1)}.align-button:hover,.align-button.is-active{background:0 0}.align-button.is-active img{opacity:1;filter:brightness(0)}.app-footer{background-color:unset;background:unset;pointer-events:none;z-index:10;border-top:0 #0000;border-image:;justify-content:center;padding:14px 20px;display:flex;position:fixed;bottom:0;left:0;right:0}.print-button{letter-spacing:.06em;color:#111;-webkit-backdrop-filter:blur(40px)saturate(1.8);cursor:pointer;pointer-events:auto;background:#ffffff8c;border:1px solid #fff9;border-radius:999px;min-width:220px;padding:12px 20px;font-size:16px;font-weight:700;box-shadow:0 4px 28px #0000000f}@supports (color:color(display-p3 0 0 0)){.print-button{background:color(display-p3 1 1 1/.55);border-color:color(display-p3 1 1 1/.6);box-shadow:0 4px 28px color(display-p3 0 0 0/.06)}}.print-button:disabled{opacity:.5;cursor:default}.home-header-wrap{padding:calc(env(safe-area-inset-top,0px) + 16px) 16px 0;margin:0 -16px}.home-header-top{position:relative}.home-header-meta{color:#0000008c;align-items:center;gap:10px;font-size:13px;font-weight:500;display:flex}.home-weather{align-items:center;gap:4px;margin-left:4px;display:inline-flex}.home-weather-icon{font-size:14px;line-height:1}.home-title{color:#111;letter-spacing:.4px;margin:24px 0 4px;font-size:22px;font-weight:700}.home-subtitle{color:#00000073;margin:0 0 12px;font-size:14px;line-height:1.4}.home-theme-row{top:env(safe-area-inset-top,0px);z-index:50;justify-content:space-between;align-items:center;gap:0;margin:0 -4px;padding:8px 0;display:flex;position:sticky}.home-theme-pill{box-shadow:0 4px 28px #0000000f;background:0 0;border:1px solid #fff9;border:1px solid color(display-p3 1 1 1/.6);border-radius:999px;align-items:center;height:44px;padding:0 12px;display:inline-flex;position:relative;box-shadow:0 4px 28px color(display-p3 0 0 0/.06)}.home-theme-pill:before{content:"";z-index:-1;border-radius:inherit;background:#ffffff8c;-webkit-backdrop-filter:blur(40px)saturate(1.8);backdrop-filter:blur(40px)saturate(1.8);background:color(display-p3 1 1 1/.55);position:absolute;inset:0}.home-theme-picker{color:#000c;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-family:inherit;font-size:15px;font-weight:400;line-height:1;display:inline-flex}.home-theme-picker svg{color:#000c;margin-top:1px}.home-theme-create{color:#000c;cursor:pointer;background:0 0;border:none;align-items:center;gap:4px;padding:0;font-family:inherit;font-size:15px;font-weight:400;line-height:1;display:inline-flex}.home-theme-create svg{color:#000c}.home-theme-create:active{opacity:.6}.home-theme-popover{z-index:60;background:#ffffff8c;-webkit-backdrop-filter:blur(40px)saturate(1.8);backdrop-filter:blur(40px)saturate(1.8);background:color(display-p3 1 1 1/.55);border-radius:12px;min-width:180px;max-width:240px;padding:6px 0;animation:.14s cubic-bezier(.34,1.56,.64,1) both context-pop;position:absolute;top:calc(100% - 4px);left:20px;box-shadow:0 12px 32px #0000001f,0 0 0 1px #0000000a}.home-theme-popover-section-title{color:#0006;letter-spacing:.5px;padding:6px 14px 4px;font-size:11px;font-weight:600}.home-theme-popover-item{color:#111;text-align:left;cursor:pointer;background:0 0;border:none;width:100%;padding:10px 14px;font-family:inherit;font-size:14px;display:block}.home-theme-popover-item:active,.home-theme-popover-item:hover{background:#0000000a}.home-theme-popover-item.is-active{font-weight:700}.home-theme-popover-item-row{align-items:center;width:100%;display:flex}.home-theme-popover-item-row.is-active .home-theme-popover-item--in-row{font-weight:700}.home-theme-popover-item--in-row{flex:1}.home-theme-popover-icon-btn{cursor:pointer;color:#0000008c;opacity:.85;background:0 0;border:none;justify-content:center;align-items:center;padding:8px;display:inline-flex}.home-theme-popover-icon-btn:hover{opacity:1;color:#111}.home-theme-popover-icon-btn:last-child{padding-right:12px}.letter-card.is-empty-custom{background-color:#d9d9d9;border-color:#0000}.letter-empty-label--custom{color:#fff}.home-bottom-bar{padding:12px 16px calc(env(safe-area-inset-bottom,0px) + 16px);z-index:40;pointer-events:none;justify-content:center;display:flex;position:fixed;bottom:0;left:0;right:0}.home-input-fake{pointer-events:auto;text-align:left;background:#ffffff8c;-webkit-backdrop-filter:blur(40px)saturate(1.8);backdrop-filter:blur(40px)saturate(1.8);color:#0006;cursor:text;box-shadow:0 4px 28px #0000000f;background:color(display-p3 1 1 1/.55);border:1px solid #fff9;border:1px solid color(display-p3 1 1 1/.6);border-radius:24px;align-items:center;width:100%;max-width:520px;padding:14px 18px;font-family:inherit;font-size:15px;transition:opacity .15s;display:flex;box-shadow:0 4px 28px color(display-p3 0 0 0/.06)}.home-input-fake:active{opacity:.85}.home-input-placeholder{color:#0006}.swipe-indicator{left:50%;bottom:calc(env(safe-area-inset-bottom,0px) + 78px);z-index:39;pointer-events:none;opacity:0;mix-blend-mode:difference;isolation:isolate;align-items:center;gap:9px;padding:0;transition:opacity .22s;display:flex;position:fixed;transform:translate(-50%)}.swipe-indicator.is-visible{opacity:1}.swipe-indicator-dot{background:#fff6;width:5px;height:5px;transition:width .18s,height .18s,background .18s,border-radius .18s,box-shadow .18s}.swipe-indicator-dot.is-preset{border-radius:50%}.swipe-indicator-dot.is-custom{border-radius:1.5px}.swipe-indicator-dot.is-random{background:0 0;border-radius:50%;width:10px;height:10px;box-shadow:inset 0 0 0 1.5px #ffffff8c}.swipe-indicator-dot.is-active{background:#ffffffb3}.swipe-indicator-dot.is-preset.is-active{border-radius:999px;width:14px}.swipe-indicator-dot.is-custom.is-active{border-radius:2px;width:14px;height:5px}.swipe-indicator-dot.is-random.is-active{width:14px;height:10px;box-shadow:none;background:#ffffffb3;border-radius:999px}.app-content{opacity:1}.app-content.is-pre-splash{opacity:0;pointer-events:none}.app-content.is-revealing{animation:.8s both app-content-reveal}@keyframes app-content-reveal{0%{opacity:0}to{opacity:1}}.letter-loader{-webkit-user-select:none;user-select:none;flex-direction:column;justify-content:center;align-items:center;gap:14px;display:flex}.letter-loader-frame{justify-content:center;align-items:center;display:flex}.letter-loader-image{object-fit:contain;-webkit-user-drag:none;max-width:100%;max-height:100%;display:block}.letter-loader-fallback{color:#0009;font-weight:700}.letter-loader-caption{color:#00000073;letter-spacing:6px;padding-left:6px;font-size:13px;font-weight:600}.letter-loader--sm .letter-loader-frame{width:48px;height:48px}.letter-loader--sm .letter-loader-fallback{font-size:28px}.letter-loader--sm .letter-loader-caption{letter-spacing:4px;font-size:11px}.letter-loader--md .letter-loader-frame{width:96px;height:96px}.letter-loader--md .letter-loader-fallback{font-size:56px}.letter-loader--lg .letter-loader-frame{width:88px;height:88px}.letter-loader--lg .letter-loader-fallback{font-size:56px}.splash-overlay{z-index:9999;opacity:1;background-color:#faf9f2;flex-direction:column;justify-content:center;align-items:center;gap:32px;transition:opacity .7s,background-color .18s;animation:.2s both splash-fade-in;display:flex;position:fixed;inset:0}.splash-slogan{letter-spacing:.12em;color:#00000059;margin:0;font-size:15px;font-weight:400;animation:.8s .3s both slogan-fade-in}@keyframes slogan-fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.splash-overlay.is-leaving{opacity:0;pointer-events:none;background-color:#fff;animation:none}.splash-overlay.is-leaving .letter-loader{opacity:0;transition:opacity .12s}@keyframes splash-fade-in{0%{opacity:0}to{opacity:1}}
