:root{--paper:#FDF6E8;--paper-2:#F8EBCE;--ink:#1A1410;--ink-2:#4A3F33;--ink-3:#8A7B68;--marigold:#E86A1A;--saffron:#F2A53C;--kumkum:#C7305B;--leaf:#2E6B45;--whatsapp:#25D366;--rule:rgba(26,20,16,0.10);--card:#FFFCF4;--error:#C7305B;--shadow-1:0 1px 2px rgba(26,20,16,0.06),0 4px 12px rgba(26,20,16,0.06);--shadow-2:0 6px 18px rgba(26,20,16,0.10),0 18px 48px rgba(26,20,16,0.10);--font-display:"Fraunces",Georgia,serif;--font-ui:"Inter",system-ui,-apple-system,"Segoe UI",sans-serif;--font-devanagari:"Noto Sans Devanagari",system-ui,sans-serif;--font-kannada:"Noto Sans Kannada",system-ui,sans-serif;--radius-sm:10px;--radius:18px;--radius-lg:22px;--tap-target:48px;--color-primary:var(--ink);--color-primary-light:var(--marigold);--color-accent:var(--saffron);--color-bg:var(--paper);--color-text:var(--ink);--color-text-light:var(--ink-3);--color-surface:var(--paper-2);--color-error:var(--error)}@font-face{font-family:Noto Sans Devanagari;src:url(/fonts/noto-sans-devanagari-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans Devanagari;src:url(/fonts/noto-sans-devanagari-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans Kannada;src:url(/fonts/noto-sans-kannada-400.woff2) format("woff2");font-weight:400;font-style:normal;font-display:swap}@font-face{font-family:Noto Sans Kannada;src:url(/fonts/noto-sans-kannada-700.woff2) format("woff2");font-weight:700;font-style:normal;font-display:swap}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}body{font-family:var(--font-ui);color:var(--ink);background:radial-gradient(1200px 600px at 15% 10%,rgba(242,165,60,.18),transparent 60%),radial-gradient(1000px 500px at 85% 90%,rgba(199,48,91,.1),transparent 60%),#F4ECDB;-webkit-tap-highlight-color:transparent;-webkit-font-smoothing:antialiased;overflow-x:hidden;min-height:100dvh;position:relative}body:before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.10  0 0 0 0 0.08  0 0 0 0 0.06  0 0 0 0.18 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");opacity:.5;mix-blend-mode:multiply}button{font-family:var(--font-ui);font-size:15px;cursor:pointer;border:none;background:none;color:inherit;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}button:active:not(:disabled){transform:scale(.97)}.btn{font-size:15px;border-radius:999px;padding:14px 22px;border:none;cursor:pointer}.btn,.btn-primary{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;min-height:var(--tap-target)}.btn-primary{background:var(--ink);box-shadow:0 8px 18px rgba(26,20,16,.18);border-radius:var(--radius);font-size:16px;padding:16px 22px;width:100%;border:none;font-family:var(--font-ui);color:var(--paper)}.btn-primary:disabled{background:rgba(26,20,16,.2);color:rgba(253,246,232,.6);cursor:not-allowed;box-shadow:none}.btn-marigold{background:var(--marigold);color:#FFF8EE;border-radius:var(--radius);font-size:16px;padding:16px 22px;border:none;box-shadow:0 8px 18px rgba(232,106,26,.3)}.btn-marigold,.btn-secondary{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;min-height:var(--tap-target);font-family:var(--font-ui)}.btn-secondary{background:transparent;color:var(--ink);border:1.5px solid var(--rule);border-radius:var(--radius);font-size:15px;padding:14px 22px}.btn-whatsapp{background:var(--whatsapp);color:#fff;box-shadow:0 6px 16px rgba(37,211,102,.35);border-radius:var(--radius);padding:16px 22px;width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:600;border:none;min-height:var(--tap-target)}.btn-whatsapp,input,select,textarea{font-size:16px;font-family:var(--font-ui)}input,input.field,select,textarea,textarea.field{background:transparent;outline:none;color:var(--ink)}input.field,textarea.field{width:100%;border:none;font-family:var(--font-display);font-size:22px;padding:8px 0;border-bottom:2px solid var(--rule);border-radius:0;transition:border-color .2s ease}textarea.field{resize:none;line-height:1.4;font-size:18px}input.field:focus,textarea.field:focus{border-color:var(--marigold)}select.field{font-family:var(--font-ui);font-size:14px;padding:12px 14px;border-radius:var(--radius-sm);border:1.5px solid var(--rule);background:var(--paper);width:100%;min-height:var(--tap-target);color:var(--ink)}select.field:focus{border-color:var(--marigold)}.display,h1.display,h2.display,h3.display{font-family:var(--font-display);font-weight:800;letter-spacing:-.02em;margin:0;line-height:1;color:var(--ink)}h1.display{font-size:38px;line-height:.96}h2.display{font-size:28px;line-height:1.05}h3.display{font-size:20px;line-height:1.1}.display .accent,.display em{font-style:italic;color:var(--marigold)}.eyebrow{font-family:var(--font-ui);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}.subtle{color:var(--ink-2);font-size:14px;line-height:1.5}@keyframes float-slow{0%,to{transform:translateY(0) rotate(var(--r,0deg))}50%{transform:translateY(-6px) rotate(var(--r,0deg))}}@keyframes flame{0%,to{transform:scale(1) translateX(0);opacity:1}50%{transform:scale(1.08) translateX(.4px);opacity:.92}}@keyframes confetti-fall{0%{transform:translateY(-20px) rotate(0deg);opacity:0}10%{opacity:1}to{transform:translateY(900px) rotate(2turn);opacity:0}}@keyframes pop{0%{transform:scale(.7);opacity:0}60%{transform:scale(1.06);opacity:1}to{transform:scale(1);opacity:1}}@keyframes slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}@keyframes spin-slow{to{transform:rotate(1turn)}}@keyframes pulse{0%,to{opacity:.6}50%{opacity:1}}.screen{position:relative;z-index:1;min-height:100dvh;padding:0;display:flex;flex-direction:column;width:100%;max-width:480px;margin:0 auto;animation:slide-up .42s cubic-bezier(.2,.8,.2,1) both}.screen__inner{padding:24px 22px;flex:1 1;display:flex;flex-direction:column}.stepbar{display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top, 0px) + 18px) 18px 8px}.stepbar__back{width:40px;height:40px;border-radius:999px;border:none;background:rgba(26,20,16,.06);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--ink)}.stepbar__title{flex:1 1;text-align:center}.steps{display:flex;gap:6px;align-items:center}.step-dot{width:6px;height:6px;border-radius:999px;background:var(--rule);transition:all .3s}.step-dot--active{width:22px;background:var(--ink)}.step-spacer{width:40px;flex-shrink:0}.back-btn{width:40px;height:40px;min-height:40px;border-radius:999px;background:rgba(26,20,16,.06);border:none;color:var(--ink);justify-content:center;padding:0}.back-btn,.chip{display:inline-flex;align-items:center;cursor:pointer}.chip{gap:6px;padding:8px 12px;border-radius:999px;background:rgba(26,20,16,.05);color:var(--ink-2);font-size:13px;font-weight:600;border:1.5px solid transparent;font-family:var(--font-ui);min-height:36px}.chip--active{background:var(--ink);color:var(--paper)}.seg{display:inline-flex;padding:4px;border-radius:999px;background:rgba(26,20,16,.06);gap:2px}.seg-btn{border:none;background:transparent;padding:8px 14px;border-radius:999px;font-size:13px;font-weight:600;cursor:pointer;color:var(--ink-2);font-family:inherit}.seg-btn--active{background:var(--paper);color:var(--ink);box-shadow:var(--shadow-1)}.scroll-x{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.scroll-x::-webkit-scrollbar{display:none}.cake{position:relative;width:64px;height:56px;flex-shrink:0}.cake__layer{position:absolute;border-radius:4px}.cake__l1{bottom:0;height:18px;left:6px;right:6px;background:linear-gradient(180deg,#fff,#F8EBCE)}.cake__l1,.cake__l2{border:1.5px solid var(--ink)}.cake__l2{bottom:16px;height:14px;left:12px;right:12px;background:var(--marigold)}.cake__candle{top:0;width:4px;height:14px;background:var(--kumkum);border-radius:2px}.cake__candle,.cake__flame{position:absolute;left:50%;transform:translateX(-50%)}.cake__flame{top:-6px;width:8px;height:12px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 70%,#FFE08A,#F2A53C 60%,#E86A1A 100%);animation:flame .9s ease-in-out infinite;box-shadow:0 0 8px rgba(242,165,60,.6)}.diya{position:relative;width:36px;height:22px;flex-shrink:0}.diya__bowl{bottom:0;left:0;right:0;background:linear-gradient(180deg,#B14A0E,#6E2E08);border-radius:0 0 60% 60%/0 0 100% 100%;box-shadow:inset 0 -2px 4px rgba(0,0,0,.3)}.diya__bowl,.diya__flame{position:absolute;height:14px}.diya__flame{top:-8px;left:50%;transform:translateX(-50%);width:8px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 70%,#FFE08A,#F2A53C 60%,#E86A1A 100%);animation:flame .9s ease-in-out infinite;box-shadow:0 0 12px rgba(242,165,60,.7)}.deco-marigold{width:28px;height:28px;border-radius:50%;background:radial-gradient(circle at 35% 35%,#FFD27A,var(--marigold) 60%,#B14A0E 100%);box-shadow:inset -2px -2px 4px rgba(0,0,0,.18);position:relative;flex-shrink:0}.deco-marigold:before{content:"";position:absolute;inset:-3px;border-radius:50%;background:conic-gradient(from 0deg,var(--marigold),transparent 6%,var(--marigold) 12%,transparent 18%,var(--marigold) 24%,transparent 30%,var(--marigold) 36%,transparent 42%,var(--marigold) 48%,transparent 54%,var(--marigold) 60%,transparent 66%,var(--marigold) 72%,transparent 78%,var(--marigold) 84%,transparent 90%,var(--marigold) 96%,transparent);opacity:.85;z-index:-1}.confetti-piece{position:absolute;top:-30px;width:10px;height:14px;border-radius:2px;animation:confetti-fall 2.8s linear forwards}.confetti-layer{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:40}.save-card{background:var(--card);border-radius:var(--radius);padding:14px;border:1px solid var(--rule);display:flex;align-items:center;gap:12px;box-shadow:var(--shadow-1)}.landing{padding:calc(env(safe-area-inset-top, 0px) + 20px) 0 32px}.landing__topbar{display:flex;justify-content:space-between;align-items:center;padding:0 22px}.landing__hero{padding:12px 22px 0}.landing__title{font-family:var(--font-display);font-size:38px;font-weight:800;line-height:.96;letter-spacing:-.02em;color:var(--ink);margin-bottom:8px}.landing__title-accent{color:var(--marigold);font-style:italic}.landing__subtitle{color:var(--ink-2);font-size:14px;line-height:1.5;margin-top:6px;margin-bottom:18px}.landing__cta{font-size:17px;padding:18px 22px;border-radius:var(--radius);background:var(--ink);color:var(--paper);display:flex;width:100%;align-items:center;justify-content:space-between;gap:10px;font-weight:600;border:none;min-height:var(--tap-target);cursor:pointer;font-family:var(--font-ui);box-shadow:0 8px 18px rgba(26,20,16,.18)}.landing__cta-time{opacity:.6;font-size:12px;font-weight:500}.landing__section{padding:24px 0 0}.landing__section-head{display:flex;justify-content:space-between;align-items:baseline;padding:0 22px 10px}.landing__see-all{background:transparent;font:inherit;font-size:12px;font-weight:600;color:var(--ink-2);padding:4px;min-height:0}.festival-card,.landing__see-all{border:none;cursor:pointer;font-family:var(--font-ui)}.festival-card{width:100%;text-align:left;background:linear-gradient(135deg,var(--saffron) 0,var(--marigold) 60%,var(--kumkum) 100%);color:white;border-radius:var(--radius-lg);padding:18px 20px;justify-content:space-between;box-shadow:0 12px 28px rgba(232,106,26,.25);overflow:hidden;margin:0 22px;width:calc(100% - 44px);min-height:var(--tap-target)}.festival-card,.festival-card__inner{display:flex;align-items:center;position:relative}.festival-card__inner{gap:14px;z-index:1}.festival-card__name{font-family:var(--font-display);font-size:20px;font-weight:700;line-height:1.1}.festival-card__when{font-size:12px;opacity:.9;margin-top:2px}.festival-card__chev{background:rgba(255,255,255,.2);padding:6px 12px;border-radius:999px;font-size:12px;font-weight:600;position:relative;z-index:1}.festival-card__deco{position:absolute;right:-20px;bottom:-20px;opacity:.18}.festival-stack{display:flex;flex-direction:column;gap:10px;padding:0 22px}.upcoming{width:100%}.upcoming__list{display:flex;gap:12px;padding:4px 22px 12px}.upcoming__card{flex:0 0 auto;width:158px;background:var(--card);border-radius:var(--radius);padding:14px;border:1px solid var(--rule);cursor:pointer;box-shadow:var(--shadow-1);display:flex;flex-direction:column;text-align:left;font-family:var(--font-ui);min-height:0}.upcoming__card--soon{background:linear-gradient(180deg,#FFF8EE,#F8EBCE);border:1.5px solid var(--marigold);box-shadow:0 12px 28px rgba(232,106,26,.18)}.upcoming__card-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:8px}.upcoming__card-date{text-align:right}.upcoming__card-day{font-family:var(--font-display);font-size:22px;font-weight:700;line-height:1;color:var(--ink)}.upcoming__card-month{font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.1em;font-weight:600}.upcoming__card-name{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--ink);margin-top:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming__card-days{font-size:11px;color:var(--ink-3);font-weight:600;margin-top:2px}.upcoming__card--soon .upcoming__card-days{color:var(--marigold)}.upcoming__add{flex:0 0 auto;width:90px;border-radius:var(--radius);background:transparent;justify-content:center;cursor:pointer;gap:4px;padding:14px;font-family:var(--font-ui);font-size:11px;font-weight:600;min-height:0}.landing__empty-card,.upcoming__add{border:1.5px dashed var(--rule);display:flex;flex-direction:column;align-items:center;color:var(--ink-3);text-align:center}.landing__empty-card{margin:4px 22px 0;background:var(--card);border-radius:var(--radius);padding:18px 16px;font-size:14px;gap:6px}.landing__empty-card-cake{margin-bottom:4px}.landing__empty-add{border:none;background:var(--ink);color:var(--paper);padding:8px 14px;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;margin-top:4px}.landing__ledger{display:grid;grid-template-columns:repeat(3,1fr);grid-gap:10px;gap:10px;padding:0 22px}.ledger-tile{cursor:pointer;background:none;padding:0;border:none;border-radius:var(--radius);overflow:hidden;aspect-ratio:4/5;position:relative}.ledger-tile canvas{width:100%;height:100%;display:block}.tab-bar{position:fixed;left:0;right:0;bottom:0;z-index:30;padding:8px 16px calc(env(safe-area-inset-bottom, 0px) + 16px);background:rgba(253,246,232,.85);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid var(--rule);display:flex;gap:4px;max-width:480px;margin:0 auto}.tab{display:flex;flex-direction:column;align-items:center;gap:2px;flex:1 1;padding:10px 4px;cursor:pointer;color:var(--ink-3);font-size:10px;font-weight:600;background:none;border:none;font-family:var(--font-ui);min-height:0}.tab--active{color:var(--ink)}.tab svg{width:22px;height:22px}.tab--cta{color:var(--marigold)}.style-screen{padding-top:0;padding-bottom:100px}.style-screen__head{padding:8px 22px 0}.style-screen__chips{display:flex;gap:6px;flex-wrap:wrap;padding:0 22px;margin-bottom:18px}.style-screen__poster-wrap{padding:0 22px}.poster-frame{aspect-ratio:4/5;border-radius:var(--radius-lg);overflow:hidden;position:relative;box-shadow:var(--shadow-2)}.style-screen__strip{padding:18px 0 0}.style-screen__strip-list{display:flex;gap:10px;padding:0 22px 8px}.template-card{flex:0 0 78px;width:78px;height:auto;aspect-ratio:3/4;position:relative;padding:0;border:2px solid transparent;border-radius:var(--radius);overflow:hidden;background:none;min-height:0;transition:transform .2s ease,border-color .2s ease;cursor:pointer}.template-card--selected{border-color:var(--ink);transform:translateY(-4px)}.template-card canvas{width:100%;height:100%;display:block}.template-card__name{position:absolute;left:8px;bottom:8px;right:8px;color:white;font-size:11px;font-weight:600;letter-spacing:.04em;text-shadow:0 1px 4px rgba(0,0,0,.5);background:none;padding:0;text-align:left}.template-card__check{position:absolute;top:6px;right:6px;background:var(--ink);color:var(--paper);width:18px;height:18px;border-radius:999px;font-size:11px;display:flex;align-items:center;justify-content:center;font-weight:800}.style-screen__action{padding:16px 22px 0}.personalize-screen{padding-top:0;padding-bottom:100px}.personalize-screen__head{display:grid;grid-template-columns:128px 1fr;grid-gap:16px;gap:16px;align-items:start;padding:8px 22px 0}.personalize-screen__preview{display:flex;flex-direction:column}.personalize-screen__preview-label{font-size:10px;color:var(--ink-3);text-align:center;margin-top:6px;font-weight:600;letter-spacing:.08em;text-transform:uppercase}.personalize-screen__preview-frame{aspect-ratio:4/5;border-radius:14px;overflow:hidden;position:relative;box-shadow:var(--shadow-1)}.personalize-screen__intro{margin:0}.personalize-screen__intro-sub{color:var(--ink-2);font-size:12px;margin-top:4px}.personalize-screen__form{display:flex;flex-direction:column;gap:18px;padding:20px 22px 0}.field-group{display:flex;flex-direction:column;gap:4px}.field-group__counter{text-align:right;font-size:10px;color:var(--ink-3);margin-top:4px}.field-group__chips{display:flex;gap:6px;flex-wrap:wrap}.personalize-screen__action{padding:24px 22px 0}.generating-overlay{position:fixed;inset:0;z-index:100;background:radial-gradient(circle at 50% 50%,rgba(253,246,232,.96),rgba(253,246,232,.99));display:flex;flex-direction:column;align-items:center;justify-content:center;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}.generating-ring{width:76px;height:76px;background:conic-gradient(from 0deg,var(--marigold),var(--saffron),var(--kumkum),var(--marigold));animation:spin-slow 1.6s linear infinite;position:relative}.generating-ring,.generating-ring__inner{border-radius:999px;display:flex;align-items:center;justify-content:center}.generating-ring__inner{width:60px;height:60px;background:var(--paper);font-size:28px}.generating-text{margin-top:22px;font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--ink)}.generating-subtext{margin-top:4px;font-size:13px;color:var(--ink-2)}.preview-screen{position:relative;padding-top:0;padding-bottom:32px}.preview-screen__poster{padding:4px 30px 0;animation:pop .5s cubic-bezier(.2,.9,.3,1.3) both}.preview-screen__poster-img{width:100%;border-radius:var(--radius-lg);display:block;box-shadow:var(--shadow-2)}.preview-screen__actions{padding:20px 22px 0;display:flex;flex-direction:column;gap:8px}.preview-screen__pair{display:grid;grid-template-columns:1fr 1fr;grid-gap:8px;gap:8px}.preview-screen__pair .btn-secondary{border-radius:14px;padding:12px;font-size:13px}.preview-screen__save{padding:18px 22px 0}.preview-screen__saved{padding:18px 22px 0;text-align:center;color:var(--leaf);font-size:13px;font-weight:600}.birthday-list{padding-top:0;padding-bottom:100px}.birthday-list__head{padding:8px 22px 0}.birthday-list__year-ribbon{display:flex;gap:4px;margin-bottom:18px;padding:6px 0;overflow-x:auto;scrollbar-width:none}.birthday-list__year-ribbon::-webkit-scrollbar{display:none}.month-dot{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:36px}.month-dot__name{font-size:10px;color:var(--ink-3);font-weight:600}.month-dot__circle{width:8px;height:8px;border-radius:999px;background:rgba(26,20,16,.12)}.month-dot--has .month-dot__circle{background:var(--marigold);transform:scale(1.4)}.birthday-list__add{padding:0 22px;margin-bottom:18px}.birthday-list__form{margin:0 22px 18px;flex-direction:column;align-items:stretch;gap:10px;animation:slide-up .3s ease-out}.birthday-list__list{display:flex;flex-direction:column;gap:8px;padding:0 22px}.birthday-row{background:var(--card);border-radius:var(--radius);padding:14px;border:1px solid var(--rule);display:flex;align-items:center;gap:12px;cursor:pointer;box-shadow:var(--shadow-1)}.birthday-row__info{flex:1 1;margin-left:4px;min-width:0}.birthday-row__name{font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.birthday-row__date{font-size:11px;color:var(--ink-3);margin-top:1px}.birthday-row__actions{display:flex;gap:6px;align-items:center;flex-shrink:0}.birthday-row__cta{background:rgba(26,20,16,.06);color:var(--ink);border:none;padding:8px 14px;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;font-family:var(--font-ui);min-height:0}.birthday-row__cta--soon{background:var(--marigold);color:white}.birthday-row__delete{width:32px;height:32px;min-height:32px;border-radius:999px;border:none;background:transparent;color:var(--ink-3);font-size:18px;font-weight:700;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:0}.birthday-list__notify{margin:22px 22px 0;padding:14px;background:rgba(26,20,16,.04);border-radius:var(--radius);display:flex;align-items:center;gap:12px}.birthday-list__notify-icon{width:36px;height:36px;border-radius:999px;background:var(--paper);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-1);color:var(--ink);flex-shrink:0}.birthday-list__notify-text{flex:1 1}.birthday-list__notify-title{font-size:13px;font-weight:600;color:var(--ink)}.birthday-list__notify-sub{font-size:11px;color:var(--ink-3)}.toggle-switch{position:relative;display:inline-block;width:40px;height:22px;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0;position:absolute}.toggle-switch__slider{position:absolute;cursor:pointer;inset:0;background:rgba(26,20,16,.15);border-radius:999px;transition:.2s}.toggle-switch__slider:before{content:"";position:absolute;height:18px;width:18px;left:2px;top:2px;background:white;border-radius:999px;transition:.2s;box-shadow:0 1px 2px rgba(0,0,0,.25)}.toggle-switch input:checked+.toggle-switch__slider{background:var(--leaf)}.toggle-switch input:checked+.toggle-switch__slider:before{transform:translateX(18px)}.birthday-list__empty{padding:32px 16px;text-align:center;color:var(--ink-3);border:1.5px dashed var(--rule);font-size:14px;display:flex;flex-direction:column;gap:12px;align-items:center}.birthday-form,.birthday-list__empty{margin:0 22px;background:var(--card);border-radius:var(--radius)}.birthday-form{padding:16px;border:1px solid var(--rule);box-shadow:var(--shadow-1)}.birthday-form__title{font-family:var(--font-display);font-size:22px;font-weight:700;margin-bottom:14px;color:var(--ink)}.birthday-form__form{display:flex;flex-direction:column;gap:14px}.birthday-form__label{display:flex;flex-direction:column;gap:4px;font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}.birthday-form__row{display:flex;gap:12px}.birthday-form__row .birthday-form__label{flex:1 1}.birthday-form__actions{display:flex;gap:8px;margin-top:4px}.birthday-form__actions .btn-primary,.birthday-form__actions .btn-secondary{flex:1 1;border-radius:var(--radius-sm)}.save-birthday-prompt{background:var(--card);border:1px solid var(--rule);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:10px;box-shadow:var(--shadow-1)}.save-birthday-prompt__head{display:flex;align-items:center;gap:10px}.save-birthday-prompt__title{font-family:var(--font-display);font-size:16px;font-weight:700;color:var(--ink)}.save-birthday-prompt__sub{font-size:11px;color:var(--ink-3)}.save-birthday-prompt__close{background:transparent;border:none;color:var(--ink-3);cursor:pointer;font-size:18px;padding:4px;min-height:0;width:28px;height:28px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center}.save-birthday-prompt__row{display:flex;gap:8px;align-items:center}.save-birthday-prompt__row .field{flex:1 1}.save-birthday-prompt__row select.field{font-family:var(--font-ui);font-size:14px;border-radius:var(--radius-sm);border:1.5px solid var(--rule);background:var(--paper);padding:10px;min-height:0;height:40px}.save-birthday-prompt__btn{background:var(--marigold);color:#FFF8EE;border:none;padding:10px 16px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;font-family:var(--font-ui);min-height:40px;white-space:nowrap}.language-picker{display:flex;gap:6px;flex-wrap:wrap}.language-picker__pill{background:rgba(26,20,16,.05);color:var(--ink-2);border:none;padding:8px 12px;border-radius:999px;font-size:13px;font-weight:600;font-family:var(--font-ui);cursor:pointer;min-height:36px;display:inline-flex;align-items:center;transition:background .15s ease,color .15s ease}.language-picker__pill[lang=hi]{font-family:var(--font-devanagari),var(--font-ui)}.language-picker__pill[lang=kn],.language-picker__pill[lang=kok],.language-picker__pill[lang=tcy]{font-family:var(--font-kannada),var(--font-ui)}.language-picker__pill--active{background:var(--ink);color:var(--paper)}.upload-screen{padding-top:0;padding-bottom:32px}.upload-screen__inner{padding:8px 22px 0}.upload-screen__buttons{display:flex;flex-direction:column;gap:10px;margin-top:28px}.upload-screen__skip{background:transparent;border:none;color:var(--ink-3);font-size:14px;cursor:pointer;padding:12px;margin-top:8px;text-decoration:underline;text-underline-offset:3px;font-family:var(--font-ui)}.upload-screen__error{color:var(--error)}.upload-screen__error,.upload-screen__loading{font-size:13px;text-align:center;margin-top:12px}.upload-screen__loading{color:var(--ink-3)}.photo-cropper{display:flex;flex-direction:column;align-items:center;gap:12px;width:100%;padding:8px 0 0}.photo-cropper__hint{font-size:13px;color:var(--ink-3);text-align:center}.photo-cropper__viewport{position:relative;overflow:hidden;border-radius:var(--radius);border:2px solid var(--marigold);background:#000;touch-action:none;margin:0 auto;box-shadow:var(--shadow-1)}.photo-cropper__image,.photo-cropper__viewport{-webkit-user-select:none;-moz-user-select:none;user-select:none}.photo-cropper__image{position:absolute;top:50%;left:50%;pointer-events:none}.canvas-preview{width:100%;display:flex;justify-content:center}.canvas-preview canvas{max-width:100%;border-radius:var(--radius);box-shadow:var(--shadow-2)}.tap{transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.tap:active{transform:scale(.97)}