:root{--bg:#170f1c;--plum:#251225;--wine:#5d203c;--rose:#c96b86;--blush:#f2c7cf;--cream:#fff7ef;--paper:#fffaf3;--gold:#c9a66a;--ink:#2b2028;--muted:#8d7b84;--line:rgba(255,255,255,.12);--shadow:0 35px 90px rgba(10,5,12,.42)}
*{box-sizing:border-box}html,body{margin:0;padding:0;width:100%;min-height:100%;overflow-x:hidden;background:#110b14;-webkit-text-size-adjust:100%}body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--cream)}button,input,textarea,select{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.5}#rsx-app{min-height:100svh;padding:18px;display:flex;justify-content:center;align-items:center;background:radial-gradient(circle at 50% 0,rgba(201,166,106,.13),transparent 28%),linear-gradient(160deg,#0e0912,#251125 48%,#120a13);position:relative;isolation:isolate}.rsx-card{width:min(100%,760px);min-height:min(900px,calc(100svh - 36px));position:relative;overflow:hidden;border-radius:34px;background:linear-gradient(150deg,rgba(40,19,37,.98),rgba(19,12,24,.98));box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.08)}.rsx-atmosphere{position:absolute;inset:0;pointer-events:none;overflow:hidden}.rsx-atmosphere i{position:absolute;width:3px;height:3px;border-radius:50%;background:rgba(255,235,205,.6);box-shadow:0 0 12px rgba(255,220,180,.45);animation:drift 8s ease-in-out infinite}.rsx-atmosphere i:nth-child(1){left:11%;top:18%}.rsx-atmosphere i:nth-child(2){left:82%;top:25%;animation-delay:1.5s}.rsx-atmosphere i:nth-child(3){left:26%;top:73%;animation-delay:2.7s}.rsx-atmosphere i:nth-child(4){left:73%;top:67%;animation-delay:4s}.rsx-atmosphere i:nth-child(5){left:48%;top:12%;animation-delay:5s}.rsx-atmosphere i:nth-child(6){left:91%;top:81%;animation-delay:3s}@keyframes drift{50%{transform:translateY(-12px);opacity:.35}}
.rsx-progress{position:absolute;left:0;right:0;top:0;height:3px;background:rgba(255,255,255,.06);z-index:50}.rsx-progress span{display:block;height:100%;width:10%;background:linear-gradient(90deg,var(--gold),var(--rose));transition:width .45s ease}.rsx-screen{display:none;position:relative;z-index:2;width:100%;min-height:min(900px,calc(100svh - 36px));padding:64px clamp(20px,6vw,64px) 48px;overflow-y:auto;overflow-x:hidden;overscroll-behavior-x:none;touch-action:auto}.rsx-screen.active{display:flex;flex-direction:column;align-items:center;animation:screenIn .45s ease both}@keyframes screenIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}.rsx-screen>*{max-width:100%}.rsx-kicker{margin:0 0 10px;text-transform:uppercase;letter-spacing:.2em;font-size:10px;color:#d8bb91;font-weight:700;text-align:center}.rsx-screen h1,.rsx-screen h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.035em;text-align:center;line-height:1.02;margin:0;color:#fff8f0}.rsx-screen h1{font-size:clamp(35px,7vw,61px)}.rsx-screen h2{font-size:clamp(31px,6vw,50px)}.rsx-screen h1 em,.rsx-screen h2 em{font-style:italic;color:#e8b3c1}.rsx-sub{max-width:520px;margin:16px auto 22px;text-align:center;color:#cdbec6;font-size:13px;line-height:1.7}.micro,.tiny,.small{font-size:10px;line-height:1.6;color:#94838d;text-align:center}.rsx-btn{width:100%;max-width:470px;min-height:56px;border:0;border-radius:18px;padding:14px 18px;display:flex;align-items:center;justify-content:center;gap:10px;font-weight:750;letter-spacing:.01em;position:relative;z-index:20;touch-action:manipulation;-webkit-tap-highlight-color:transparent}.rsx-btn-primary{color:#26141f;background:linear-gradient(135deg,#f6d8cf,#d99aaa 52%,#c68a72);box-shadow:0 16px 35px rgba(201,107,134,.22),inset 0 1px 0 rgba(255,255,255,.65)}.rsx-btn-secondary{color:#f5e9e1;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}.rsx-text-btn{background:none;border:0;color:#cbb5bf;padding:12px}.step-actions{display:grid;grid-template-columns:.7fr 1.3fr;gap:10px;width:100%;max-width:470px;margin-top:auto;padding-top:24px}.step-mark{position:absolute;top:25px;right:28px;font:700 11px/1 Georgia,serif;color:#8d7882;letter-spacing:.14em}.hero-art,.opening-art{width:100%;height:220px;position:relative;margin-bottom:4px}.hero-balloon,.balloon{position:absolute;width:64px;height:82px;border-radius:52% 48% 48% 48%;background:radial-gradient(circle at 30% 25%,#f8d9dd,#b14e70 68%,#6a2945);box-shadow:inset -10px -12px 20px rgba(30,0,20,.18),0 18px 35px rgba(0,0,0,.22);transform:rotate(-7deg)}.hero-balloon:after,.balloon:after{content:"";position:absolute;left:50%;top:82px;width:1px;height:90px;background:rgba(222,190,166,.35)}.hero-balloon-a{left:13%;top:25px}.hero-balloon-b{right:14%;top:7px;transform:rotate(8deg);background:radial-gradient(circle at 30% 25%,#f6d8bb,#9c6c52)}.hero-balloon-c{left:43%;top:0;width:48px;height:64px;background:radial-gradient(circle at 30% 25%,#f1bdca,#74304c)}.hero-cake,.cake-3d{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);width:150px;height:85px;border-radius:20px 20px 26px 26px;background:linear-gradient(180deg,#f8e2d3 0 28%,#bc6678 29% 58%,#6d2d48 59%);box-shadow:0 25px 35px rgba(0,0,0,.3),inset 0 8px 15px rgba(255,255,255,.18)}.hero-cake:before,.cake-3d:before{content:"";position:absolute;left:12px;right:12px;top:-10px;height:25px;border-radius:50%;background:#fff0e7;box-shadow:0 8px 0 #dca1ae}.hero-cake i{position:absolute;width:3px;height:22px;background:#c9a66a;top:-35px}.hero-cake i:nth-child(1){left:40px}.hero-cake i:nth-child(2){left:74px}.hero-cake i:nth-child(3){right:40px}.hero-cake i:after{content:"";position:absolute;left:-3px;top:-7px;width:9px;height:11px;border-radius:50%;background:#f5c9a4;box-shadow:0 0 10px rgba(245,201,164,.75)}.hero-gift{position:absolute;right:24%;bottom:14px;color:#e7bf83;font-size:38px;transform:rotate(12deg)}.hero-note,.preview-note,.upload-help{width:100%;max-width:500px;padding:15px 16px;border:1px solid rgba(231,190,131,.15);background:rgba(255,255,255,.045);border-radius:20px;margin:4px 0 22px;display:flex;gap:12px;text-align:left}.hero-note>span,.preview-note>span{flex:0 0 auto;width:31px;height:31px;border-radius:50%;display:grid;place-items:center;color:#e3bb7e;background:rgba(201,166,106,.11)}.hero-note strong,.preview-note span{display:block;color:#f4dfd4;font:700 13px Georgia,serif}.hero-note p,.preview-note p{margin:4px 0 0;color:#a8959e;font-size:10.5px;line-height:1.55}.relation-grid{width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-width:560px}.relation-card{min-height:154px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.035);border-radius:22px;color:#fff;text-align:left;padding:16px;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-end;position:relative;overflow:hidden;transition:.25s ease}.relation-card:before{content:"";position:absolute;inset:-35% 25% auto -15%;height:100px;background:radial-gradient(circle,rgba(220,163,177,.22),transparent 68%);pointer-events:none}.relation-card.selected{border-color:rgba(231,190,131,.6);background:linear-gradient(145deg,rgba(201,166,106,.13),rgba(201,107,134,.09));transform:translateY(-2px);box-shadow:0 15px 30px rgba(0,0,0,.18)}.relation-icon{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;background:rgba(255,255,255,.07);color:#e6c08b;font-size:20px;margin-bottom:auto}.relation-card strong{font:700 16px Georgia,serif}.relation-card small{font-size:9px;color:#a9959f;margin-top:4px}.form-stack,.choice-section,.music-panel{width:100%;max-width:520px}.field-label{display:block;margin:16px 0 7px;color:#bfaeb6;font-size:11px;font-weight:700}.rsx-input{width:100%;min-height:53px;border-radius:16px;border:1px solid rgba(255,255,255,.1);background:rgba(255,255,255,.055);color:#fff;padding:13px 15px;outline:none;position:relative;z-index:20}.rsx-input:focus{border-color:rgba(231,190,131,.6);box-shadow:0 0 0 3px rgba(231,190,131,.08)}.rsx-input::placeholder{color:#776a73}.rsx-input[type=date]{color-scheme:dark}.age-badge{margin-top:9px;color:#e8c998;font-size:11px;text-align:left}.choice-section{margin:10px 0}.choice-title{display:flex;justify-content:space-between;align-items:end;gap:10px;margin-bottom:9px}.choice-title span{font:700 14px Georgia,serif}.choice-title small{color:#8f7f87;font-size:9px}.preset-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.preset-grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.preset-card{min-height:58px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.04);border-radius:16px;color:#d9ccd2;padding:10px;font-size:10px;text-align:left;touch-action:manipulation}.preset-card.selected{border-color:rgba(231,190,131,.6);color:#fff;background:rgba(201,166,106,.12)}textarea.rsx-input{resize:vertical;margin-top:8px;min-height:120px}.rsx-upload{width:100%;max-width:520px;min-height:185px;border:1px dashed rgba(231,190,131,.3);border-radius:25px;background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(201,107,134,.05));display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:7px;position:relative;z-index:10;overflow:hidden}.premium-upload input{position:absolute!important;inset:0;opacity:.001;width:100%;height:100%;cursor:pointer;z-index:30}.upload-icon{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(231,190,131,.25);color:#e3bd86;font-size:25px}.premium-upload strong{font:700 17px Georgia,serif}.premium-upload small{font-size:9px;color:#96858e}.upload-thumbs{width:100%;max-width:520px;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:7px;margin-top:10px}.thumb-wrap{position:relative;aspect-ratio:1;border-radius:13px;overflow:hidden;border:1px solid rgba(255,255,255,.1);background:#251722}.rsx-thumb{width:100%;height:100%;object-fit:cover;display:block}.thumb-remove{position:absolute;right:4px;top:4px;width:23px;height:23px;border:0;border-radius:50%;background:rgba(20,8,16,.8);color:#fff;z-index:40}.upload-count{grid-column:1/-1;color:#8f7e87;font-size:9px}.upload-help{margin-top:10px;color:#9d8d95;font-size:10px;line-height:1.5}.music-panel{padding:22px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);border-radius:24px;text-align:center}.music-note{display:block;font:40px Georgia,serif;color:#d8af76;margin-bottom:10px}.music-panel small{display:block;margin-top:9px;color:#8f7f87;font-size:9px}.opening-art{height:245px}.orb{position:absolute;border-radius:50%;filter:blur(1px)}.orb-a{width:210px;height:210px;left:50%;top:10px;transform:translateX(-50%);background:radial-gradient(circle,rgba(201,107,134,.2),transparent 68%)}.orb-b{width:150px;height:150px;left:50%;top:45px;transform:translateX(-50%);border:1px solid rgba(231,190,131,.14)}.opening-art .cake-3d{bottom:40px}.opening-art .balloon-one{left:17%;top:44px}.opening-art .balloon-two{right:16%;top:20px;transform:rotate(10deg);background:radial-gradient(circle at 30% 25%,#ead0c1,#745044)}.mystery-mark{width:76px;height:76px;border-radius:50%;display:grid;place-items:center;border:1px solid rgba(231,190,131,.35);color:#e4be81;font-size:32px;margin:20px auto 25px;box-shadow:0 0 40px rgba(201,166,106,.12)}.clue-card{width:100%;max-width:450px;margin:20px 0 28px;padding:25px;border:1px solid rgba(231,190,131,.18);background:linear-gradient(145deg,rgba(255,255,255,.055),rgba(201,107,134,.05));border-radius:24px;box-shadow:0 18px 40px rgba(0,0,0,.2)}.clue-card span{font-size:9px;letter-spacing:.18em;color:#d2ad78}.clue-card strong{display:block;font:700 22px/1.2 Georgia,serif;margin:11px 0;color:#f9eee7}.clue-card small{font-size:10px;color:#94848d}.puzzle-shell{width:min(100%,450px);margin:18px 0}.puzzle-top{display:flex;justify-content:space-between;color:#95848d;font-size:9px;letter-spacing:.13em;margin-bottom:9px}.puzzle-grid{width:100%;aspect-ratio:1;border-radius:22px;padding:5px;display:grid;grid-template-columns:repeat(3,1fr);gap:5px;background:#0e0911;box-shadow:0 25px 50px rgba(0,0,0,.35);touch-action:none}.puzzle-tile{border:0;border-radius:13px;background-repeat:no-repeat;background-size:300% 300%;background-color:#271721;min-width:0;touch-action:none;box-shadow:inset 0 0 0 1px rgba(255,255,255,.1);transition:transform .16s ease,filter .16s ease}.puzzle-tile:not(.empty):active{filter:brightness(1.18);transform:scale(.98)}.puzzle-tile.empty{background:rgba(255,255,255,.025);box-shadow:inset 0 0 0 1px rgba(231,190,131,.08)}.puzzle-grid.solved{box-shadow:0 0 0 1px rgba(231,190,131,.45),0 25px 55px rgba(201,107,134,.2)}.puzzle-status{text-align:center;color:#c7b7bf;font-size:10px;margin-top:10px;min-height:16px}.puzzle-actions{width:100%;max-width:450px;display:grid;grid-template-columns:.7fr 1.3fr;gap:9px}.memory-gallery{width:100%;max-width:570px;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin:22px 0 28px}.memory-photo{margin:0;padding:10px 10px 16px;background:#f7ede3;color:#4a3038;box-shadow:0 20px 35px rgba(0,0,0,.28);transform:rotate(-2deg);position:relative}.memory-photo:nth-child(even){transform:rotate(2.4deg);margin-top:16px}.memory-photo img{display:block;width:100%;aspect-ratio:1/1.12;object-fit:cover;background:#ddd}.memory-photo figcaption{font:700 11px Georgia,serif;text-align:center;padding:10px 2px 0}.age-scene{text-align:center;margin:auto 0 28px}.age-aura{width:260px;height:260px;border-radius:50%;position:absolute;left:50%;top:42%;transform:translate(-50%,-50%);background:radial-gradient(circle,rgba(201,107,134,.15),transparent 67%);pointer-events:none}..age-pre{margin:10px 0 0;color:#c9bac1;font:18px Georgia,serif}.age-number{font:700 clamp(110px,27vw,190px)/.85 Georgia,serif;color:#f1d7c8;text-shadow:0 12px 50px rgba(201,107,134,.22);letter-spacing:-.07em;margin:12px 0}.age-years{margin:0;color:#c8b8bf;font:italic 24px Georgia,serif}.age-name-line{margin-top:22px;font:700 17px Georgia,serif}.age-name-line strong{color:#e6b0bd}.letter-screen{padding-bottom:58px}.letter-wrap{width:100%;max-width:500px;margin:18px auto 10px;perspective:1400px}.folding-letter{width:100%;height:clamp(350px,52svh,480px);border:0;padding:0;background:none;position:relative;transform-style:preserve-3d;display:block;text-align:left;filter:drop-shadow(0 25px 35px rgba(0,0,0,.25));touch-action:manipulation}.letter-cover,.letter-paper{position:absolute;inset:0;border-radius:25px}.letter-cover{background:linear-gradient(145deg,#9e4766,#5e243f);color:#fff;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:9px;backface-visibility:hidden;z-index:4;transition:transform 1s cubic-bezier(.2,.75,.25,1),opacity .65s ease}.letter-cover strong{font:700 29px/1.08 Georgia,serif;text-align:center}.letter-cover small{color:#f3d8d0}.cover-star{font-size:32px;color:#e7c184}.cover-gift{font-size:32px}.folding-letter.open .letter-cover{transform:rotateX(-96deg);transform-origin:top;opacity:0;pointer-events:none}.letter-paper{background:linear-gradient(180deg,#fffaf3,#f5e5d8);border:1px solid rgba(231,190,131,.35);z-index:2;overflow:hidden;color:#543942}.letter-paper:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 20% 20%,rgba(201,107,134,.1),transparent 28%);pointer-events:none}.letter-paper-inner{height:100%;overflow:auto;padding:34px 30px 28px}.letter-greeting{font:700 20px Georgia,serif;color:#71374d;margin:0 0 16px}.quote{font:italic 18px/1.5 Georgia,serif;color:#79515b;margin:0 0 14px}.letter-message{font-size:14px;line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere;margin:0 0 20px;min-height:24px}.letter-typed-wish{font:700 25px Georgia,serif;color:#78384e;margin:18px 0;opacity:0;transform:translateY(7px);transition:.7s}.folding-letter.open .letter-typed-wish{opacity:1;transform:none}.letter-sign{border-top:1px dashed rgba(113,55,77,.22);padding-top:13px;font-size:12px;line-height:1.6;color:#8b737b}.letter-sign strong{font:700 17px Georgia,serif;color:#71374d}.letter-hint{font-size:10px;color:#8f7f87;text-align:center;margin:5px 0 15px}.creator-letter-actions,.receiver-letter-actions{width:100%;max-width:470px}.receiver-letter-actions[hidden],.creator-letter-actions[hidden]{display:none}.payment-art,.share-success{width:90px;height:90px;border-radius:50%;display:grid;place-items:center;color:#e5bf82;background:radial-gradient(circle,rgba(231,190,131,.18),transparent 68%);border:1px solid rgba(231,190,131,.25);font-size:36px;margin:35px auto 25px}.payment-card{width:100%;max-width:470px;margin:20px 0 10px;padding:20px 22px;border-radius:23px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09)}.payment-card>div:first-child{display:flex;align-items:end;justify-content:space-between;gap:15px}.payment-card span{font-size:10px;letter-spacing:.15em;text-transform:uppercase;color:#a998a0}.payment-card strong{font:700 39px Georgia,serif;color:#f1d0c2}.payment-card small{display:block;margin-top:8px;color:#84747c;font-size:9px}.price-old-row{min-height:18px;margin-top:6px;color:#998991;font-size:10px}.price-old-row del{margin-right:7px}.coupon-toggle{width:100%;max-width:470px;background:none;border:0;border-bottom:1px solid rgba(255,255,255,.08);padding:12px 3px;text-align:left;color:#bdaab3;font-size:11px;display:flex;justify-content:space-between}.coupon-toggle.open{color:#e3c08b}.coupon-fields{width:100%;max-width:470px;display:grid;grid-template-columns:1fr auto;gap:8px;margin-top:10px}.coupon-apply{width:auto;min-width:92px;min-height:52px}.share-url-box{width:100%;max-width:500px;padding:14px;border:1px solid rgba(231,190,131,.16);background:rgba(255,255,255,.045);border-radius:18px;margin:15px 0}.share-url-box span{display:block;font-size:9px;color:#8d7c84;text-transform:uppercase;letter-spacing:.15em;margin-bottom:7px}.share-url-box input{width:100%;border:0;outline:0;background:none;color:#e7d9d3;font-size:11px}.share-actions{width:100%;max-width:500px;display:grid;grid-template-columns:1fr 1fr;gap:9px}.share-actions .rsx-btn:first-child{grid-column:1/-1}.share-note{width:100%;max-width:500px;margin:14px 0;padding:13px 15px;border-radius:16px;background:rgba(201,107,134,.06);border:1px solid rgba(201,107,134,.12)}.share-note strong{font-size:11px}.share-note p{font-size:9px;color:#97858e;margin:5px 0 0}.rsx-toast{position:fixed;left:50%;bottom:max(18px,env(safe-area-inset-bottom));transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:1000;background:#24151f;border:1px solid rgba(231,190,131,.2);color:#fff0e8;padding:12px 16px;border-radius:14px;font-size:11px;box-shadow:0 18px 40px rgba(0,0,0,.35);transition:.25s;max-width:calc(100vw - 28px);text-align:center}.rsx-toast.show{opacity:1;transform:translate(-50%,0)}#rsx-loading,#rsx-countdown,#rsx-browser-gate{position:fixed;inset:0;z-index:1200;display:none;place-items:center;background:rgba(8,4,10,.82);backdrop-filter:blur(10px);padding:20px}.rsx-loading-box,.rsx-countdown-card,.browser-gate-card{width:min(100%,360px);padding:28px;border-radius:28px;background:linear-gradient(145deg,#29152a,#130b16);border:1px solid rgba(231,190,131,.2);box-shadow:0 30px 70px rgba(0,0,0,.45);text-align:center}.loading-orbit{width:48px;height:48px;border-radius:50%;border:1px solid rgba(231,190,131,.25);border-top-color:#e3b97e;margin:0 auto 16px;animation:spin 1s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.rsx-loading-box strong{display:block;font:700 18px Georgia,serif}.rsx-loading-box small,.rsx-countdown-card small{display:block;margin-top:7px;color:#96858e;font-size:10px}.rsx-countdown-card>span{font-size:9px;letter-spacing:.18em;color:#d7b783}.rsx-countdown-card strong{display:block;font:700 100px/.9 Georgia,serif;color:#f1d5c8;margin:14px 0}.rsx-countdown-card strong.pop{animation:countPop .6s ease}@keyframes countPop{0%{opacity:0;transform:scale(.65)}65%{opacity:1;transform:scale(1.06)}100%{transform:scale(1)}}.browser-gate-card p:not(.rsx-kicker){color:#a998a0;font-size:11px;line-height:1.65;margin:15px 0 20px}.gate-mark{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;margin:0 auto 15px;border:1px solid rgba(231,190,131,.25);color:#e3b97e;font-size:25px}.rsx-music-control{position:fixed;right:12px;bottom:max(12px,env(safe-area-inset-bottom));z-index:100;background:#281621;border:1px solid rgba(231,190,131,.22);color:#f1d2c5;border-radius:999px;padding:10px 14px;font-size:10px}.rsx-music-control.on{color:#e4c083}
@media(max-width:600px){#rsx-app{padding:0;align-items:flex-start}.rsx-card{width:100%;min-height:100svh;min-height:100dvh;border-radius:0;box-shadow:none}.rsx-screen{min-height:100svh;min-height:100dvh;padding:55px 15px calc(35px + env(safe-area-inset-bottom))}.hero-art{height:190px}.opening-art{height:205px}.hero-balloon,.balloon{width:52px;height:70px}.hero-balloon:after,.balloon:after{top:69px}.hero-cake,.cake-3d{width:125px;height:72px}.hero-gift{right:18%;font-size:29px}.relation-grid{gap:8px}.relation-card{min-height:145px;padding:13px}.relation-card strong{font-size:15px}.relation-card small{font-size:8.5px}.relation-icon{width:38px;height:38px}.preset-grid{grid-template-columns:1fr}.preset-grid.two{grid-template-columns:1fr 1fr}.rsx-upload{min-height:165px}.upload-thumbs{gap:5px}.folding-letter{height:min(410px,55dvh)}.letter-paper-inner{padding:25px 18px}.letter-message{font-size:12.5px;line-height:1.7}.letter-typed-wish{font-size:21px}.memory-gallery{gap:9px}.memory-photo{padding:7px 7px 11px}.memory-photo figcaption{font-size:9px;padding-top:7px}.age-number{font-size:clamp(100px,29vw,145px)}.share-actions{grid-template-columns:1fr}.share-actions .rsx-btn:first-child{grid-column:auto}.step-actions{margin-top:22px}.coupon-fields{grid-template-columns:1fr}.coupon-apply{width:100%}}
@media(max-width:380px){.rsx-screen{padding-left:12px;padding-right:12px}.rsx-screen h1{font-size:33px}.rsx-screen h2{font-size:29px}.relation-card{min-height:136px}.relation-card small{display:none}.hero-art{height:175px}.opening-art{height:190px}.letter-paper-inner{padding:21px 14px}.folding-letter{height:320px}.letter-message{font-size:12px}.letter-typed-wish{font-size:18px}.memory-photo{padding:6px 6px 9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition:none!important}}
.creator-final[data-screen="13"]{justify-content:center;background:rgba(11,6,14,.28)}
.creator-final[data-screen="13"]>*{position:relative}
.creator-final[data-screen="13"] .payment-art{margin-top:0}
@media(min-width:601px){.creator-final[data-screen="13"]{padding:42px 30px}.creator-final[data-screen="13"]:before{content:"";position:absolute;inset:28px;border-radius:30px;background:rgba(255,255,255,.025);border:1px solid rgba(231,190,131,.12);pointer-events:none}}

/* v20 girlfriend-first visual refresh: soft pink + ivory light mode, deep romantic dark mode */
#rsx-app{--bg:#fff5f7;--plum:#fff;--wine:#8f3158;--rose:#d86f93;--blush:#f8cbd8;--cream:#33232c;--paper:#fffafc;--gold:#b88a55;--ink:#33232c;--muted:#866f79;--line:rgba(111,43,70,.12);--shadow:0 30px 90px rgba(121,50,78,.16);background:radial-gradient(circle at 50% -5%,rgba(246,188,207,.55),transparent 35%),linear-gradient(155deg,#fff7f9,#f9e7ed 52%,#fff);color:var(--cream)}
#rsx-app .rsx-card{background:linear-gradient(145deg,#fff,#fff7fa 55%,#fff);border-color:rgba(139,49,83,.1);box-shadow:var(--shadow)}
#rsx-app .rsx-progress{background:rgba(121,47,77,.07)}
#rsx-app .rsx-progress span{background:linear-gradient(90deg,#d86f93,#b88a55)}
#rsx-app .rsx-atmosphere i{background:rgba(183,103,132,.5);box-shadow:0 0 12px rgba(216,111,147,.25)}
#rsx-app .rsx-screen h1,#rsx-app .rsx-screen h2{color:#34232c}
#rsx-app .rsx-screen h1 em,#rsx-app .rsx-screen h2 em{color:#b43f6c}
#rsx-app .rsx-kicker{color:#a25b75}
#rsx-app .rsx-sub{color:#735f68}
#rsx-app .micro,#rsx-app .tiny,#rsx-app .small{color:#8b737d}
#rsx-app .rsx-btn-primary{color:#fff;background:linear-gradient(135deg,#e889a8,#cf5f88);box-shadow:0 15px 32px rgba(207,95,136,.2),inset 0 1px 0 rgba(255,255,255,.6)}
#rsx-app .rsx-btn-secondary{color:#593b49;background:#fff;border-color:rgba(121,47,77,.13);box-shadow:0 8px 22px rgba(121,47,77,.06)}
#rsx-app .rsx-text-btn{color:#85586b}
#rsx-app .step-mark{color:#a98391}
#rsx-app .hero-note,#rsx-app .preview-note,#rsx-app .upload-help{background:rgba(255,255,255,.8);border-color:rgba(184,75,117,.12);box-shadow:0 12px 30px rgba(122,48,79,.06)}
#rsx-app .hero-note strong,#rsx-app .preview-note span{color:#653449}
#rsx-app .hero-note p,#rsx-app .preview-note p{color:#806b74}
#rsx-app .field-label{color:#6f5260}
#rsx-app .rsx-input{background:#fff;color:#38262f;border-color:rgba(121,47,77,.13);box-shadow:0 7px 20px rgba(121,47,77,.035)}
#rsx-app .rsx-input::placeholder{color:#a28e96}
#rsx-app .rsx-input[type=date]{color-scheme:light}
#rsx-app .age-badge{color:#a04a6d}
#rsx-app .preset-card{background:#fff;color:#765866;border-color:rgba(121,47,77,.12)}
#rsx-app .preset-card.selected{background:#fff0f5;color:#8d3158;border-color:rgba(216,111,147,.55)}
#rsx-app .rsx-upload{background:linear-gradient(145deg,#fff,#fff0f5);border-color:rgba(216,111,147,.42)}
#rsx-app .premium-upload small{color:#907782}
#rsx-app .upload-count{color:#927681}
#rsx-app .puzzle-shell,#rsx-app .clue-card,#rsx-app .payment-card{background:rgba(255,255,255,.88);border-color:rgba(121,47,77,.11);color:#49313d}
#rsx-app .puzzle-top span,#rsx-app .puzzle-status{color:#8c6877}
#rsx-app .memory-photo{background:#fff;color:#5a3c49;box-shadow:0 20px 35px rgba(88,39,59,.16)}
#rsx-app .age-number{color:#b63d6d;text-shadow:0 12px 50px rgba(216,111,147,.2)}
#rsx-app .age-pre,#rsx-app .age-years{color:#795f6b}
#rsx-app .age-name-line strong{color:#b43f6c}
#rsx-app .letter-cover{background:linear-gradient(145deg,#d96f92,#9c3d63);color:#fff}
#rsx-app .letter-paper{background:linear-gradient(180deg,#fffdfb,#fff1f4);color:#573a47;border-color:rgba(184,138,85,.25)}
#rsx-app .letter-greeting{color:#863653}
#rsx-app .quote{color:#825568}
#rsx-app .letter-message{color:#513844}
#rsx-app .letter-typed-wish{color:#a53561}
#rsx-app .letter-sign{color:#8a707b}
#rsx-app .letter-sign strong{color:#843653}
#rsx-app .letter-hint{color:#947b85}
#rsx-app .payment-card span,#rsx-app .payment-card small{color:#8b707b}
#rsx-app .payment-card strong{color:#a33d64}
#rsx-app .coupon-toggle{color:#805e6d;border-color:rgba(121,47,77,.1)}
#rsx-app .coupon-toggle.open{color:#a23d66}
#rsx-app .share-url-box{background:#fff;border-color:rgba(121,47,77,.12)}
#rsx-app .share-url-box span{color:#927783}
#rsx-app .share-url-box input{color:#553745}
#rsx-app .share-note{background:#fff0f5;border-color:rgba(216,111,147,.16)}
#rsx-app .share-note p{color:#876f79}
#rsx-app .rsx-toast{background:#4a2638;color:#fff7fa}
#rsx-app .rsx-music-control{background:#fff;border-color:rgba(121,47,77,.14);color:#754c5d}
#rsx-app .rsx-music-control.on{color:#b43f6c}

.theme-toggle{position:absolute;right:16px;top:15px;z-index:70;border:1px solid rgba(121,47,77,.13);background:rgba(255,255,255,.82);backdrop-filter:blur(12px);color:#754c5d;border-radius:999px;padding:8px 11px;display:flex;align-items:center;gap:7px;font-size:10px;box-shadow:0 8px 20px rgba(121,47,77,.08)}
.theme-toggle span{font-size:14px;line-height:1}.theme-toggle b{font-weight:750}

/* Dark theme */
#rsx-app[data-theme="dark"]{--cream:#fff7f2;background:radial-gradient(circle at 50% -5%,rgba(201,107,134,.16),transparent 34%),linear-gradient(155deg,#0f0912,#241120 55%,#100a13);color:#fff7f2}
#rsx-app[data-theme="dark"] .rsx-card{background:linear-gradient(145deg,#2a1528,#130c18);border-color:rgba(255,255,255,.08);box-shadow:0 35px 90px rgba(10,5,12,.42)}
#rsx-app[data-theme="dark"] .rsx-screen h1,#rsx-app[data-theme="dark"] .rsx-screen h2{color:#fff8f0}
#rsx-app[data-theme="dark"] .rsx-screen h1 em,#rsx-app[data-theme="dark"] .rsx-screen h2 em{color:#e8a5ba}
#rsx-app[data-theme="dark"] .rsx-kicker{color:#d8bb91}.rsx-shell[data-theme="dark"] .rsx-sub,#rsx-app[data-theme="dark"] .rsx-sub{color:#cdbec6}
#rsx-app[data-theme="dark"] .micro,#rsx-app[data-theme="dark"] .tiny,#rsx-app[data-theme="dark"] .small{color:#94838d}
#rsx-app[data-theme="dark"] .rsx-btn-secondary{color:#f5e9e1;background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.12)}
#rsx-app[data-theme="dark"] .rsx-text-btn{color:#cbb5bf}
#rsx-app[data-theme="dark"] .hero-note,#rsx-app[data-theme="dark"] .preview-note,#rsx-app[data-theme="dark"] .upload-help{background:rgba(255,255,255,.045);border-color:rgba(231,190,131,.15)}
#rsx-app[data-theme="dark"] .hero-note strong,#rsx-app[data-theme="dark"] .preview-note span{color:#f4dfd4}
#rsx-app[data-theme="dark"] .hero-note p,#rsx-app[data-theme="dark"] .preview-note p{color:#a8959e}
#rsx-app[data-theme="dark"] .field-label{color:#bfaeb6}
#rsx-app[data-theme="dark"] .rsx-input{background:rgba(255,255,255,.055);color:#fff;border-color:rgba(255,255,255,.1)}
#rsx-app[data-theme="dark"] .rsx-input::placeholder{color:#776a73}#rsx-app[data-theme="dark"] .rsx-input[type=date]{color-scheme:dark}
#rsx-app[data-theme="dark"] .preset-card{background:rgba(255,255,255,.04);color:#d9ccd2;border-color:rgba(255,255,255,.09)}
#rsx-app[data-theme="dark"] .preset-card.selected{background:rgba(201,166,106,.12);color:#fff;border-color:rgba(231,190,131,.6)}
#rsx-app[data-theme="dark"] .rsx-upload{background:linear-gradient(145deg,rgba(255,255,255,.05),rgba(201,107,134,.05));border-color:rgba(231,190,131,.3)}
#rsx-app[data-theme="dark"] .upload-count{color:#96858e}
#rsx-app[data-theme="dark"] .puzzle-shell,#rsx-app[data-theme="dark"] .clue-card,#rsx-app[data-theme="dark"] .payment-card{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.09);color:#f5e9e1}
#rsx-app[data-theme="dark"] .puzzle-top span,#rsx-app[data-theme="dark"] .puzzle-status{color:#a998a0}
#rsx-app[data-theme="dark"] .memory-photo{background:#f7ede3;color:#4a3038}
#rsx-app[data-theme="dark"] .age-number{color:#f1d7c8}.age-pre{color:#c9bac1}.age-years{color:#c8b8bf}
#rsx-app[data-theme="dark"] .letter-paper{background:linear-gradient(180deg,#fffaf3,#f5e5d8);color:#543942}
#rsx-app[data-theme="dark"] .theme-toggle{background:rgba(31,16,29,.88);color:#f1d7c8;border-color:rgba(231,190,131,.2)}
#rsx-app[data-theme="dark"] .share-url-box{background:rgba(255,255,255,.045);border-color:rgba(231,190,131,.16)}
#rsx-app[data-theme="dark"] .share-url-box input{color:#e7d9d3}

@media(max-width:600px){.theme-toggle{right:12px;top:11px;padding:7px 10px}.rsx-screen{padding-top:62px}.theme-toggle b{font-size:9px}}
body.rsx-light-page{background:#fff5f7!important;color:#33232c}
body.rsx-dark-page{background:#110b14!important;color:#fff7f2}
#rsx-app[data-theme="light"] .opening-art:before,#rsx-app[data-theme="light"] .hero-art:before{content:"";position:absolute;left:50%;top:8%;width:220px;height:220px;transform:translateX(-50%);border-radius:50%;background:radial-gradient(circle,rgba(245,171,196,.32),transparent 68%);pointer-events:none}
#rsx-app[data-theme="light"] .mystery-mark,#rsx-app[data-theme="light"] .payment-art,#rsx-app[data-theme="light"] .share-success{color:#c35a82;background:radial-gradient(circle,rgba(216,111,147,.13),transparent 68%);border-color:rgba(216,111,147,.2)}
#rsx-app[data-theme="light"] .clue-card strong{color:#593545}
#rsx-app[data-theme="light"] .clue-card small{color:#8b707b}
#rsx-app[data-theme="light"] .puzzle-grid{background:#f5dfe7;box-shadow:0 25px 50px rgba(121,50,78,.15)}
#rsx-app[data-theme="light"] .puzzle-tile{background-color:#fff;border-radius:12px;box-shadow:inset 0 0 0 1px rgba(121,47,77,.08)}
#rsx-app[data-theme="light"] .puzzle-tile.empty{background:rgba(121,47,77,.04);box-shadow:inset 0 0 0 1px rgba(121,47,77,.08)}
#rsx-app[data-theme="light"] .puzzle-grid.solved{box-shadow:0 0 0 1px rgba(216,111,147,.45),0 25px 55px rgba(216,111,147,.16)}

/* v21 reference-style birthday scene: premium pink/cream scrapbook background on every screen */
#rsx-app{
  --ref-ink:#2f2025;
  --ref-red:#d62f59;
  --ref-pink:#f05a83;
  --ref-soft:#fff8f7;
  background:#f8eeee url('birthday-bg-premium.webp') center center/cover fixed no-repeat !important;
  color:var(--ref-ink);
}
#rsx-app .rsx-card{
  background:transparent !important;
  border:0 !important;
  box-shadow:none !important;
}
#rsx-app .rsx-screen{
  background:rgba(255,250,249,.68);
  backdrop-filter:blur(2px) saturate(105%);
  -webkit-backdrop-filter:blur(2px) saturate(105%);
}
#rsx-app .rsx-screen h1,
#rsx-app .rsx-screen h2{
  font-family:"Segoe Script","Bradley Hand","Brush Script MT",cursive !important;
  font-weight:600 !important;
  letter-spacing:-.025em;
  color:#2b2024 !important;
  text-shadow:0 1px 0 rgba(255,255,255,.7);
}
#rsx-app .rsx-screen h1 em,
#rsx-app .rsx-screen h2 em{
  font-family:"Segoe Script","Bradley Hand","Brush Script MT",cursive !important;
  color:var(--ref-red) !important;
  font-style:normal;
}
#rsx-app .rsx-kicker{
  color:#c33d61 !important;
  font-family:"Segoe Script","Bradley Hand","Brush Script MT",cursive;
  font-size:13px;
  letter-spacing:.02em;
}
#rsx-app .rsx-sub,
#rsx-app .micro,
#rsx-app .tiny,
#rsx-app .small{color:#604b52 !important}
#rsx-app .field-label{color:#4b363e !important}
#rsx-app .rsx-input{
  background:rgba(255,255,255,.88) !important;
  color:#302127 !important;
  border:1px solid rgba(181,57,88,.18) !important;
  border-radius:16px !important;
  box-shadow:0 7px 22px rgba(113,39,60,.07) !important;
}
#rsx-app .rsx-input:focus{border-color:rgba(214,47,89,.55) !important;box-shadow:0 0 0 4px rgba(240,90,131,.12),0 10px 24px rgba(113,39,60,.08) !important}
#rsx-app .rsx-btn-primary{
  position:relative;
  overflow:hidden;
  background:linear-gradient(135deg,#ef6289,#d82f5c) !important;
  border:0 !important;
  border-radius:999px !important;
  color:#fff !important;
  font-family:"Segoe Script","Bradley Hand","Brush Script MT",cursive;
  font-size:14px;
  letter-spacing:.01em;
  box-shadow:0 14px 28px rgba(210,45,88,.22),inset 0 1px 0 rgba(255,255,255,.55) !important;
}
#rsx-app .rsx-btn-primary:before{
  content:"";position:absolute;inset:2px 10px auto 10px;height:1px;background:rgba(255,255,255,.55);border-radius:50%;pointer-events:none
}
#rsx-app .rsx-btn-secondary{
  background:rgba(255,255,255,.84) !important;
  color:#713448 !important;
  border:1px solid rgba(181,57,88,.18) !important;
  border-radius:999px !important;
}
#rsx-app .hero-note,
#rsx-app .preview-note,
#rsx-app .upload-help,
#rsx-app .clue-card,
#rsx-app .puzzle-shell,
#rsx-app .payment-card{
  background:rgba(255,255,255,.80) !important;
  border-color:rgba(181,57,88,.14) !important;
  box-shadow:0 16px 34px rgba(111,43,62,.08) !important;
}
#rsx-app .hero-note strong,
#rsx-app .preview-note span,
#rsx-app .clue-card strong{color:#5b2f3e !important}
#rsx-app .preset-card{
  background:rgba(255,255,255,.84) !important;
  color:#674651 !important;
  border-color:rgba(181,57,88,.14) !important;
  border-radius:16px !important;
}
#rsx-app .preset-card.selected{background:#fff0f4 !important;color:#c52f58 !important;border-color:#e56a8a !important}
#rsx-app .rsx-upload{background:rgba(255,255,255,.76) !important;border:1px dashed rgba(214,47,89,.42) !important;border-radius:20px !important}
#rsx-app .age-number{color:#d52f5b !important;text-shadow:0 10px 45px rgba(214,47,89,.18) !important}
#rsx-app .age-pre,#rsx-app .age-years{color:#6b5159 !important}
#rsx-app .age-name-line strong{color:#cf315a !important}
#rsx-app .letter-cover{background:linear-gradient(145deg,#ef7898,#c92f59) !important}
#rsx-app .letter-paper{box-shadow:0 22px 55px rgba(91,39,53,.18) !important}
#rsx-app .share-note{background:rgba(255,238,244,.86) !important}
#rsx-app .rsx-progress{background:rgba(102,44,61,.10) !important}
#rsx-app .rsx-progress span{background:linear-gradient(90deg,#ef6d91,#d52f5b) !important}
#rsx-app .theme-toggle{background:rgba(255,255,255,.82) !important;color:#74354a !important;border-color:rgba(181,57,88,.16) !important}

