.tp{--bg1:#ff8a5b;--bg2:#ff4e8a;--ink:#2b0f1e;--accent:#ffd24d;--card:#fff6ec;--rib:#ff4e8a;--glow:0;width:100%;height:100%;color:var(--ink);background:linear-gradient(160deg, var(--bg1), var(--bg2));-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;font-family:Plus Jakarta Sans Variable,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;position:relative;overflow:hidden;container-type:size}.tp-diwali{color:#fff3da}.tp-diwali:before{content:"";pointer-events:none;background:radial-gradient(120% 70% at 50% 100%, rgba(255, 178, 44, calc(var(--glow) * .55)), transparent 70%);transition:background .6s;position:absolute;inset:0}.tp-fx{pointer-events:none;z-index:5;width:100%;height:100%;position:absolute;inset:0}.tp-floaters{pointer-events:none;position:absolute;inset:0;overflow:hidden}.tp-floaters span{opacity:.55;animation:linear infinite tp-float;position:absolute;bottom:-40px}@keyframes tp-float{0%{transform:translateY(0)rotate(-8deg)}to{transform:translateY(-120cqh)rotate(12deg)}}.tp-top{padding:max(10px, env(safe-area-inset-top)) 12px 8px;z-index:6;align-items:center;gap:8px;display:flex;position:absolute;top:0;left:0;right:0}.tp-progress{flex:1;gap:4px;display:flex}.tp-progress i{background:#ffffff59;border-radius:3px;flex:1;height:3px}.tp-progress i.on{background:#fffffff2}.tp-icon{color:#fff;cursor:pointer;background:#0000002e;border:0;border-radius:50%;flex:none;place-items:center;width:36px;height:36px;font-size:16px;display:grid}.tp-badge{left:50%;bottom:max(10px, env(safe-area-inset-bottom));z-index:6;letter-spacing:.02em;color:#fff;white-space:nowrap;pointer-events:none;background:#00000047;border-radius:99px;padding:5px 10px;font-size:11px;font-weight:600;position:absolute;transform:translate(-50%)}.tp-stage{overscroll-behavior:contain;z-index:2;position:absolute;inset:0;overflow-y:auto}.sc{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:clamp(10px,3cqh,22px);min-height:100%;padding:58px clamp(16px,7cqw,40px) 54px;animation:.45s cubic-bezier(.2,.8,.2,1) both sc-in;display:flex}.sc.out{animation:.26s both sc-out}@keyframes sc-in{0%{opacity:0;transform:translateY(18px)scale(.98)}}@keyframes sc-out{to{opacity:0;transform:translateY(-12px)scale(.98)}}.tp .title{letter-spacing:-.01em;text-wrap:balance;margin:0;font-family:Fraunces Variable,Georgia,serif;font-size:clamp(22px,7.2cqw,38px);font-weight:600;line-height:1.12}.tp .sub,.tp .hint{opacity:.8;margin:0;font-size:clamp(13px,3.8cqw,16px)}.tp-btn{font:inherit;cursor:pointer;border:0;border-radius:99px;min-height:48px;padding:14px 26px;font-size:clamp(15px,4.4cqw,18px);font-weight:700;transition:transform .15s,opacity .2s}.tp-btn:active{transform:scale(.96)}.tp-btn:disabled{opacity:.7;cursor:default}.tp-primary{background:var(--ink);color:var(--card);box-shadow:0 8px 24px #00000038}.tp-diwali .tp-primary{background:var(--accent);color:#2a1206}.tp-ghost{color:inherit;-webkit-backdrop-filter:blur(6px);background:#ffffff47}.tp-btn.big{padding:16px 30px;font-size:clamp(16px,5cqw,20px)}.tp-link{color:inherit;opacity:.75;font:inherit;cursor:pointer;background:0 0;border:0;padding:8px;font-size:14px;text-decoration:underline}.tp :focus-visible{outline-offset:3px;outline:3px solid #fff}.sc-cover .kicker{text-transform:uppercase;letter-spacing:.2em;opacity:.75;margin:0;font-size:12px;font-weight:700}.sc-cover .to{overflow-wrap:anywhere;margin:0;font-family:Fraunces Variable,Georgia,serif;font-size:clamp(40px,15cqw,76px);font-style:italic;font-weight:700;line-height:1}.sc-cover .line{opacity:.9;max-width:30ch;margin:0;font-size:clamp(14px,4.2cqw,18px)}.gift{aspect-ratio:1;cursor:pointer;background:0 0;border:0;width:min(52cqw,34cqh,240px);padding:0;animation:2.4s ease-in-out infinite gift-wobble}.gift svg{width:100%;height:100%;overflow:visible}.gift-lid{transform-origin:100px 84px;transform-box:view-box;transition:transform .7s cubic-bezier(.3,1.6,.5,1)}.gift.open{animation:none}.gift.open .gift-lid{transform:translate(18px,-90px)rotate(-22deg)}@keyframes gift-wobble{0%,to{transform:rotate(0)}8%{transform:rotate(-4deg)}16%{transform:rotate(4deg)}24%{transform:rotate(0)}}.reveal-card{background:var(--card);color:#2a1622;border-radius:22px;max-width:34ch;padding:22px 22px 16px;animation:.5s both sc-in;box-shadow:0 16px 40px #00000038}.reveal-text{white-space:pre-line;overflow-wrap:anywhere;margin:0;font-family:Fraunces Variable,Georgia,serif;font-size:clamp(19px,6cqw,28px);line-height:1.25}.reveal-from{opacity:.7;margin:10px 0 0;font-size:14px;font-weight:700}.cake{width:min(74cqw,42cqh,330px);padding-top:50px;position:relative}.cake-svg{width:100%;display:block}.candles{justify-content:space-between;align-items:flex-end;display:flex;position:absolute;top:calc(50px + 26%);left:22%;right:22%;transform:translateY(-100%)}.candle{width:26px;height:calc(var(--h) + 34px);cursor:pointer;background:0 0;border:0;flex-direction:column;justify-content:flex-end;align-items:center;padding:0;display:flex;position:relative}.candle .stick{width:9px;height:var(--h);background:repeating-linear-gradient(135deg,#fff 0 6px,#ff6f9c 6px 11px);border-radius:3px}.candle .flame{transform-origin:50% 100%;background:radial-gradient(circle at 50% 70%,#fff7c2 0 25%,#ffc93c 45%,#ff7a1a 80%);border-radius:50%/60% 60% 40% 40%;width:13px;height:22px;margin-bottom:2px;animation:.18s ease-in-out infinite alternate flicker;box-shadow:0 0 18px 6px #ffbe3c8c}.candle .smoke{opacity:0;background:#fff9;border-radius:50%;width:8px;height:8px;position:absolute;top:0}.candle.out .flame{opacity:0;transition:transform .25s,opacity .25s;animation:none;transform:scale(0)}.candle.out .smoke{animation:1.4s ease-out forwards smoke}@keyframes flicker{0%{transform:scaleY(1)rotate(-2deg)}to{transform:scaleY(1.12)rotate(2deg)}}@keyframes smoke{0%{opacity:.7;transform:translateY(10px)scale(.6)}to{opacity:0;transform:translateY(-40px)scale(2.4)}}.diyas{justify-content:center;gap:clamp(2px,1.5cqw,10px);width:100%;max-width:420px;padding-top:20px;display:flex}.diya{aspect-ratio:1;cursor:pointer;max-width:76px;transform:translateY(var(--lift));background:0 0;border:0;flex:1;padding:0}.diya svg{width:100%;height:100%;overflow:visible}.diya .diya-flame,.diya .diya-glow{opacity:0;transform-origin:50px 50px;transition:opacity .4s}.diya.lit .diya-flame{opacity:1;transform-box:fill-box;transform-origin:50% 100%;animation:.2s ease-in-out infinite alternate flicker}.diya.lit .diya-glow{opacity:1}.diya:not(.lit){animation:1.6s ease-in-out infinite pulse}@keyframes pulse{50%{filter:brightness(1.25)}}.scratch{aspect-ratio:4/3;border-radius:22px;width:min(82cqw,360px);position:relative;overflow:hidden;box-shadow:0 16px 40px #00000040}.scratch-under{background:var(--card);color:#2a1622;flex-direction:column;justify-content:center;padding:18px;display:flex;position:absolute;inset:0}.foil{touch-action:none;cursor:grab;width:100%;height:100%;transition:opacity .6s;position:absolute;inset:0}.foil.gone{opacity:0;pointer-events:none}.stack{aspect-ratio:4/5;touch-action:pan-y;width:min(74cqw,44cqh,330px);position:relative}.polaroid{transform:rotate(var(--r));background:#fff;border-radius:6px;flex-direction:column;margin:0;padding:10px 10px 0;transition:transform .45s cubic-bezier(.3,.7,.3,1),opacity .45s;display:flex;position:absolute;inset:0;box-shadow:0 14px 34px #00000047}.polaroid img{object-fit:cover;background:#eee;border-radius:2px;flex:1;width:100%;min-height:0}.polaroid figcaption{color:#2a1622;overflow-wrap:anywhere;padding:8px 4px 10px;font-family:Fraunces Variable,Georgia,serif;font-size:clamp(14px,4.4cqw,19px);font-style:italic}.polaroid:not(:has(figcaption)){padding-bottom:34px}.polaroid.broken img{visibility:hidden}.polaroid.fling{transform:translateX(calc(var(--dir,1) * 140%)) rotate(calc(var(--dir,1) * 24deg));opacity:0;pointer-events:none}.count{opacity:.75;margin:0;font-size:14px;font-weight:700}.paper{background:var(--card);color:#2a1622;text-align:left;background-image:repeating-linear-gradient(#0000 0 29px,#2a162212 29px 30px);border-radius:18px;width:min(88cqw,460px);max-height:70cqh;padding:22px 22px 18px;overflow-y:auto;box-shadow:0 16px 40px #00000038}.letter-head{text-transform:uppercase;letter-spacing:.14em;opacity:.55;margin:0 0 8px;font-size:12px;font-weight:700}.letter-body{white-space:pre-line;overflow-wrap:anywhere;min-height:60px;margin:0;font-family:Fraunces Variable,Georgia,serif;font-size:clamp(16px,4.8cqw,20px);line-height:30px}.letter-sign{text-align:right;margin:12px 0 0;font-family:Fraunces Variable,Georgia,serif;font-size:18px;font-style:italic;font-weight:600}.q-text{text-wrap:balance;overflow-wrap:anywhere;max-width:16ch;margin:0;font-family:Fraunces Variable,Georgia,serif;font-size:clamp(28px,9cqw,48px);font-weight:700;line-height:1.08}.q-text.answered{animation:.5s both pop}@keyframes pop{50%{transform:scale(1.12)}}.q-zone{justify-content:center;align-items:center;gap:14px;width:100%;max-width:420px;height:clamp(210px,42cqh,340px);display:flex;position:relative}.q-yes{transform:scale(var(--grow,1));z-index:1;transition:transform .25s cubic-bezier(.3,1.6,.5,1)}.q-no.loose{transition:left .22s,top .22s;position:absolute}.q-note{min-height:1.4em;margin:0;font-weight:600}.reply-form{flex-direction:column;gap:10px;width:min(88cqw,420px);display:flex}.reply-form textarea{font:inherit;resize:none;background:var(--card);color:#2a1622;-webkit-user-select:text;user-select:text;border:0;border-radius:16px;padding:14px;font-size:16px}.reply-status{min-height:1.3em;margin:0;font-weight:600}.end-emoji{font-size:clamp(56px,18cqw,88px);animation:1.2s ease-in-out infinite pop}.cta-card{background:var(--card);color:#2a1622;border-radius:18px;flex-direction:column;gap:4px;max-width:340px;padding:16px 20px;text-decoration:none;display:flex;box-shadow:0 10px 30px #0003}.cta-card strong{font-size:17px}.cta-card span{opacity:.7;font-size:13px}@media (prefers-reduced-motion:reduce){.tp *,.tp :before{animation-duration:.01ms!important;animation-iteration-count:1!important}.tp-floaters{display:none}}
