@import "https://fonts.googleapis.com/css?family=Dancing+Script";
:root{--bg-deep:#121013;--bg-secondary:#1c191e;--gold:#e6be8a;--gold-grad:linear-gradient(45deg, #d4af37, #f1d279, #cf9922);--linen:#faf9f6;--glow-gold:0 0 15px #e6be8a66;--glow-gold-soft:0 0 22px #e6be8a38}html{scrollbar-gutter:stable}.handwriting{font-family:Dancing Script,cursive}#ambient-romance{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}#ambient-romance:before{content:"";filter:blur(10px);opacity:.95;background:radial-gradient(circle at 50% 30%,#e6be8a59,#0000 55%),radial-gradient(circle at 20% 80%,#e6be8a24,#0000 55%),radial-gradient(circle at 80% 75%,#b91c1c1f,#0000 60%),radial-gradient(circle,#0000 55%,#0000002e 100%);animation:14s ease-in-out infinite alternate ambientDrift;position:absolute;inset:-12%}@keyframes ambientDrift{0%{transform:translate(-1.5%,-.8%)scale(1.02)}to{transform:translate(1.5%,.8%)scale(1.05)}}#ambient-romance:after{content:"";filter:blur(1px);opacity:.7;mix-blend-mode:screen;background-image:radial-gradient(circle at 10% 30%,#e6be8a29 0 6px,#0000 7px),radial-gradient(circle at 22% 70%,#f1d27924 0 7px,#0000 8px),radial-gradient(circle at 40% 20%,#ffffff38 0 5px,#0000 6px),radial-gradient(circle at 60% 55%,#e6be8a1f 0 8px,#0000 9px),radial-gradient(circle at 78% 25%,#f1d2791f 0 6px,#0000 7px),radial-gradient(circle at 88% 72%,#ffffff2e 0 7px,#0000 8px);animation:10s ease-in-out infinite alternate bokehFloat;position:absolute;inset:-20%}@keyframes bokehFloat{0%{transform:translate(0,0)scale(1)}to{transform:translateY(-2%)scale(1.03)}}.page1-toolbar{top:max(12px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));z-index:60;pointer-events:auto;justify-content:flex-end;align-items:center;display:flex;position:fixed}.scratch-toolbar{top:max(8px, env(safe-area-inset-top));right:max(12px, env(safe-area-inset-right));position:absolute}.letter-font-controls{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-tap-highlight-color:transparent;background:#121014e0;border:2px solid #e6be8a73;border-radius:999px;align-items:center;gap:6px;padding:6px 10px;display:flex;box-shadow:0 6px 20px #00000059}.letter-font-controls__label{letter-spacing:.12em;text-transform:uppercase;color:#e6be8ae0;white-space:nowrap;padding-right:2px;font-size:.65rem;font-weight:700}.letter-font-controls__btn{color:#e6be8a;cursor:pointer;touch-action:manipulation;background:#1c191ef2;border:2px solid #e6be8a80;border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;margin:0;padding:0;font-family:Quicksand,system-ui,sans-serif;font-size:1.35rem;font-weight:700;line-height:1;display:inline-flex}.letter-font-controls__btn:disabled{opacity:.35;cursor:not-allowed}.letter-font-controls__btn:not(:disabled):active{transform:scale(.96)}#page1.intro-stage{z-index:1;width:100%;max-width:100%;min-height:100dvh;padding:max(72px, calc(env(safe-area-inset-top) + 56px)) 16px max(48px, env(safe-area-inset-bottom));background:radial-gradient(120% 80% at 50% -20%,#e6be8a1f 0%,#121013 38%,#1c191e 72%,#28203059 100%);flex-direction:column;justify-content:center;align-items:center;display:flex;position:relative;overflow:visible}#page1.intro-stage:before,#page1.intro-stage:after{content:"";pointer-events:none;z-index:0;position:absolute;inset:-20%}#page1.intro-stage:before{filter:blur(18px);opacity:.9;background:radial-gradient(closest-side at 20% 20%,#e6be8a38,#0000 60%),radial-gradient(closest-side at 80% 30%,#f1d27933,#0000 62%),radial-gradient(closest-side at 60% 80%,#fecaca4d,#0000 65%);animation:12s ease-in-out infinite alternate page1GlowDrift}@keyframes page1GlowDrift{0%{transform:translate(-1.5%,-1%)scale(1.02)rotate(-1deg)}to{transform:translate(1.5%,1%)scale(1.06)rotate(1deg)}}#page1.intro-stage:after{opacity:.14;mix-blend-mode:overlay;background-image:repeating-linear-gradient(0deg,#ffffff14 0 1px,#0000 1px 3px)}#page1-beams{pointer-events:none;z-index:1;opacity:.55;filter:blur(2px);background:conic-gradient(from 210deg,#ffffff24 0deg,#0000 40deg,#ffffff1a 90deg,#0000 160deg,#ffffff1f 220deg,#0000 360deg);transition:opacity .9s,filter .9s;animation:18s linear infinite beamsRotate;position:absolute;inset:-10%;-webkit-mask-image:radial-gradient(circle,#000 0%,#0000 70%);mask-image:radial-gradient(circle,#000 0%,#0000 70%)}@keyframes beamsRotate{0%{transform:rotate(0)scale(1.05)}to{transform:rotate(360deg)scale(1.05)}}#page1.opened #page1-beams{opacity:.92;filter:blur(1px)saturate(1.2)}#page1-burst{pointer-events:none;z-index:3;opacity:0;filter:blur(6px);mix-blend-mode:screen;position:absolute;inset:-30%}#page1.burst #page1-burst{animation:.9s ease-out glowBurst}@keyframes glowBurst{0%{opacity:0;transform:scale(.86)}35%{opacity:.45;transform:scale(1)}to{opacity:0;transform:scale(1.15)}}#hero-effects{pointer-events:none;z-index:0;position:absolute;inset:0;overflow:hidden}.hero-heart{opacity:0;font-size:1.8rem;animation:10s linear infinite floatUp;position:absolute}.hero-heart:first-child{animation-delay:0s;left:8%}.hero-heart:nth-child(2){animation-delay:2s;left:25%}.hero-heart:nth-child(3){animation-delay:4s;left:45%}.hero-heart:nth-child(4){animation-delay:1s;left:65%}.hero-heart:nth-child(5){animation-delay:3s;left:82%}@keyframes floatUp{0%{opacity:0;transform:translateY(110%)}15%{opacity:.9}70%{opacity:.9}to{opacity:0;transform:translateY(-15%)}}#page1 .ribbon-red{display:none}#page1 #env.envelope{--base:#8b2e3d;--base-light:#c05a6a;--base-dark:#6b2432;--shadow:#4a1822;--letter:#fff5f0;--cp-flap-dur:.5s;--cp-letter-out-dur:.9s;--cp-letter-out-delay:var(--cp-flap-dur);--cp-letter-settle-dur:.7s;--cp-letter-settle-delay:calc(var(--cp-flap-dur) + var(--cp-letter-out-dur));--cp-letter-out-ty:-200px;--cp-letter-settle-ty:-5px;--cp-letter-settle-z:250px;--wax-flap-tip-y:115px;background:linear-gradient(#e8a8b2 .5px, var(--base-light) .5px);perspective:600px;z-index:10;width:300px;height:180px;margin:0 auto;position:relative}#page1 #env.envelope:before{content:"";border-top:115px solid var(--base-light);box-sizing:border-box;z-index:30;transform-origin:top;width:300px;transform-style:preserve-3d;border-left:150px solid #0000;border-right:150px solid #0000;position:absolute;top:0;left:0;transform:rotateX(0)}#page1 #env.envelope:after{content:"";z-index:25;background:linear-gradient(30deg, var(--base-dark) 47%, var(--shadow) 50%, var(--base) 50%) 150px 90px/150px 90px no-repeat, linear-gradient(31deg, var(--base) 49%, var(--shadow) 50%, transparent 50%) 0 0/152px 90px no-repeat, linear-gradient(150deg, var(--base) 50%, var(--shadow) 50%, var(--base-dark) 53%) 0 90px/151px 90px no-repeat, linear-gradient(148.7deg, transparent 50%, var(--shadow) 50%, var(--base) 51%) 150px 0/150px 90px no-repeat;width:300px;height:180px;position:absolute;top:0}#page1 #env.envelope .shadow{background:0 0;border-radius:30%;width:200px;height:1px;position:absolute;top:0;left:0;box-shadow:50px 100px 10px 5px #ffe6e4d9}#page1 #env.envelope .letter{z-index:15;background:var(--letter);width:248px;height:144px;transform-style:preserve-3d;border-radius:2px;justify-content:center;align-items:center;display:flex;position:absolute;top:12px;left:24px;overflow:hidden;transform:translateY(0)translateZ(0);box-shadow:0 1px 7px -2px #4a182273}#page1 #env.envelope .body{width:216px;height:118px;color:var(--base);justify-content:center;align-items:center;display:flex;position:relative}#page1 #env.envelope .body .message{--letter-scale:1;text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:5px;max-width:100%;padding:0 4px;display:flex}#page1 #env.envelope .env-card-to{font-family:Josefin Sans,Quicksand,sans-serif;font-size:calc(clamp(9px, 2.4vw, 11px) * var(--letter-scale,1));letter-spacing:.06em;color:#3a2a22;text-transform:uppercase;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.35em .5em;margin:0;padding-bottom:6px;font-weight:700;display:flex;position:relative}#page1 #env.envelope .env-card-to:after{content:"";opacity:.55;background:linear-gradient(90deg,#e6be8a00 0%,#e6be8abf 20% 80%,#e6be8a00 100%);border-radius:999px;width:min(180px,90%);height:2px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}#page1 #env.envelope .env-card-to-quote{opacity:.75;letter-spacing:0;font-weight:600}#page1 #env.envelope .env-card-recipient{color:#2a1810;text-transform:none;font-weight:700}#page1 #env.envelope .env-card-title{font-family:Josefin Sans,sans-serif;font-size:calc(clamp(16px, 4.2vw, 22px) * var(--letter-scale,1));color:#2a1810;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;max-width:210px;margin:0;font-weight:700;line-height:1.12;display:-webkit-box;overflow:hidden}#page1 #env.envelope .env-card-body{font-family:Quicksand,sans-serif;font-size:calc(clamp(9.5px, 2.4vw, 11.5px) * var(--letter-scale,1));color:#231810eb;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-width:200px;max-height:80px;margin:0;font-weight:500;line-height:1.35;overflow:hidden}#page1 #env.envelope .env-card-body.env-card-body--prompt{color:#e6be8a;text-shadow:0 0 24px #e6be8a40}#page1 #env.envelope .env-card-to.env-card-to--as-title{font-family:Josefin Sans,sans-serif;font-size:calc(clamp(16px, 4.2vw, 22px) * var(--letter-scale,1));letter-spacing:.02em;text-transform:none;gap:.35em .5em;line-height:1.12}#page1 #env.envelope .env-card-to.env-card-to--as-title .env-card-to-prefix,#page1 #env.envelope .env-card-to.env-card-to--as-title .env-card-to-quote{display:none}@keyframes envFlapOpen{0%{transform:rotateX(0)}to{transform:rotateX(180deg)}}@keyframes envLetterOut{0%{z-index:15;transform:translateY(0)translateZ(0)}85%{transform:translateY(calc(var(--cp-letter-out-ty) + 30px)) translateZ(0);z-index:15}to{transform:translateY(var(--cp-letter-out-ty)) translateZ(0);z-index:40}}@keyframes envLetterSettle{0%{transform:translateY(var(--cp-letter-out-ty)) translateZ(0)}70%{transform:translateY(-22px)translateZ(250px)}88%{transform:translateY(-10px)translateZ(250px)}to{transform:translateY(var(--cp-letter-settle-ty)) translateZ(var(--cp-letter-settle-z))}}@keyframes envLetterShadowPop{0%{box-shadow:0 1px 7px -2px #4a182273}70%{box-shadow:0 18px 30px -16px #260e1694,0 0 0 1px #8b2e3d2e}to{box-shadow:0 14px 24px -14px #260e1680,0 0 0 1px #8b2e3d1f}}@keyframes envShadowStretch{0%{width:200px;box-shadow:50px 100px 10px 5px #ffe6e4d9}to{width:450px;box-shadow:-75px 150px 10px 5px #ffe6e4d9}}#page1 #env.envelope.open:before{animation:envFlapOpen var(--cp-flap-dur) ease-out forwards;z-index:10}#page1 #env.envelope.open .letter{animation:envLetterOut var(--cp-letter-out-dur) linear var(--cp-letter-out-delay) forwards, envLetterSettle var(--cp-letter-settle-dur) linear var(--cp-letter-settle-delay) forwards, envLetterShadowPop .52s ease-out var(--cp-letter-settle-delay) forwards}#page1 #env.envelope.open .shadow{animation:envShadowStretch .7s ease-out var(--cp-letter-settle-delay) forwards}#page1 #env.envelope.close .letter,#page1 #env.envelope.close:before{animation:none!important}#page1 #env.envelope .wax-seal{appearance:none;box-sizing:border-box;font:inherit;--wax-size:64px;width:var(--wax-size);height:var(--wax-size);top:calc(var(--wax-flap-tip-y) - var(--wax-size) / 2);cursor:pointer;z-index:35;background:radial-gradient(circle at 30% 30%,#b33939,#8b0000);border:2px solid #a00000;border-radius:48% 52% 50% 50%/51% 48% 52% 49%;justify-content:center;align-items:center;margin:0;padding:0;transition:transform .3s,opacity .45s,visibility .45s;display:flex;position:absolute;left:50%;transform:translate(-50%);box-shadow:2px 2px 5px #0000004d,inset 0 0 10px #00000080}#page1 #env.envelope .wax-seal:hover{transform:translate(-50%)scale(1.1)rotate(5deg)}#page1 #env.envelope .wax-seal:focus-visible{outline-offset:4px;outline:2px solid #f1d279f2}#page1 #env.envelope .wax-seal:after{content:"TAP";letter-spacing:.14em;color:#fff8f0b8;text-shadow:0 1px #00000073,0 -1px #ffffff1f;font-family:Josefin Sans,Quicksand,sans-serif;font-size:clamp(10px,2.6vw,13px);font-weight:800}#page1 #env.envelope.open .wax-seal{opacity:0;visibility:hidden;pointer-events:none;transform:translate(-50%)scale(.65)rotate(-12deg)}#enter-area{opacity:0;z-index:20;pointer-events:none;text-align:center;margin-top:72px;padding-left:16px;padding-right:16px;transition:opacity .8s,transform .8s;transform:translateY(20px)}#enter-area.show{opacity:1;pointer-events:auto;transform:translateY(0)}.editor-enter-area{text-align:center;justify-content:center;margin-top:72px;padding-left:16px;padding-right:16px;display:flex}.neo-brutalism-btn{--nb-bg:#e6be8a;--nb-text:#121013;--nb-bordercolor:#121013;--nb-borderwidth:4px;--nb-shadowcolor:#121013;--nb-shadowoffset:8px;cursor:pointer;-webkit-user-select:none;user-select:none;min-width:max-content;box-shadow:var(--nb-shadowoffset) var(--nb-shadowoffset) 0 0 var(--nb-shadowcolor);letter-spacing:.02em;text-transform:uppercase;border-radius:16px;font-weight:900;display:inline-block;position:relative;transform:translate(0);background-color:var(--nb-bg)!important;color:var(--nb-text)!important;border:var(--nb-borderwidth) solid var(--nb-bordercolor)!important;padding:16px 32px!important;transition:none!important}.neo-brutalism-btn:hover{transform:translate(calc(var(--nb-shadowoffset) * .3), calc(var(--nb-shadowoffset) * .3));box-shadow:calc(var(--nb-shadowoffset) * .7) calc(var(--nb-shadowoffset) * .7) 0 0 var(--nb-shadowcolor)}.neo-brutalism-btn:active{transform:translate(var(--nb-shadowoffset), var(--nb-shadowoffset));box-shadow:none}.enter-btn{white-space:normal;text-align:center;word-break:break-word;justify-content:center;align-items:center;max-width:min(92vw,320px);line-height:1.15;display:inline-flex;position:relative;overflow:hidden}.editor-intro-cta-preview:disabled{cursor:default;opacity:1}.enter-btn:before{content:"";opacity:0;background:radial-gradient(circle at 30%,#ffffff73,#0000 55%);transition:opacity .5s;position:absolute;inset:-60% -40%;transform:translate(-20%)rotate(12deg)}#page1.opened .enter-btn:before,#scratch-container .neo-brutalism-btn.enter-btn:before{opacity:.55;animation:2.2s ease-in-out infinite enterSheen}@keyframes enterSheen{0%{transform:translate(-22%)rotate(12deg)}50%{transform:translate(8%)rotate(12deg)}to{transform:translate(-22%)rotate(12deg)}}#scratch-container{z-index:4000;padding:max(52px, calc(env(safe-area-inset-top) + 40px)) max(16px, env(safe-area-inset-right)) max(32px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));scrollbar-width:thin;scrollbar-color:#e6be8a8c var(--bg-secondary);background:radial-gradient(90% 55% at 50% -5%,#e6be8a17 0%,#0000 55%),linear-gradient(#121013 0% 32%,#1c191e 68%,#16141a 100%);flex-direction:column;justify-content:flex-start;align-items:center;display:flex;position:fixed;inset:0;overflow:hidden auto;box-shadow:inset 0 0 80px #00000073}#scratch-container #scratch-header,#scratch-container #dinner-question,#scratch-container .dinner-question,.dinner-question{color:#e6be8a;text-shadow:0 0 24px #e6be8a40}#dinner-prompt{text-align:center;width:310px;max-width:92vw;margin:0 auto 20px}#dinner-question,.dinner-question{margin:0 0 1.25rem;padding:0 8px;font-size:clamp(1.35rem,4.5vw,1.75rem);line-height:1.25}.scratch-preview-prompt{text-align:center;width:310px;max-width:92vw;margin:0 auto}.scratch-preview-header{color:#e6be8a;text-shadow:0 0 24px #e6be8a40;text-align:center;margin:0 0 .75rem;font-size:clamp(1.35rem,4.5vw,1.75rem);line-height:1.25}.scratch-preview-prompt .dinner-actions{width:310px;max-width:92vw;height:90px;margin:.25rem auto 0;position:relative}.scratch-preview-prompt .dinner-yes-btn,.scratch-preview-prompt .dinner-no-btn{cursor:default;border-radius:50px;padding:12px 28px;font-family:Quicksand,sans-serif;font-size:.95rem;font-weight:800;position:absolute;top:0}.scratch-preview-prompt .dinner-yes-btn{z-index:2;left:0;color:#121013!important;box-shadow:var(--glow-gold), 0 6px 20px #0006!important;background:linear-gradient(45deg,#d4af37,#f1d279,#cf9922)!important;border:none!important}.scratch-preview-prompt .dinner-no-btn{right:0;color:#faf9f6!important;background:0 0!important;border:2px solid #e6be8a!important;box-shadow:0 0 14px #e6be8a33!important}.scratch-preview-prompt button:disabled{opacity:1}.scratch-preview-no-msg{color:#faf9f6b8;width:310px;max-width:92vw;margin:.25rem auto 0;font-size:12px;line-height:1.4}.editor-scratch-progress{color:#faf9f6e0;justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:min(92vw,420px);margin-top:14px;margin-left:auto;margin-right:auto;font-size:12px;display:flex}.editor-scratch-bar{background:#ffffff1a;border-radius:999px;flex:1;height:11px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff1f}.editor-scratch-bar:before{content:"";pointer-events:none;z-index:0;background:linear-gradient(90deg,#0000 0%,#e6be8a26 35%,#f1d27973 50%,#e6be8a26 65%,#0000 100%);border-radius:999px;width:40%;animation:1.15s linear infinite scratchBarSweep;position:absolute;top:0;bottom:0;left:0}.editor-scratch-bar.completed:before{opacity:0;animation:none}.editor-scratch-bar-fill{z-index:1;background:linear-gradient(90deg,#e6be8af2,#f1d279d9);border-radius:999px;width:0%;height:100%;transition:width .22s cubic-bezier(.33,1,.68,1),opacity .14s;position:relative;box-shadow:0 0 18px #e6be8a4d}.editor-scratch-bar.completed .editor-scratch-bar-fill{opacity:1;width:100%}.editor-scratch-hint{color:#faf9f6d1;text-align:center;width:310px;max-width:92vw;margin-top:10px;margin-left:auto;margin-right:auto;font-size:12px}.editor-scratch-card-slot{position:relative}.editor-scratch-reset-btn{z-index:20;letter-spacing:.08em;color:#e6be8af2;cursor:pointer;background:#121013c7;border:2px solid #e6be8a80;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:900;position:absolute;top:10px;right:10px}.editor-scratch-reset-btn:hover{filter:brightness(1.06)}#dinner-actions{width:310px;max-width:92vw;height:90px;margin:0 auto;position:relative}#dinner-yes-btn,#dinner-no-btn{cursor:pointer;border-radius:50px;padding:12px 28px;font-family:Quicksand,sans-serif;font-size:.95rem;font-weight:800;position:absolute;top:0}#dinner-yes-btn{z-index:2;left:0;color:#121013!important;box-shadow:var(--glow-gold), 0 6px 20px #0006!important;background:linear-gradient(45deg,#d4af37,#f1d279,#cf9922)!important;border:none!important}#dinner-yes-btn:hover{filter:brightness(1.06)}#dinner-no-btn{transition:transform .2s;right:0;color:#faf9f6!important;background:0 0!important;border:2px solid #e6be8a!important;box-shadow:0 0 14px #e6be8a33!important}.scratch-no-dialog{z-index:6000;place-items:center;padding:18px;display:grid;position:fixed;inset:0}.scratch-no-dialog__backdrop{-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;background:#0000008c;border:none;position:absolute;inset:0}.scratch-no-dialog__panel{z-index:1;text-align:center;background:#121014eb;border:1px solid #e6be8a4d;border-radius:16px;width:min(420px,92vw);padding:16px 16px 14px;position:relative;box-shadow:0 18px 50px #0000008c,0 0 28px #e6be8a1f}.scratch-no-dialog__text{color:#faf9f6eb;margin:0;font-size:14px;line-height:1.5}.scratch-no-dialog__close{color:#e6be8af2;letter-spacing:.08em;cursor:pointer;background:#1c191ef2;border:2px solid #e6be8a80;border-radius:999px;margin-top:12px;padding:8px 14px;font-weight:900}.scratch-no-dialog__close:hover{filter:brightness(1.08)}.candle-intro{flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:32px 16px 48px;display:flex;position:relative}.candle-scene{flex-direction:column;justify-content:flex-end;align-items:center;gap:18px;width:220px;height:320px;display:flex;position:relative}.candle-scene .pen-candle-container{--pen-bg:#402d35;--pen-candle:#a65a51;--pen-plate:#444;--pen-flame:#ffd678;--pen-glow:#6e4247;--pen-wax:#c77c74;--pen-flame-x:7px;flex:none;width:160px;height:163px;margin-top:38px;margin-left:auto;margin-right:auto;position:relative}.candle-scene .pen-candle{background:var(--pen-candle);z-index:3;border-radius:8px;width:80px;height:140px;margin:0 auto;position:relative}.candle-scene .pen-top{background:#b4685f;border-radius:999px;width:100%;height:18px;position:absolute;top:-4px;overflow:hidden}.candle-scene .pen-top-inner{background:#bc7067;border-radius:999px;width:100%;height:16px;position:absolute;top:4px}.candle-scene .pen-bottom{background:var(--pen-candle);border-radius:999px;width:100%;height:18px;position:absolute;bottom:-4px}.candle-scene .pen-wax-drip{background:var(--pen-wax);border-radius:80% 0 55% 50%/55% 0 80% 50%;width:9px;height:12px;position:absolute;top:10px;left:8px}.candle-scene .pen-falling-wax{background:var(--pen-wax);border-radius:80% 0 55% 50%/55% 0 80% 50%;width:6px;height:6px;animation:11s linear infinite penWaxDrop;position:absolute;top:8px;left:1px;transform:rotate(-45deg)translateY(0)}.candle-scene .pen-wax-droppings{background:var(--pen-wax);border-radius:80% 20% 55% 50%/55% 20% 80% 50%;width:10px;height:10px;position:absolute;bottom:-5px;left:4px}.candle-scene .pen-more-droppings{background:var(--pen-wax);border-radius:80% 30% 55% 50%/55% 30% 80% 50%;width:6px;height:6px;position:absolute;bottom:-2px;left:6px}.candle-scene .pen-wick{z-index:5;background:#111;width:4px;height:15px;position:absolute;top:-8px;left:50%;transform:translate(-50%)}.candle-scene .pen-flame{z-index:6;background:var(--pen-flame);width:18px;height:18px;transform:translateX(-50%) translateX(var(--pen-flame-x)) rotateZ(-45deg);transform-origin:50% 100%;border-radius:80% 0 55% 50%/55% 0 80% 50%;animation:.9s infinite penFlameFlicker;position:absolute;top:-20px;left:50%}.candle-scene .pen-inner-flame{z-index:8;width:10px;height:10px;transform:translateX(-50%) translateX(calc(var(--pen-flame-x) - 8px));opacity:.4;background:#d1835c;border-radius:80% 0 55% 50%/55% 0 80% 50%;position:absolute;bottom:2px;left:50%}.candle-scene .pen-outer-glow{background:var(--pen-glow);opacity:.2;transform-origin:50%;border-radius:999px;width:200px;height:200px;animation:3.6s linear infinite penGlowFlicker;position:absolute;top:-120px;left:-20px}.candle-scene .pen-outer-outer-glow{background:var(--pen-glow);transform-origin:50%;border-radius:999px;width:622px;height:622px;margin-left:-311px;animation:3s linear infinite penGlowFlicker;position:absolute;top:-200px;left:50%}.candle-scene .pen-inner-outer-glow{opacity:1;background:#7a4a51;border-radius:999px;width:70px;height:70px;margin-left:-35px;position:absolute;top:60px;left:50%}.candle-scene .pen-plate{background:var(--pen-plate);z-index:2;border-radius:999px;width:160px;height:40px;position:absolute;bottom:5px}.candle-scene .pen-plate-inner{z-index:2;background:#4f4f4f;border-radius:999px;width:140px;height:25px;margin-left:-70px;position:absolute;bottom:8px;left:50%}.candle-scene .pen-plate-bottom{z-index:1;background:#424242;border-radius:50%;width:130px;height:40px;margin-left:-65px;position:absolute;bottom:3px;left:50%}.candle-scene--extinguished .pen-flame{opacity:0;transform:translateX(-50%) translateX(var(--pen-flame-x)) rotateZ(-45deg) translateY(6px) scale(.6);transition:opacity 90ms,transform .12s;animation:none}.candle-scene--extinguished .pen-outer-glow,.candle-scene--extinguished .pen-outer-outer-glow{opacity:.06;transition:opacity .22s;animation:none}@keyframes penFlameFlicker{0%,to{width:16px;height:17px}25%{width:19px;height:17px}50%{width:17px;height:16px}75%{width:17px;height:19px}}@keyframes penGlowFlicker{0%,to{opacity:.15}50%{opacity:.22;transform:scale(1.02)}}@keyframes penWaxDrop{0%,20%,35%{top:0;transform:rotate(-45deg)}to{top:124px;transform:rotateY(-43deg)}}.candle-glow{filter:blur(2px);opacity:.9;pointer-events:none;background:radial-gradient(circle at 50% 0,#ffe6b48c,#0000 65%),radial-gradient(circle at 50% 30%,#ffbe786b,#0000 70%);margin:auto;animation:3.4s ease-in-out infinite alternate candleGlow;position:absolute;inset:-40px -60px auto}.candle-scene--extinguished .candle-glow{opacity:.12;filter:blur(3px);transition:opacity .26s;animation:none}.candle-body{background:linear-gradient(#f8efe4,#f1debf 40%,#e4c8a0 80%);border-radius:40px 40px 18px 18px;justify-content:center;align-items:flex-start;width:80px;height:150px;padding-top:20px;display:flex;position:relative;box-shadow:0 0 22px #ffd28c8c,0 22px 40px #000000d9}.candle-wax{border-radius:inherit;mix-blend-mode:screen;opacity:.85;background:radial-gradient(circle at 20% 0,#ffffffe6,#0000 55%),radial-gradient(circle at 80% 10%,#fef4e4e6,#0000 60%);position:absolute;inset:0}.candle-wick{z-index:2;background:linear-gradient(#3b2a1a,#120e0b);border-radius:999px;width:3px;height:18px;position:relative}.candle-flame{filter:blur(.5px);transform-origin:50% 100%;background:radial-gradient(circle at 50% 10%,#fff9e8,#ffe5aa4d);border-radius:50%;width:26px;height:50px;margin-left:-13px;animation:1.7s ease-in-out infinite candleFlicker;position:absolute;top:-26px;left:50%;box-shadow:0 0 26px #ffe6b4e6,0 0 60px #ffb45a8c}.candle-scene--extinguished .candle-flame{opacity:0;transition:opacity 90ms,transform .12s;animation:none;transform:translateY(6px)scale(.6)}.candle-flame-core{opacity:.96;background:radial-gradient(circle at 50% 0,#fff,#ffd58f 68%,#0000 100%);border-radius:50% 50% 40% 40%;position:absolute;inset:9px 7px 8px}.candle-smoke{pointer-events:none;opacity:0;filter:blur(.2px);z-index:3;width:80px;height:120px;margin-left:-40px;animation:1.8s ease-out forwards candleSmoke;position:absolute;top:-34px;left:50%}.candle-smoke:before,.candle-smoke:after{content:"";opacity:.8;background:radial-gradient(circle,#f0f0f580,#f0f0f500 70%);border-radius:50%;width:30px;height:30px;margin-left:-15px;position:absolute;top:34px;left:50%}.candle-smoke:after{opacity:.65;width:40px;height:40px;margin-left:-20px;top:52px}.candle-copy{text-align:center;z-index:1;max-width:260px;position:relative}.candle-recipient{letter-spacing:.16em;text-transform:uppercase;color:#faf9f6d9;margin:0 0 4px;font-size:12px}.candle-recipient-name{color:#ffe4b5;font-weight:800}.candle-message{color:#faf9f6e6;margin:0;font-size:14px;line-height:1.6}.candle-overlay{z-index:40;pointer-events:none;position:absolute;inset:0}.candle-finale-dim{z-index:41;pointer-events:none;opacity:.55;background:radial-gradient(circle at 50% 35%,#0000 0%,#00000059 62%,#000000b8 100%);transition:opacity .9s,background .9s;position:absolute;inset:0}.candle-finale-dim--medium{opacity:.78;background:radial-gradient(circle at 50% 40%,#0000 0%,#0000008c 62%,#000000db 100%)}.candle-finale-dim--strong{opacity:.92;background:radial-gradient(circle at 50% 45%,#0000 0%,#000000b8 62%,#000000f0 100%)}.candle-finale-photo{z-index:42;pointer-events:none;box-sizing:border-box;transform-origin:50%;filter:drop-shadow(0 26px 70px #0000008c);width:min(460px,92vw);max-width:min(460px,92vw);transition:left .9s,top .9s,transform .9s,opacity .9s;position:absolute}.candle-finale-photo img{object-fit:cover;border-radius:18px;width:100%;max-width:none;height:100%;max-height:none;display:block}.candle-finale-photo--center{opacity:0;animation:2.4s ease-out forwards candlePhotoBloom;top:50%;left:50%;transform:translate(-50%,-50%)scale(.92)}.candle-finale-photo--belowTitle{opacity:0;animation:2.4s ease-out forwards candlePhotoBloom;top:58%;left:50%;transform:translate(-50%,-50%)scale(1)}.candle-finale-photo--right{opacity:1;animation:none;top:max(12%,56px);left:calc(100% - 22px);transform:translate(-100%)scale(.92)}.candle-finale-photo--right img{max-height:min(34vh,320px)}.candle-finale-message{z-index:43;pointer-events:auto;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);-webkit-overflow-scrolling:touch;background:#00000059;border-radius:16px;width:min(560px,92vw);max-width:min(560px,92vw);max-height:min(34vh,260px);padding:14px 16px;position:absolute;top:calc(58% + clamp(150px,22vh,280px));bottom:auto;left:50%;overflow:auto;transform:translate(-50%)}.candle-finale-message.candle-finale-message--live{scrollbar-gutter:stable;max-height:calc(28px + 4.95em);font-size:1rem;line-height:1.65;overflow:hidden scroll}.candle-finale-message.candle-finale-message--live p{line-height:inherit;margin:0}.candle-finale-message-stack{left:50%;bottom:max(12px, env(safe-area-inset-bottom));z-index:43;pointer-events:auto;flex-direction:column;align-items:stretch;gap:.75rem;width:min(560px,92vw);display:flex;position:absolute;transform:translate(-50%)}.candle-finale-message-stack .candle-finale-message{width:100%;max-width:none;max-height:min(32vh,240px);position:relative;top:auto;bottom:auto;left:auto;transform:none}.candle-finale-edit-cta{justify-content:center;display:flex}.candle-birthday-card-shell{pointer-events:auto;flex-direction:column;justify-content:center;align-items:center;gap:14px;width:min(960px,96vw);display:flex}.candle-birthday-card-shell.candle-birthday-card-shell--enter #card{animation:1.2s ease-out forwards birthdayCardEnter}@keyframes birthdayCardEnter{0%{opacity:0;filter:blur(6px);transform:translateY(18px)scale(.98)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}.candle-birthday-card-shell.candle-birthday-card-shell--preview{place-items:center;width:100%;max-width:100%;height:100%;display:grid}.candle-birthday-card-shell.candle-birthday-card-shell--preview #card{width:960px;max-width:960px;transform:scale(var(--preview-card-scale,.62));transform-origin:50%}.candle-birthday-card-shell.candle-birthday-card-shell--preview #card,.candle-birthday-card-shell.candle-birthday-card-shell--preview #card-front,.candle-birthday-card-shell.candle-birthday-card-shell--preview #card-inside{height:480px}.candle-birthday-card-shell.candle-birthday-card-shell--preview #card h1{font-size:80px}.candle-birthday-card-shell.candle-birthday-card-shell--preview #card-front button{bottom:10px;right:10px}@media (max-width:420px){.candle-birthday-card-shell.candle-birthday-card-shell--preview #card h1{font-size:86px}}.candle-birthday-card-shell.candle-birthday-card-shell--preview{--birthday-card-max-lines:16}.candle-finale-edit-cta.candle-finale-edit-cta--below-card{margin-top:6px}.candle-birthday-card-shell #card{--birthday-card-height:480px;width:480px;max-width:480px;transform-style:preserve-3d;-moz-transform-style:preserve-3d;-webkit-transform-style:preserve-3d;perspective:5000px;margin:0 auto;position:relative}.candle-birthday-card-shell .candle-envelope{z-index:2;--envelope-flip-square:calc(100% / 1.41421);--envelope-side-square:calc(100% * .4896);width:550px;height:366.667px;transform-style:preserve-3d;transform-origin:50%;will-change:transform;color:var(--linen,#faf9f6);margin-inline:auto;font-family:Allan,system-ui,sans-serif;transition:transform 1s;position:relative}.candle-birthday-card-shell .candle-envelope.new,.candle-birthday-card-shell .candle-envelope.open,.candle-birthday-card-shell .candle-envelope.send{transition:none}.candle-birthday-card-shell .candle-envelope .front,.candle-birthday-card-shell .candle-envelope .back{background:radial-gradient(120% 90% at 30% 20%,#e6be8a38,#fffaf500 60%),radial-gradient(140% 90% at 70% 80%,#b91c1c0f,#fffaf500 62%),linear-gradient(#fffaf5,#f5ece4);border:1px solid #e6be8a47;border-radius:10px;width:100%;height:100%;position:absolute;box-shadow:0 16px 48px #0000008c,0 0 26px #e6be8a1f}.candle-birthday-card-shell .candle-envelope .front{backface-visibility:hidden;cursor:pointer;appearance:none;background:0 0;border:none;place-items:end center;margin:0;padding:0;display:grid;position:relative;overflow:hidden}.candle-birthday-card-shell .candle-envelope .candle-envelope-front-photo{z-index:0;opacity:.62;filter:saturate(1.05)contrast(1.02);position:absolute;inset:0}.candle-birthday-card-shell .candle-envelope .candle-envelope-front-photo:after{content:"";background:radial-gradient(circle at 50% 35%,#ffffff2e,#fff0 70%),linear-gradient(#fffaf547,#f5ece4eb);position:absolute;inset:0}.candle-birthday-card-shell .candle-envelope .candle-envelope-front-photo img{object-fit:contain;width:100%;height:100%;display:block}.candle-birthday-card-shell .candle-envelope .candle-envelope-front-photo:before{content:"";background-image:var(--envelope-front-photo,none);filter:blur(18px)saturate(1.15);opacity:.55;background-position:50%;background-size:cover;position:absolute;inset:0;transform:scale(1.08)}.candle-birthday-card-shell .candle-envelope .candle-envelope-front-photo img{z-index:1;position:relative}.candle-birthday-card-shell .candle-envelope .front:focus-visible{outline-offset:4px;outline:2px solid #f1d279f2}.candle-birthday-card-shell .candle-envelope .front .mail{text-align:center;z-index:1;backface-visibility:hidden;background:linear-gradient(#fffaf500 0%,#fffaf5b8 45%,#f5ece4eb 100%);width:100%;padding:18px 20px 22px;position:relative;transform:translateZ(0)}.candle-birthday-card-shell .candle-envelope.open .front .mail,.candle-birthday-card-shell .candle-envelope.send .front .mail{opacity:0}.candle-birthday-card-shell .candle-envelope .front .mail p{margin:0;font-weight:800}.candle-birthday-card-shell .candle-envelope .front .mail p:first-child{color:var(--gold,#e6be8a);text-shadow:0 2px 18px #0000008c,0 0 26px #e6be8a2e;font-size:clamp(28px,4.8vw,50px);line-height:1.05}.candle-birthday-card-shell .candle-envelope .front .mail p:last-child{color:#1f1f1fd1;opacity:1;margin-top:8px;font-size:clamp(16px,3.2vw,30px)}.candle-birthday-card-shell .candle-envelope .back{transform:rotateY(180deg)translateZ(1px)}.candle-birthday-card-shell .candle-envelope .back .flip{width:100%;height:100%;position:absolute;overflow:hidden}.candle-birthday-card-shell .candle-envelope .back .flip:before{content:"";background:radial-gradient(circle at 30% 25%,#e6be8a2e,#fffaf500 60%),linear-gradient(#fffaf5,#f5ece4);position:absolute;box-shadow:0 0 100px #e6be8a29}.candle-birthday-card-shell .candle-envelope .back .top-flip:before,.candle-birthday-card-shell .candle-envelope .back .bottom-flip:before{width:var(--envelope-flip-square);height:var(--envelope-flip-square)}.candle-birthday-card-shell .candle-envelope .back .top-flip{z-index:5;transform-origin:top}.candle-birthday-card-shell .candle-envelope .back .top-flip:before{transform-origin:0 0;border-top-left-radius:10px;border-bottom-right-radius:10px;border-bottom-left-radius:50px;transform:rotate(-45deg)}.candle-birthday-card-shell .candle-envelope .back .bottom-flip{z-index:4}.candle-birthday-card-shell .candle-envelope .back .bottom-flip:before{transform-origin:0 100%;border-top-left-radius:100px;border-top-right-radius:10px;border-bottom-left-radius:10px;transform:rotate(45deg)translate(-15px,-15px)}.candle-birthday-card-shell .candle-envelope .back .left-flip:before,.candle-birthday-card-shell .candle-envelope .back .right-flip:before{width:var(--envelope-side-square);height:var(--envelope-side-square);top:-5px}.candle-birthday-card-shell .candle-envelope .back .left-flip{z-index:3}.candle-birthday-card-shell .candle-envelope .back .left-flip:before{transform-origin:0 0;border-top-left-radius:20px;border-top-right-radius:5px;border-bottom-right-radius:30px;transform:rotate(45deg)}.candle-birthday-card-shell .candle-envelope .back .right-flip{z-index:2}.candle-birthday-card-shell .candle-envelope .back .right-flip:before{transform-origin:100% 0;border-top-left-radius:5px;border-top-right-radius:20px;border-bottom-left-radius:30px;right:0;transform:rotate(-45deg)}.candle-birthday-card-shell .candle-envelope .back .letter{z-index:1;box-sizing:border-box;background:radial-gradient(120% 90% at 30% 20%,#e6be8a29,#fffaf500 60%),linear-gradient(#fffaf5,#f5ece4);border-radius:10px;width:calc(100% - 20px);height:calc(100% - 20px);padding:14px 18px;position:absolute;top:10px;left:10px;overflow:hidden;box-shadow:inset 0 0 0 1px #e6be8a2e,0 18px 60px #0000003d}.candle-birthday-card-shell .candle-envelope .candle-envelope-letter-text{--letter-line-height:30px;background-attachment:local;background-image:repeating-linear-gradient(to bottom, #e6be8a00 0, #e6be8a00 calc(var(--letter-line-height) - 1px), #e6be8a47 calc(var(--letter-line-height) - 1px), #e6be8a47 var(--letter-line-height));scrollbar-width:thin;scrollbar-color:#e6be8acc #1210141f;border-radius:12px;max-height:100%;padding-top:6px;padding-bottom:6px;padding-right:4px;display:block;overflow:auto}.candle-birthday-card-shell .candle-envelope .candle-envelope-letter-text::-webkit-scrollbar{width:10px}.candle-birthday-card-shell .candle-envelope .candle-envelope-letter-text::-webkit-scrollbar-track{background:#12101414;border-radius:999px;box-shadow:inset 0 0 0 1px #e6be8a1f}.candle-birthday-card-shell .candle-envelope .candle-envelope-letter-text::-webkit-scrollbar-thumb{background:linear-gradient(#e6be8aeb,#f1d279c7);border:2px solid #fffaf5b3;border-radius:999px;box-shadow:0 0 14px #e6be8a38}.candle-birthday-card-shell .candle-envelope .candle-envelope-letter-text::-webkit-scrollbar-thumb:hover{filter:brightness(1.08)}.candle-birthday-card-shell .candle-envelope .candle-envelope-letter-text::-webkit-scrollbar-corner{background:0 0}.candle-birthday-card-shell .candle-envelope .candle-envelope-letter-paragraph{font-size:clamp(13px,2.2vw,18px);line-height:var(--letter-line-height);letter-spacing:.02em;color:#3a1e1ce0;font-family:var(--font-dancing-script), "Dancing Script", cursive;white-space:pre-wrap;margin:0;font-weight:700}.candle-birthday-card-shell .candle-envelope .candle-envelope-close{z-index:10;background:var(--gold,#e6be8a);color:var(--bg-deep,#121013);cursor:pointer;border:none;border-radius:10px;padding:.45em .6em;font-family:Nobile,sans-serif;font-size:1.3em;font-style:italic;font-weight:800;position:absolute;bottom:12px;right:12px;box-shadow:2px 2px 3px #00000040}.candle-birthday-card-shell .candle-envelope .candle-envelope-reverse{z-index:10;background:var(--gold,#e6be8a);color:var(--bg-deep,#121013);cursor:pointer;border:none;border-radius:10px;padding:.45em .6em;font-family:Nobile,sans-serif;font-size:1.3em;font-style:italic;font-weight:800;position:absolute;top:12px;right:12px;box-shadow:2px 2px 3px #00000040}.candle-birthday-card-shell .candle-envelope:not(.open) .candle-envelope-reverse,.candle-birthday-card-shell .candle-envelope.send .candle-envelope-reverse{display:none}.candle-birthday-card-shell .candle-envelope .candle-envelope-reset{z-index:10;color:#e6be8af2;cursor:pointer;background:#121014b3;border:1px solid #e6be8a59;border-radius:10px;padding:.45em .6em;font-family:Nobile,sans-serif;font-size:1.1em;font-style:italic;font-weight:800;position:absolute;bottom:12px;left:12px;box-shadow:2px 2px 3px #00000040}.candle-birthday-card-shell .candle-envelope .candle-envelope-reset:hover,.candle-birthday-card-shell .candle-envelope .candle-envelope-reset:focus-visible{filter:brightness(1.08);outline:none}.candle-birthday-card-shell .candle-envelope.new{animation:1s forwards candleEnvelopeNew}.candle-birthday-card-shell .candle-envelope.open{animation:3s forwards candleEnvelopeOpen}.candle-birthday-card-shell .candle-envelope.open .back .top-flip{animation:1s 1s forwards candleEnvelopeFlipOpen}.candle-birthday-card-shell .candle-envelope.open .back .letter{animation:1s 2s forwards candleEnvelopeLetterOut}.candle-birthday-card-shell .candle-envelope.send{animation:4s forwards candleEnvelopeSend}.candle-birthday-card-shell .candle-envelope.send .back .top-flip{z-index:-1;animation:1s 1s forwards candleEnvelopeFlipClose;transform:rotateX(-180deg)}.candle-birthday-card-shell .candle-envelope.send .back .letter{animation:1s forwards candleEnvelopeLetterIn}@keyframes candleEnvelopeNew{0%{transform:translate(-110%)}to{transform:translate(0,0)}}@keyframes candleEnvelopeOpen{0%{transform:translate(0,0)rotateY(0)}33.333%{transform:translate(0,0)rotateY(-180deg)}66.666%{transform:translate(0,0)rotateY(-180deg)}to{transform:translate(0,0)rotateY(-180deg)}}@keyframes candleEnvelopeFlipOpen{0%{z-index:5;transform:rotateX(0)}50%{z-index:5;transform:rotateX(0)}to{z-index:-1;transform:rotateX(-180deg)}}@keyframes candleEnvelopeLetterOut{0%{transform:translate(0,0)}to{transform:translate3d(0, var(--envelope-letter-out-y,-110%), 0)}}@keyframes candleEnvelopeSend{0%{transform:translate(0,0)rotateY(-180deg)}25%{transform:translate(0,0)rotateY(-180deg)}75%{transform:translate(0,0)rotateY(0)}to{transform:translate(0,0)rotateY(0)}}@keyframes candleEnvelopeFlipClose{0%{z-index:-1;transform:rotateX(-180deg)}50%{z-index:5;transform:rotateX(0)}to{z-index:5;transform:rotateX(0)}}@keyframes candleEnvelopeLetterIn{0%{transform:translate3d(0, var(--envelope-letter-out-y,-110%), 0)}to{transform:translate(0,0)}}.candle-birthday-card-shell.candle-birthday-card-shell--preview .candle-envelope{transform-origin:50%;transform:none}@media (max-width:640px){.candle-birthday-card-shell .candle-envelope{width:min(92vw,550px);height:calc(min(92vw,550px)/1.49993)}}@media (max-width:520px){.candle-birthday-card-shell .candle-envelope{--envelope-letter-out-y:-92%;width:92vw;height:61.3364vw;margin-inline:0;left:50%;translate:-50%}.candle-birthday-card-shell .candle-envelope .front .mail{padding:14px 14px 18px}.candle-birthday-card-shell .candle-envelope .back .letter{border-radius:12px;width:calc(100% - 16px);height:calc(100% - 16px);padding:12px;top:8px;left:8px}.candle-birthday-card-shell .candle-envelope .candle-envelope-letter-text{--letter-line-height:26px;padding-right:2px}.candle-birthday-card-shell .candle-envelope .candle-envelope-letter-paragraph{letter-spacing:.01em;font-size:clamp(12px,3.2vw,16px)}.candle-birthday-card-shell .candle-envelope .candle-envelope-reverse,.candle-birthday-card-shell .candle-envelope .candle-envelope-close{padding:.4em .55em;font-size:1.1em;top:10px;right:10px}.candle-birthday-card-shell .candle-envelope .candle-envelope-reset{padding:.4em .55em;font-size:1em;bottom:10px;left:10px}}.candle-birthday-card-shell #card,.candle-birthday-card-shell #card-front,.candle-birthday-card-shell #card-inside{height:var(--birthday-card-height)}.candle-birthday-card-shell #card-front,.candle-birthday-card-shell #card-inside{width:100%;height:100%;position:absolute;top:0;left:0;box-shadow:2px 2px 30px #00000040,0 0 1px #00000080}.candle-birthday-card-shell #card-inside{z-index:1;background:#ffefef}.candle-birthday-card-shell #card-front{z-index:2;transform:translateZ(1px)}.candle-birthday-card-shell #card:not(.open-half):not(.open-fully):not(.close-half) #card-inside{display:none}.candle-birthday-card-shell #card.open-half #card-front,.candle-birthday-card-shell #card.open-fully #card-front,.candle-birthday-card-shell #card.close-half #card-front{height:var(--birthday-card-height);top:0}.candle-birthday-card-shell #card.open-half #card-inside,.candle-birthday-card-shell #card.open-fully #card-inside,.candle-birthday-card-shell #card.close-half #card-inside{height:var(--birthday-card-height);top:var(--birthday-card-height);display:block}.candle-birthday-card-shell #card.open-half,.candle-birthday-card-shell #card.open-fully,.candle-birthday-card-shell #card.close-half{height:calc(var(--birthday-card-height) * 2)}.candle-birthday-card-shell:not(.candle-birthday-card-shell--preview) #card.open-half,.candle-birthday-card-shell:not(.candle-birthday-card-shell--preview) #card.open-fully,.candle-birthday-card-shell:not(.candle-birthday-card-shell--preview) #card.close-half{position:relative;top:50%;transform:translateY(-50%)}.candle-birthday-card-shell #card.open-half:after,.candle-birthday-card-shell #card.open-fully:after,.candle-birthday-card-shell #card.close-half:after{content:"";left:0;right:0;top:var(--birthday-card-height);opacity:.95;pointer-events:none;z-index:5;background:linear-gradient(90deg,#0000 0%,#0000002e 20%,#00000057 50%,#0000002e 80%,#0000 100%);height:2px;position:absolute;box-shadow:0 1px #ffffff59,0 -8px 16px #00000014}.candle-birthday-card-shell .wrap{box-sizing:border-box;height:100%;padding:1.5em 2.5em}.candle-birthday-card-shell #card-front{color:#ffdfdf;background-color:var(--bg-secondary,#1c191e);background-image:linear-gradient(top, #1c191efa 0%, #121013fa 100%);transform-origin:top;transition:transform .9s cubic-bezier(.2,.8,.2,1);-moz-transition:-moz-transform .9s cubic-bezier(.2,.8,.2,1);transform-style:preserve-3d;-moz-transform-style:preserve-3d;-webkit-transform-style:preserve-3d;backface-visibility:visible;background-image:-moz-linear-gradient(#121013fa 0%,#1c191efa 100%);background-image:-webkit-linear-gradient(#121013fa 0%,#1c191efa 100%);-webkit-transition:-webkit-transform .9s cubic-bezier(.2,.8,.2,1);position:relative}.candle-birthday-card-shell #card-front .wrap{z-index:2;position:relative}.candle-birthday-card-shell #card h1{text-align:center;text-shadow:4px 4px #0000008c,0 0 18px #e6be8a40,0 0 42px #e6be8a2e;color:var(--gold,#e6be8a);margin:0;font-family:Nobile;font-size:70px;font-style:italic}.candle-birthday-card-shell #card-front .wrap{transition:background 1s linear}.candle-birthday-card-shell #card-front #open,.candle-birthday-card-shell #card-front #close{background:var(--gold,#e6be8a);color:var(--bg-deep,#121013);cursor:pointer;z-index:10;border:none;padding:.5em;font-family:Nobile,sans-serif;font-size:1.5em;font-style:italic;font-weight:700;position:absolute;bottom:1em;right:12px;box-shadow:2px 2px 3px #00000040,0 0 1px #0006}.candle-birthday-card-shell #card-front #open:hover,.candle-birthday-card-shell #card-front #open:focus-visible,.candle-birthday-card-shell #card-front #close:hover,.candle-birthday-card-shell #card-front #close:focus-visible{filter:brightness(1.05)}.candle-birthday-card-shell #card:not(.open-half):not(.open-fully):not(.close-half) #card-front #close,.candle-birthday-card-shell #card.open-half #card-front #open,.candle-birthday-card-shell #card.open-fully #card-front #open,.candle-birthday-card-shell #card.close-half #card-front #open,.candle-birthday-card-shell #card.open-fully #open{display:none}.candle-birthday-card-shell #card.open-half #card-front,.candle-birthday-card-shell #card.close-half #card-front{transform:rotateX(90deg)}.candle-birthday-card-shell #card.open-half #card-front .wrap{background-color:#00000080}.candle-birthday-card-shell #card.close-half #card-front{z-index:2;pointer-events:auto;opacity:1}.candle-birthday-card-shell #card.open-fully #card-front,.candle-birthday-card-shell #card.close-half #card-front{background:#ffefef}.candle-birthday-card-shell #card.open-fully #card-front{transform:rotateX(180deg)}.candle-birthday-card-shell #card.open-fully #card-front .wrap{background-color:#0000}.candle-birthday-card-shell #card.open-fully #card-front .wrap *,.candle-birthday-card-shell #card.close-half #card-front .wrap *{display:none}.candle-birthday-card-shell .birthday-card-inside-grid{grid-template-rows:58% 42%;gap:.75em;display:grid}.candle-birthday-card-shell .birthday-card-photo-top{background:#0c0a0e0f;border-radius:10px;overflow:hidden;box-shadow:inset 0 0 0 1px #0000000f}.candle-birthday-card-shell .birthday-card-photo-top img{object-fit:contain;width:100%;height:100%;display:block}.candle-birthday-card-shell #card-inside .wrap{position:relative;box-shadow:inset 2px 0 1px #0000000d}.birthday-card-message{color:#331717;height:100%;font-family:Nobile;font-size:1.05rem;font-style:italic;line-height:1.55;overflow:auto}.birthday-card-message-text{white-space:pre-wrap;margin:0;overflow:visible}@media (max-width:520px),(max-height:740px){.candle-finale-message{top:auto;bottom:max(12px, env(safe-area-inset-bottom));scrollbar-gutter:stable;max-height:calc(28px + 4.95em);line-height:1.65;overflow:hidden scroll}.candle-finale-message.candle-finale-message--live{max-height:calc(28px + 4.95em)}.candle-finale-message-stack .candle-finale-message{scrollbar-gutter:stable;max-height:calc(28px + 4.95em);top:auto;bottom:auto;overflow-y:scroll}.candle-finale-layout .candle-finale-message{top:auto;bottom:auto}.candle-finale-layout .candle-finale-photo{--finale-photo-max-w:min(520px, 96vw);--finale-photo-max-h:min(38vh, 380px)}.birthday-card{height:min(440px,62vh)}.birthday-card-wrap{padding:1.2em}.birthday-card-inside-grid{grid-template-rows:auto 1fr;grid-template-columns:1fr}.candle-birthday-card-shell #card{width:96vw;max-width:96vw}}@media (max-width:768px){.candle-birthday-card-shell{width:100%}.candle-birthday-card-shell #card{--birthday-card-height:min(480px, 62vh);width:92vw;max-width:92vw}.candle-birthday-card-shell #card,.candle-birthday-card-shell #card-front,.candle-birthday-card-shell #card-inside{height:var(--birthday-card-height)}.candle-birthday-card-shell .wrap{padding:1.1em 1.4em}.candle-birthday-card-shell #card h1{font-size:clamp(34px,8vw,54px)}.candle-birthday-card-shell #card-front button{padding:.45em;font-size:1.25em;right:-10px}}.candle-sky-title{z-index:45;pointer-events:none;text-align:center;animation:.7s ease-in-out 3.2s forwards candleSkyTitleLiftContainer;position:absolute;top:34%;left:50%;transform:translate(-50%,-50%)}.candle-sky-title:before{content:"";filter:blur(10px);opacity:.9;z-index:-1;background:radial-gradient(circle,#0000006b,#0000 70%),linear-gradient(#00000038,#00000014);border-radius:999px;width:calc(100% + 28px);height:calc(100% + 18px);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.candle-sky-title__text,.candle-sky-title__glow{font-family:var(--font-dancing-script), "Segoe Script", "Brush Script MT", cursive;white-space:nowrap;font-size:clamp(22px,5.2vw,48px);font-weight:700}.candle-sky-title__word{display:inline-block}.candle-sky-title__word--happy{letter-spacing:.02em;text-transform:none}.candle-sky-title__word--birthday{font-family:inherit;font-weight:inherit;letter-spacing:.02em;text-transform:none}.candle-sky-title__text{color:#faf9f6eb;opacity:0;text-shadow:0 0 10px #ffffff40,0 0 22px #b9d7ff2e;animation:1.2s ease-out forwards candleSkyTitleIn,2.2s ease-in-out 1.2s infinite candleSkyTitleTwinkle}.candle-sky-title__glow{color:#b9d7ff38;filter:blur(10px);opacity:0;animation:1.2s ease-out forwards candleSkyTitleIn;position:absolute;inset:0}@keyframes candleSkyTitleIn{0%{opacity:0;filter:blur(14px);transform:translateY(10px)scale(.98)}60%{opacity:1;filter:blur(8px);transform:translateY(0)scale(1)}to{opacity:1;filter:blur();transform:translateY(0)scale(1)}}@keyframes candleSkyTitleTwinkle{0%,to{opacity:.92}40%{opacity:.78}65%{opacity:.98}}@keyframes candleSkyTitleLiftContainer{0%{transform:translate(-50%,-50%)}to{transform:translate(-50%,-50%)translateY(-70px)}}@keyframes candlePhotoBloom{0%{opacity:0;filter:drop-shadow(0 18px 40px #00000059)blur(1px);transform:translate(-50%,-50%)scale(.78)}55%{opacity:1;filter:drop-shadow(0 30px 90px #0000008c)blur();transform:translate(-50%,-50%)scale(1.02)}to{opacity:1;filter:drop-shadow(0 26px 70px #0000008c)blur();transform:translate(-50%,-50%)scale(1)}}.candle-finale-layout{z-index:42;padding:max(10px, env(safe-area-inset-top)) max(12px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(12px, env(safe-area-inset-left));box-sizing:border-box;pointer-events:none;flex-direction:column;justify-content:flex-start;align-items:stretch;display:flex;position:absolute;inset:0}.candle-finale-layout.candle-finale-layout--interactive,.editor-preview-frame--scratch .candle-finale-layout{pointer-events:auto}.candle-finale-layout__head{flex:none;justify-content:center;align-items:flex-end;width:100%;padding-top:max(11vh,56px);display:flex}.candle-finale-layout__middle{flex:1 1 0;justify-content:center;align-items:center;width:100%;min-height:0;padding:6px 0;display:flex}.candle-finale-layout__foot{flex-direction:column;flex:none;justify-content:flex-end;align-items:center;width:100%;padding-bottom:2px;display:flex}.candle-finale-layout__foot .candle-finale-message,.candle-finale-layout__foot .candle-finale-message-stack{pointer-events:auto}.candle-finale-layout .candle-sky-title{animation:.7s ease-in-out 3.2s forwards candleSkyTitleLiftFinale;position:relative;top:auto;left:auto;transform:none}@keyframes candleSkyTitleLiftFinale{0%{transform:translateY(0)}to{transform:translateY(-36px)}}.candle-finale-layout .candle-finale-photo{--finale-photo-max-w:min(540px, 94vw);--finale-photo-max-h:min(46vh, 460px);width:auto;max-width:var(--finale-photo-max-w);max-height:var(--finale-photo-max-h);box-sizing:border-box;height:auto;margin:0 auto;position:relative;top:auto;left:auto}.candle-finale-layout .candle-finale-photo--belowTitle{opacity:0;flex:0 auto;animation:2.4s ease-out forwards candlePhotoBloomStacked;transform:none}.candle-finale-layout .candle-finale-photo img{width:auto;height:auto;max-width:var(--finale-photo-max-w,min(540px, 94vw));max-height:var(--finale-photo-max-h,min(46vh, 460px));object-fit:contain;display:block}@keyframes candlePhotoBloomStacked{0%{opacity:0;filter:drop-shadow(0 18px 40px #00000059)blur(1px);transform:scale(.78)}55%{opacity:1;filter:drop-shadow(0 30px 90px #0000008c)blur();transform:scale(1.02)}to{opacity:1;filter:drop-shadow(0 26px 70px #0000008c)blur();transform:scale(1)}}.candle-finale-layout .candle-finale-message{margin-top:6px;position:relative;top:auto;bottom:auto;left:auto;transform:none}.candle-finale-layout .candle-finale-message-stack{width:min(560px,92vw);margin-top:6px;position:relative;bottom:auto;left:auto;transform:none}.candle-overlay--black{background:#050507;animation:.35s ease-out forwards candleFadeIn}.candle-editor-cta{z-index:50;pointer-events:auto;position:absolute;bottom:24px;left:50%;transform:translate(-50%)}.fireworks-canvas{width:100%;height:100%;display:block;position:absolute;inset:0}.codepen-fireworks{z-index:40;pointer-events:none;position:absolute;inset:0}.codepen-fireworks__trails,.codepen-fireworks__main{mix-blend-mode:lighten;width:100%;height:100%;display:block;position:absolute;inset:0;transform:translateZ(0)}.candle-bass-pulse{z-index:41;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(circle at 50% 40%,#ffdcaa24,#0000 58%);transition:opacity 80ms linear;position:absolute;inset:0}@keyframes candleGlow{0%{opacity:.8;transform:translateY(0)scale(1)}50%{opacity:.95;transform:translateY(-2px)scale(1.03)}to{opacity:.82;transform:translateY(1px)scale(.99)}}@keyframes candleFlicker{0%{transform:translate(0)scale(1)}25%{transform:translate(-1px)scale(.97,1.05)}50%{transform:translate(1px)scale(1.03,.95)}75%{transform:translate(-.5px)scale(.98,1.03)}to{transform:translate(.5px)scale(1.02,.98)}}@keyframes candleSmoke{0%{opacity:0;transform:translateY(0)scale(.85)}12%{opacity:.95}to{opacity:0;transform:translateY(-42px)scale(1.25)}}@keyframes candleFadeIn{0%{opacity:0}to{opacity:1}}.scratch-card{background:#1c191ef0;border:1px solid #e6be8a2e;border-radius:15px;flex-direction:column;flex-shrink:0;width:100%;max-width:min(92vw,420px);height:auto;margin-left:auto;margin-right:auto;padding:10px;display:flex;overflow:visible;box-shadow:0 0 28px #e6be8a38,0 8px 16px #00000059,0 20px 48px #0000008c}.scratch-card-media{--scratch-frame-pad:6px;border-radius:14px;flex:none;width:100%;max-width:100%;max-height:none;margin:0;position:relative;overflow:visible;box-shadow:inset 0 1px #ffffff14,0 12px 30px #0000006b}.scratch-card-media:before{content:"";border-radius:inherit;pointer-events:none;z-index:2;-webkit-mask-composite:xor;background:linear-gradient(110deg,#fff8dc1f 0%,#e6be8af2 12%,#c78f3ae6 28%,#ffecb4eb 40%,#a77021eb 58%,#f1d279f2 72%,#fff9e82e 100%);padding:2px;position:absolute;inset:0;box-shadow:inset 0 0 0 1px #00000059,0 0 0 1px #fff5d214;-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-position:0 0,0 0;mask-position:0 0,0 0;-webkit-mask-size:auto,auto;mask-size:auto,auto;-webkit-mask-repeat:repeat,repeat;mask-repeat:repeat,repeat;-webkit-mask-clip:content-box,border-box;mask-clip:content-box,border-box;-webkit-mask-origin:content-box,border-box;mask-origin:content-box,border-box;-webkit-mask-composite:xor;mask-composite:exclude;-webkit-mask-source-type:auto,auto;mask-mode:match-source,match-source}.scratch-card-media:after{content:"";pointer-events:none;z-index:2;opacity:.85;border-radius:12px;position:absolute;inset:6px;box-shadow:inset 0 1px #ffffff1a,inset 0 -14px 22px #00000052}.scratch-card-frame-inner{inset:var(--scratch-frame-pad);border-radius:calc(14px - var(--scratch-frame-pad));background:#0c0a0e47;position:absolute;overflow:hidden;box-shadow:inset 0 0 0 1px #00000059}.scratch-card-media #scratch-reveal-image{object-fit:contain;z-index:0;filter:saturate(1.05)contrast(1.04)drop-shadow(0 10px 22px #0000008c);background:#0c0a0e8c;width:100%;height:100%;position:absolute;inset:0}.scratch-card-caption{z-index:4;text-align:center;box-sizing:border-box;opacity:0;pointer-events:none;background:linear-gradient(#0000 0%,#0a090c33 22%,#0a090cb8 58%,#0a090cf0 100%);padding:18px 12px 14px;transition:opacity .32s,transform .32s;position:absolute;bottom:0;left:0;right:0;transform:translateY(6px)}.scratch-card.revealing .scratch-card-caption,.scratch-card.warm-reveal .scratch-card-caption{opacity:1;z-index:14;transform:translateY(0)}.scratch-card-caption #scratch-card-title{color:#e6be8a;text-shadow:0 1px 3px #000000d9,0 0 18px #00000073;margin:0 0 4px;font-size:clamp(.8rem,3.2vw,.95rem);font-weight:800;line-height:1.25}.scratch-card-caption #scratch-card-desc{color:#faf9f6f2;text-shadow:0 1px 4px #000c;margin:0;font-size:clamp(.65rem,2.5vw,.78rem);font-weight:600;line-height:1.4}.scratch-card-media #scratch-canvas{cursor:crosshair;touch-action:none;z-index:10;width:100%;height:100%;position:absolute;top:0;left:0}.scratch-card.revealing #scratch-canvas{animation:.65s ease-out forwards scratchFade}@keyframes scratchFade{to{opacity:0}}#scratch-progress{color:#faf9f6e0;justify-content:space-between;align-items:center;gap:12px;width:100%;max-width:min(92vw,420px);margin-top:14px;margin-left:auto;margin-right:auto;font-size:12px;display:flex}#scratch-bar{background:#ffffff1a;border-radius:999px;flex:1;height:11px;position:relative;overflow:hidden;box-shadow:inset 0 0 0 1px #ffffff1f}#scratch-bar:before{content:"";pointer-events:none;z-index:0;background:linear-gradient(90deg,#0000 0%,#e6be8a26 35%,#f1d27973 50%,#e6be8a26 65%,#0000 100%);border-radius:999px;width:40%;animation:1.15s linear infinite scratchBarSweep;position:absolute;top:0;bottom:0;left:0}@keyframes scratchBarSweep{0%{transform:translate(-100%)}to{transform:translate(350%)}}#scratch-bar-fill{z-index:1;background:linear-gradient(90deg,#e6be8af2,#f1d279d9);border-radius:999px;width:0%;height:100%;transition:width .22s cubic-bezier(.33,1,.68,1),opacity .14s;position:relative;box-shadow:0 0 18px #e6be8a4d}#scratch-bar.completed{background:#ffffff1a;height:11px;box-shadow:inset 0 0 0 1px #ffffff1f}#scratch-bar.completed:before{opacity:0;animation:none}#scratch-bar.completed #scratch-bar-fill{opacity:1;width:100%}#scratch-hint{color:#faf9f6d1;text-align:center;opacity:1;width:310px;max-width:92vw;margin-top:10px;font-size:12px;transition:opacity .75s}#scratch-hint.scratch-hint--fade{opacity:0}#reveal-gift-btn{text-align:center;width:310px;max-width:92vw;margin-top:16px}.scratch-editor-cta{width:310px;max-width:92vw;margin-top:16px;margin-left:auto;margin-right:auto}.scratch-typewriter-panel{background:#1c191ed9;border:1px solid #e6be8a38;border-radius:15px;width:310px;max-width:92vw;height:auto;min-height:calc(8.25em + 44px);max-height:min(58vh,26.4em + 56px);margin-top:20px;padding:18px 16px 20px;overflow:hidden auto;box-shadow:0 8px 28px #0006}.scratch-typewriter-panel .scratch-typewriter-text{overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;max-width:100%;margin:0;font-size:1.05rem;line-height:1.65;overflow-x:hidden}.scratch-typewriter-scaled{--letter-scale:1}.scratch-typewriter-scaled .scratch-typewriter-text{font-size:calc(1.05rem * var(--letter-scale,1));line-height:1.65}.editor-preview-typewriter{--letter-scale:1}.candle-finale-layout .editor-preview-typewriter.candle-finale-message{scrollbar-gutter:stable;max-height:calc(28px + 4.95em);margin-top:8px;line-height:1.65;top:auto;bottom:auto;overflow:hidden scroll}.editor-typewriter-text{font-size:calc(1rem * var(--letter-scale,1));overflow-wrap:anywhere;word-break:break-word;white-space:pre-wrap;max-width:100%;margin:0;line-height:1.6;overflow-x:hidden}.editor-intro-preview{transform-origin:top;transform:none}.editor-letter-sheet{--letter-scale:1;background:#fff5f0;border:1px solid #8b2e3d59;border-radius:2px;justify-content:center;align-items:center;width:min(248px,100%);min-height:144px;margin:0 auto;padding:0;display:flex;box-shadow:0 1px 7px -2px #4a182273}.editor-letter-body{justify-content:center;align-items:center;width:min(216px,100% - 10px);min-height:118px;display:flex}.editor-letter-message{text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:5px;max-width:100%;padding:0 4px;display:flex}.editor-env-to{font-family:Josefin Sans,Quicksand,sans-serif;font-size:calc(clamp(9px, 2.4vw, 11px) * var(--letter-scale,1));letter-spacing:.06em;color:#3a2a22;text-transform:uppercase;text-align:center;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:.35em .5em;margin:0;padding-bottom:6px;font-weight:700;display:flex;position:relative}.editor-env-to:after{content:"";opacity:.55;background:linear-gradient(90deg,#e6be8a00 0%,#e6be8abf 20% 80%,#e6be8a00 100%);border-radius:999px;width:min(180px,90%);height:2px;position:absolute;bottom:0;left:50%;transform:translate(-50%)}.editor-env-to-quote{opacity:.75;letter-spacing:0;font-weight:600}.editor-env-recipient{color:#2a1810;text-transform:none;font-weight:700}.editor-env-title{text-align:center;font-family:Josefin Sans,sans-serif;font-size:calc(clamp(16px, 4.2vw, 22px) * var(--letter-scale,1));color:#2a1810;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical;max-width:210px;margin:0;font-weight:700;line-height:1.12;display:-webkit-box;overflow:hidden}.editor-env-body{font-family:Quicksand,sans-serif;font-size:calc(clamp(9.5px, 2.4vw, 11.5px) * var(--letter-scale,1));color:#231810eb;text-align:center;white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;max-width:200px;max-height:80px;margin:0;font-weight:500;line-height:1.35;overflow:hidden}.editor-env-body.editor-env-body--prompt{color:#e6be8a;text-shadow:0 0 24px #e6be8a40}.editor-env-to.editor-env-to--as-title{font-family:Josefin Sans,sans-serif;font-size:calc(clamp(16px, 4.2vw, 22px) * var(--letter-scale,1));letter-spacing:.02em;text-transform:none;gap:.35em .5em;line-height:1.12}.editor-env-to.editor-env-to--as-title .editor-env-to-prefix,.editor-env-to.editor-env-to--as-title .editor-env-to-quote{display:none}.editor-form-actions{width:100%;min-width:0;max-width:100%;padding-bottom:6px}.editor-form-actions .option-btn{max-width:100%;margin-left:0;margin-right:0}.editor-checkout-btn{word-break:break-word;text-align:center;box-sizing:border-box!important;white-space:normal!important;width:100%!important;min-width:0!important;max-width:100%!important;padding-left:14px!important;padding-right:14px!important}.editor-panel .neo-brutalism-btn{box-sizing:border-box}.surprise-letter-block{--letter-scale:1}.surprise-letter-block .surprise-letter-body{font-size:calc(.9rem * var(--letter-scale,1))}.surprise-letter-block .surprise-typewriter{font-size:calc(1.05rem * var(--letter-scale,1))}.option-btn{cursor:pointer;text-align:center;color:#e6be8a;width:100%;max-width:300px;box-shadow:var(--glow-gold-soft);background:#1c191e73;border:2.5px solid #e6be8a8c;border-radius:50px;margin:5px 0;padding:12px 25px;font-family:Quicksand,sans-serif;font-weight:700;transition:all .3s}.option-btn:hover{transform:translateY(-1px);box-shadow:0 10px 18px #e6be8a1f}.toggle-pill{color:#faf9f6cc;letter-spacing:.14em;width:auto;min-width:44px;max-width:none;min-height:34px;box-shadow:none;background:#1210138c;border:2px solid #e6be8a73;border-radius:999px;margin:0;padding:6px 12px;font-size:12px;font-weight:900;transition:all .16s}.toggle-pill.toggle-pill--sm{letter-spacing:.12em;min-width:36px;min-height:28px;padding:4px 10px;font-size:11px}.toggle-pill:hover{filter:brightness(1.08);transform:translateY(-1px);box-shadow:0 10px 16px #00000040}.toggle-pill--active{color:#e6be8afa;box-shadow:0 0 0 2px #e6be8a2e, var(--glow-gold-soft);background:linear-gradient(#e6be8a42,#e6be8a1f);border-color:#e6be8af2}.editor-app-shell{z-index:1;min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(40px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:radial-gradient(120% 80% at 50% -20%,#e6be8a1f 0%,#121013 38%,#1c191e 72%,#28203059 100%);position:relative}.editor-app-shell.editor-flow{max-width:42rem;margin-left:auto;margin-right:auto}.editor-step-title{letter-spacing:.04em;color:#e6be8a;margin:0 0 .35rem;font-size:1.05rem;font-weight:800}.editor-step-title--row{margin:0}.editor-main-site-link{text-overflow:ellipsis;white-space:nowrap;color:#e6be8afa;letter-spacing:.04em;background:#121013eb;border:1px solid #e6be8a73;border-radius:999px;max-width:min(13rem,100%);padding:8px 12px;font-size:.72rem;font-weight:800;text-decoration:none;overflow:hidden;box-shadow:0 0 12px #e6be8a1f}.editor-main-site-link:hover{filter:brightness(1.06);border-color:#e6be8aa6}.editor-step-hint{color:#faf9f6a6;margin:0 0 1rem;font-size:.8rem;line-height:1.45}.editor-inline-preview{background:#0c0a0e73;border:1px solid #e6be8a38;border-radius:12px;flex-direction:column;min-width:0;min-height:200px;margin-top:.5rem;padding:12px 12px 14px;display:flex}.editor-inline-preview .editor-preview-frame-body{flex:auto;min-height:0;max-height:min(52vh,360px)}.editor-inline-preview--scratch .editor-preview-frame-body{max-height:none}.editor-inline-preview--opening{min-height:320px}.editor-inline-preview--opening .editor-preview-frame-body{justify-content:center;max-height:none;display:flex;overflow:hidden}.editor-candle-preview-frame{justify-content:center;width:100%;min-height:360px;padding:18px 0 6px;display:flex}.editor-preview-typewriter{max-width:min(520px,92vw)}.editor-inline-preview--opening .editor-intro-preview{transform:none}@media (min-width:640px){.editor-inline-preview--opening{min-height:360px}.editor-inline-preview--opening .editor-intro-preview{transform:none}}.editor-app-shell.editor-workbench{height:100dvh;min-height:100dvh;max-height:100dvh;padding-bottom:0;padding-top:max(10px, env(safe-area-inset-top));padding-left:max(6px, env(safe-area-inset-left));padding-right:max(6px, env(safe-area-inset-right));flex-direction:column;display:flex;overflow:hidden}.editor-workbench-scroll{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;padding-bottom:10px;overflow-y:auto}.editor-workbench-dock{width:100%;height:min(40vh,300px);min-height:200px;max-height:300px;padding:8px 4px max(6px, env(safe-area-inset-bottom));background:#08070af5;border-top:1px solid #e6be8a52;flex:none;box-shadow:0 -8px 24px #00000059}.editor-workbench-dock-grid{grid-template-columns:1fr 1fr;gap:8px;max-width:100%;height:100%;margin:0 auto;display:grid}.editor-preview-frame{flex-direction:column;min-width:0;min-height:0;padding:8px 8px 10px;display:flex;overflow:hidden}.editor-preview-frame-title{letter-spacing:.12em;text-transform:uppercase;color:#e6be8a;flex-shrink:0;margin:0 0 6px;font-size:.62rem;font-weight:800}.editor-preview-frame-body{-webkit-overflow-scrolling:touch;flex:auto;min-height:0;overflow:hidden auto}.editor-preview-sublabel{letter-spacing:.08em;text-transform:uppercase;color:#e6be8ab8;margin:0 0 4px;font-size:.58rem;font-weight:700}.editor-preview-scratch-stack{flex-direction:column;align-items:stretch;gap:6px;display:flex}.editor-scratch-card-slot{justify-content:center;width:100%;display:flex;overflow:hidden}.editor-preview-frame--scratch .scratch-card{width:100%;max-width:min(92vw,420px)}.editor-app-shell .editor-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1c191eb8;border:1px solid #e6be8a33;border-radius:15px;box-shadow:0 12px 40px #00000073}.anniversary-field-label{color:#faf9f6e0;margin-bottom:.35rem;font-size:.875rem;font-weight:600;display:block}.anniversary-input,.anniversary-textarea,.anniversary-select{width:100%;color:var(--linen);background:#121014d9;border:2px solid #e6be8a73;border-radius:12px;outline:none;padding:10px 12px;font-family:Quicksand,sans-serif}.anniversary-select{appearance:none;cursor:pointer;background-color:#121014d9;background-image:linear-gradient(45deg,#0000 50%,#e6be8a 50%),linear-gradient(135deg,#e6be8a 50%,#0000 50%);background-position:calc(100% - 18px) 1.1em,calc(100% - 13px) 1.1em;background-repeat:no-repeat;background-size:5px 5px,5px 5px;padding-right:36px}.anniversary-select:disabled{opacity:.65;cursor:not-allowed}.anniversary-input:focus,.anniversary-textarea:focus,.anniversary-select:focus{border-color:#f1d279bf;box-shadow:0 0 0 1px #e6be8a40}.editor-app-shell h1,.editor-app-shell h2{color:#e6be8a;text-shadow:0 0 18px #e6be8a33}.editor-app-shell .text-muted{color:#faf9f6a6}.surprise-reveal-page{z-index:1}.surprise-reveal-inner{z-index:2;position:relative}.surprise-reveal-title{text-align:center;color:#e6be8a;text-shadow:0 0 28px #e6be8a59,0 2px 12px #00000073;margin:0 0 .35rem;font-size:clamp(2.5rem,9vw,3.75rem);line-height:1.1}.surprise-recipient-name{text-align:center;letter-spacing:.04em;color:#faf9f6eb;margin:0 0 1.75rem;font-family:Josefin Sans,Quicksand,sans-serif;font-size:clamp(1rem,3.2vw,1.2rem);font-weight:700}.surprise-letter-card{background:linear-gradient(165deg,#fffaf514 0%,#1c191ee0 45%);border:1px solid #e6be8a52;border-radius:15px;max-width:26rem;margin:0 auto 1.5rem;padding:1.15rem 1.1rem 1.25rem;box-shadow:0 0 24px #e6be8a1f,0 12px 32px #00000059}.surprise-letter-label{letter-spacing:.18em;text-transform:uppercase;color:#e6be8a;text-shadow:0 0 14px #e6be8a40;margin:0 0 .5rem;font-size:.68rem;font-weight:800}.surprise-letter-body{color:#faf9f6e6;margin:0;font-size:.9rem;line-height:1.55}.surprise-typewriter-wrap{max-width:26rem;margin:0 auto}.surprise-typewriter-wrap button[type=button]{color:#e6be8a;text-underline-offset:3px;cursor:pointer;background:0 0;border:none;margin-top:.5rem;font-family:Quicksand,sans-serif;font-size:.75rem;font-weight:600;text-decoration:underline}.surprise-typewriter-wrap button[type=button]:hover{color:#f1d279}.surprise-typewriter{color:#faf9f6eb;background:#121014a6;border:1px solid #e6be8a38;border-radius:12px;margin:0;padding:1rem 1rem 1.1rem;font-size:1.05rem;line-height:1.65}.photo-frame{background:#0f0f15;border:8px solid #e6be8ac7;flex-shrink:0;justify-content:center;align-items:center;width:min(320px,92vw);max-width:320px;min-height:min(360px,48vh);max-height:400px;margin-bottom:1.5rem;transition:width .5s,height .5s;display:flex;position:relative;overflow:hidden;transform:rotate(-2deg);box-shadow:0 2px 4px #0003,0 10px 22px #00000061,0 22px 44px #00000047,inset 0 1px #ffffff14}.photo-frame:before{content:"";filter:blur(18px);opacity:.55;z-index:0;pointer-events:none;background:radial-gradient(circle,#ffffff8c,#0000 60%);position:absolute;inset:-20%}.photo-frame--fill{aspect-ratio:4/5;min-height:unset;height:auto}.surprise-audio-wrap{background:#1c191ebf;border:1px solid #e6be8a47;border-radius:15px;max-width:26rem;margin:2rem auto 0;padding:1rem 1rem 1.1rem;box-shadow:0 8px 28px #00000059}.surprise-audio-label{letter-spacing:.14em;text-transform:uppercase;color:#e6be8a;margin:0 0 .65rem;font-size:.72rem;font-weight:800}.surprise-audio{filter:sepia(.35)saturate(1.1);width:100%;height:40px}.surprise-config-alert{color:#faf9f6eb;text-align:center;max-width:24rem;box-shadow:var(--glow-gold-soft);background:#1c191ee6;border:1px solid #e6be8a73;border-radius:15px;margin:2rem auto;padding:1.25rem}.success-shell{z-index:1;min-height:100dvh;padding:max(24px, env(safe-area-inset-top)) max(16px, env(safe-area-inset-right)) max(40px, env(safe-area-inset-bottom)) max(16px, env(safe-area-inset-left));background:radial-gradient(120% 80% at 50% -20%,#e6be8a1f 0%,#121013 38%,#1c191e 72%,#28203059 100%);position:relative}.success-panel{-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1c191ec7;border:1px solid #e6be8a47;border-radius:15px;box-shadow:0 12px 40px #00000073}.success-panel--highlight{background:linear-gradient(165deg,#e6be8a1f 0%,#1c191ee6 55%);border-color:#e6be8a6b}.success-shell h1{color:#e6be8a;text-shadow:0 0 18px #e6be8a38}.success-shell .success-lead{color:#faf9f6d1}.success-shell .success-meta-label{color:#faf9f68c;font-size:.8rem}.success-shell .success-session{color:#faf9f6e0;word-break:break-all;font-family:ui-monospace,monospace;font-size:.8rem}.success-link-btn{text-align:center;width:100%;margin-top:1rem;text-decoration:none;display:block}.success-pdf-btn{width:100%;margin-top:.75rem}@media (prefers-reduced-motion:reduce){#ambient-romance:before,#ambient-romance:after,#page1-beams,#page1.intro-stage:before,.hero-heart,#scratch-bar:before{animation:none!important}#page1 #env.envelope .wax-seal:hover{transform:translate(-50%)}#page1.opened .enter-btn:before,#scratch-container .neo-brutalism-btn.enter-btn:before{opacity:.35;animation:none}.scratch-card-caption{transform:none}.scratch-card.revealing .scratch-card-caption{opacity:1;transform:none}}
