:root{--purple:#4b0a72;--magenta:#e6007e;--orange:#ff8a00;--gold:#ffd23f;--night:#0b0624;--ink:#2a1238;--text:#fdf8ff;--muted:#d9c9ea;--panel:#fff;--panel-text:#2a1238;--panel-muted:#6b5a77;--line:#e7dcef;--radius:16px}@media (prefers-color-scheme:dark){:root{--panel:#1d0f2d;--panel-text:#f5ecfb;--panel-muted:#b9a8c7;--line:#3a2650}}*{box-sizing:border-box}[hidden]{display:none!important}html,body{height:100%;margin:0}body{background:var(--night);color:var(--text);-webkit-font-smoothing:antialiased;font-family:system-ui,-apple-system,Segoe UI,Roboto,Noto Sans Malayalam,sans-serif}img,canvas{-webkit-user-drag:none;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}.scene{width:100%;height:100%;display:block;position:fixed;inset:0}.overlay{z-index:2;text-align:center;min-height:100svh;padding:max(28px, env(safe-area-inset-top)) 16px 120px;flex-direction:column;justify-content:flex-start;align-items:center;gap:12px;display:flex;position:relative}.brand{background:#fff;border-radius:999px;padding:8px 18px;display:inline-flex;box-shadow:0 6px 24px #00000040}.brand img{width:auto;height:40px}.brand.small{padding:6px 12px}.brand.small img{height:28px}.headline{text-shadow:0 2px 18px #00000073;max-width:18ch;margin:8px 0 0;font-size:clamp(1.9rem,7vw,3.2rem);line-height:1.1}.headline.big{color:var(--gold);font-size:clamp(2rem,min(9vw,6vh),4rem)}.sub,.message{max-width:34ch;color:var(--muted);text-shadow:0 1px 10px #00000080;margin:0;font-size:1.1rem}.message{color:var(--text);font-size:1.2rem}.signature{color:var(--gold);margin:0;font-size:1.1rem;font-style:italic}.eyebrow{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0;font-size:.8rem}.fine{color:var(--muted);margin:0;font-size:.85rem}.btn{min-height:48px;font:inherit;cursor:pointer;border:1px solid var(--line);background:var(--panel);color:var(--panel-text);border-radius:999px;justify-content:center;align-items:center;gap:8px;padding:12px 22px;font-size:1rem;font-weight:700;text-decoration:none;display:inline-flex}.btn.primary{color:#fff;background:linear-gradient(90deg, var(--purple), var(--magenta) 60%, var(--orange));border:0;box-shadow:0 8px 26px #e6007e59}.btn.whatsapp{color:#0b2e17;background:#25d366;border:0}.btn:focus-visible,.gift:focus-visible,.icon-btn:focus-visible{outline:3px solid var(--gold);outline-offset:3px}.home .btn.primary{margin-top:12px}.intro,.reveal{padding-top:max(9vh, env(safe-area-inset-top))}.gift{cursor:pointer;filter:drop-shadow(0 10px 24px #ff8a0073);background:0 0;border:0;margin-top:8px;font-size:88px;line-height:1;animation:1.6s ease-in-out infinite wobble}.gift.opening{animation:.45s ease-in forwards pop}@keyframes wobble{0%,to{transform:rotate(0)scale(1)}25%{transform:rotate(-8deg)scale(1.05)}75%{transform:rotate(8deg)scale(1.05)}}@keyframes pop{to{opacity:0;transform:scale(1.8)}}.glass{-webkit-backdrop-filter:blur(8px)saturate(1.2);backdrop-filter:blur(8px)saturate(1.2);background:#1408286b;border:1px solid #ffffff24;border-radius:24px;flex-direction:column;align-items:center;gap:12px;width:100%;max-width:520px;padding:22px 18px 24px;display:flex;box-shadow:0 16px 48px #00000059}.home .glass .btn.primary{margin-top:8px}.reveal .glass>*{animation:.7s ease-out both rise}.reveal .glass>:nth-child(2){animation-delay:.15s}.reveal .glass>:nth-child(3){animation-delay:.35s}.reveal .glass>:nth-child(4){animation-delay:.55s}.reveal .glass>:nth-child(5){animation-delay:1.1s}@keyframes rise{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){.gift,.reveal .glass>*{animation:none}}.footer{z-index:3;padding:12px 16px max(12px, env(safe-area-inset-bottom));justify-content:space-between;align-items:center;display:flex;position:fixed;bottom:0;left:0;right:0}.icon-btn{cursor:pointer;background:#ffffff26;border:0;border-radius:50%;width:44px;height:44px;font-size:20px}.made{color:var(--muted);background:#00000040;border-radius:999px;padding:6px 12px;font-size:.8rem;text-decoration:none}.create{max-width:560px;margin:0 auto;padding:0 16px 48px}.topbar{padding:16px 0}.preview{border-radius:var(--radius);height:min(62vh,520px);position:relative;overflow:hidden;box-shadow:0 12px 40px #0006}.preview .scene{position:absolute}.card{z-index:1;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);text-align:center;text-shadow:0 2px 12px #0009;background:#14082861;border-radius:16px;padding:12px;position:absolute;top:14px;left:12px;right:12px}.card-to{color:var(--gold);margin:0;font-size:clamp(1.4rem,6vw,2rem);font-weight:800}.card-msg{max-width:30ch;margin:6px auto 0}.card-from{color:var(--muted);margin:6px 0 0;font-style:italic}.panel,.share{border-radius:var(--radius);background:var(--panel);color:var(--panel-text);flex-direction:column;gap:8px;margin-top:16px;padding:20px 16px;display:flex}.panel label,.panel .label{margin-top:8px;font-size:.95rem;font-weight:700}.panel input[type=text],.panel input[type=email],.panel textarea{font:inherit;border:1px solid var(--line);color:inherit;background:0 0;border-radius:12px;padding:12px 14px;font-size:1.05rem}.panel textarea{resize:vertical;width:100%;min-height:84px}.panel input[type=text]:focus,.panel input[type=email]:focus,.panel textarea:focus{outline:2px solid var(--magenta);border-color:#0000}.msgs{flex-direction:column;gap:6px;display:flex}.msg{border:1px solid var(--line);cursor:pointer;border-radius:12px;align-items:flex-start;gap:10px;padding:10px 12px;display:flex;margin:0!important;font-weight:400!important}.msg:has(input:checked){border-color:var(--magenta);background:color-mix(in srgb, var(--magenta) 8%, transparent)}.msg input{accent-color:var(--magenta);margin-top:3px}.msg.own span{font-weight:700}.custom{flex-direction:column;gap:4px;display:flex}.counter{color:var(--panel-muted);align-self:flex-end;font-size:.8rem}.error{color:#d61f5b;min-height:1.2em;margin:0;font-size:.9rem}.panel .btn.primary{margin-top:6px}.share h2{margin:0 0 4px;font-size:1.2rem}.share .link{color:var(--magenta);text-align:center;margin-top:4px}.visually-hidden{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;overflow:hidden;position:absolute!important}.santa{border:1px dashed color-mix(in srgb, var(--magenta) 45%, var(--line));border-radius:14px;flex-direction:column;gap:10px;min-width:0;margin:16px 0 4px;padding:16px;display:flex}.santa legend{padding:0 6px;font-weight:800}.santa .optional{color:var(--panel-muted);font-size:.8rem;font-weight:500}.santa .hint{color:var(--panel-muted);margin:0;font-size:.9rem}.santa-add{cursor:pointer}.santa-add:focus-within,.visually-hidden:focus+.santa-add{outline:3px solid var(--gold);outline-offset:3px}.face-row{align-items:center;gap:14px;display:flex}.face-thumb{background:var(--line);border-radius:50%;width:64px;height:80px}.face-actions{flex-wrap:wrap;gap:16px;display:flex}.link-btn{font:inherit;color:var(--magenta);cursor:pointer;text-underline-offset:3px;background:0 0;border:0;padding:4px 0;font-weight:700;text-decoration:underline}.link-btn.danger{color:#c0264b}.link-btn:disabled{color:var(--panel-muted);cursor:default;text-decoration:none}.photo-options{flex-direction:column;gap:10px;display:flex}.check{cursor:pointer;align-items:flex-start;gap:10px;display:flex;margin:0!important;font-size:.95rem!important;font-weight:500!important}.check input{width:18px;height:18px;accent-color:var(--magenta);flex:none;margin-top:4px}.bot-check:empty{display:none}.fine-print{color:var(--panel-muted);text-align:center;margin:4px 0 0;font-size:.85rem}.share .link-btn{align-self:center}.btn:disabled{opacity:.65;cursor:progress}.modal{z-index:100;background:#080410b8;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.modal-panel{background:var(--panel);width:min(400px,100%);max-height:100%;color:var(--panel-text);text-align:center;border-radius:20px;flex-direction:column;align-items:center;gap:12px;padding:20px;display:flex;overflow:auto}.modal-panel h2{margin:0;font-size:1.2rem}.modal-panel .hint{color:var(--panel-muted);margin:0;font-size:.9rem}.crop-canvas{touch-action:none;cursor:grab;background:#222;border-radius:14px}.crop-canvas:active{cursor:grabbing}.zoom{align-items:center;gap:10px;width:100%;font-weight:600;display:flex}.zoom input{accent-color:var(--magenta);flex:1}.modal-actions{gap:10px;width:100%;display:flex}.modal-actions .btn{flex:1}.moves{grid-template-columns:repeat(2,1fr);gap:8px;display:grid}.move{border:1px solid var(--line);cursor:pointer;border-radius:12px;align-items:center;gap:8px;padding:10px 12px;display:flex;margin:0!important;font-size:.92rem!important;font-weight:600!important}.move:has(input:checked){border-color:var(--magenta);background:color-mix(in srgb, var(--magenta) 8%, transparent)}.move:has(input:focus-visible){outline:3px solid var(--gold);outline-offset:2px}.move-icon{font-size:1.2rem}@media (width>=820px) and (aspect-ratio>=6/5){.intro,.reveal{justify-content:center;align-items:flex-start;padding-top:24px;padding-left:max(5vw,32px)}.intro{text-align:left}.reveal .glass{max-width:460px}.home{justify-content:center;align-items:flex-start;padding-top:24px;padding-bottom:24px;padding-left:max(5vw,32px)}.home .glass{max-width:440px}}.glass.premium{background:linear-gradient(#14082873,#14082873) padding-box padding-box,linear-gradient(135deg,#ffe08a,#d4a017 40%,#fff3c4 60%,#c8920f) border-box;border:2px solid #0000;box-shadow:0 0 40px #ffcf3f40,0 16px 48px #00000059}.reveal .glass{-webkit-backdrop-filter:blur(4px)saturate(1.15);backdrop-filter:blur(4px)saturate(1.15);background:#14082842}.reveal .glass.premium{background:#14082847;border:2px solid #f5c542f2}.reveal .glass .headline,.reveal .glass .eyebrow,.reveal .glass .sub,.reveal .glass p:not(.fine-print){text-shadow:0 1px 2px #0009,0 0 14px #00000059}.glass.premium:before{content:"⭐ Premium";letter-spacing:.12em;text-transform:uppercase;color:#3a2600;background:linear-gradient(90deg,#ffe08a,#f5c542);border-radius:999px;align-self:center;padding:3px 12px;font-size:.72rem;font-weight:800}.premium-card{background:color-mix(in srgb, #ffcf3f 10%, var(--panel));border:2px solid #f5c542;border-radius:16px;flex-direction:column;gap:10px;margin-top:10px;padding:18px;display:flex}.premium-title{margin:0;font-size:1.1rem;font-weight:800}.premium-card ul{color:var(--panel-muted);margin:0;padding-left:1.2em;font-size:.94rem}.premium-card li{margin:4px 0}.premium-buy{color:#3a2600;background:linear-gradient(90deg,#ffe08a,#f5c542);border:0;font-weight:800}.premium-status{color:#c0264b;margin:0;font-size:.9rem}.premium-status:empty{display:none}.crop-status{color:var(--panel-muted);min-height:1.3em;margin:0;font-size:.9rem}.footer-right{align-items:center;gap:8px;display:flex}.report-btn{color:var(--muted);font:inherit;cursor:pointer;background:#00000040;border:0;border-radius:999px;padding:6px 12px;font-size:.8rem}.report-panel{text-align:left;align-items:stretch}.report-panel h2{text-align:center}.report-label{margin-bottom:-6px;font-size:.9rem;font-weight:700}.report-reasons{flex-direction:column;gap:8px;display:flex}.report-panel textarea,.report-panel input[type=text]{font:inherit;border:1px solid var(--line);color:inherit;background:0 0;border-radius:10px;width:100%;padding:10px 12px;font-size:.95rem}.report-status{color:#c0264b;min-height:1.2em;margin:0;font-size:.88rem}.move{position:relative}.move.premium{border-color:color-mix(in srgb, #f5c542 60%, var(--line))}.move-badge{color:#3a2600;white-space:nowrap;background:linear-gradient(90deg,#ffe08a,#f5c542);border-radius:999px;margin-left:auto;padding:2px 7px;font-size:.68rem;font-weight:800}.premium-tag{color:#8a5a00!important;font-weight:700!important}.voice{border-color:color-mix(in srgb, #f5c542 70%, var(--line))}.rec-btn.recording{color:#fff;background:#c0264b;border-color:#0000;animation:1.2s ease-in-out infinite rec}@keyframes rec{50%{box-shadow:0 0 0 8px #c0264b33}}.voice-row{flex-wrap:wrap;align-items:center;gap:14px;display:flex}.voice-info{color:var(--panel-muted);font-size:.9rem}.voice-btn{color:#3b0d5c;text-align:left;background:#fff;border:0;gap:12px;padding:8px 20px 8px 8px}.voice-icon{background:linear-gradient(135deg,#ff2d87,#ff9a3d);border-radius:50%;flex:none;place-items:center;width:40px;height:40px;font-size:1.15rem;display:grid;box-shadow:0 4px 12px #e6007e66}.voice-text{flex-direction:column;line-height:1.2;display:flex}.voice-text strong{font-size:.98rem}.voice-text small{color:#8a3fb0;font-size:.8rem;font-weight:600}.reveal .glass>.voice-btn:not(.heard){animation:.7s ease-out .55s both rise,1.8s ease-out 1.4s infinite voice-pulse}.reveal .glass>.voice-btn:not(.heard) .voice-icon{animation:1.8s ease-in-out 1.4s infinite voice-bob}.voice-btn.playing .voice-icon{background:linear-gradient(135deg,#5a1290,#c2128a)}@keyframes voice-pulse{0%{box-shadow:0 0 #ffffffbf,0 8px 22px #00000040}70%{box-shadow:0 0 0 16px #fff0,0 8px 22px #00000040}to{box-shadow:0 0 #fff0,0 8px 22px #00000040}}@keyframes voice-bob{0%,to{transform:scale(1)}15%{transform:scale(1.15)rotate(-8deg)}30%{transform:scale(1)rotate(6deg)}45%{transform:scale(1)}}@media (prefers-reduced-motion:reduce){.reveal .glass>.voice-btn:not(.heard),.reveal .glass>.voice-btn:not(.heard) .voice-icon{animation:none}}.premium-note{text-align:center}.accordion{flex-direction:column;gap:8px;margin-top:12px;display:flex}.acc-item{border:1px solid var(--line);border-radius:14px;min-width:0}.acc-item.open{border-color:color-mix(in srgb, var(--magenta) 45%, var(--line))}.acc-head{width:100%;font:inherit;color:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:14px;align-items:center;gap:12px;padding:12px 14px;display:flex}.acc-head:focus-visible{outline:3px solid var(--gold);outline-offset:2px}.acc-icon{flex:none;font-size:1.3rem}.acc-text{flex-direction:column;flex:1;min-width:0;display:flex}.acc-title{flex-wrap:wrap;align-items:center;gap:8px;font-weight:800;display:flex}.acc-summary{color:var(--panel-muted);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;overflow:hidden}.acc-item.open .acc-summary{display:none}.acc-tag{color:var(--panel-muted);font-size:.72rem;font-weight:600}.acc-tag.premium{color:#3a2600;background:linear-gradient(90deg,#ffe08a,#f5c542);border-radius:999px;padding:1px 8px;font-weight:800}.acc-chev{color:var(--panel-muted);flex:none;transition:transform .2s}.acc-item.open .acc-chev{transform:rotate(180deg)}.acc-panel{padding:0 14px 14px}.acc-panel>.santa{border:0;margin:0;padding:0}.msg-hint{color:var(--panel-muted);margin-top:2px;font-size:.82rem;display:block}.msg.disabled{opacity:.55;cursor:not-allowed}.when-input{font:inherit;border:1px solid var(--line);color:inherit;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark;background:0 0;border-radius:12px;width:100%;padding:10px 12px;font-size:1rem}@media (prefers-color-scheme:dark){.when-input{--lightningcss-light: ;--lightningcss-dark:initial}}.btn.sm{align-self:flex-start}@media (prefers-reduced-motion:reduce){.acc-chev{transition:none}}.countdown{justify-content:center;gap:10px;margin:8px 0;display:flex}.count-unit{background:#ffffff1a;border:1px solid #ffffff38;border-radius:14px;flex-direction:column;align-items:center;min-width:64px;padding:10px 6px;display:flex}.count-value{font-variant-numeric:tabular-nums;color:var(--gold);font-size:clamp(1.5rem,7vw,2.2rem);font-weight:800}.count-label{text-transform:uppercase;letter-spacing:.1em;color:var(--muted);font-size:.72rem}.scene.mana{filter:grayscale()contrast(1.3)brightness(.82)}.mana-vignette{pointer-events:none;background:radial-gradient(at 50% 55%,#0000 35%,#000000bf 100%);animation:3.2s ease-in-out infinite lamp;position:fixed;inset:0}.preview .mana-vignette{position:absolute}@keyframes lamp{0%,to{opacity:1}20%{opacity:.82}23%{opacity:.95}60%{opacity:.88}}.mana .glass{background:#0c0c0cd1;border-color:#ffffff40}.mana .glass.premium{background:linear-gradient(#0c0c0cdb,#0c0c0cdb) padding-box padding-box,linear-gradient(135deg,#eee,#888 40%,#fff 60%,#777) border-box;box-shadow:0 0 40px #ffffff1f,0 16px 48px #00000080}.mana .glass.premium:before{color:#111;background:linear-gradient(90deg,#f2f2f2,#b5b5b5)}.mana .headline.big,.mana .card-to{color:#f4f1ea;letter-spacing:.02em;font-family:Georgia,Times New Roman,serif}.mana .message,.mana .signature{color:#d8d4cc}@media (prefers-reduced-motion:reduce){.mana-vignette{animation:none}}.moves{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:12px}.move>span:not(.move-icon):not(.move-badge){overflow-wrap:anywhere;min-width:0}.move.premium{padding-right:10px}.move-badge{margin:0;position:absolute;top:-9px;right:8px}.day .glass,.day .card{background:#1028609e;border-color:#ffffff4d}.day .reveal .glass{-webkit-backdrop-filter:blur(4px)saturate(1.15);backdrop-filter:blur(4px)saturate(1.15);background:#1028604d}.day .reveal .glass.premium{background:#1028604d;border:2px solid #f5c542f2}.day .glass.premium{background:linear-gradient(#1028609e,#1028609e) padding-box padding-box,linear-gradient(135deg,#ffe08a,#d4a017 40%,#fff3c4 60%,#c8920f) border-box}.branded .glass{border-color:var(--brand);box-shadow:0 0 0 1px var(--brand), 0 16px 48px #00000059}.branded .btn.primary{background:var(--brand)}.eyebrow.brand-line{overflow-wrap:anywhere;text-wrap:balance;max-width:min(92vw,520px)}.brand-badge{z-index:4;left:max(12px, env(safe-area-inset-left));top:max(10px, env(safe-area-inset-top));background:#fff;border-radius:14px;place-items:center;width:54px;height:54px;padding:6px;display:grid;position:fixed;box-shadow:0 6px 18px #0000004d}.brand-badge img{object-fit:contain;max-width:100%;max-height:100%}.brand-fields{flex-direction:column;gap:8px;display:flex}.brand-fields input[type=text]{font:inherit;border:1px solid var(--line);color:inherit;background:0 0;border-radius:12px;padding:12px 14px;font-size:1.05rem}.logo-thumb{border:1px solid var(--line);background:#fff;border-radius:10px;width:120px;height:80px}.color-row input[type=color]{border:1px solid var(--line);background:0 0;border-radius:8px;width:40px;height:32px;margin-top:0;padding:0}.brand-price{margin:0;font-size:.95rem}.brand-price s{color:var(--panel-muted)}.teacher-btn{color:#fff;background:#ffffff24;border:1px solid #ffffff73;margin-top:10px}.teacher-btn:hover{background:#ffffff38}.teacher-line{margin-top:14px}.busy{z-index:200;background:#0804108c;place-items:center;padding:16px;display:grid;position:fixed;inset:0}.busy-box{background:var(--panel);color:var(--panel-text);border-radius:16px;align-items:center;gap:14px;max-width:340px;padding:16px 20px;display:flex;box-shadow:0 12px 40px #00000059}.busy-text{margin:0;font-weight:600}.spinner{border:3px solid #5a129033;border-top-color:#c2128a;border-radius:50%;flex-shrink:0;width:26px;height:26px;animation:.8s linear infinite spin}.spinner.sm{vertical-align:-3px;border-width:2px;width:16px;height:16px;margin-right:8px;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:2.4s}}.demo{align-self:center;max-width:100%;margin:4px auto 0}.demo[hidden]{display:none}.demo-video{object-fit:contain;border:1px solid #ffffff40;border-radius:18px;width:auto;max-width:100%;height:min(46vh,480px);display:block;box-shadow:0 12px 32px #0006}.btn.soon{cursor:default;opacity:.9;filter:saturate(.75);box-shadow:none}.pin-gate{text-align:center;max-width:400px}.pin-lock{font-size:2.4rem;line-height:1}.pin-gate .headline{font-size:clamp(1.5rem,6vw,2rem)}.pin-input{width:100%;max-width:220px;font:inherit;letter-spacing:.5em;text-indent:.5em;text-align:center;color:#1d0b33;background:#fffffff2;border:2px solid #ffffff59;border-radius:14px;padding:10px 12px;font-size:2rem;font-weight:800}.pin-input:focus{outline:3px solid var(--gold);outline-offset:2px}.pin-gate .btn.primary{min-width:160px}.pin-status{color:#ffe08a;min-height:1.4em;margin:0;font-size:.92rem}.pin-box{border:2px dashed var(--magenta);background:color-mix(in srgb, var(--magenta) 6%, transparent);border-radius:14px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;display:flex}.pin-box strong{letter-spacing:.25em;font-variant-numeric:tabular-nums;font-size:1.6rem}.pin-box p{color:var(--panel-muted);flex-basis:100%;margin:0;font-size:.85rem}.visibility{gap:8px;display:grid}.vis-option{text-align:left;align-items:flex-start!important}.vis-option strong{display:block}.crop-canvas{transition:filter .25s}.crop-canvas.detecting{filter:blur(6px)brightness(.75)}@media (prefers-reduced-motion:reduce){.crop-canvas{transition:none}}
