*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-gradient-start: #fff0f5;--bg-gradient-end: #fde8f0;--primary: #f9a8d4;--primary-light: #fbcfe8;--secondary: #c4b5fd;--secondary-light: #ddd6fe;--accent-mint: #a7f3d0;--accent-mint-dark: #6ee7b7;--text-dark: #4a2545;--text-medium: #7c5c7e;--text-light: #b8a0ba;--text-placeholder: #d4bdd6;--card-white: #ffffff;--card-shadow: 0 4px 24px rgba(200, 140, 180, .18);--card-shadow-hover: 0 6px 32px rgba(200, 140, 180, .25);--border-radius: 16px;--border-radius-sm: 10px;--border-radius-xs: 8px;--transition: .2s ease}html,body{background-color:#fff0f5}body{font-family:Quicksand,sans-serif;color:var(--text-dark);min-height:100dvh;display:flex;justify-content:center;padding:20px;padding-top:max(20px,env(safe-area-inset-top));padding-bottom:max(20px,env(safe-area-inset-bottom));line-height:1.5;-webkit-font-smoothing:antialiased}#root{width:100%;max-width:960px}.app{display:flex;flex-direction:column;gap:20px;width:100%;min-height:calc(100dvh - 40px)}.app--landing{overflow:hidden}.app-header{display:flex;flex-direction:column;align-items:center;text-decoration:none;flex-shrink:0;margin-top:auto}.app-logo{display:block;margin:0 auto;height:clamp(50px,12vmin,80px);width:auto}.app-withlove{display:block;margin:0 auto 4px;width:clamp(180px,45vw,320px);height:auto}.page-center{flex:1;display:flex;align-items:center;justify-content:center;width:100%}.page-center--column{flex-direction:column;gap:20px;align-self:stretch}.app-title{font-family:Patrick Hand,cursive;font-size:1.8rem;text-align:center;color:var(--text-dark);letter-spacing:.5px;padding-top:8px}.app-title span{color:var(--primary)}.creator-layout{display:flex;gap:20px;align-items:stretch;justify-content:center;margin:0 auto;max-width:800px;width:100%}.creator-layout>*{flex:1;min-width:0}.display-area{background:radial-gradient(circle,rgba(249,168,212,.15) 1px,transparent 1px),radial-gradient(circle,rgba(196,181,253,.12) 1px,transparent 1px);background-size:24px 24px,18px 18px;background-position:0 0,12px 12px;background-color:#fff5f8;border-radius:var(--border-radius);padding:40px 30px 54px;box-shadow:var(--card-shadow);position:relative;overflow:visible;min-height:310px;display:flex;align-items:center;justify-content:center}.display-area:before{content:"";position:absolute;top:-40px;right:-40px;width:120px;height:120px;background:radial-gradient(circle,rgba(249,168,212,.2) 0%,transparent 70%);border-radius:50%;pointer-events:none}.display-area:after{content:"";position:absolute;bottom:-30px;left:-30px;width:100px;height:100px;background:radial-gradient(circle,rgba(196,181,253,.2) 0%,transparent 70%);border-radius:50%;pointer-events:none}.coupon-card{width:100%;max-width:500px;position:relative;display:flex;transition:all var(--transition);z-index:1}.coupon-card--img{background-size:100% 100%;background-repeat:no-repeat;background-position:center;aspect-ratio:800 / 420;border:none;border-radius:0;padding:0;overflow:hidden}.coupon-card--img.coupon-card--viewable{overflow:visible}.coupon-card--svg{aspect-ratio:600 / 284;border:none;border-radius:0;padding:0;overflow:hidden;font-size:clamp(10px,2.5cqw,16px);container-type:inline-size}.coupon-card--svg.coupon-card--viewable{overflow:visible}.coupon-card__bg{position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none}.coupon-card__content{margin-left:33%;width:67%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;padding:12px 20px 12px 8px;position:relative;z-index:1;overflow:hidden}.coupon-card__header{font-size:clamp(.7em,3.5cqw,1.4em);font-weight:700;text-align:center;word-break:break-word;overflow-wrap:break-word;line-height:1.3;max-width:100%;overflow:hidden}.coupon-card__message{font-size:clamp(.55em,2.5cqw,1.15em);text-align:center;word-break:break-word;overflow-wrap:break-word;line-height:1.4;white-space:pre-wrap;max-width:100%;overflow:hidden}.coupon-card__placeholder{opacity:.35;font-style:italic}.stack-container{position:relative;width:100%;max-width:min(340px,100%);aspect-ratio:600 / 284;margin:0 auto}.stack-container--single .coupon-card{position:absolute;inset:0;overflow:visible}.stack-card{position:absolute;inset:0;transition:transform .3s ease;cursor:pointer;filter:drop-shadow(2px -2px 3px rgba(0,0,0,.1))}.stack-card--active{cursor:default;overflow:visible}.stack-card:not(.stack-card--active):hover{filter:brightness(1.02)}.stack-card__remove{position:absolute;top:.5em;right:.5em;width:1.4em;height:1.4em;border-radius:50%;border:.12em solid var(--primary-light);background:#ffffffd9;color:var(--primary);font-size:.6em;font-weight:400;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:all var(--transition);z-index:3;opacity:.7}.stack-card__remove:hover{background:var(--primary);border-color:var(--primary);color:#fff;opacity:1;transform:scale(1.1)}.display-area--stack{padding:40px 24px 36px;overflow:hidden}.stack-add-btn{position:absolute;bottom:10px;right:12px;width:34px;height:34px;border-radius:50%;border:2px dashed var(--primary);background:#f9a8d414;color:var(--primary);font-size:1.3rem;font-weight:600;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);z-index:20;line-height:1;padding:0;font-family:inherit}.stack-add-btn:hover{background:var(--primary-light);border-style:solid;transform:scale(1.1)}.stack-nav{position:absolute;bottom:10px;left:50%;transform:translate(-50%);display:flex;align-items:center;gap:8px;z-index:20;background:#ffffffd9;padding:4px 10px;border-radius:20px;box-shadow:0 1px 4px #0000001a}.stack-nav__arrow{width:22px;height:22px;border:none;background:transparent;color:var(--text-medium);font-size:1.1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;border-radius:50%;transition:all var(--transition);font-family:inherit}.stack-nav__arrow:hover{background:var(--primary-light);color:var(--text-dark)}.stack-nav__dots{display:flex;align-items:center;gap:6px}.stack-nav__dot{width:10px;height:10px;border:2px solid var(--primary);background:transparent;border-radius:50%;cursor:pointer;padding:0;transition:all var(--transition)}.stack-nav__dot:hover{background:var(--primary-light)}.stack-nav__dot--active{background:var(--primary)}.coupon-card__clip-layer{position:absolute;inset:0;overflow:hidden;pointer-events:none;z-index:2}.placed-sticker{position:absolute;width:4em;height:4em;cursor:grab;transition:filter .15s ease;z-index:2;-webkit-user-select:none;user-select:none;touch-action:none}.placed-sticker--controls{z-index:3}.placed-sticker--dragging{cursor:grabbing;z-index:10;transition:none;opacity:.85}.placed-sticker img{width:100%;height:100%;object-fit:contain;pointer-events:none}.placed-sticker__delete{position:absolute;top:-8px;right:-8px;width:20px;height:20px;background:#ff6b8a;color:#fff;border:2px solid white;border-radius:50%;font-size:10px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease;line-height:1;padding:0;font-family:inherit}.placed-sticker:hover .placed-sticker__delete{opacity:1}.placed-sticker--selected{outline:1.5px dashed var(--primary);outline-offset:4px;border-radius:4px}.placed-sticker--selected .placed-sticker__delete,.placed-sticker--selected .placed-sticker__rotate-handle{opacity:1}.placed-sticker__rotate-handle{position:absolute;top:-20px;left:50%;transform:translate(-50%);width:14px;height:14px;background:var(--primary);border:2px solid white;border-radius:50%;cursor:grab;opacity:0;transition:opacity .15s ease;z-index:5}.placed-sticker:hover .placed-sticker__rotate-handle{opacity:1}.placed-sticker__rotate-handle:before{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);width:1px;height:6px;background:var(--primary)}.sticker-popover{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%) scale(var(--popover-counter-scale, 1));transform-origin:top center;background:var(--card-white);border:1.5px solid var(--border-color);border-radius:10px;padding:6px 10px;box-shadow:0 4px 16px #0000001f;z-index:20;display:flex;align-items:center;gap:6px;white-space:nowrap;cursor:default}.sticker-popover__label{font-size:.7rem;color:var(--text-light);font-weight:600}.sticker-popover__range{width:80px;accent-color:var(--primary)}.placed-text{position:absolute;cursor:grab;z-index:3;-webkit-user-select:none;user-select:none;touch-action:none;white-space:normal;word-break:break-word;overflow-wrap:break-word;font-weight:700;font-family:inherit;pointer-events:auto;width:60%;text-align:center;line-height:1.3}.placed-text--readonly{cursor:default;pointer-events:none}.placed-text--controls{z-index:3}.placed-text--controls .placed-text__content{text-shadow:none}.placed-text--dragging{cursor:grabbing;opacity:.85;z-index:10}.placed-text__content{pointer-events:none;text-shadow:0 1px 2px rgba(255,255,255,.5)}.placed-text__rotate-handle{position:absolute;top:-20px;left:50%;transform:translate(-50%);width:14px;height:14px;background:var(--primary);border:2px solid white;border-radius:50%;cursor:grab;opacity:0;transition:opacity .15s ease;z-index:5}.placed-text:hover .placed-text__rotate-handle{opacity:1}.placed-text__rotate-handle:before{content:"";position:absolute;bottom:-8px;left:50%;transform:translate(-50%);width:1px;height:6px;background:var(--primary)}.placed-text__delete{position:absolute;top:-8px;right:-8px;width:20px;height:20px;background:#ff6b8a;color:#fff;border:2px solid white;border-radius:50%;font-size:10px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .15s ease;line-height:1;padding:0;font-family:inherit}.placed-text:hover .placed-text__delete{opacity:1}.placed-text--selected{outline:1.5px dashed var(--primary);outline-offset:4px;border-radius:4px}.placed-text--selected .placed-text__delete,.placed-text--selected .placed-text__rotate-handle{opacity:1}.text-popover{position:absolute;top:calc(100% + 10px);left:50%;transform:translate(-50%);background:var(--card-white);border:1.5px solid var(--border-color);border-radius:10px;padding:8px;box-shadow:0 4px 16px #0000001f;z-index:20;display:flex;flex-direction:column;gap:6px;min-width:200px;cursor:default}.text-popover__input{width:100%;padding:4px 8px;border:1.5px solid var(--border-color);border-radius:6px;font-family:inherit;font-size:.8rem;color:var(--text-dark);outline:none}.text-popover__input:focus{border-color:var(--primary)}.text-popover__row{display:flex;align-items:center;gap:6px}.text-popover__color{width:24px;height:24px;border:1.5px solid var(--border-color);border-radius:6px;padding:1px;cursor:pointer;flex-shrink:0}.text-popover__label{font-size:.7rem;color:var(--text-light);font-weight:600;white-space:nowrap}.text-popover__range{width:60px;accent-color:var(--primary)}.coupon-card--sealed{overflow:hidden;-webkit-user-select:none;user-select:none;pointer-events:auto}.coupon-card__blurred{filter:blur(8px);-webkit-filter:blur(8px);pointer-events:none}.editor{background:var(--card-white);border-radius:10px;border:1.5px solid var(--primary-light);overflow:hidden;display:flex;flex-direction:column}.editor__tabs{display:flex;background:linear-gradient(180deg,#f8f0f4,#f0e4ec);border-bottom:1px solid var(--primary-light);overflow:hidden;flex-shrink:0}.editor__tab{flex:1;min-width:0;padding:12px 8px;border:none;background:transparent;font-family:Quicksand,sans-serif;font-size:.85rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600;color:var(--text-light);cursor:pointer;transition:all var(--transition);position:relative;letter-spacing:.3px}.editor__tab:hover{color:var(--text-medium);background:#f9a8d40f}.editor__tab--active{color:var(--text-dark);background:#f9a8d414}.editor__tab--active:after{content:"";position:absolute;bottom:-2px;left:16px;right:16px;height:2.5px;background:var(--primary);border-radius:2px}.editor__content{padding:20px;display:grid;flex:1;overflow-y:auto;min-width:0}.editor__panel{grid-column:1;grid-row:1;align-self:start;min-width:0}.editor__panel--hidden{opacity:0;pointer-events:none;z-index:-1}.input-group{display:flex;flex-direction:column;gap:6px}.input-group+.input-group{margin-top:16px}.input-group label{font-size:.8rem;font-weight:600;color:var(--text-medium);text-transform:uppercase;letter-spacing:.8px}.label-required{font-weight:400;font-size:.7rem;color:var(--primary);text-transform:none;letter-spacing:0}.input-group input,.input-group textarea{border:2px solid #f0e4f0;border-radius:var(--border-radius-xs);padding:10px 14px;font-family:Quicksand,sans-serif;font-size:.95rem;color:var(--text-dark);background:#fdfafc;transition:border-color var(--transition),box-shadow var(--transition);outline:none;width:100%}.input-group input::placeholder,.input-group textarea::placeholder{color:var(--text-placeholder)}.input-group input:focus,.input-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px #f9a8d426}.input-group textarea{min-height:140px;resize:vertical}.color-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.color-grid--coupon{margin-bottom:16px;padding-bottom:16px;border-bottom:1px dashed var(--primary-light)}.color-grid--three{grid-template-columns:1fr 1fr 1fr}.color-option{display:flex;flex-direction:column;gap:6px}.color-option label{font-size:.75rem;font-weight:600;color:var(--text-medium);text-transform:uppercase;letter-spacing:.6px}.color-option__picker{display:flex;align-items:center;gap:10px}.color-option__picker input[type=color]{-webkit-appearance:none;appearance:none;width:36px;height:36px;border:2px solid #f0e4f0;border-radius:var(--border-radius-xs);cursor:pointer;padding:2px;background:transparent}.color-option__picker input[type=color]::-webkit-color-swatch-wrapper{padding:0}.color-option__picker input[type=color]::-webkit-color-swatch{border:none;border-radius:4px}.color-option__picker span{font-size:.8rem;color:var(--text-light);font-family:monospace}.font-selector{margin-top:16px;display:flex;flex-direction:column;gap:6px}.font-selector label{font-size:.75rem;font-weight:600;color:var(--text-medium);text-transform:uppercase;letter-spacing:.6px}.font-selector select{border:2px solid #f0e4f0;border-radius:var(--border-radius-xs);padding:10px 36px 10px 14px;font-family:Quicksand,sans-serif;font-size:.9rem;color:var(--text-dark);background:#fdfafc;cursor:pointer;outline:none;transition:border-color var(--transition);appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23B8A0BA' stroke-width='2' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center}.font-selector select:focus{border-color:var(--primary)}.sticker-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:100%}.sticker-grid__item{min-width:0;aspect-ratio:1;border:2px solid #f0e4f0;border-radius:var(--border-radius-xs);background:#fdfafc;padding:8px;cursor:grab;transition:all var(--transition);display:flex;align-items:center;justify-content:center}.sticker-grid__item:hover{border-color:var(--primary);background:#fff5f8;transform:scale(1.05);box-shadow:0 2px 8px #f9a8d433}.sticker-grid__item:active{cursor:grabbing;transform:scale(.95)}.sticker-grid__item img{width:100%;height:100%;object-fit:contain;pointer-events:none}.sticker-hint{text-align:center;font-size:.78rem;color:var(--text-light);margin-bottom:12px;font-style:italic}.sticker-pagination{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:14px}.sticker-pagination__btn{width:30px;height:30px;border-radius:50%;border:2px solid #f0e4f0;background:#fdfafc;color:var(--text-medium);font-size:1.1rem;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;line-height:1;transition:all var(--transition);font-family:inherit}.sticker-pagination__btn:hover:not(:disabled){border-color:var(--primary);background:#fff5f8;color:var(--text-dark)}.sticker-pagination__btn:disabled{opacity:.3;cursor:default}.sticker-pagination__label{font-size:.78rem;font-weight:700;color:var(--text-light);letter-spacing:.5px;min-width:36px;text-align:center}.sticker-attribution{margin-top:10px;font-size:.65rem;color:var(--text-light);text-align:center}.sticker-attribution a{color:var(--text-light);text-decoration:underline}.btn-add-text{width:100%;padding:10px;border:2px dashed var(--primary-light);margin-top:1.2rem;border-radius:10px;background:transparent;color:var(--primary);font-family:Caveat,cursive;font-size:1rem;font-weight:700;cursor:pointer;transition:all var(--transition);margin-bottom:12px}.btn-add-text:hover{background:var(--primary-light);border-color:var(--primary)}.action-buttons{display:flex;gap:10px;justify-content:center;max-width:800px;width:100%;margin:0 auto}.action-buttons button{flex:1;padding:10px 20px;border:2px solid transparent;border-radius:var(--border-radius-sm);cursor:pointer;transition:all var(--transition);display:flex;flex-direction:column;align-items:center;gap:4px}.btn-icon{font-size:1.3rem;line-height:1}.btn-label{font-family:Caveat,cursive;font-size:.85rem;letter-spacing:.3px}.btn-preview{background:var(--secondary-light);color:#6d5b9e}.btn-preview:hover{background:var(--secondary);transform:translateY(-1px);box-shadow:0 3px 12px #c4b5fd59}.btn-continue{background:var(--primary-light);color:#9e5b7a}.btn-continue:hover:not(:disabled){background:var(--primary);color:#fff;transform:translateY(-1px);box-shadow:0 3px 12px #f9a8d466}.btn-continue:disabled{opacity:.45;cursor:default}.btn-reset{background:#f5e6e8;color:var(--text-medium)}.btn-reset:hover{background:#edd5d8;transform:translateY(-1px);box-shadow:0 3px 12px #c896a040}.sending-page{display:flex;flex-direction:column;gap:16px;width:100%;max-width:480px;margin:0 auto}.sending-page__back{align-self:flex-start;background:none;border:none;color:var(--text-medium);font-family:Quicksand,sans-serif;font-size:.85rem;font-weight:600;cursor:pointer;padding:6px 0;transition:color var(--transition)}.sending-page__back:hover{color:var(--text-dark)}.sending-card{background:var(--card-white);border-radius:var(--border-radius);box-shadow:var(--card-shadow);padding:28px 24px;display:flex;flex-direction:column;gap:20px}.sending-card__title{font-family:Patrick Hand,cursive;font-size:1.4rem;color:var(--text-dark);text-align:center}.sending-card__row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.sending-card__row .input-group+.input-group{margin-top:0}.sending-card__timelock{display:flex;align-items:flex-start;gap:12px;background:#fff5f8;border:1.5px solid var(--primary-light);border-radius:var(--border-radius-sm);padding:14px 16px}.sending-card__timelock-icon{font-size:1.3rem;line-height:1;flex-shrink:0;margin-top:1px;color:var(--primary)}.sending-card__timelock p{font-size:.82rem;color:var(--text-medium);line-height:1.5}.sending-card__timelock strong{color:var(--text-dark)}.btn-send{width:100%;padding:14px;border:none;border-radius:var(--border-radius-sm);background:var(--primary);color:#fff;font-family:Quicksand,sans-serif;font-size:1rem;font-weight:700;cursor:pointer;transition:all var(--transition);letter-spacing:.4px}.btn-send:hover{background:#f48cb8;transform:translateY(-1px);box-shadow:0 4px 16px #f9a8d466}.sending-card__hint{text-align:center;font-size:.78rem;color:var(--text-light);line-height:1.5;font-style:italic}.preview-overlay{position:fixed;inset:0;background:#4a254559;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px;animation:fadeIn .2s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.preview-modal{width:100%;max-width:480px;display:flex;flex-direction:column;align-items:center;gap:16px;animation:slideUp .25s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.preview-modal__label{font-family:Patrick Hand,cursive;font-size:1.1rem;color:#fff;background:#ffffff2e;padding:6px 20px;border-radius:20px;letter-spacing:.4px}.preview-modal .display-area{width:100%}.preview-modal__close{padding:10px 32px;border:2px solid rgba(255,255,255,.4);border-radius:var(--border-radius-sm);background:#ffffff26;color:#fff;font-family:Quicksand,sans-serif;font-size:.9rem;font-weight:700;cursor:pointer;transition:all var(--transition)}.preview-modal__close:hover{background:#ffffff47;border-color:#fff9}.preview-modal__card-area{width:100%;max-width:380px}.preview-modal__card-area .coupon-card{filter:drop-shadow(2px -2px 4px rgba(0,0,0,.15))}.preview-nav{display:flex;align-items:center;gap:12px;background:#ffffff26;padding:6px 14px;border-radius:20px}.preview-nav__arrow{width:28px;height:28px;border:none;background:transparent;color:#fff;font-size:1.3rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition);border-radius:50%}.preview-nav__arrow:hover{background:#fff3}.preview-nav__dots{display:flex;gap:8px}.preview-nav__dot{width:10px;height:10px;border-radius:50%;border:2px solid rgba(255,255,255,.5);background:transparent;cursor:pointer;padding:0;transition:all var(--transition)}.preview-nav__dot:hover{border-color:#fff}.preview-nav__dot--active{background:#fff;border-color:#fff}.preview-stack-container{position:relative;width:100%;max-width:400px;aspect-ratio:600 / 284;display:flex;align-items:center;justify-content:center;margin:auto}.preview-stack-container.stack-container--single{min-height:0}.preview-stack-container.stack-container--single>*{position:relative}.preview-stack-card{position:absolute;inset:0;transition:transform .3s ease;cursor:default;filter:drop-shadow(2px -2px 3px rgba(0,0,0,.1))}.btn-claim{position:absolute;top:.5em;right:.5em;padding:.2em .6em;border:.1em solid var(--primary);border-radius:.75em;background:#ffffffe6;color:var(--primary);font-family:Quicksand,sans-serif;font-size:.7em;font-weight:700;cursor:pointer;transition:all var(--transition);letter-spacing:.02em;white-space:nowrap;z-index:6;text-transform:uppercase}.btn-claim:hover:not(:disabled){background:var(--primary);color:#fff}.btn-claim:disabled{opacity:.6;cursor:default}.coupon-card--claimed{opacity:.85}.coupon-card__claimed-overlay{position:absolute;top:50%;left:60%;transform:translate(-50%,-50%) rotate(-12deg);z-index:5;pointer-events:none}.coupon-card__claimed-overlay span{font-family:Patrick Hand,cursive;font-size:1.4em;color:#d4668a;background:#ffffffeb;padding:.4em 1.25em;border-radius:.5em;border:.15em dashed #d4668a;letter-spacing:.06em;box-shadow:0 .125em .5em #0000001f;display:block}.view-loading,.view-error{text-align:center;padding:60px 24px;color:var(--text-medium)}.view-loading__icon,.view-error__icon{font-size:3rem;margin-bottom:16px}.view-loading p,.view-error p{font-size:1rem;font-family:Caveat,cursive;font-size:1.2rem}.confirmation-page{display:flex;flex-direction:column;gap:16px;width:100%;max-width:480px;margin:0 auto}.confirmation-card{background:var(--card-white);border-radius:var(--border-radius);box-shadow:var(--card-shadow);padding:32px 24px;text-align:center;display:flex;flex-direction:column;gap:16px;align-items:center}.confirmation-card__icon{font-size:3rem}.confirmation-card__title{font-family:Patrick Hand,cursive;font-size:1.5rem;color:var(--text-dark)}.confirmation-card__subtitle{font-size:.88rem;color:var(--text-medium);line-height:1.6;max-width:360px}.confirmation-card__links{width:100%;display:flex;flex-direction:column;gap:18px;margin-top:8px}.link-group{text-align:left;display:flex;flex-direction:column;gap:6px}.link-group label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--text-medium)}.link-group__hint{font-size:.78rem;color:var(--text-light);font-style:italic}.link-group__row{display:flex;gap:8px}.link-group__row input{flex:1;border:2px solid #f0e4f0;border-radius:var(--border-radius-xs);padding:9px 12px;font-family:monospace;font-size:.78rem;color:var(--text-medium);background:#fdfafc;outline:none;min-width:0}.link-group__row button{padding:9px 16px;border:2px solid var(--primary);border-radius:var(--border-radius-xs);background:var(--primary-light);color:#9e5b7a;font-family:Quicksand,sans-serif;font-size:.8rem;font-weight:700;cursor:pointer;transition:all var(--transition);white-space:nowrap}.link-group__row button:hover{background:var(--primary);color:#fff}.view-wrapper{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;width:100%;flex:1}.view-greeting{text-align:center;font-family:Patrick Hand,cursive;font-size:1.5rem;color:var(--text-dark)}.view-personal-message{text-align:center;font-family:Caveat,cursive;font-size:1.15rem;color:var(--text-medium);line-height:1.6;max-width:420px;white-space:pre-wrap}.view-from{text-align:center;font-family:Caveat,cursive;font-size:1.15rem;color:var(--text-medium)}.retro-browser--view{max-width:none;width:100%}.view-browser-body{background:var(--card-white);padding:32px 24px;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:24px}.view-browser-body .display-area,.view-browser-body .display-area.display-area--stack{border-radius:var(--border-radius);box-shadow:none;border:2.5px dashed var(--primary-light);width:100%;position:relative;display:flex;align-items:center;justify-content:center;padding:24px!important;min-height:320px!important}.view-browser-body .display-area:before,.view-browser-body .display-area:after{display:none}.view-locked-section{display:flex;flex-direction:column;gap:20px;align-items:center}.view-browser-body .preview-stack-container{width:min(580px,100%);min-height:0;margin:auto;aspect-ratio:600 / 284}.view-browser-body .coupon-card{max-width:none}.view-unlock-message{display:flex;align-items:center;gap:12px;background:#fff5f8;border:1.5px solid var(--primary-light);border-radius:var(--border-radius);padding:18px 24px;text-align:center}.view-unlock-message span{font-size:1.5rem;color:var(--primary)}.view-unlock-message p{font-size:.88rem;color:var(--text-medium);line-height:1.5}.view-unlock-message strong{color:var(--text-dark)}.edit-locked-notice{background:var(--card-white);border-radius:var(--border-radius);box-shadow:var(--card-shadow);padding:40px 24px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.edit-locked-notice__icon{font-size:3rem}.edit-locked-notice h2{font-family:Patrick Hand,cursive;font-size:1.3rem;color:var(--text-dark)}.edit-locked-notice p{font-size:.88rem;color:var(--text-medium);line-height:1.5}.sending-card__word-count{font-size:.72rem;color:var(--text-light);text-align:right;margin-top:-2px}.sending-card__error{font-size:.85rem;color:#d94f6b;background:#fde8ec;border-radius:var(--border-radius-xs);padding:10px 14px;text-align:center}.btn-send:disabled{opacity:.6;cursor:default}.landing-center{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center}.retro-browser{width:100%;max-width:400px;border-radius:10px;overflow:hidden;box-shadow:0 4px 20px #c88cb426;border:1.5px solid var(--primary-light)}.retro-browser__bar{background:linear-gradient(180deg,#f8f0f4,#f0e4ec);padding:8px 12px;display:flex;align-items:center;gap:10px;border-bottom:1px solid var(--primary-light)}.retro-browser__buttons{display:flex;gap:5px;flex-shrink:0}.retro-browser__btn{width:10px;height:10px;border-radius:50%}.retro-browser__btn--close{background:#f9a8d4}.retro-browser__btn--min{background:#c4b5fd}.retro-browser__btn--max{background:#a7f3d0}.retro-browser__address{flex:1;background:var(--card-white);border-radius:6px;padding:4px 10px;display:flex;align-items:center;gap:6px;font-size:.7rem;color:var(--text-light);border:1px solid rgba(200,140,180,.2)}.retro-browser__lock{color:var(--primary);font-size:.6rem}.retro-browser__url{font-family:Quicksand,sans-serif;letter-spacing:.3px}.retro-browser__body{background:var(--card-white);padding:20px 24px;text-align:center}.retro-browser__img{display:block;margin:0 auto 12px;width:clamp(120px,40%,180px);height:auto}.retro-browser__body p{font-family:Quicksand,sans-serif;font-size:.85rem;color:var(--text-medium);line-height:1.7}.retro-browser--display{max-width:none;width:100%;display:flex;flex-direction:column;flex:1}.retro-browser--sending{max-width:480px;width:100%}.retro-browser--sending .sending-card{border-radius:0;box-shadow:none;border:none}.retro-browser--display .display-area{border-radius:0 0 8px 8px;border:none;box-shadow:none;flex:1}.landing-content{text-align:center;padding:20px 24px 0}.btn-create-love{display:inline-block;margin-top:24px;padding:10px 32px;font-family:Caveat,cursive;font-size:1.25rem;color:var(--text-medium);background:transparent;border:1.5px solid var(--primary-light);border-radius:999px;cursor:pointer;transition:color var(--transition),border-color var(--transition);letter-spacing:.3px}.btn-create-love:hover{color:var(--primary);border-color:var(--primary)}.app-footer{text-align:center;padding:12px 24px 8px;margin-top:auto;flex-shrink:0}.app-footer__stars{font-size:.85rem;color:var(--secondary);letter-spacing:8px;margin-bottom:14px}.app-footer__quote{font-family:Caveat,cursive;font-size:1.25rem;color:var(--text-dark);line-height:1.5;max-width:380px;margin:0 auto 10px}.app-footer__sub{font-size:.8rem;color:var(--text-light);line-height:1.6;max-width:340px;margin:0 auto 14px;font-style:italic}.app-footer__hearts{font-size:.75rem;color:var(--primary);letter-spacing:6px;opacity:.6}.app-footer__socials{margin-top:10px;display:flex;align-items:center;justify-content:center;gap:6px;font-size:.75rem}.app-footer__socials a{color:var(--text-medium);text-decoration:none;transition:color var(--transition)}.app-footer__socials a:hover{color:var(--primary)}.app-footer__socials-dot{color:var(--text-light)}.app-footer__copyright{margin-top:8px;font-size:.7rem;color:var(--text-light);letter-spacing:.5px}.sending-card__toggle-row{display:flex;align-items:center;gap:12px}.sending-card__toggle-label{font-size:.88rem;font-weight:600;color:var(--text-medium)}.toggle-switch{position:relative;display:inline-block;width:44px;height:24px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-switch__slider{position:absolute;inset:0;background:#e0d4e0;border-radius:24px;cursor:pointer;transition:background .25s ease}.toggle-switch__slider:before{content:"";position:absolute;left:3px;top:3px;width:18px;height:18px;background:#fff;border-radius:50%;transition:transform .25s ease;box-shadow:0 1px 3px #00000026}.toggle-switch input:checked+.toggle-switch__slider{background:var(--primary)}.toggle-switch input:checked+.toggle-switch__slider:before{transform:translate(20px)}.btn-reveal{padding:14px 40px;border:none;border-radius:var(--border-radius-sm);background:var(--primary);color:#fff;font-family:Patrick Hand,cursive;font-size:1.25rem;font-weight:700;cursor:pointer;transition:all var(--transition);letter-spacing:.4px;animation:pulse-glow 2s ease-in-out infinite}.btn-reveal:hover{background:#f48cb8;transform:translateY(-2px);box-shadow:0 6px 24px #f9a8d480}@keyframes pulse-glow{0%,to{box-shadow:0 0 8px #f9a8d44d}50%{box-shadow:0 0 20px #f9a8d499}}.display-area--revealed{animation:revealFadeIn .6s ease both}@keyframes revealFadeIn{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.display-area--dragover .coupon-card{box-shadow:0 0 0 3px var(--primary),var(--card-shadow)}@media(max-width:900px){#root{max-width:520px}.creator-layout{flex-direction:column;align-items:stretch}}@media(max-width:768px){#root{max-width:100%}body{padding:16px}.app{gap:16px}.display-area{padding:28px 20px;min-height:260px}.coupon-card{padding:24px 20px}.preview-overlay{padding:16px}.preview-modal{max-width:100%}}@media(max-width:480px){body{padding:10px}.app{gap:14px;min-height:calc(100dvh - 20px)}.app-title{font-size:1.4rem;padding-top:4px}.landing-content{padding:2px 16px 0}.app-footer__sub{font-size:.75rem;margin-bottom:8px}.btn-create-love{margin-top:16px;padding:8px 28px;font-size:1.1rem}.display-area{padding:20px 14px;min-height:210px;border-radius:12px}.coupon-card{padding:20px 16px;min-height:160px;border-radius:10px}.coupon-card__header{font-size:clamp(.65em,3.2cqw,1.2em)}.coupon-card__message{font-size:clamp(.5em,2.2cqw,.9em)}.placed-sticker{width:40px;height:40px}.editor{border-radius:12px}.editor__tab{padding:10px 6px;font-size:.8rem}.editor__content{padding:16px}.input-group input,.input-group textarea{padding:9px 12px;font-size:.9rem}.input-group textarea{min-height:70px}.color-grid{grid-template-columns:1fr 1fr;gap:12px}.color-grid--three{grid-template-columns:1fr 1fr 1fr;gap:8px}.color-grid--three .color-option__picker span{display:none}.color-option__picker input[type=color]{width:32px;height:32px}.font-selector select{padding:9px 12px;font-size:.85rem}.sticker-grid{grid-template-columns:repeat(4,1fr);gap:8px}.sticker-grid__item{padding:6px}.action-buttons{flex-wrap:wrap;gap:8px}.action-buttons button{flex:1 1 calc(50% - 4px);min-width:0;padding:11px 6px;font-size:.8rem}.sending-card{padding:22px 18px;gap:16px;border-radius:12px}.sending-card__title{font-size:1.2rem}.sending-card__row{grid-template-columns:1fr 1fr;gap:10px}.sending-card__timelock{padding:12px 14px;gap:10px}.sending-card__timelock p{font-size:.78rem}.btn-send{padding:12px;font-size:.95rem}.preview-overlay{padding:12px}.preview-modal__label{font-size:1rem;padding:5px 16px}.preview-modal__close{padding:9px 28px;font-size:.85rem}.display-area--stack{padding:20px 16px 16px;flex-direction:column}.view-browser-body .display-area.display-area--stack{flex-direction:column}.preview-stack-container{margin:0 auto 12px}.stack-add-btn{width:30px;height:30px;font-size:1.1rem}.stack-container{margin-bottom:12px}.stack-nav{position:static;transform:none;padding:3px 8px;gap:6px;margin-top:4px}.stack-nav__arrow{width:20px;height:20px;font-size:1rem}.stack-nav__dots{gap:5px}.stack-nav__dot{width:8px;height:8px}.app-footer{padding:22px 18px 10px}.app-footer__quote{font-size:1.1rem}.app-footer__sub{font-size:.75rem}}@media(max-width:360px){body{padding:8px}.app{min-height:calc(100dvh - 16px)}.app-title{font-size:1.2rem}.app-footer__quote{font-size:1rem}.display-area{padding:16px 10px;min-height:180px}.coupon-card{padding:16px 12px;min-height:140px}.coupon-card__header{font-size:clamp(.6em,3cqw,1.05em)}.coupon-card__message{font-size:clamp(.45em,2cqw,.85em)}.placed-sticker{width:34px;height:34px}.editor__content{padding:12px}.sticker-grid{grid-template-columns:repeat(4,1fr);gap:6px}.sticker-grid__item{padding:5px}.sticker-pagination{gap:10px;margin-top:10px}.sticker-pagination__btn{width:26px;height:26px;font-size:.9rem}.action-buttons button{flex:1 1 100%;padding:10px 6px}.sending-card{padding:18px 14px}.sending-card__row{grid-template-columns:1fr}.sending-card__row .input-group+.input-group{margin-top:12px}.color-grid--three{grid-template-columns:1fr 1fr 1fr;gap:6px}.color-grid--three .color-option label{font-size:.65rem}.stack-container{margin-bottom:14px}.stack-nav{position:static;transform:none;padding:2px 6px;gap:4px;margin-top:4px}.stack-nav__arrow{width:18px;height:18px;font-size:.9rem}.stack-nav__dot{width:7px;height:7px}}