/* The new background already contains the cake + glossy balloon cluster; prevent duplicate CSS art. */
#rsx-app .hero-art,
#rsx-app .opening-art{display:none !important}

/* Dark theme keeps the same birthday artwork, but adds a cinematic plum veil. */
#rsx-app[data-theme="dark"]{
  background-color:#170d14 !important;
  background-image:linear-gradient(rgba(31,10,20,.70),rgba(31,10,20,.78)),url('birthday-bg-premium.webp') !important;
  color:#fff6f3 !important;
}
#rsx-app[data-theme="dark"] .rsx-screen{background:rgba(26,12,20,.58) !important}
#rsx-app[data-theme="dark"] .rsx-screen h1,
#rsx-app[data-theme="dark"] .rsx-screen h2{color:#fff8f5 !important;text-shadow:none}
#rsx-app[data-theme="dark"] .rsx-screen h1 em,
#rsx-app[data-theme="dark"] .rsx-screen h2 em{color:#ff9bb7 !important}
#rsx-app[data-theme="dark"] .rsx-kicker{color:#ffabc1 !important}
#rsx-app[data-theme="dark"] .rsx-sub,
#rsx-app[data-theme="dark"] .micro,
#rsx-app[data-theme="dark"] .tiny,
#rsx-app[data-theme="dark"] .small{color:#ead5da !important}
#rsx-app[data-theme="dark"] .field-label{color:#f0dfe3 !important}
#rsx-app[data-theme="dark"] .rsx-input{background:rgba(38,18,29,.88) !important;color:#fff !important;border-color:rgba(255,155,183,.22) !important}
#rsx-app[data-theme="dark"] .rsx-input::placeholder{color:#a9929b !important}
#rsx-app[data-theme="dark"] .rsx-btn-secondary{background:rgba(40,20,30,.82) !important;color:#ffe9ef !important;border-color:rgba(255,155,183,.2) !important}
#rsx-app[data-theme="dark"] .hero-note,
#rsx-app[data-theme="dark"] .preview-note,
#rsx-app[data-theme="dark"] .upload-help,
#rsx-app[data-theme="dark"] .clue-card,
#rsx-app[data-theme="dark"] .puzzle-shell,
#rsx-app[data-theme="dark"] .payment-card{background:rgba(37,17,28,.78) !important;border-color:rgba(255,155,183,.16) !important;color:#fff1f3 !important}
#rsx-app[data-theme="dark"] .hero-note strong,
#rsx-app[data-theme="dark"] .preview-note span,
#rsx-app[data-theme="dark"] .clue-card strong{color:#fff1f3 !important}
#rsx-app[data-theme="dark"] .preset-card{background:rgba(40,20,30,.80) !important;color:#f2dfe4 !important;border-color:rgba(255,155,183,.15) !important}
#rsx-app[data-theme="dark"] .preset-card.selected{background:rgba(240,90,131,.16) !important;color:#ffabc1 !important;border-color:rgba(255,155,183,.5) !important}
#rsx-app[data-theme="dark"] .age-number{color:#ff9ab7 !important}
#rsx-app[data-theme="dark"] .age-pre,#rsx-app[data-theme="dark"] .age-years{color:#ead5da !important}
#rsx-app[data-theme="dark"] .age-name-line strong{color:#ff9ab7 !important}
#rsx-app[data-theme="dark"] .theme-toggle{background:rgba(35,16,27,.88) !important;color:#ffe9ef !important}

