.tl{position:fixed;inset:0;overflow:hidden;background:#e4eef0}.tl-scene{position:absolute;inset:0}.tl-svg{display:block;width:100%;height:100%;overflow:visible;cursor:pointer;-webkit-tap-highlight-color:transparent}.tl-free use{fill:#fff;stroke:#e7b9c2;stroke-width:1.4}.tl-free .tl-free__on{fill:#fdeef3;stroke:#b9706f;stroke-width:2}.tl-hang{animation:tl-sway 5s ease-in-out infinite}@keyframes tl-sway{0%,to{transform:rotate(-3deg)}50%{transform:rotate(3deg)}}.tl-pop{animation:tl-pop .9s cubic-bezier(.2,1.5,.4,1) both}@keyframes tl-pop{0%{transform:scale(.2)}}.tl-name{display:none;paint-order:stroke;fill:#5a3b4c;stroke:#fff;stroke-width:3px;font-family:var(--tt-sans);font-size:13px;font-weight:600}.tl.has-names .tl-name{display:block}.tl-fly{animation:tl-drift 7s ease-in-out infinite}.tl-wing{transform-box:fill-box;transform-origin:right center;animation:tl-flap .5s ease-in-out infinite alternate}.tl-wing--r{transform-origin:left center}@keyframes tl-flap{to{transform:scaleX(.35)}}@keyframes tl-drift{50%{transform:translate(16px,-14px)}}.tl-cloud{animation:tl-cloud 40s ease-in-out infinite alternate}@keyframes tl-cloud{to{translate:30px 0}}.tl-plate__n{fill:#9a5554;font-size:54px}.tl-plate__amp,.tl-plate__n{font-family:var(--tt-script)}.tl-plate__amp{fill:#c9a98a;font-size:34px}.tl-plate__d{fill:#5a4b44;font-family:var(--tt-serif);font-size:22px;font-weight:600;letter-spacing:.1em}.tl-back{position:absolute;left:14px;top:calc(14px + env(safe-area-inset-top));z-index:3;display:inline-flex;align-items:center;gap:2px;min-height:40px;padding:0 12px 0 6px;font-size:.9rem;font-weight:500;color:#9a5554!important}.tl-back svg{width:22px;height:22px}.tl-top{position:absolute;right:12px;top:calc(12px + env(safe-area-inset-top));z-index:3;display:flex;gap:8px}.tl-pill,.tl-top{align-items:center}.tl-pill{display:inline-flex;min-height:38px;padding:0 14px;border:1px solid rgb(255 255 255/.9);border-radius:999px;background:rgb(255 255 255/.55);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font-family:var(--tt-serif);font-size:1.02rem;letter-spacing:.04em;color:var(--tt-ink2);cursor:pointer}.tl-head{position:absolute;left:14px;right:14px;top:calc(56px + env(safe-area-inset-top));z-index:2;max-width:620px;margin:0 auto;text-align:center;pointer-events:none}.tl-head h1{font-family:var(--tt-script);font-size:2.5rem;font-weight:400;line-height:1.1;color:#9a5554}.tl-sub,.tl-wish p{margin-top:4px;font-family:var(--tt-serif);font-size:1.02rem;font-style:italic;line-height:1.35;color:#7c6a63;text-wrap:balance}.tl-wish{animation:tl-wish 9s ease both}@keyframes tl-wish{0%,to{opacity:0}8%,92%{opacity:1}}.tl-wish .tl-wish__who{font-size:.92rem;font-weight:600;color:#b9706f}.tl-eye{position:absolute;right:14px;bottom:calc(76px + env(safe-area-inset-bottom));z-index:3;display:grid;place-items:center;width:48px;height:48px;padding:12px;border:1px solid #eadccb;border-radius:50%;background:rgb(255 248 244/.92);color:#2b2420;cursor:pointer}.tl-eye.is-on{color:#b9706f}.tl-note{left:50%;bottom:calc(92px + env(safe-area-inset-bottom));z-index:6;width:max-content;max-width:calc(100% - 120px);padding:8px 14px;border-radius:14px;background:rgb(43 36 32/.84);color:#fff;font-size:.86rem;line-height:1.35;text-align:center;transform:translateX(-50%);animation:tt-fade .3s ease}.tl-how,.tl-note{position:absolute}.tl-how{left:16px;right:16px;top:calc(104px + env(safe-area-inset-top));z-index:4;max-width:420px;margin:0 auto;padding:16px 16px 12px;border:1px solid rgb(255 255 255/.9);border-radius:18px;background:rgb(255 255 255/.72);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);box-shadow:0 16px 30px -18px rgb(90 60 50/.5);animation:tt-pop .5s var(--tt-ease)}.tl-how__title{margin-bottom:8px;font-family:var(--tt-serif);font-size:1.05rem;font-style:italic;color:#9a5554}.tl-how ol{display:grid;gap:6px;counter-reset:s;font-size:.92rem;line-height:1.35}.tl-how li{counter-increment:s}.tl-how li:before{content:counter(s) ". ";font-weight:700;color:#b9706f}.tl-how__ok{display:block;min-height:36px;margin:10px 0 0 auto;padding:0 16px;border:1px solid #e3a8a8;border-radius:999px;background:#fff8f4;color:#9a5554;font-family:var(--tt-serif);font-size:1.02rem;cursor:pointer}.tl-sheet{position:absolute;left:0;right:0;bottom:0;z-index:5;max-width:520px;margin:0 auto;padding:18px 18px calc(16px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;background:#fff8f4;box-shadow:0 -14px 34px -18px rgb(90 60 50/.5);animation:tl-up .45s var(--tt-ease)}@keyframes tl-up{0%{transform:translateY(100%)}}.tl-sheet__title{margin-bottom:10px;font-family:var(--tt-script);font-size:1.8rem;line-height:1.1;color:#9a5554;text-align:center}.tl-colors{display:flex;justify-content:center;gap:12px;margin-bottom:12px}.tl-color{width:36px;height:36px;padding:0;border:3px solid #fff;border-radius:50%;box-shadow:0 0 0 1px #eadccb;cursor:pointer}.tl-color.is-on{box-shadow:0 0 0 2px #b9706f}.tl-name-field{display:block}.tl-name-field input{width:100%;min-height:46px;padding:10px 14px;border:1px solid #eadccb;border-radius:12px;background:#fff;color:#2b2420;font:inherit}.tl-name-field small{display:block;margin-top:4px;color:#5a4b44;font-size:.78rem;text-align:center}.tl-actions{display:grid;grid-template-columns:1fr 2fr;gap:10px;margin-top:12px}.tl-bloom,.tl-cancel{min-height:46px;border-radius:999px;font-family:Playfair Display,Georgia,serif;font-size:.92rem;cursor:pointer}.tl-cancel{border:1px solid #c9a98a;background:none;color:#9a5554}.tl-bloom{border:0;background:#b9706f;color:#fff}.tl-bloom:disabled{opacity:.6}.tl-qr{position:absolute;inset:0;z-index:7;display:grid;place-items:center;padding:16px;background:rgb(43 36 32/.55);animation:tt-fade .25s ease}.tl-qr>div{display:grid;justify-items:center;gap:12px;padding:22px;border-radius:20px;background:#fff8f4;text-align:center}.tl-qr p{font-family:var(--tt-serif);font-size:1.1rem;font-style:italic;color:#9a5554}.tl-qr img{border-radius:10px}.tl-qr .tl-cancel{min-width:140px}.tl .music-btn,.tl-host .music-btn{right:14px;bottom:calc(16px + env(safe-area-inset-bottom))}@media (prefers-reduced-motion:reduce){.tl-cloud,.tl-fly,.tl-hang,.tl-wing{animation:none}}