*{box-sizing:border-box}:root{color-scheme:dark;--wine:#592136;--rose:#d9929d;--cream:#f8ecdc;--gold:#d5b27f;--ink:#180d13}body{margin:0;background:#110a0f;color:var(--cream);font-family:Georgia,serif}button{font:inherit;color:inherit;cursor:pointer}button,input{-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline:2px solid var(--gold);outline-offset:5px}[hidden]{display:none!important}#film{position:relative;isolation:isolate;min-height:480px;height:100svh;width:100%;max-width:1400px;margin:auto;overflow:hidden;background:var(--ink)}#scenes,.scene,#light,.edge,#welcome{position:absolute;inset:0}.scene{visibility:hidden;opacity:0;overflow:hidden;background:radial-gradient(ellipse at 20% 20%,#71324966,transparent 65%),#240e17}.scene.cream{background:radial-gradient(ellipse at 80% 30%,#e3cba7,transparent 75%),#f8ecdc}.scene.ink{background:radial-gradient(ellipse at 80% 10%,#49413d55,transparent 65%),#151315}.scene.rose{background:radial-gradient(ellipse at 80% 60%,#973f5a88,transparent 65%),#3c1727}.scene .layout{position:absolute;inset:13% 8% 29%;display:flex;align-items:center;justify-content:center;gap:20px}.frame{margin:0;position:relative;flex:1;min-width:0;height:100%;overflow:hidden;box-shadow:0 25px 60px #0004;background:#210e15;transform-origin:50% 80%}.frame img,.frame video{height:100%;width:100%;display:block;object-fit:contain;object-position:center}.frame img{will-change:transform}.frame figcaption{position:absolute;bottom:0;left:0;right:0;padding:10px 6px;font:12px Arial,sans-serif;letter-spacing:.18em;text-align:center;color:#44252f;background:#f8ecdc}.layout.single .frame{flex:0 1 470px;border:1px solid #d5b27f88;padding:10px;outline:1px solid #d5b27f44;outline-offset:8px}.layout.arch .frame{flex:0 1 380px;border-radius:200px 200px 8px 8px;border:9px solid #f8ecdc;outline:1px solid #d5b27f;outline-offset:9px}.layout.arch .frame img{object-fit:cover;object-position:center 36%}.layout.pair{gap:28px;padding:15px 3%}.layout.pair .frame{max-width:340px;height:88%;border:9px solid var(--cream);border-bottom-width:32px;transform:rotate(-5deg)}.layout.pair .frame:nth-child(2){transform:rotate(5deg) translateY(20px)}.layout.pair img{object-fit:cover;object-position:50% 35%}.layout.strip{gap:12px;padding:20px 0}.layout.strip .frame{height:80%;max-width:300px;padding:9px 9px 30px;background:var(--cream)}.layout.strip .frame:nth-child(even){transform:translateY(22px)}.layout.strip img{object-fit:cover;object-position:center 35%}.layout.stack{gap:0}.layout.stack .frame{height:84%;max-width:320px;border:10px solid var(--cream);border-bottom-width:28px;transform:rotate(-7deg);margin:0 -13px}.layout.stack .frame:nth-child(2){transform:rotate(7deg) translateY(20px);z-index:1}.layout.stack .frame:nth-child(3){transform:rotate(-3deg);z-index:2}.layout.stack img{object-fit:cover;object-position:50% 35%}.layout.cinema .frame{max-width:660px;border:1px solid #d5b27f77;border-radius:4px;box-shadow:18px 18px 0 #d5b27f11}.layout.cinema .frame video{object-fit:contain}.layout.grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;max-width:630px;margin:auto}.layout.grid .frame{border:5px solid var(--cream);height:100%}.layout.grid img{object-fit:cover;object-position:center 30%}.scene.mono .frame{filter:grayscale(1)}.scene.duotone .frame:first-child{filter:grayscale(1)}.scene .ghost{position:absolute;top:8%;left:6%;font-size:clamp(5rem,16vw,15rem);font-style:italic;color:#e9becc0d;pointer-events:none}.scene.cream .ghost{color:#5921360d}.scene .scene-note{position:absolute;top:10%;right:7%;font:12px/1.6 Arial,sans-serif;letter-spacing:.18em;color:var(--gold);writing-mode:vertical-rl}.scene.cream .scene-note{color:#734357}.edge{pointer-events:none;z-index:3;box-shadow:inset 0 0 65px #0003;border:14px solid #150d1322}#light{z-index:4;pointer-events:none;background:linear-gradient(110deg,transparent 15%,#f1b17170 40%,#ef9b9766 50%,transparent 70%);mix-blend-mode:screen;opacity:0}#masthead{position:absolute;z-index:7;top:max(24px,env(safe-area-inset-top));left:6%;right:6%;display:flex;align-items:center;justify-content:space-between;font:11px Arial,sans-serif;letter-spacing:.17em;color:#dec7b0}#masthead>span:first-child{font:24px Georgia,serif;letter-spacing:.1em}#masthead i{font-style:normal;color:#df8fa1}#film.light #masthead,#film.light #controls{color:#57293b}#film.light #copy{color:#4b1c30}#film.light #kicker,#film.light #subline{color:#824b5b}#copy{position:absolute;z-index:5;left:8%;right:8%;bottom:12%;height:17%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;pointer-events:none}#kicker{font:11px Arial,sans-serif;letter-spacing:.2em;color:var(--gold);margin-bottom:12px;min-height:12px}#words{font-size:clamp(1.7rem,3.9vw,3.7rem);font-weight:400;line-height:1.08;letter-spacing:-.035em;text-wrap:balance;margin:0;max-width:850px}#words .word{display:inline-block;white-space:pre;will-change:transform,opacity}#subline{font:14px/1.5 Arial,sans-serif;color:#dbb7c1;margin:12px 0 0;max-width:600px;text-wrap:balance}#copy.title{top:25%;bottom:auto;height:50%}#copy.title #words{font-size:clamp(3.5rem,9vw,8.5rem);font-style:italic;max-width:1000px}#copy.countdown{top:20%;bottom:auto;height:55%}#copy.countdown #words{font-size:clamp(8rem,26vw,17rem);font-style:italic}#copy.countdown:before{content:'';position:absolute;aspect-ratio:1;width:min(64vw,340px);border:1px solid #d5b27f70;border-radius:50%;z-index:-1}#copy.countdown:after{content:'';position:absolute;aspect-ratio:1;width:min(72vw,390px);border:1px dashed #d5b27f40;border-radius:50%;z-index:-1;transform:rotate(var(--spin,0deg))}#hearts{position:absolute;inset:0;z-index:4;pointer-events:none;overflow:hidden}#hearts span{position:absolute;bottom:12%;left:6%;font:34px Georgia,serif;color:#dc8a9b99;opacity:0}#hearts span:nth-child(2){left:88%;font-size:12px}#hearts span:nth-child(3){left:77%;font-size:24px}#hearts span:nth-child(4){left:15%;font-size:21px}#hearts span:nth-child(5){left:45%;font-size:13px}#welcome{z-index:8;background:radial-gradient(ellipse at 45% 30%,#71324999,transparent 65%),#240e17;display:grid;place-items:center;text-align:center}.opening-art{position:absolute;inset:0;overflow:hidden}.cover{position:absolute;width:29%;height:57%;top:21%;margin:0;border:10px solid var(--cream);border-bottom-width:37px;box-shadow:0 35px 90px #0008}.cover img{width:100%;height:100%;object-fit:cover}.cover-left{left:-7%;transform:rotate(-13deg);filter:grayscale(1);animation:drift-left 9s ease-in-out infinite alternate}.cover-right{right:-7%;transform:rotate(13deg);animation:drift-right 9s ease-in-out infinite alternate}.opening-copy{z-index:1;width:min(82%,640px);position:relative}.eyebrow,.opening-foot{font:12px Arial,sans-serif;letter-spacing:.2em;color:#d5b27f}.for{font-size:clamp(1.1rem,2.3vw,1.7rem);font-style:italic;color:#deb7c2;margin:38px 0 0}h1{font-weight:400;font-size:clamp(5.5rem,13vw,10rem);line-height:1.08;letter-spacing:-.065em;margin:5px 0 20px;position:relative}h1 span{display:inline-block;font-size:.24em;position:absolute;margin:0 0 0 8px;top:9%;color:#df91a4;animation:heartbeat 3s ease-in-out infinite}.fine-line{height:1px;width:75px;background:#cda879;transform:rotate(-6deg);margin:0 auto 23px}.dedication{font-size:1.1rem;line-height:1.6;color:#ead4d5}#begin{display:inline-flex;gap:25px;justify-content:space-between;align-items:center;background:var(--cream);border:0;border-radius:3px;padding:18px 25px;min-height:54px;margin:22px 0 7px;font:14px Arial,sans-serif;letter-spacing:.03em;color:#4b1c30;box-shadow:0 8px 30px #0002;transition:transform .3s,background .3s}#begin:hover{background:#edcfaa;transform:translateY(-3px)}#begin:disabled{opacity:.6;cursor:wait}#loading{font:12px/1.6 Arial,sans-serif;color:#d2b4bf;min-height:20px}.opening-foot{display:block;margin-top:30px;font-size:10px;letter-spacing:.18em}.opening-foot b{margin:0 10px}#controls{position:absolute;z-index:9;bottom:max(14px,env(safe-area-inset-bottom));left:6%;right:6%;font-family:Arial,sans-serif;color:#ead4d5}.control-row{display:flex;gap:12px;align-items:center;font-size:12px}.control-row button{border:0;background:none;padding:10px 5px;min-height:44px;display:flex;gap:8px;align-items:center;font:18px Arial,sans-serif}.control-row button span{font-size:13px}.spacer{flex:1}#progress{appearance:none;width:100%;height:14px;background:transparent;cursor:pointer}#progress::-webkit-slider-runnable-track{height:2px;background:linear-gradient(to right,var(--gold) var(--progress,0%),#aa858a55 var(--progress,0%))}#progress::-webkit-slider-thumb{appearance:none;width:10px;height:10px;background:var(--gold);border-radius:50%;margin-top:-4px}#notice{position:absolute;z-index:20;inset:30% 8% auto;background:#301721;border:1px solid var(--gold);padding:25px;font:16px/1.5 Arial,sans-serif}.scene.message .layout{inset:13% 8% 27%;gap:5%;justify-content:center}.message-main{width:42%;height:100%;flex:none;border:1px solid #d5b27f99;padding:8px;border-radius:180px 180px 8px 8px;overflow:hidden}.message-main video{object-fit:contain}.message-memory{position:relative;width:35%;height:82%;flex:none;transform:rotate(4deg);background:var(--cream);border:9px solid var(--cream);border-bottom-width:30px}.message-memory img{position:absolute;inset:0;object-fit:contain;background:#231019;transition:none}.message .memory-label{position:absolute;bottom:-24px;width:100%;text-align:center;color:#592136;font:11px Arial,sans-serif;letter-spacing:.14em}.message.quiet .message-memory{opacity:0}.message.quiet .message-main{border-radius:8px}#film.quiet #hearts,#film.quiet #masthead{opacity:0}#film.quiet #copy{visibility:hidden}.scene.finale .layout{inset:10% 8% 31%}.scene.finale .frame{border-radius:180px 180px 0 0}.scene.finale .frame img{object-fit:cover;object-position:50% 38%}@keyframes drift-left{to{transform:rotate(-10deg) translateY(-15px)}}@keyframes drift-right{to{transform:rotate(10deg) translateY(13px)}}@keyframes heartbeat{50%{transform:scale(1.15)}}@media(max-width:600px){.edge{border-width:8px}#masthead{top:20px;font-size:9px;letter-spacing:.12em}#masthead>span:first-child{font-size:21px}.scene .layout{inset:13% 8% 32%;gap:10px}.layout.pair{gap:12px;padding:0}.layout.pair .frame{height:76%;border-width:5px;border-bottom-width:23px}.layout.strip{padding:0;gap:8px}.layout.strip .frame{height:66%;padding:4px 4px 18px}.layout.stack .frame{height:70%;margin:0 -9px;border-width:5px;border-bottom-width:20px}.layout.arch .frame{flex-basis:260px;border-width:6px;outline-offset:5px}.layout.single .frame{padding:6px;outline-offset:5px}.frame figcaption{font-size:9px;padding:6px}.scene .scene-note{font-size:9px;right:3%;top:16%}#copy{left:7%;right:7%;bottom:13%;height:19%}#words{font-size:clamp(1.65rem,6.7vw,2.4rem);line-height:1.13}#kicker{font-size:10px;margin-bottom:9px}#subline{font-size:12px;margin-top:9px}.control-row{gap:9px;font-size:10px}.control-row button{gap:4px;padding:8px 2px}.control-row button span{font-size:11px}.cover{width:35%;height:32%;top:17%;border-width:5px;border-bottom-width:18px;opacity:.68}.cover-left{left:-17%}.cover-right{right:-17%;top:51%}.opening-copy{width:84%}.for{margin-top:32px}.eyebrow{font-size:10px}.dedication{font-size:1rem}.opening-foot{font-size:9px;letter-spacing:.12em}.scene.message .layout{inset:12% 7% 31%;gap:0;display:block}.message-main{position:absolute;left:4%;width:76%;height:100%;border-radius:150px 150px 5px 5px;padding:5px}.message-memory{position:absolute;right:-1%;bottom:-2%;width:37%;height:40%;border-width:5px;border-bottom-width:21px;box-shadow:0 8px 24px #0006}.message .memory-label{font-size:8px;bottom:-17px}.message.quiet .message-main{left:12%}}@media(min-width:1000px){#film{height:min(100svh,960px)}#copy{bottom:11%}}@media(max-height:550px){#film{min-height:430px}.for{margin-top:12px}h1{font-size:5rem;margin:4px}.fine-line{margin-bottom:9px}.dedication{margin:7px}#begin{margin-top:7px;padding:12px 24px}.opening-foot{margin-top:8px}#copy{bottom:16%;height:19%}#words{font-size:1.7rem}#subline{display:none}.scene .layout{bottom:37%}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}.frame img{will-change:auto}}
/* A bounded stage: media, captions and controls have separate reserved areas. */
html,body{width:100%;height:100%;overflow:hidden}#film{height:var(--view-height,100dvh);min-height:0;max-height:none;container-type:size}#scenes{z-index:0;isolation:isolate}#copy{z-index:5}#controls{z-index:10}#masthead{z-index:7}.edge{z-index:3}
body{font-family:'Palatino Linotype','Book Antiqua',Palatino,Georgia,serif}h1,#words,.for{font-family:'Palatino Linotype','Book Antiqua',Palatino,Georgia,serif}#words{letter-spacing:-.025em;line-height:1.13;font-size:clamp(1.3rem,4.8cqh,2.8rem)}
.scene .layout,.scene.message .layout,.scene.finale .layout{inset:12% 9% 34%;max-width:1000px;max-height:100%;margin:auto;min-width:0;min-height:0;gap:clamp(8px,2vw,24px);padding:12px 10px}.frame{min-height:0;min-width:0;max-width:100%;max-height:100%;flex-shrink:1}.frame img,.frame video,.message-memory img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain!important;object-position:center!important}
.layout.pair .frame,.layout.strip .frame,.layout.stack .frame{height:87%;max-width:31%;flex:1 1 0;min-width:0;min-height:0}.layout.pair .frame{max-width:43%;transform:rotate(-3deg)}.layout.pair .frame:nth-child(2){transform:rotate(3deg) translateY(8px)}.layout.pair.video-center .frame{max-width:31%;transform:rotate(-3deg)}.layout.pair.video-center .frame:nth-child(2){transform:none;height:98%}.layout.pair.video-center .frame:nth-child(3){transform:rotate(3deg)}
.layout.stack .frame{margin:0;transform:rotate(-3deg)}.layout.stack .frame:nth-child(2){transform:rotate(3deg) translateY(8px)}.layout.stack .frame:nth-child(3){transform:rotate(-2deg)}.layout.strip .frame:nth-child(even){transform:translateY(8px)}.scene.duotone .frame:first-child{filter:none}.scene.duotone .frame:nth-child(2){filter:grayscale(1)}
.layout.single .frame,.layout.arch .frame,.layout.cinema .frame{flex:0 1 auto;width:auto;aspect-ratio:4/5;height:95%;max-width:92%;min-width:0}.layout.cinema .frame{aspect-ratio:9/16;box-shadow:10px 10px 0 #d5b27f11}.layout.arch .frame,.scene.finale .frame{border-radius:65px 65px 4px 4px}.scene .scene-note{top:14%;right:3%;font-size:10px}
.scene.message .layout{display:flex;align-items:center;justify-content:center;gap:5%}.message-main{position:relative;left:auto!important;flex:0 1 42%;width:42%;height:96%;border-radius:45px 45px 4px 4px;padding:5px;aspect-ratio:9/16;max-width:350px}.message-memory{position:relative;right:auto;bottom:auto;flex:0 1 38%;width:38%;height:80%;max-width:320px;min-width:0;min-height:0;overflow:hidden;transform:rotate(3deg);border:7px solid var(--cream);border-bottom-width:25px}.message-memory img{position:absolute;inset:0}.message .memory-label{bottom:0;z-index:1;background:var(--cream);font-size:10px;padding:5px 0}
#copy{left:7%;right:7%;bottom:calc(84px + env(safe-area-inset-bottom,0px));height:23%;min-height:0;max-height:30%;gap:0}#kicker{margin-bottom:8px;font-size:11px;min-height:0;line-height:1.3}#subline{margin-top:8px;font-size:clamp(12px,1.7cqh,15px);line-height:1.4}#copy.title{top:23%;bottom:auto;height:52%;max-height:60%}#copy.title #words{font-size:clamp(2rem,8cqh,5.6rem)}#copy.countdown{top:15%;height:65%;max-height:70%}#copy.countdown #words{font-size:clamp(5rem,25cqh,13rem)}
#controls{position:absolute;left:6%;right:6%;bottom:env(safe-area-inset-bottom,0px);height:78px;padding:3px 8px 10px;background:linear-gradient(transparent,#180d13e6 55%);border-radius:8px 8px 0 0}.control-row{height:44px;gap:10px}.control-row button{min-height:44px;font-size:18px}.control-row button span{font-size:13px}#progress{display:block;width:100%;height:20px;margin:0;accent-color:var(--gold)}#progress::-webkit-slider-runnable-track{height:4px}#progress::-webkit-slider-thumb{width:14px;height:14px;margin-top:-5px}#progress::-moz-range-track{height:4px;background:#aa858a77}#progress::-moz-range-progress{height:4px;background:var(--gold)}#progress::-moz-range-thumb{height:14px;width:14px;background:var(--gold);border:0;border-radius:50%}#film.light #controls{background:linear-gradient(transparent,#f8ecdce8 55%)}
#welcome .cover{width:20%;height:45%;top:25%;border-width:6px;border-bottom-width:24px}.cover-left{left:3%;transform:rotate(-6deg)}.cover-right{right:3%;transform:rotate(6deg)}.cover img{object-fit:contain;background:#240e17}.opening-copy{max-width:54%}.opening-copy h1{font-size:clamp(3rem,11cqh,7rem)}.for{margin-top:24px}.opening-foot{display:none}#loading:empty{display:none}.opening-copy .eyebrow{line-height:1.5}#masthead{top:max(12px,env(safe-area-inset-top,0px))}.ghost{max-width:100%;overflow:hidden}
@media(max-width:600px){.scene .layout,.scene.message .layout,.scene.finale .layout{inset:12% 5% 37%;padding:12px 4px;gap:8px}.layout.pair .frame,.layout.strip .frame,.layout.stack .frame{border-width:4px;border-bottom-width:16px;padding:0;height:78%;max-width:31%}.layout.pair:not(.video-center) .frame{max-width:44%;height:86%}.layout.strip .frame{background:#210e15}.layout.pair.video-center .frame:nth-child(2){height:88%}.layout.single .frame,.layout.arch .frame,.layout.cinema .frame{height:94%;max-width:90%;padding:4px;outline-offset:3px}.scene.message .layout{gap:12px}.message-main{flex-basis:54%;width:54%;height:94%;border-radius:30px 30px 4px 4px}.message-memory{flex-basis:38%;width:38%;height:62%;border-width:4px;border-bottom-width:18px}.message .memory-label{font-size:8px;padding:3px 0}.scene .scene-note{display:none}#copy{bottom:calc(83px + env(safe-area-inset-bottom,0px));height:23%;max-height:26%;left:6%;right:6%}#words{font-size:clamp(1.25rem,min(5.8vw,4.2cqh),2rem);line-height:1.15}#kicker{font-size:10px;margin-bottom:7px}#subline{font-size:12px;margin-top:7px}#controls{left:3%;right:3%}.control-row{gap:8px}.control-row button span{font-size:12px}#time{font-size:10px;white-space:nowrap}#masthead{font-size:9px;left:5%;right:5%}#welcome .cover{width:20%;height:23%;top:14%;opacity:.6}.cover-left{left:4%}.cover-right{right:4%;top:61%!important}.opening-copy{max-width:82%;width:82%}.opening-copy h1{font-size:clamp(3rem,13vw,5.5rem)}.opening-copy .eyebrow{font-size:10px}.dedication{font-size:1rem}.for{font-size:1rem}#begin{margin-top:16px}}
@media(max-height:550px){#film{min-height:0}.scene .layout,.scene.message .layout,.scene.finale .layout{inset:14% 12% 41%;padding:4px}.scene .scene-note{display:none}#masthead{top:8px}#copy{bottom:66px;height:24%;max-height:26%}#words{font-size:clamp(1rem,4.2cqh,1.5rem)}#kicker{font-size:9px;margin-bottom:3px}#subline{display:block;font-size:10px;margin-top:4px}#controls{height:62px;padding-bottom:4px}.control-row{height:38px}.control-row button{min-height:36px}.opening-copy h1{font-size:3rem;margin:0}.for{margin:8px 0 0}.fine-line{margin-bottom:8px}.dedication{font-size:.85rem;line-height:1.4;margin:6px}#begin{margin:6px 0;min-height:42px;padding:10px 20px}.opening-copy .eyebrow{font-size:9px}#copy.title #words{font-size:clamp(1.7rem,8cqh,3rem)}}
.layout.pair .frame,.layout.strip .frame,.layout.stack .frame{height:auto;aspect-ratio:3/4;max-height:90%}.layout.pair.video-center .frame:nth-child(2){height:auto;aspect-ratio:9/16;max-height:94%}@media(max-width:600px){.layout.pair .frame,.layout.pair:not(.video-center) .frame,.layout.strip .frame,.layout.stack .frame{height:auto;aspect-ratio:3/4;max-height:90%}.layout.pair.video-center .frame:nth-child(2){height:auto;aspect-ratio:9/16;max-height:94%}}
/* Typography and tap-out candles adapted from the supplied birthday page. */
:root{--serif:'Cormorant Garamond',Georgia,serif;--sans:'Jost',system-ui,sans-serif}body,h1,#words,.for,.wish-opening #candle-hint{font-family:var(--serif)}#masthead,#kicker,#subline,.eyebrow,.control-row,.control-row button,.control-row button span,#begin,#loading,.memory-label,.scene-note{font-family:var(--sans)!important}#words{font-weight:500;font-size:clamp(1.65rem,5.5cqh,3.25rem);letter-spacing:-.015em;line-height:1.12}#kicker:empty,#subline:empty{display:none}#copy.title #words{font-style:italic;font-weight:500}.scene-note{display:none}.control-row button span{font-size:14px}.wish-opening{width:min(88%,560px);max-width:88%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:0;height:100%;padding:5vh 0}.wish-opening .eyebrow{letter-spacing:.24em;font-size:12px}.wish-opening h1{font:500 clamp(2.4rem,8.5cqh,4.4rem)/1.02 var(--serif);margin:20px 0 12px;letter-spacing:-.025em}.wish-opening h1 em{color:var(--gold);font-weight:500}.wish-opening #candle-hint{font-style:italic;font-size:clamp(1rem,2.8cqh,1.3rem);color:#ead4d5;margin:5px 0 16px;line-height:1.4;max-width:360px;min-height:2.8em;text-wrap:balance}.wish-cake{width:min(64vw,260px);position:relative;margin:0 auto 24px;flex-shrink:0}#wish-candles{height:76px;display:flex;align-items:flex-end;justify-content:center;position:relative;z-index:2;gap:0}.wish-candle{display:flex;align-items:flex-end;justify-content:center;width:44px;height:76px;flex:0 0 44px;background:none;border:0;padding:0;position:relative;border-radius:8px}.candle-stick{position:relative;width:9px;height:43px;border-radius:3px;background:repeating-linear-gradient(45deg,#f2c879 0 6px,#ec7f9c 6px 12px);display:block}.flame{position:absolute;left:50%;top:-23px;width:13px;height:22px;border-radius:50% 50% 50% 50%/60% 60% 40% 40%;background:radial-gradient(circle at 50% 70%,#fff6d5,#f7b733 55%,#ec7f9c 100%);box-shadow:0 0 18px 5px #f7b73366;transform:translateX(-50%);transform-origin:50% 90%;animation:candle-flicker .8s ease-in-out infinite alternate;transition:opacity .3s}.wish-candle:nth-child(even) .flame{animation-delay:-.4s}.wish-candle.out .flame{opacity:0;animation:none}.smoke{position:absolute;left:50%;top:-22px;width:6px;height:6px;border-radius:50%;background:#e6dcebaa;opacity:0}.wish-candle.out .smoke{animation:candle-smoke 1s ease-out forwards}.cake-tier{margin:auto;position:relative;border-radius:12px 12px 8px 8px;box-shadow:inset 0 6px 0 #ffffff40}.cake-top{width:72%;height:36px;background:linear-gradient(#f7d9e6,#d891b1);z-index:1}.cake-base{height:51px;background:linear-gradient(#f0c879,#cf9245);margin-top:-3px}.cake-plate{width:106%;height:10px;margin-left:-3%;background:linear-gradient(#decbdc,#947b91);border-radius:0 0 30px 30px}.wish-opening #begin{font-family:var(--sans);margin:0;padding:15px 28px;min-height:50px;border-radius:40px;font-weight:400;letter-spacing:.07em}.wish-opening #begin:disabled{cursor:default}.wish-opening #loading{font-size:12px;line-height:1.4;margin:12px 0 0}.wished{filter:drop-shadow(0 0 20px #edb98e33)}@keyframes candle-flicker{from{transform:translateX(-50%) rotate(-3deg) scale(.95)}to{transform:translateX(-50%) rotate(3deg) scale(1.06)}}@keyframes candle-smoke{0%{opacity:.65;transform:translate(-50%,0) scale(.6)}100%{opacity:0;transform:translate(-40%,-38px) scale(1.8)}}@media(max-width:600px){#words{font-size:clamp(1.5rem,min(7vw,4.8cqh),2.1rem)}.wish-opening h1{font-size:clamp(2.3rem,8.2cqh,4rem)}.wish-opening .eyebrow{font-size:11px}.wish-cake{width:230px;max-width:80vw}.wish-opening #candle-hint{font-size:1.15rem}.control-row button span{font-size:13px}}@media(max-height:550px){.wish-opening{padding:12px 0}.wish-opening .eyebrow{font-size:10px}.wish-opening h1{font-size:2rem;margin:7px 0}.wish-opening h1 br{display:none}.wish-opening #candle-hint{font-size:1rem;min-height:0;margin:0 0 4px}.wish-cake{width:180px;margin:0 auto 10px}#wish-candles{height:48px}.wish-candle{height:48px;width:36px;flex-basis:36px}.candle-stick{height:25px}.cake-top{height:22px}.cake-base{height:30px}.wish-opening #begin{min-height:42px;padding:9px 22px}.wish-opening #loading{margin-top:5px}#words{font-size:clamp(1.25rem,5cqh,1.7rem)}}