@media(max-width:600px){
  #rsx-app{background-attachment:scroll !important;background-position:center center !important}
  #rsx-app .rsx-screen{background:rgba(255,250,249,.54);padding-top:68px}
  #rsx-app[data-theme="dark"] .rsx-screen{background:rgba(26,12,20,.55) !important}
  #rsx-app .rsx-screen h1{font-size:clamp(38px,11vw,48px) !important;line-height:1.02 !important}
  #rsx-app .rsx-screen h2{font-size:clamp(34px,9.5vw,44px) !important;line-height:1.05 !important}
  #rsx-app .rsx-kicker{font-size:12px}
  #rsx-app .rsx-btn-primary,#rsx-app .rsx-btn-secondary{min-height:50px}
}


/* v1.0.1 — premium birthday reveal + music picker */
#rsx-app .music-picker{margin:18px 0 4px;padding:16px;border:1px solid rgba(194,67,101,.14);border-radius:22px;background:rgba(255,255,255,.58);box-shadow:0 12px 30px rgba(91,39,53,.06)}
#rsx-app .music-picker .choice-title{margin-bottom:10px}
#rsx-app .rsx-select{width:100%;appearance:auto;cursor:pointer}
#rsx-app .birthday-reveal-screen{overflow:hidden}
#rsx-app .birthday-reveal-screen h2{margin-top:8px}
#rsx-app .birthday-reveal-art{position:relative;height:190px;margin:-12px auto 0;max-width:390px;pointer-events:none}
#rsx-app .ribbon-banner{position:absolute;left:50%;top:18px;transform:translateX(-50%) rotate(-1deg);z-index:4;padding:10px 28px;background:linear-gradient(180deg,#ee6e92,#c92758);color:#fff;font-family:'DM Sans',sans-serif;font-weight:800;letter-spacing:2px;font-size:13px;box-shadow:0 10px 24px rgba(201,39,88,.2);clip-path:polygon(0 8%,100% 0,96% 100%,4% 94%)}
#rsx-app .ribbon-banner:before,#rsx-app .ribbon-banner:after{content:'';position:absolute;top:5px;width:48px;height:32px;background:#e65f83;z-index:-1;opacity:.85}
#rsx-app .ribbon-banner:before{right:100%;clip-path:polygon(100% 0,0 25%,72% 50%,0 100%,100% 76%)}
#rsx-app .ribbon-banner:after{left:100%;clip-path:polygon(0 0,100% 25%,28% 50%,100% 100%,0 76%)}
#rsx-app .reveal-balloon{position:absolute;display:block;width:62px;height:78px;border-radius:52% 48% 50% 50%;box-shadow:inset -11px -12px 20px rgba(142,30,65,.12),inset 10px 8px 15px rgba(255,255,255,.48),0 12px 24px rgba(91,39,53,.10)}
#rsx-app .reveal-balloon:after{content:'';position:absolute;left:50%;top:76px;width:1px;height:105px;background:rgba(125,62,79,.28);transform:translateX(-50%)}
#rsx-app .reveal-balloon-a{left:22px;top:50px;background:radial-gradient(circle at 30% 22%,#fff 0 8%,transparent 18%),#f28ca7;transform:rotate(-10deg)}
#rsx-app .reveal-balloon-b{right:24px;top:46px;background:radial-gradient(circle at 30% 22%,#fff 0 8%,transparent 18%),#e96d91;transform:rotate(9deg)}
#rsx-app .reveal-balloon-c{right:74px;top:76px;width:52px;height:66px;background:radial-gradient(circle at 30% 22%,#fff 0 8%,transparent 18%),#f7b8c8;transform:rotate(-3deg)}
#rsx-app .reveal-cake{position:absolute;left:50%;bottom:4px;transform:translateX(-50%);width:125px;height:62px;border-radius:16px 16px 30px 30px;background:linear-gradient(#fffaf5,#f9ddd9);border:4px solid #f3b6c3;box-shadow:0 14px 24px rgba(100,38,55,.12)}
#rsx-app .reveal-cake:before{content:'';position:absolute;left:-8px;right:-8px;bottom:-9px;height:17px;border-radius:50%;background:#d93664;box-shadow:inset 0 4px 0 rgba(255,255,255,.45)}
#rsx-app .reveal-cake span{position:absolute;left:50%;top:-18px;width:7px;height:22px;background:#ef7897;transform:translateX(-50%);border-radius:5px}
#rsx-app .reveal-cake b{position:absolute;left:50%;top:-28px;width:22px;height:12px;border-top:3px solid #d8a35e;border-radius:50%;transform:translateX(-50%)}
#rsx-app .cake-flame{position:absolute!important;left:50%!important;top:-38px!important;width:8px!important;height:11px!important;background:#ffcc64!important;border-radius:60% 40% 60% 40%!important;transform:translateX(-50%) rotate(10deg)!important;box-shadow:0 0 12px rgba(255,177,64,.65)}
#rsx-app .age-reveal-number{font-family:Georgia,'Times New Roman',serif;font-size:clamp(88px,24vw,138px);line-height:.85;font-weight:700;color:#d52f5b;text-shadow:0 15px 50px rgba(213,47,91,.22);margin:2px 0 10px;animation:rsxAgePop .9s cubic-bezier(.2,.8,.2,1) both}
#rsx-app .age-reveal-caption{font-family:Georgia,'Times New Roman',serif;font-style:italic;color:#7c4355;font-size:17px;margin:0 0 10px}
#rsx-app .birthday-reveal-sub{max-width:330px;margin:0 auto 18px}
@keyframes rsxAgePop{from{opacity:0;transform:translateY(18px) scale(.82)}to{opacity:1;transform:none}}
#rsx-app[data-theme="dark"] .music-picker{background:rgba(37,17,28,.78)!important;border-color:rgba(255,155,183,.16)!important}
#rsx-app[data-theme="dark"] .age-reveal-number{color:#ff9ab7;text-shadow:0 15px 50px rgba(255,105,151,.18)}
#rsx-app[data-theme="dark"] .age-reveal-caption{color:#f1d9df}
#rsx-app[data-theme="dark"] .ribbon-banner{background:linear-gradient(180deg,#e95f88,#aa214a)}
@media(max-width:600px){#rsx-app .birthday-reveal-art{height:178px}#rsx-app .reveal-balloon-a{left:4px}#rsx-app .reveal-balloon-b{right:5px}#rsx-app .reveal-balloon-c{right:54px}}

/* v1.0.2 — music picker + identical premium birthday reveal for creator preview */
#rsx-app .music-picker-note{margin:8px 0 0;color:#8b737d;font-size:9px;line-height:1.5}
#rsx-app .rsx-select{background-color:rgba(255,255,255,.82);color:#4b2938;padding-right:40px}
#rsx-app .rsx-select option{background:#fff8f3;color:#35202b}
#rsx-app[data-theme="dark"] .rsx-select{background-color:rgba(37,17,28,.92)!important;color:#fff1f4}
#rsx-app[data-theme="dark"] .rsx-select option{background:#241320;color:#fff1f4}
#rsx-app .birthday-reveal-screen[data-screen="11"]{overflow:hidden}
#rsx-app .birthday-reveal-screen[data-screen="11"] .birthday-reveal-art{margin-top:-4px}
#rsx-app .birthday-reveal-screen[data-screen="11"] h2{margin-top:6px}
#rsx-app .birthday-reveal-screen[data-screen="11"] .age-reveal-number{margin-top:0}


/* v1.0.3 — receiver countdown + stable birthday ribbon */
#rsx-countdown.show{display:grid!important}
#rsx-app .birthday-reveal-art{overflow:visible}
#rsx-app .ribbon-banner{width:min(260px,calc(100% - 76px));max-width:calc(100% - 76px);box-sizing:border-box;text-align:center;white-space:nowrap;overflow:visible;padding:10px 12px;font-size:clamp(10px,3.2vw,13px);letter-spacing:clamp(1px,.45vw,2px)}
#rsx-app .ribbon-banner:before,#rsx-app .ribbon-banner:after{width:32px;height:29px;top:6px}
#rsx-app .ribbon-banner:before{right:calc(100% - 2px)}
#rsx-app .ribbon-banner:after{left:calc(100% - 2px)}
@media(max-width:380px){#rsx-app .ribbon-banner{width:calc(100% - 66px);max-width:calc(100% - 66px);padding-left:8px;padding-right:8px;font-size:10px}}


/* v1.0.4 — robust mobile birthday ribbon */
#rsx-app .birthday-reveal-art{overflow:visible!important;isolation:isolate;}
#rsx-app .ribbon-banner{left:50%;top:18px;width:clamp(210px,72vw,300px)!important;max-width:none!important;height:42px;box-sizing:border-box;padding:0 18px!important;display:flex;align-items:center;justify-content:center;white-space:nowrap;overflow:visible!important;clip-path:none!important;border-radius:3px;transform:translateX(-50%) rotate(-1deg);font-size:clamp(10px,3.4vw,13px)!important;line-height:1;letter-spacing:clamp(1px,.45vw,2px)!important;z-index:10;}
#rsx-app .ribbon-banner:before,#rsx-app .ribbon-banner:after{top:5px!important;width:42px!important;height:32px!important;z-index:-1;pointer-events:none;}
#rsx-app .ribbon-banner:before{right:calc(100% - 5px)!important;clip-path:polygon(100% 0,0 25%,70% 50%,0 100%,100% 76%)!important;}
#rsx-app .ribbon-banner:after{left:calc(100% - 5px)!important;clip-path:polygon(0 0,100% 25%,30% 50%,100% 100%,0 76%)!important;}
@media(max-width:380px){#rsx-app .ribbon-banner{width:220px!important;height:40px;padding:0 12px!important;font-size:10px!important;}#rsx-app .ribbon-banner:before,#rsx-app .ribbon-banner:after{width:34px!important;height:29px!important;}}

/* v1.0.8 — force reliable countdown rendering and cache bust */
#rsx-countdown{display:none!important;visibility:visible!important;opacity:1!important;}
#rsx-countdown.show{display:grid!important;visibility:visible!important;opacity:1!important;}
#rsx-countdown[hidden]{display:none!important;}

/* v1.0.9 photo-access fallback for social-media in-app browsers */
#rsx-photo-help{position:fixed;inset:0;z-index:1400;display:none;place-items:center;background:rgba(8,4,10,.84);backdrop-filter:blur(12px);padding:20px}
#rsx-photo-help .photo-help-card{width:min(100%,380px);padding:28px;border-radius:28px;background:linear-gradient(145deg,#29152a,#130b16);border:1px solid rgba(231,190,131,.2);box-shadow:0 30px 70px rgba(0,0,0,.45);text-align:center}
#rsx-photo-help .photo-help-card h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.035em;line-height:1.02;margin:0;color:#fff8f0;font-size:clamp(28px,6vw,44px)}
#rsx-photo-help .photo-help-card h2 em{font-style:italic;color:#e8b3c1}
#rsx-photo-help-text{color:#cdbec6;font-size:11px;line-height:1.65;margin:15px 0 20px}
#rsx-photo-help .rsx-btn{margin-top:8px}
#rsx-app .photo-permission-btn{margin:-8px auto 8px;display:block;color:#a34d6d;text-decoration:underline;text-underline-offset:3px;font-size:11px}
#rsx-app[data-theme="dark"] .photo-permission-btn{color:#e8b3c1}
