:root{color:#071f0d;font-family:-apple-system,BlinkMacSystemFont,SF Pro Display,SF Pro Text,PingFang SC,Microsoft YaHei,Segoe UI,sans-serif;font-synthesis:none;letter-spacing:0;-webkit-text-size-adjust:100%;text-size-adjust:100%;text-rendering:optimizeLegibility;background:#f5f3ee}*{box-sizing:border-box}body{width:100%;min-width:320px;min-height:100dvh;margin:0;background:#d8d3c6 url(/assets/heritage-evening-fHXnN3Lb.jpg) center / 100% 100% no-repeat fixed}html,body,#app{width:100%;min-height:100dvh;touch-action:pan-x pan-y}button,input,textarea{font:inherit;letter-spacing:0}button{border:0;background:transparent;cursor:pointer}button:disabled,input:disabled{cursor:not-allowed;opacity:.58}.phone-page{isolation:isolate;position:relative;width:100%;min-height:100dvh;margin:0;overflow:hidden;background:#d8d3c6}.page-background-image{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;display:block;width:100%;height:100%;object-fit:fill;object-position:center;pointer-events:none;-webkit-user-select:none;user-select:none}.phone-page:not(.redeemed):before{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;background:linear-gradient(180deg,#fffcf229,#fff9e83d 48%,#fff7e238),radial-gradient(circle at 50% 20%,#fff4d34d,#fff4d300 38%);content:""}.phone-page.redeemed{overflow:visible;background:#f7f6f1}.top-bar{position:relative;z-index:3;display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:start;gap:8px;min-height:118px;padding:24px 26px 0}.top-bar h1{margin:0;color:#061d0b;font-family:Georgia,Times New Roman,serif;font-size:30px;font-weight:760;line-height:1.08;text-align:center}.redeemed .top-bar{min-height:124px;padding-top:26px;background:#f5f3ee}.redeemed .top-bar h1{text-align:left}.icon-button{display:grid;width:44px;height:44px;place-items:center;color:#061d0b}.redeem-screen{position:relative;z-index:2;display:grid;align-content:end;gap:16px;width:min(100%,430px);min-height:100dvh;margin:0 auto;padding:160px 24px 34px}.redeem-screen:before{display:none}.video-download-panel{position:relative;z-index:1;display:grid;gap:14px;width:100%;padding:18px;border:1px solid rgba(255,255,255,.34);border-radius:16px;background:#fffcf294;box-shadow:0 24px 48px #2e25191f;color:#122216;-webkit-backdrop-filter:blur(18px) saturate(1.18);backdrop-filter:blur(18px) saturate(1.18)}.video-panel-heading{display:flex;align-items:end;justify-content:space-between;gap:12px;text-align:left}.video-panel-heading span{color:#122216b8;font-size:13px;font-weight:720}.video-panel-heading strong{color:#102415;font-size:18px;font-weight:820}.video-button-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.redeem-card{position:relative;z-index:1;display:grid;justify-items:center;min-height:0;padding:42px 42px 34px;border:1px solid rgba(255,255,255,.44);border-radius:16px;background:#fffcf4ad;box-shadow:0 30px 70px #2e251929;text-align:center;-webkit-backdrop-filter:blur(20px) saturate(1.2);backdrop-filter:blur(20px) saturate(1.2)}.redeem-card h2{max-width:300px;margin:0;color:#08240e;font-size:40px;font-weight:880;line-height:1.22}.redeem-card>p{max-width:282px;margin:22px 0 0;color:#30332e;font-size:19px;line-height:1.7}.redeem-entry-row{width:100%;margin-top:44px}.redeem-action-stack{display:grid;gap:12px;width:100%;margin-top:28px}.code-input{width:100%;height:76px;border:0;border-bottom:1px solid #58615f;outline:none;background:#ffffff57;color:#09240f;font-family:Georgia,Times New Roman,serif;font-size:34px;font-weight:600;text-align:center;text-transform:uppercase}.code-input::placeholder{color:#14161433}.code-input:focus{border-bottom-color:#103c19}.video-download-pill{display:inline-flex;align-items:center;justify-content:center;gap:7px;width:100%;min-width:0;min-height:52px;border:1px solid rgba(255,255,255,.54);border-radius:999px;background:#fffdf5d1;color:#243324;box-shadow:0 12px 22px #2e25191a;font-size:14px;font-weight:760;line-height:1.2}.video-download-pill span{max-width:100%;overflow-wrap:anywhere}.video-download-pill:active{transform:translateY(1px)}.primary-pill{display:inline-flex;align-items:center;justify-content:center;gap:16px;width:100%;min-height:68px;border-radius:999px;background:#0b3513;color:#fffdf7;box-shadow:inset 0 -5px 8px #0000002e,0 16px 30px #0828102e;font-size:21px;font-weight:760}.redeem-card .primary-pill{margin-top:0}.primary-pill:active,.share-button:active{transform:translateY(1px)}.feedback,.action-feedback{width:100%;margin:18px 0 0;border-radius:12px;background:#a5391c1a;color:#9f3a20;padding:10px 12px;font-size:13px;line-height:1.5;text-align:center}.feedback.success{background:#0c4e271a;color:#275b34}.video-feedback{margin-top:0;background:#fffdf7b8;color:#243324}.video-feedback.success{background:#fffdf7a8;color:#275b34}.video-feedback.error{background:#a5391c29;color:#9f3a20}.action-feedback{background:#0c4e271a;color:#275b34}.redeem-divider{align-self:end;width:100%;height:1px;margin-top:32px;background:#3e484142}.step-dots{display:flex;justify-content:center;gap:12px;margin-top:36px}.step-dots span{width:11px;height:11px;border-radius:999px;background:#d8d9d6}.step-dots .active{background:#ff8f6c}.result-screen{width:min(100%,430px);margin:0 auto;padding:34px 26px 56px}.memory-card{position:relative;overflow:hidden;width:100%;min-width:0;padding:18px 18px 24px;border:1px solid #ddd8cf;border-radius:14px;background:#fffdf8;box-shadow:0 34px 70px #292d2621}.memory-card:after{position:absolute;left:0;right:0;bottom:0;height:6px;background:#9d3d20;content:""}.photo-frame{width:100%;aspect-ratio:1.45;border:1px solid #d4d0c7;border-radius:8px;background:linear-gradient(135deg,#0c2d120a,#a65a280d),#f7f5ef;clip-path:polygon(12% 2%,88% 2%,100% 18%,100% 82%,88% 98%,12% 98%,0 82%,0 18%);overflow:hidden}.photo-frame img{display:block;width:100%;height:100%;object-fit:cover}.memory-card h2{margin:36px auto 0;max-width:100%;color:#08240e;font-size:31px;font-weight:880;line-height:1.2;text-align:center;overflow-wrap:anywhere}.short-line{width:108px;height:1px;margin:32px auto 0;background:#dedbd4}.taste-block{margin-top:34px;padding:0 18px}.section-caption{display:flex;align-items:center;gap:9px;color:#101b11;font-size:13px;font-weight:820}.dish-chips{display:flex;flex-wrap:wrap;gap:14px 12px;margin-top:22px}.dish-chips span{max-width:100%;border:1px solid #d6bf94;border-radius:999px;background:#f3e3c5;color:#342415;padding:11px 19px;font-size:16px;line-height:1.1;overflow-wrap:anywhere}.source-block{margin-top:34px;padding:0 18px}.source-list{display:grid;gap:16px;margin-top:18px}.source-list article{display:grid;gap:9px;padding-bottom:16px;border-bottom:1px solid #ebe5d9}.source-list article:last-child{padding-bottom:0;border-bottom:0}.source-list strong{color:#102117;font-size:15px;line-height:1.25}.source-list p{display:flex;flex-wrap:wrap;gap:8px;margin:0}.source-list span{max-width:100%;border-radius:999px;background:#eef4e9;color:#314636;padding:8px 12px;font-size:12px;font-weight:680;line-height:1.2;overflow-wrap:anywhere}.message-card{position:relative;margin:46px 18px 0;padding:26px 28px 30px;border:1px solid #d7d3ca;border-radius:8px;background:#f8f7f3}.message-card div{display:flex;align-items:center;gap:9px;color:#111b12;font-size:13px;font-weight:820}.message-card b{margin-left:auto;color:#14141414;font-size:30px;line-height:1}.message-card p{margin:18px 0 0;color:#0c130d;font-size:19px;font-style:italic;line-height:1.78;overflow-wrap:anywhere}.card-footer{display:flex;justify-content:space-between;gap:26px;margin-top:58px;padding:0 18px 24px}.card-footer div:first-child{display:grid;gap:5px;min-width:0}.card-footer span{color:#707069;font-size:12px;font-weight:820}.card-footer strong{display:block;color:#151915;font-size:15px;font-weight:500;overflow-wrap:anywhere}.card-footer strong:last-of-type{font-size:13px;white-space:nowrap}.card-footer span:nth-of-type(2){margin-top:10px}.stamp{flex:none;display:grid;width:75px;height:75px;place-items:center;border:2px solid #b95b40;border-radius:999px;color:#b95b40;font-size:22px;font-weight:760;line-height:1.12;text-align:center;transform:rotate(8deg)}.review-panel{display:grid;gap:18px;margin-top:22px;padding:22px;border:1px solid #ddd8cf;border-radius:14px;background:#fffdf8;box-shadow:0 22px 48px #292d261a}.rating-row{display:flex;align-items:center;gap:8px}.rating-row button{display:grid;width:34px;height:34px;place-items:center;border-radius:999px;color:#b2a898}.rating-row button.active{color:#c46a2a;background:#fff1da}.rating-row strong{margin-left:auto;color:#233526;font-size:14px}.review-tags{display:flex;flex-wrap:wrap;gap:9px}.review-tags button{min-height:36px;border:1px solid #ddd5c8;border-radius:999px;background:#f8f4ec;color:#5c5449;padding:0 13px;font-size:13px;font-weight:700}.review-tags button.active{border-color:#315f3c;background:#e8f3e8;color:#194421}.review-panel textarea{width:100%;resize:vertical;min-height:112px;border:1px solid #d7d0c4;border-radius:10px;outline:none;background:#fbfaf6;color:#102117;padding:13px 14px;font-size:15px;line-height:1.6}.review-panel textarea:focus{border-color:#315f3c}.review-panel textarea::placeholder{color:#9d978c}.review-submit-button{min-height:56px;font-size:18px}.action-stack{display:grid;gap:18px;margin-top:52px}.save-button{min-height:63px}.share-button{display:inline-flex;align-items:center;justify-content:center;gap:14px;min-height:63px;border:2px solid #9d3d20;border-radius:999px;color:#9d3d20;background:#fffdf8;font-size:21px;font-weight:760}.spin{animation:spin .86s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media (max-width: 390px){.top-bar{padding-inline:20px}.top-bar h1{font-size:28px}.redeem-screen{gap:14px;padding:128px 16px 28px}.redeem-card{padding:34px 28px 30px}.redeem-card h2{font-size:34px}.code-input{font-size:30px}.video-download-pill{font-size:14px}.result-screen{padding-inline:18px}.memory-card h2{font-size:28px}}
