:root{--paper:#fffefa;--paper-deep:#f4f7f6;--ink:#15211f;--muted:#536561;--red:#c9212c;--red-dark:#991821;--jade:#15584f;--jade-dark:#0e453f;--warm:#b98343;--line:#cbd8d5;--cool:#eaf0f1;--white:#fff;--focus-ring:#2d6675;--page-gutter:22px;--serif:Georgia, "Times New Roman", "Songti SC", "STSong", "SimSun", serif;color:var(--ink);background:var(--paper);font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,Arial,sans-serif}*{box-sizing:border-box}html,body,#root{width:100%;min-width:320px;height:100dvh;overflow:hidden}html{background:var(--paper)}body{background:var(--paper);place-items:center;margin:0;display:grid}#root{min-height:0}button,input,textarea{font:inherit}button{cursor:pointer;touch-action:manipulation;-webkit-tap-highlight-color:#c9212c1f}button:focus,input:focus,textarea:focus,a:focus,.crop-stage:focus{outline:2px solid var(--focus-ring);outline-offset:3px}button:focus:not(:focus-visible),input:focus:not(:focus-visible),textarea:focus:not(:focus-visible),a:focus:not(:focus-visible),.crop-stage:focus:not(:focus-visible){outline:none}button:focus-visible,input:focus-visible,textarea:focus-visible,a:focus-visible,.crop-stage:focus-visible{outline:2px solid var(--focus-ring);outline-offset:3px}.app-shell{background:var(--paper);width:min(100%,430px);height:100dvh;min-height:0;margin:0 auto;position:relative;overflow:hidden}.app-shell--welcome{aspect-ratio:auto;width:min(100%,430px);height:100dvh}.app-shell--welcome .paper-noise{position:absolute}.paper-noise{z-index:0;pointer-events:none;opacity:.15;mix-blend-mode:multiply;background-image:radial-gradient(#15584f33 .4px,#0000 .4px);background-size:9px 9px;position:fixed;inset:0}.screen{z-index:1;height:100%;min-height:0;padding:24px var(--page-gutter) calc(34px + env(safe-area-inset-bottom,0px));position:relative;overflow:hidden}.screen--welcome,.screen--generating{flex-direction:column;display:flex}.screen--welcome{height:100%;padding-top:max(18px, env(safe-area-inset-top,0px))}.screen--flow{height:100%;padding-top:8px;padding-bottom:28px}.screen--templates{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scrollbar-width:thin;scrollbar-color:var(--line) transparent;overflow:hidden auto}.screen--templates::-webkit-scrollbar{width:3px}.screen--templates::-webkit-scrollbar-thumb{background:var(--line);border-radius:999px}.screen--flow:before{top:0;bottom:0;left:0;background:repeating-linear-gradient(to bottom, var(--red) 0 18px, transparent 18px 27px, var(--jade) 27px 45px, transparent 45px 54px);content:"";opacity:.56;pointer-events:none;width:3px;position:absolute;inset-inline-start:0}.screen--result{padding-top:max(14px, env(safe-area-inset-top,0px))}.flow-shell{z-index:1;grid-template-rows:auto minmax(0,1fr) auto;width:100%;height:100dvh;min-height:0;display:grid;position:relative;overflow:hidden}.flow-content{min-width:0;min-height:0;overflow:hidden}.flow-content>.screen--flow{height:100%;min-height:0}.brand{z-index:2;align-items:flex-start;width:186px;display:flex;position:relative}.brand img{object-fit:contain;object-position:left center;width:176px;height:auto;max-height:54px;display:block}.brand--compact{justify-content:flex-end;width:126px}.brand--compact img{width:118px;max-height:38px}.brand-fallback{gap:2px;line-height:1;display:grid}.brand-fallback strong{color:var(--red);letter-spacing:.08em;font-size:19px}.brand-fallback small{color:var(--ink);letter-spacing:.08em;font-size:8px}.icon{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:1.2em;height:1.2em;display:block}.icon--arrow{stroke-width:2px;width:18px;height:18px}.icon--arrow.icon--back{transform:scaleX(-1)}.icon--check{stroke-width:2.2px;width:18px;height:18px}.icon--mail,.icon--photo,.icon--layout,.icon--pencil{stroke-width:1.65px;width:1.3em;height:1.3em}.icon--forward{stroke-width:2px;width:18px;height:18px}.icon--close{stroke-width:1.7px;width:18px;height:18px}.eyebrow{color:var(--red);letter-spacing:.14em;align-items:center;gap:8px;font-size:10px;font-weight:800;line-height:1.3;display:inline-flex}.eyebrow:before{content:"";background:currentColor;width:24px;height:1px;display:block}.page-intro{padding:12px 0 10px;position:relative}.page-intro h1{letter-spacing:-.035em;text-wrap:balance;max-width:370px;margin:7px 0 5px;font-size:clamp(27px,7.4vw,38px);line-height:1.06}.page-intro p{max-width:340px;color:var(--muted);font-family:var(--serif);text-wrap:pretty;margin:0;font-size:12px;line-height:1.45}.welcome-stamp,.stamp{aspect-ratio:1;width:72px;color:var(--red);letter-spacing:.04em;text-align:center;border:2px dashed;border-radius:50%;place-items:center;font-size:10px;font-weight:800;line-height:1.1;display:inline-grid;transform:rotate(8deg)}.stamp{background:#ffffffdb;padding:8px;position:absolute}.welcome-stamp{top:24px;right:calc(var(--page-gutter) + 5px);position:absolute;inset-inline-end:calc(var(--page-gutter) + 5px)}.welcome-stamp small{font-family:var(--serif);letter-spacing:.04em;margin-top:3px;font-size:8px;font-weight:400;display:block}.welcome-copy{z-index:1;margin-top:clamp(14px,2.4vh,22px);position:relative}.welcome-copy h1{max-width:355px;color:var(--ink);letter-spacing:-.04em;margin:9px 0 10px;font-family:Georgia,Times New Roman,serif;font-size:clamp(36px,10vw,40px);font-weight:700;line-height:1.04}.welcome-copy h1 i{color:var(--red);letter-spacing:-.04em;white-space:nowrap;font-size:.88em;font-style:italic;display:inline-block}.welcome-copy p{margin:0;font-size:15px;line-height:1.5}.welcome-copy p b{color:var(--red);font-weight:700}.welcome-hero{height:auto;min-height:150px;max-height:390px;margin:8px calc(0px - var(--page-gutter)) 0;border-top:1px solid var(--line);border-bottom:3px solid #0000;border-image:repeating-linear-gradient(90deg, var(--red) 0 18px, #fff 18px 28px, var(--jade) 28px 46px, #fff 46px 56px) 1;background:linear-gradient(180deg, var(--paper-deep), var(--white));flex:190px;justify-content:center;align-items:flex-end;display:flex;position:relative;overflow:hidden}.welcome-hero:before{content:"";transform-origin:0;border-top:1px dashed #b98343b8;height:1px;position:absolute;top:26px;left:24px;right:24px;transform:rotate(-6deg)}.welcome-hero .panda{z-index:1;width:100%;max-width:none;height:100%;position:absolute;inset:0;transform:none}.welcome-hero .panda img{object-fit:contain;object-position:center bottom;width:auto;max-width:none;height:100%;max-height:none;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.paper-plane{z-index:0;top:16px;right:28px;fill:#b983431f;width:35px;height:35px;stroke:var(--warm);stroke-linecap:round;stroke-linejoin:round;stroke-width:2.4px;position:absolute;inset-inline-end:28px;overflow:visible;transform:rotate(-7deg)}.welcome-cta{width:100%;min-height:54px;margin-top:14px}.tiny-footer{color:var(--muted);font-family:var(--serif);text-align:center;margin:auto 0 0;padding-top:12px;font-size:12px}.flow-header{z-index:6;width:100%;min-width:0;padding:max(9px, env(safe-area-inset-top,0px)) var(--page-gutter) 9px;border-bottom:1px solid var(--line);background:#fffffff7;gap:9px;display:grid;position:relative}.flow-header__row{grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:11px;min-width:0;display:grid}.flow-header__step{gap:2px;min-width:0;line-height:1;display:grid}.flow-header__step strong{color:var(--ink);letter-spacing:.05em;text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:800;line-height:1;overflow:hidden}.flow-header__row .brand--compact{justify-self:end;width:min(116px,31vw);min-width:0}.flow-header__row .brand--compact img{width:100%;max-width:116px}.flow-progress{background:linear-gradient(90deg, var(--jade), var(--jade)) center / 100% 1px no-repeat;height:3px;overflow:hidden}.flow-progress span{background:var(--red);width:0;height:100%;transition:width .2s;display:block}.icon-button{border:1px solid var(--line);width:44px;height:44px;color:var(--ink);background:var(--white);border-radius:2px;place-items:center;padding:0;display:grid}.back-button{font-family:Arial,sans-serif}.template-list{gap:12px;min-width:0;display:grid}.template-card{width:100%;min-width:0;min-height:44px;color:var(--ink);text-align:start;background:0 0;border:0;gap:9px;padding:0;display:grid;position:relative}.template-card:hover{background:0 0}.template-card__copy{min-width:0}.template-card__en{color:var(--muted);letter-spacing:.08em;text-transform:uppercase;margin-bottom:5px;font-family:Arial,sans-serif;font-size:9px;font-weight:700;line-height:1.15;display:block}.template-card__copy h2{color:var(--ink);letter-spacing:0;white-space:nowrap;margin:0 0 5px;font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;font-size:18px;font-style:normal;font-weight:850;line-height:1.2}.template-card__copy strong{font-size:15px;font-weight:800;line-height:1.3;display:block}.template-card__copy p{color:var(--muted);margin:8px 0 0;font-size:12px;line-height:1.45}.template-card__copy p em{font-style:normal;display:none}.template-rule{background:var(--warm);width:34px;height:2px;margin-top:9px;display:block}.template-card__art{aspect-ratio:9/16;border:5px solid var(--white);outline-offset:-1px;outline:1px solid #0000001a;width:100%;height:auto;display:block;box-shadow:0 10px 22px #28393624}.template-card--featured{border:1px solid var(--line);background:var(--white);border-radius:6px;grid-template-columns:minmax(116px,.85fr) minmax(126px,1fr);align-items:center;gap:12px;padding:10px;box-shadow:0 12px 24px #2839361a}.template-card--featured.template-card--selected{border-color:var(--red);background:linear-gradient(145deg,#c9212c0e,#ffffffeb 58%)}.template-card--featured .template-card__art{grid-area:1/1;justify-self:center;width:auto;height:min(270px,61vw);transform:none}.template-card--featured .template-card__copy{grid-area:1/2;padding:0 2px}.template-card--featured .template-card__copy h2{font-size:20px}.template-card--featured.template-card--selected .template-card__copy h2{color:var(--red)}.template-card--featured .template-card__copy strong{font-size:20px}.template-card--featured .template-card__copy p{display:none}.template-candidates{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;min-width:0;display:grid}.template-candidates .template-card{border:1px solid var(--line);background:var(--white);border-radius:4px;gap:8px;min-height:44px;padding:8px 8px 10px}.template-candidates .template-card:hover{background:#fffaf7}.template-candidates .template-card__art{border-width:4px;justify-self:center;width:90%;box-shadow:0 6px 14px #2839361a}.template-candidates .template-card__copy{text-align:center;padding:0 2px}.template-candidates .template-card__en{margin-bottom:3px;font-size:8px}.template-candidates .template-card__copy h2{color:var(--ink);letter-spacing:0;margin-bottom:3px;font-size:13px}.template-candidates .template-card__copy strong{font-size:14px}.template-candidates .template-card__copy p{display:none}.template-candidates .template-card--selected{border-color:var(--red);background:#fff8f6;box-shadow:0 8px 18px #c9212c1f}.template-candidates .template-card--selected .template-card__copy h2{color:var(--red)}.selected-check{top:18px;left:calc(61% - 38px);border:2px solid var(--red);width:36px;height:36px;color:var(--red);background:var(--paper);border-radius:50%;place-items:center;display:grid;position:absolute;inset-inline-start:calc(61% - 38px);transform:rotate(-10deg)}.template-candidates .selected-check{top:10px;left:auto;right:10px;width:28px;height:28px;inset-inline:auto 10px}.selected-check:before{content:"";border:1px dashed;border-radius:50%;position:absolute;inset:3px}.selected-check .icon{z-index:1;width:17px;height:17px;position:relative}.flow-action-bar{z-index:8;min-width:0;padding:8px var(--page-gutter) calc(8px + env(safe-area-inset-bottom,0px));border-top:1px solid var(--line);background:#fffffffa;grid-template-columns:minmax(92px,.85fr) minmax(168px,1.45fr);align-items:center;gap:12px;display:grid;position:relative}.flow-action__summary{gap:3px;min-width:0;display:grid}.flow-action__summary span{color:var(--jade);letter-spacing:.08em;font-size:12px;font-weight:800}.flow-action__summary strong{min-width:0;color:var(--ink);text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.3;overflow:hidden}.sticky-action{width:100%;min-width:0;min-height:52px;margin:0;position:static;transform:none}.sticky-action:hover{transform:none}.upload-zone{border:1px dashed var(--red);background:var(--white);cursor:pointer;border-radius:2px;padding:7px;display:block}.upload-zone:focus-within{outline:2px solid var(--focus-ring);outline-offset:3px}.upload-zone--reading{border-style:solid;border-color:var(--jade);cursor:progress;pointer-events:none}.upload-backdrop{border:1px solid var(--line);background:linear-gradient(135deg, var(--white) 0 65%, var(--paper-deep) 65% 100%);min-height:190px;color:var(--ink);text-align:center;place-items:center;display:grid;position:relative;overflow:hidden}.upload-backdrop:after{top:20px;right:20px;border:1px solid var(--warm);content:"";border-radius:50%;width:42px;height:42px;position:absolute;inset-inline-end:20px;transform:rotate(12deg)}.upload-plus{border:1px solid var(--red);width:58px;height:58px;color:var(--red);background:var(--white);border-radius:2px;place-items:center;margin-bottom:9px;font-size:28px;line-height:1;display:grid}.upload-plus .icon{stroke-width:1.55px;width:28px;height:28px}.upload-backdrop strong{font-size:15px}.upload-backdrop small{max-width:230px;color:var(--muted);font-family:var(--serif);margin-top:5px;font-size:12px;line-height:1.45}.upload-error{border:1px solid #c9212c4d;border-left:3px solid var(--red);border-inline-start:3px solid var(--red);color:#7f2a2e;overflow-wrap:anywhere;background:#fff6f2;align-items:flex-start;gap:8px;margin:10px 0 0;padding:10px 12px;font-size:12px;line-height:1.45;display:flex}.upload-error:before{width:19px;height:19px;color:var(--white);background:var(--red);content:"!";border-radius:50%;flex:0 0 19px;place-items:center;font-size:12px;font-weight:800;line-height:1;display:grid}.upload-guidance{border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-block:1px solid var(--line);background:0 0;align-items:center;min-height:92px;margin:10px 0 8px;padding:10px 112px 10px 2px;display:flex;position:relative;overflow:visible}.upload-guidance .tip-light{margin-right:10px;width:34px;height:34px;color:var(--red);flex:none;place-items:center;margin-inline-end:10px;display:grid}.upload-guidance .tip-light .icon{width:27px;height:27px}.upload-guidance strong{font-size:13px;line-height:1.35;display:block}.upload-guidance p{color:var(--muted);margin:5px 0 0;font-size:12px;line-height:1.45}.upload-guidance .panda{right:8px;inset-inline-end:8px;width:118px;position:absolute;bottom:7px;overflow:visible}.outline-button{border:1px solid var(--line);width:100%;min-height:48px;color:var(--ink);background:var(--white);border-radius:2px;font-size:13px;font-weight:700}.visually-hidden,.sr-only{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.crop-stage{aspect-ratio:3/4;margin-left:auto;margin-right:auto;border:5px solid var(--white);touch-action:none;background:#1d3b37;border-radius:2px;width:min(76vw,292px);height:auto;min-height:0;margin-inline:auto;position:relative;overflow:hidden;box-shadow:0 12px 28px #19363129}.crop-stage img{object-fit:fill;transform-origin:50%;-webkit-user-select:none;user-select:none;pointer-events:none;position:absolute;top:50%;left:50%}.crop-empty{height:100%;color:var(--white);place-items:center;display:grid}.crop-hint{z-index:4;max-width:calc(100% - 32px);color:var(--white);font-family:var(--serif);overflow-wrap:anywhere;text-align:center;text-overflow:clip;white-space:normal;pointer-events:none;background:#15211fc2;border:1px solid #ffffff8f;border-radius:2px;margin:0;padding:6px 10px;font-size:12px;line-height:1.35;position:absolute;bottom:18px;left:50%;overflow:visible;transform:translate(-50%)}.crop-grid{z-index:2;pointer-events:none;background-image:linear-gradient(90deg,#0000 32.8%,#ffffff80 33%,#0000 33.2% 66.1%,#ffffff80 66.3%,#0000 66.5%),linear-gradient(#0000 33.5%,#ffffff80 33.7%,#0000 33.9% 66.8%,#ffffff80 67%,#0000 67.2%);border:1px solid #ffffffe6;position:absolute;inset:15px}.crop-corner{z-index:3;border-color:var(--white);border-style:solid;width:25px;height:25px;position:absolute}.crop-corner--tl{border-width:5px 0 0 5px;top:13px;left:13px}.crop-corner--tr{border-width:5px 5px 0 0;top:13px;right:13px}.crop-corner--bl{border-width:0 0 5px 5px;bottom:13px;left:13px}.crop-corner--br{border-width:0 5px 5px 0;bottom:13px;right:13px}.adjust-tools{border-top:1px solid var(--line);border-bottom:1px solid var(--line);border-block:1px solid var(--line);background:var(--white);grid-template-columns:repeat(3,minmax(0,1fr));align-items:center;gap:10px;margin:16px 0 4px;padding:15px 12px 12px;display:grid}.adjust-tools label{grid-column:1/-1;gap:10px;min-width:0;padding:0 4px 6px;display:grid}.adjust-tools label span,.adjust-tools button span{color:var(--muted);white-space:nowrap;justify-content:space-between;font-family:system-ui,-apple-system,PingFang SC,Microsoft YaHei,sans-serif;font-size:12px;font-weight:700;display:flex}.adjust-tools output{color:var(--red);font-weight:800}.adjust-tools input[type=range]{width:100%;height:44px;min-height:44px;accent-color:var(--red);appearance:none;cursor:pointer;touch-action:manipulation;background:0 0;margin:0;padding:0;display:block}.adjust-tools input[type=range]::-webkit-slider-runnable-track{background:var(--line);border-radius:999px;height:4px}.adjust-tools input[type=range]::-webkit-slider-thumb{border:2px solid var(--red);background:var(--white);appearance:none;border-radius:50%;width:20px;height:20px;margin-top:-8px}.adjust-tools input[type=range]::-moz-range-track{background:var(--line);border:0;border-radius:999px;height:4px}.adjust-tools input[type=range]::-moz-range-progress{background:var(--red);border-radius:999px;height:4px}.adjust-tools input[type=range]::-moz-range-thumb{border:2px solid var(--red);background:var(--white);border-radius:50%;width:16px;height:16px}.adjust-tools button{border:0;border-top:1px solid var(--line);min-height:54px;color:var(--ink);background:0 0;place-items:center;display:grid}.adjust-tools button+button{border-left:1px solid var(--line);border-inline-start:1px solid var(--line)}.adjust-tools button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.8px;width:22px;height:22px}.adjust-tools button span{margin-top:4px;font-size:12px}.screen--message{overscroll-behavior-y:contain;-webkit-overflow-scrolling:touch;scroll-padding-bottom:16px;overflow:hidden auto}.message-cats{border-bottom:1px solid var(--line);margin:0 0 8px;overflow:hidden}.message-cats__row{grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.message-cat{min-height:44px;color:var(--muted);background:0 0;border:0;padding:8px 4px;font-size:12px;font-weight:750;line-height:1.2;position:relative}.message-cat:after{content:"";background:0 0;border-radius:2px 2px 0 0;height:2px;position:absolute;bottom:-1px;left:12px;right:12px}.message-cat--active{color:var(--red-dark);background:#c9212c09}.message-cat--active:after{background:var(--red)}.message-list{grid-template-columns:minmax(0,1fr);gap:0;margin-inline:0;display:grid}.message-card{border:0;border-bottom:1px solid var(--line);width:100%;min-height:66px;color:var(--ink);text-align:start;background:0 0;border-radius:0;justify-content:space-between;align-items:center;padding:10px 8px 10px 14px;display:flex;position:relative;overflow:hidden}.message-card:before{top:12px;bottom:12px;left:0;content:"";background:0 0;border-radius:2px;width:3px;position:absolute;inset-inline-start:0}.message-card:hover{background:#15584f08}.message-card--selected{background:#c9212c0b}.message-card--selected:before{background:var(--red)}.message-card>span{gap:3px;min-width:0;padding-inline-end:12px;display:grid}.message-card strong{overflow-wrap:anywhere;text-overflow:clip;white-space:normal;font-size:14px;font-weight:800;line-height:1.35;overflow:visible}.message-card em{color:var(--muted);overflow-wrap:anywhere;text-overflow:clip;white-space:normal;font-size:12px;font-style:normal;line-height:1.4;overflow:visible}.message-card i{width:30px;height:30px;color:var(--red);background:var(--paper);border:1px solid #9aaba7;border-radius:50%;flex:0 0 30px;place-items:center;font-style:normal;display:grid}.message-card--selected i{border:2px solid var(--red)}.message-card i .icon{width:14px;height:14px}.message-card--compose{min-height:58px}.custom-message{margin-top:10px;position:relative}.custom-message__input{resize:vertical;border:1px solid var(--red);width:100%;min-height:74px;color:var(--ink);background:var(--white);border-radius:3px;padding:10px 12px 28px;font-size:13px;line-height:1.5;display:block}.custom-message__meta{color:var(--muted);font-size:12px;position:absolute;bottom:8px;right:10px}.signature{margin:0 0 12px;padding:0;scroll-margin-bottom:16px}.signature__fields{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.signature__field{min-width:0;color:var(--jade);gap:6px;font-size:12px;font-weight:800;display:grid}.signature__field span{display:block}.signature__field input{border:1px solid var(--line);width:100%;min-width:0;min-height:46px;color:var(--ink);background:#ffffffe6;border-radius:4px;padding:9px 11px;font-size:16px}.signature__field input:focus{border-color:var(--jade);box-shadow:0 0 0 2px #1f665f1f}.primary-button{border:1px solid var(--red);min-height:54px;color:var(--white);background:var(--red);letter-spacing:.01em;border-radius:2px;justify-content:center;align-items:center;gap:10px;padding:0 20px;font-size:14px;font-weight:800;transition:background-color .16s,color .16s,transform .16s;display:flex}.primary-button:hover{background:var(--red-dark)}.primary-button:active:not(:disabled),button:active:not(.template-card):not(.message-card):not(:disabled){transform:scale(.96)}.primary-button:disabled{cursor:not-allowed;opacity:.45}.primary-button .icon{width:18px;height:18px}.primary-button small{font-family:var(--serif);font-size:12px;font-weight:400}.action-symbol{font-size:18px;line-height:1}.screen--generating{height:100%;padding-top:18px;padding-top:max(18px, env(safe-area-inset-top,0px));background:linear-gradient(180deg, var(--paper), var(--paper-deep))}.generating-copy{text-align:center;margin-top:clamp(26px,7vh,64px)}.generating-copy h1{letter-spacing:-.08em;margin:17px 0 12px;font-size:35px;line-height:1.08}.generating-copy h1 em{color:var(--red);font-family:var(--serif);letter-spacing:-.05em;font-size:25px;font-style:italic}.generating-copy p{margin:0 0 5px;font-size:14px}.generating-copy>span:last-child{color:var(--muted);font-family:var(--serif);font-size:12px}.generating-art{flex:1;place-items:center;width:100%;min-height:0;margin-top:12px;padding-bottom:18px;display:grid;position:relative}.generating-art .postcard-canvas{border:7px solid var(--white);width:42%;transform:rotate(-3deg);box-shadow:0 14px 28px #28393624}.progress-ring{aspect-ratio:1;border:1px dashed #15584f6b;border-top-color:var(--red);border-right-color:var(--warm);border-radius:50%;width:80%;position:absolute}.generating-art .panda{left:8px;inset-inline-start:8px;width:148px;position:absolute;bottom:8px;overflow:visible}.generating-caption{z-index:2;min-height:20px;color:var(--muted);letter-spacing:.1em;text-align:center;margin-top:4px;font-size:12px;line-height:1.35;position:relative}.screen--result{background:linear-gradient(180deg, var(--paper), var(--paper-deep));flex-direction:column;display:flex}.screen--result>.brand{flex:none;width:148px}.screen--result>.brand img{width:142px}.result-forward{z-index:3;top:max(14px, env(safe-area-inset-top,0px));right:var(--page-gutter);border:1px solid var(--line);min-width:78px;min-height:44px;color:var(--jade-dark);background:#ffffffe6;border-radius:4px;justify-content:center;align-items:center;gap:6px;padding:0 12px;font-size:13px;font-weight:700;display:inline-flex;position:absolute;inset-block-start:max(14px, env(safe-area-inset-top,0px));inset-inline-end:var(--page-gutter);box-shadow:0 4px 12px #15211f14}.result-forward:hover{border-color:var(--jade);color:var(--white);background:var(--jade)}.screen--result .page-intro{text-align:center;margin-top:0;padding:2px 0 5px}.screen--result .page-intro .eyebrow{display:none}.screen--result .page-intro h1{color:var(--red)}.screen--result .page-intro p{margin-left:auto;margin-right:auto;margin-inline:auto;font-family:inherit;font-size:12px;display:block}.result-art{aspect-ratio:9/16;align-self:center;width:auto;min-width:0;max-width:100%;height:100%;min-height:0;max-height:100%;margin:0 auto;position:relative}.result-art:before{content:"";background:#15584f12;border:1px solid #15584f47;position:absolute;inset:12px -11px -11px 13px;transform:rotate(2.4deg)}.result-art>img,.result-art>.postcard-canvas{aspect-ratio:9/16;border:7px solid var(--white);object-fit:contain;width:100%;height:100%;display:block;position:relative;transform:rotate(-.5deg);box-shadow:0 14px 28px #28393624}.result-art .stamp{color:var(--red);bottom:17%;right:-31px}.result-layout{flex:auto;grid-template-rows:minmax(0,1fr) auto;min-width:0;min-height:0;display:grid}.result-showcase{grid-template-rows:auto minmax(0,1fr);gap:3px;min-width:0;min-height:0;display:grid}.result-controls{min-width:0;min-height:0}.generation-trust{border-left:3px solid var(--jade);border-inline-start:3px solid var(--jade);color:var(--jade-dark);background:#15584f0d;align-items:center;gap:7px;margin:0 0 7px;padding:5px 10px;display:flex}.generation-trust>span{width:22px;height:22px;color:var(--jade);flex:0 0 22px;place-items:center;display:grid}.generation-trust>span .icon{width:18px;height:18px}.generation-trust strong{font-size:12px}.result-primary-actions{grid-template-columns:minmax(0,1fr);display:grid}.result-primary-actions .primary-button{width:100%;min-height:54px}.result-save-hint{color:var(--muted);font-family:var(--serif);text-align:center;margin:7px 0 0;font-size:12px;line-height:1.4}.result-art>img[data-save-target=postcard]{-webkit-touch-callout:default;-webkit-user-select:none;user-select:none}.share-link{border:1px dashed var(--jade);color:var(--jade-dark);background:#ffffffc2;gap:4px;margin-top:9px;padding:8px 10px;font-size:12px;display:grid}.share-link code{color:var(--ink);text-overflow:ellipsis;white-space:nowrap;-webkit-user-select:all;user-select:all;font-family:inherit;overflow:hidden}.toast{z-index:20;bottom:calc(18px + env(safe-area-inset-bottom));border:1px solid var(--jade);width:min(100% - 28px,390px);color:var(--jade-dark);background:var(--white);border-radius:2px;align-items:center;gap:9px;padding:11px 12px 11px 14px;font-size:12px;display:flex;position:fixed;left:50%;transform:translate(-50%);box-shadow:0 12px 32px #15211f2e}.toast--above-actions{bottom:calc(78px + env(safe-area-inset-bottom))}.toast--above-result-action{bottom:calc(132px + env(safe-area-inset-bottom))}.toast--above-result-link{bottom:calc(200px + env(safe-area-inset-bottom))}.toast--leaving{pointer-events:none}.toast>span{width:22px;height:22px;color:var(--jade);flex:0 0 22px;place-items:center;font-weight:700;display:grid}.toast>span .icon{width:20px;height:20px}.toast--error{border-color:var(--red);color:var(--red-dark)}.toast--error>span{color:var(--red)}.toast button{width:44px;height:44px;color:inherit;background:0 0;border:0;flex:0 0 44px;place-items:center;margin:-8px -8px -8px auto;display:grid}.postcard-canvas{aspect-ratio:9/16;background:var(--paper);width:100%;display:block}.panda{pointer-events:none;overflow:visible}.panda img{width:100%;height:auto;display:block}@keyframes page-forward-in{0%{opacity:0;transform:translate(14px)}to{opacity:1;transform:translate(0)}}@keyframes page-back-in{0%{opacity:0;transform:translate(-14px)}to{opacity:1;transform:translate(0)}}@keyframes stamp-drop{0%{opacity:0;transform:scale(1.7)rotate(-24deg)}to{opacity:1;transform:scale(1)rotate(-8deg)}}@keyframes toast-in{0%{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%)}}@keyframes toast-out{0%{opacity:1;transform:translate(-50%)}to{opacity:0;transform:translate(-50%,8px)}}@media (prefers-reduced-motion:no-preference){.app-shell[data-dir=forward] .screen{animation:.24s both page-forward-in}.app-shell[data-dir=back] .screen{animation:.24s both page-back-in}.stamp:not(.welcome-stamp){animation:.42s cubic-bezier(.18,.88,.32,1.2) both stamp-drop}.welcome-stamp{animation:.42s cubic-bezier(.18,.88,.32,1.2) 80ms both stamp-drop}.toast{animation:.2s ease-out both toast-in}.toast--leaving{animation:.16s ease-in both toast-out}}@media (width>=700px){html,body{background:var(--cool)}body{padding:28px 0}.app-shell,.app-shell--welcome{aspect-ratio:9/16;border:1px solid var(--line);border-radius:14px;width:min(430px,56.25dvh - 31.5px);height:auto;min-height:0;margin:0 auto;box-shadow:0 18px 48px #28393624}.paper-noise{position:fixed}.flow-shell{height:100%}.screen--welcome,.screen--generating,.screen--result{min-height:100%}}@media (height<=640px){.screen{padding-top:10px;padding-bottom:10px}.screen--welcome{padding-top:10px;padding-top:max(10px, env(safe-area-inset-top,0px))}.brand img{max-height:42px}.welcome-copy{margin-top:8px}.welcome-copy h1{margin:6px 0 7px;font-size:35px}.welcome-copy p{font-size:14px;line-height:1.4}.welcome-hero{height:min(174px,30svh);margin-top:5px}.welcome-cta{min-height:48px;margin-top:7px}.tiny-footer{margin-top:4px;padding-top:4px;font-size:12px}.flow-header{padding-top:max(5px, env(safe-area-inset-top,0px));gap:6px;padding-bottom:5px}.flow-header__row{gap:7px}.page-intro{padding-top:5px;padding-bottom:6px}.page-intro h1{margin:4px 0 3px;font-size:25px}.page-intro p{font-size:12px;line-height:1.45}.screen--flow{padding-top:0;padding-bottom:0}.template-list{gap:8px}.template-card--featured{grid-template-columns:minmax(116px,.85fr) minmax(126px,1fr);gap:8px;padding:6px}.template-card--featured .template-card__copy h2,.template-card--featured .template-card__copy strong{font-size:16px}.template-card--featured .template-rule{margin-top:5px}.template-candidates{gap:6px}.template-candidates .template-card{gap:5px;padding:5px 5px 6px}.template-candidates .template-card__art{border-width:3px;justify-self:center;width:88%}.template-candidates .template-card__copy h2{font-size:12px;line-height:1.25}.template-candidates .template-card__copy strong{font-size:12px;line-height:1.3}.selected-check{width:30px;height:30px;top:10px}.flow-action-bar{padding-top:6px;padding-bottom:calc(6px + env(safe-area-inset-bottom,0px));gap:8px}.flow-action__summary span,.flow-action__summary strong{font-size:12px}.sticky-action{padding-left:12px;padding-right:12px;min-height:48px;padding-inline:12px;font-size:13px}.sticky-action small{display:none}.upload-backdrop{min-height:150px}.upload-guidance{margin-top:7px;margin-bottom:5px;padding-top:7px;padding-bottom:7px;min-height:68px;margin-block:7px 5px;padding-block:7px}.upload-guidance strong{font-size:12px}.upload-guidance p{margin-top:3px;font-size:12px;line-height:1.45}.upload-guidance .panda{width:88px}.crop-stage{aspect-ratio:3/4;width:min(52vw,180px);height:auto;min-height:0}.crop-hint{bottom:10px}.adjust-tools{gap:6px;margin-top:8px;padding:8px 8px 6px}.adjust-tools label{gap:5px;padding-bottom:2px}.adjust-tools button{min-height:44px}.message-card{padding-top:6px;padding-bottom:6px;padding-block:6px}.message-card strong{font-size:12px}.message-card em{font-size:12px;line-height:1.4}.screen--generating{padding-top:10px}.generating-copy{margin-top:18px}.generating-copy h1{margin-top:10px;margin-bottom:7px;margin-block:10px 7px;font-size:28px}.generating-copy h1 em{font-size:20px}.generating-copy p{font-size:12px}.generating-art{margin-top:6px;padding-bottom:8px}.generating-art .postcard-canvas{border-width:5px;width:38%}.generating-art .panda{width:110px}.result-art{height:100%;margin:0 auto}.screen--result{padding-top:max(10px, env(safe-area-inset-top,0px));padding-bottom:max(12px, env(safe-area-inset-bottom,0px))}.screen--result>.brand img{max-height:32px}.result-forward{top:max(10px, env(safe-area-inset-top,0px));inset-block-start:max(10px, env(safe-area-inset-top,0px))}.screen--result .page-intro{margin-top:0;padding:9px 0 4px}.screen--result .page-intro h1{font-size:25px}.generation-trust{padding-top:3px;padding-bottom:3px;margin-bottom:4px;padding-block:3px}.generation-trust>span{flex-basis:22px;width:22px;height:22px}.result-primary-actions .primary-button{min-height:48px}}@media (width<=370px){:root{--page-gutter:18px}.screen{padding-right:var(--page-gutter);padding-left:var(--page-gutter);padding-inline:var(--page-gutter)}.screen--flow{padding-bottom:24px}.flow-header{padding-right:var(--page-gutter);padding-left:var(--page-gutter);padding-inline:var(--page-gutter)}.flow-header__row{gap:8px}.flow-header__row .brand--compact,.flow-header__row .brand--compact img{width:100px}.flow-action-bar{padding-right:var(--page-gutter);padding-left:var(--page-gutter);padding-inline:var(--page-gutter);grid-template-columns:minmax(72px,.72fr) minmax(160px,1.55fr);gap:8px}.flow-action__summary span,.flow-action__summary strong{font-size:12px}.sticky-action{padding-left:14px;padding-right:14px;padding-inline:14px;font-size:13px}.sticky-action small{display:none}.template-list{gap:14px}.template-candidates{gap:8px}.template-candidates .template-card{padding-left:6px;padding-right:6px;padding-inline:6px}.welcome-copy h1{letter-spacing:-.04em;font-size:36px;line-height:1.04}.welcome-hero{height:min(174px,30svh);margin-right:calc(0px - var(--page-gutter));margin-left:calc(0px - var(--page-gutter));margin-inline:calc(0px - var(--page-gutter))}.result-art{height:100%}.result-forward{right:var(--page-gutter);inset-inline-end:var(--page-gutter)}}@media (width<=370px) and (height<=640px){.screen--templates{padding-bottom:0}.screen--templates .page-intro{padding-top:2px;padding-bottom:3px}.screen--templates .page-intro h1{margin-top:3px;margin-bottom:2px;margin-block:3px 2px;font-size:23px}.screen--templates .page-intro p{font-size:12px;line-height:1.45}.screen--templates .template-list{gap:6px}.screen--templates .template-card--featured{grid-template-columns:minmax(116px,.85fr) minmax(126px,1fr);gap:8px;height:auto;min-height:220px;padding:7px}.screen--templates .template-card--featured .template-card__art{justify-self:center;width:auto;height:206px}.screen--templates .template-card--featured .template-card__copy h2{font-size:15px}.screen--templates .template-candidates{gap:6px}.screen--templates .template-candidates .template-card{gap:5px;height:auto;min-height:200px;padding:6px 5px 8px}.screen--templates .template-candidates .template-card__art{width:82%}.screen--templates .template-candidates .template-card__copy h2{margin-bottom:2px;font-size:12px;line-height:1.25}.screen--templates .template-candidates .template-card__copy strong{font-size:12px;line-height:1.3}.screen--templates .selected-check{width:28px;height:28px;top:7px}.screen--upload--error .upload-error{margin-top:6px;padding:8px 10px;font-size:12px;line-height:1.45}.screen--upload--error .upload-guidance{margin-top:4px;margin-bottom:2px;min-height:60px;margin-block:4px 2px;padding:5px 96px 5px 2px}.screen--upload--error .upload-guidance strong{font-size:12px}.screen--upload--error .upload-guidance p{margin-top:2px;font-size:12px;line-height:1.45}.screen--upload--error .upload-guidance .panda{width:78px}}@supports not (aspect-ratio:1 / 1){.welcome-stamp,.stamp{height:72px}.template-card__art,.postcard-canvas{height:auto}.crop-stage{width:76vw;max-width:292px;height:101.333vw;max-height:389px}.progress-ring{height:80%}.result-art{width:auto;height:100%}.result-art>img,.result-art>.postcard-canvas{width:auto;max-width:100%;height:100%}}@media (height<=640px){@supports not (aspect-ratio:1 / 1){.crop-stage{width:58vw;max-width:190px;height:77.333vw;max-height:253px}}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation:none!important}button:active:not(.template-card):not(.message-card):not(:disabled),.primary-button:hover:active:not(:disabled){transform:none}.flow-progress span{transition:none}}@media (width<=699px){input,textarea{font-size:16px}.eyebrow,.template-card__en{display:none}.tiny-footer{font-size:0;line-height:1.4}.tiny-footer:before{content:"留学中国";font-size:12px}.welcome-hero .panda img{width:auto;max-width:none;height:100%;max-height:none;bottom:0}}@media (width<=370px){.screen--message{padding-bottom:32px;overflow-y:auto}.message-list{grid-template-columns:minmax(0,1fr)}.message-card strong,.message-card em{font-size:12px;line-height:1.4}}
