*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg: #F6F1ED;--ink: #241311;--muted: #786D67;--blush: #F2A9B7;--sky: #9DCCF2;--rose: #EA7D92;--cerulean: #61A8E8;--card: #FEFCFA;--border: rgba(36,19,17,.08);--shadow: 0 8px 30px rgba(36,19,17,.06);--shadow-sm: 0 2px 12px rgba(36,19,17,.05);--radius-card: 32px;--radius-btn: 99px}body{font-family:Figtree,-apple-system,sans-serif;background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100dvh;overflow-x:hidden}#root{min-height:100dvh}input,textarea,button,select{font-family:inherit}::-webkit-scrollbar{width:2px}::-webkit-scrollbar-thumb{background:#2413111f;border-radius:99px}.wheel-col::-webkit-scrollbar{display:none;width:0}.serif{font-family:"Instrument Serif",Georgia,serif}.serif-italic{font-family:"Instrument Serif",Georgia,serif;font-style:italic}@keyframes particleDrift{0%{transform:translate(0) scale(1)}33%{transform:translate(12px,-18px) scale(.85)}66%{transform:translate(-8px,10px) scale(.95)}to{transform:translate(6px,-6px) scale(.9)}}@keyframes confettiFall{0%{transform:translate(var(--cx)) translateY(-10px) rotate(var(--r0));opacity:1}85%{opacity:.8}to{transform:translate(calc(var(--cx) + var(--dx))) translateY(110vh) rotate(var(--r1));opacity:0}}@keyframes bloomExpand{0%{transform:scale(.2) translate(-50%,-50%);opacity:0;border-radius:50%}50%{opacity:1}to{transform:scale(6) translate(-50%,-50%);opacity:0;border-radius:50%}}@keyframes ceremonialVibrate{0%,to{transform:translate(0)}15%{transform:translate(-1.5px,.8px)}30%{transform:translate(1.5px,-.8px)}45%{transform:translate(-1px,1.2px)}60%{transform:translate(1px,-.5px)}75%{transform:translate(-.8px,.8px)}90%{transform:translate(.8px,-1px)}}@keyframes tensionShake{0%,to{transform:translate(0) rotate(0)}10%{transform:translate(-2.5px,1.2px) rotate(-.8deg)}25%{transform:translate(2.5px,-1.2px) rotate(.8deg)}40%{transform:translate(-2px,-1.4px) rotate(-.6deg)}55%{transform:translate(2px,1.4px) rotate(.7deg)}70%{transform:translate(-1.6px,1px) rotate(-.5deg)}85%{transform:translate(1.6px,-1px) rotate(.6deg)}}@keyframes previewShake{0%,to{transform:translate(0) rotate(0)}25%{transform:translate(-2px,1px) rotate(-1.4deg)}50%{transform:translate(2px,-1px) rotate(1.4deg)}75%{transform:translate(-1.4px,1px) rotate(-1deg)}}@keyframes ringPulse{0%,to{box-shadow:0 0 #fffaf526}50%{box-shadow:0 0 0 28px #fffaf500}}@keyframes holdBreathe{0%,to{transform:scale(1);box-shadow:0 0 26px #fffaf50f,inset 0 1px 2px #ffffff1f}50%{transform:scale(1.04);box-shadow:0 0 46px #fffaf524,inset 0 1px 2px #ffffff2e}}@keyframes haloSpin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes balloonFloat{0%,to{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-10px) rotate(2deg)}}@keyframes popBurst{0%{transform:translate(0) scale(1) rotate(0);opacity:1}80%{opacity:1}to{transform:translate(var(--tx),var(--ty)) scale(.4) rotate(var(--rot));opacity:0}}@keyframes revealTextIn{0%{opacity:0;transform:translateY(28px) scale(.94);filter:blur(6px)}to{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}}@keyframes flashBloom{0%{transform:translate(-50%,-50%) scale(.15);opacity:.85}55%{opacity:1}to{transform:translate(-50%,-50%) scale(36);opacity:1}}@keyframes chargePulse{0%,to{opacity:.55}50%{opacity:1}}@keyframes barShimmer{0%,to{box-shadow:0 0 #24131100}50%{box-shadow:0 0 10px 1px #24131140}}@keyframes cueBobDown{0%,to{transform:translateY(-5px);opacity:.5}55%{transform:translateY(11px);opacity:1}}@keyframes cueBobUp{0%,to{transform:translateY(5px);opacity:.5}55%{transform:translateY(-11px);opacity:1}}@keyframes cuePulse{0%,to{opacity:.6}50%{opacity:1}}@keyframes toastUp{0%{opacity:0;transform:translate(-50%) translateY(12px)}to{opacity:1;transform:translate(-50%) translateY(0)}}@keyframes fadeBlurIn{0%{opacity:0;filter:blur(12px);transform:translateY(16px)}to{opacity:1;filter:blur(0);transform:translateY(0)}}.animate-fadeBlurIn{animation:fadeBlurIn .55s ease-out both}.reveal-on-scroll{opacity:0;transform:translateY(34px);filter:blur(8px);transition:opacity .8s cubic-bezier(.22,1,.36,1),transform .8s cubic-bezier(.22,1,.36,1),filter .8s cubic-bezier(.22,1,.36,1);will-change:opacity,transform}.reveal-on-scroll.is-visible{opacity:1;transform:translateY(0);filter:blur(0)}@media (prefers-reduced-motion: reduce){.reveal-on-scroll{opacity:1;transform:none;filter:none;transition:none}*,*:before,*:after{animation-duration:.001ms!important;animation-delay:0s!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}.confetti-layer,.floating-particles{display:none!important}.spinner{animation-duration:.7s!important;animation-iteration-count:infinite!important}}.page-shell{max-width:480px;margin:0 auto;min-height:100dvh;position:relative}.page-pad{padding:0 24px 80px}.sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:40;padding:14px 24px calc(14px + env(safe-area-inset-bottom,0px));background:#f6f1eddb;backdrop-filter:saturate(140%) blur(12px);-webkit-backdrop-filter:saturate(140%) blur(12px);box-shadow:0 -12px 32px -18px #503c374d;transition:bottom .18s ease-out}.sticky-cta>.sticky-cta-inner{max-width:480px;margin:0 auto}.card{background:var(--card);border-radius:var(--radius-card);box-shadow:var(--shadow);border:1px solid var(--border)}.card-sm{background:var(--card);border-radius:20px;box-shadow:var(--shadow-sm);border:1px solid var(--border)}.btn-primary{width:100%;background:var(--ink);color:#fff;border:none;border-radius:var(--radius-btn);padding:17px 32px;font-size:17px;font-weight:500;font-family:Figtree,sans-serif;letter-spacing:-.01em;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease,background .2s ease;box-shadow:0 4px 24px #24131138;display:flex;align-items:center;justify-content:center;gap:8px}.btn-primary:hover{transform:scale(1.01);box-shadow:0 6px 28px #24131147}.btn-primary:active{transform:scale(.97);box-shadow:0 2px 10px #24131126}.btn-primary:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.brand-home{font-family:"Instrument Serif",serif;font-size:18px;font-weight:500;letter-spacing:-.02em;color:var(--ink);background:none;border:none;padding:4px 2px;margin:0;cursor:pointer;line-height:1;transition:opacity .15s ease;border-radius:8px}.brand-home:hover{opacity:.6}.brand-home:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.btn-ghost{background:transparent;color:var(--muted);border:none;border-radius:var(--radius-btn);padding:12px 20px;font-size:15px;font-weight:500;cursor:pointer;transition:background .15s,color .15s;font-family:Figtree,sans-serif}.btn-ghost:hover{background:#2413110d;color:var(--ink)}.btn-ghost:active{transform:scale(.97)}.btn-ghost:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.btn-outline{width:100%;background:transparent;color:var(--ink);border:1.5px solid var(--border);border-radius:var(--radius-btn);padding:14px 24px;font-size:15px;font-weight:500;font-family:Figtree,sans-serif;letter-spacing:-.01em;cursor:pointer;transition:transform .15s ease,background .15s ease,border-color .15s ease;display:flex;align-items:center;justify-content:center;gap:8px}.btn-outline:hover{background:#2413110a;border-color:var(--ink)}.btn-outline:active{transform:scale(.97)}.btn-outline:focus-visible{outline:3px solid var(--ink);outline-offset:3px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{display:inline-block;width:16px;height:16px;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;vertical-align:middle;flex-shrink:0}.spinner-lg{width:30px;height:30px;border-width:3px}button:disabled{cursor:default}.inline-error{font-size:13px;color:var(--rose);font-weight:500;line-height:1.5}.input-field{width:100%;background:#2413110a;border:1.5px solid transparent;border-radius:16px;padding:15px 18px;font-size:16px;font-weight:400;color:var(--ink);font-family:Figtree,sans-serif;transition:border-color .2s,background .2s;outline:none}.input-field:focus{border-color:var(--ink);background:#fff}.input-field:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.input-field::placeholder{color:var(--muted)}.note-card{border:1px solid var(--border);border-radius:22px;background:linear-gradient(180deg,#fffdfb,#fbf4f0);box-shadow:var(--shadow-sm);padding:22px 22px 16px;transition:border-color .25s ease,box-shadow .25s ease}.note-card:focus-within{border-color:#ea7d9273;box-shadow:0 12px 36px -10px #ea7d9238}.note-paper{width:100%;background:transparent;border:none;outline:none;resize:none;font-family:"Instrument Serif",Georgia,serif;font-size:19px;line-height:1.7;color:var(--ink);font-style:italic}.note-paper:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.note-paper::placeholder{color:var(--muted);opacity:.65;font-style:italic}.note-sign{font-size:15px;color:var(--muted);white-space:nowrap}.choice-card{border:1.5px solid var(--border);border-radius:var(--radius-card);padding:32px 20px;cursor:pointer;transition:all .25s cubic-bezier(.34,1.26,.64,1);background:var(--card);width:100%;margin:0;font-family:inherit;color:inherit;-webkit-appearance:none;appearance:none}.choice-card:hover{transform:translateY(-2px);box-shadow:0 12px 40px #24131117}.choice-card:active{transform:scale(.98)}.choice-card.sel-pink{border-color:var(--rose);background:#fff5f7;box-shadow:0 8px 30px #ea7d922e}.choice-card.sel-blue{border-color:var(--cerulean);background:#f0f8ff;box-shadow:0 8px 30px #61a8e82e}.choice-card:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.progress-track{height:3px;background:#24131114;border-radius:99px;overflow:hidden}.progress-fill{height:100%;background:var(--ink);border-radius:99px;transition:width .5s cubic-bezier(.4,0,.2,1)}.hold-btn{touch-action:none;-webkit-tap-highlight-color:transparent;user-select:none;-webkit-user-select:none;cursor:pointer}.ritual-row{border:1.5px solid var(--border);border-radius:20px;padding:18px 20px;display:flex;align-items:center;gap:14px;cursor:pointer;transition:border-color .2s,background .2s;width:100%;margin:0;text-align:left;font-family:inherit;color:inherit;background:none;-webkit-appearance:none;appearance:none}.ritual-row.active{border-color:var(--ink);background:#24131108}.ritual-row.locked{opacity:.38;cursor:default}.ritual-row.selectable:hover{border-color:#24131173}.ritual-row:focus-visible{outline:3px solid var(--ink);outline-offset:3px}.keepsake-card{border-radius:var(--radius-card);padding:48px 32px;text-align:center;position:relative;overflow:hidden}.hero-orbs{pointer-events:none}.cloud{will-change:transform;backface-visibility:hidden}.cloud--girl{transform:rotate(-5deg) translateY(-4%);animation:cloudDriftGirl 12s ease-in-out infinite}.cloud--boy{transform:rotate(5deg) translateY(6%);animation:cloudDriftBoy 15s ease-in-out infinite;animation-delay:-5s}@keyframes cloudDriftGirl{0%{transform:rotate(-5deg) translateY(-4%)}22%{transform:rotate(-6.2deg) translate(-.8%,-7.5%)}46%{transform:rotate(-4.3deg) translate(.5%,-1.5%)}70%{transform:rotate(-5.6deg) translate(-.4%,-6%)}to{transform:rotate(-5deg) translateY(-4%)}}@keyframes cloudDriftBoy{0%{transform:rotate(5deg) translateY(6%)}28%{transform:rotate(4deg) translate(.7%,2.5%)}52%{transform:rotate(6.3deg) translate(-.5%,9%)}78%{transform:rotate(4.7deg) translate(.4%,4.5%)}to{transform:rotate(5deg) translateY(6%)}}@media (prefers-reduced-motion: reduce){.cloud--girl,.cloud--boy{animation:none!important}}.no-select{-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}.label-cap{font-size:11px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-family:Figtree,sans-serif}.divider{height:1px;background:var(--border)}
