@font-face{font-family:LoveScript;src:url('../assets/birthday/great-vibes.ttf') format('truetype');font-display:swap}
:root{color-scheme:dark;--ink:#13090d;--gold:#dfbb7d;--cream:#fff0d5;--wine:#481721}*{box-sizing:border-box}html,body{margin:0;background:var(--ink);color:var(--cream);font-family:Georgia,'Times New Roman',serif}button,input,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{color:inherit;cursor:pointer}button:disabled{cursor:wait;opacity:.55}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:2px solid #ffe6b1;outline-offset:5px}h1:focus,h2:focus{outline:none}[hidden]{display:none!important}a{color:inherit;text-decoration:none}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
#love-vault{position:relative;isolation:isolate;width:100%;height:100svh;min-height:640px;overflow:hidden}.room,.room-shade{position:absolute;inset:0;pointer-events:none;z-index:-5}.room{background:#150b0d url('../assets/love-vault/room.webp') center/cover;transform:scale(1.025)}.room-shade{z-index:-4;background:radial-gradient(ellipse at 50% 45%,#0c080826,transparent 65%),linear-gradient(#100810aa,transparent 30%,transparent 66%,#10060cef)}.topbar{position:absolute;left:28px;right:28px;top:max(18px,env(safe-area-inset-top));z-index:15;display:flex;justify-content:space-between;align-items:center}.topbar a{font-size:15px}.topbar a span{font-size:25px;margin-left:5px}.dedication{position:absolute;left:50%;transform:translateX(-50%);font-size:14px;font-style:italic;color:#dec9a5}.round{display:grid;place-items:center;width:44px;height:44px;border:1px solid #eacb903d;border-radius:50%;background:#170b119c;backdrop-filter:blur(7px);font:26px Georgia;flex-shrink:0}.round svg{width:20px;height:20px;fill:none;stroke:var(--cream);stroke-width:1.4;stroke-linejoin:round;stroke-linecap:round}#sound[aria-pressed=false] .waves{opacity:.2}.eyebrow{font:11px/1.5 Arial,sans-serif;letter-spacing:3px;color:#d8b578;margin:0 0 12px}.gold-button,.quiet-button{display:inline-flex;align-items:center;justify-content:center;gap:20px;min-height:49px;padding:12px 27px;border:1px solid #f1ce92;border-radius:40px;background:linear-gradient(125deg,#775024b8,#1b0e12e8);box-shadow:0 0 7px #f4ca8870,inset 0 0 12px #f4ca881a;backdrop-filter:blur(8px);font-size:16px;transition:transform .2s,box-shadow .2s}.gold-button:hover{transform:translateY(-2px);box-shadow:0 0 16px #f4ca8870}.quiet-button{background:#1b0e1299;border-color:#d1ad777a;box-shadow:none}.text-button{border:0;background:none;min-height:44px;padding:10px 16px;font-size:14px;color:#e4cbaa}.text-button:hover{color:#fff3dd}.text-button span{margin-left:12px}
.vault-stage{position:absolute;left:50%;top:51%;width:min(610px,70svh,92vw);aspect-ratio:1;transform:translate(-50%,-50%);perspective:1400px;z-index:0;transition:transform 1.7s cubic-bezier(.2,.75,.25,1),filter 1s}.cabinet{position:absolute;inset:0;transform-style:preserve-3d;filter:drop-shadow(0 26px 30px #000a)}.cabinet-art{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none}.compartments{position:absolute;inset:0;transform-style:preserve-3d}.compartment{position:absolute;width:29%;height:29%;perspective:650px}.compartment[data-index="0"]{left:15%;top:14%}.compartment[data-index="1"]{left:56%;top:14%}.compartment[data-index="2"]{left:15%;top:57%}.compartment[data-index="3"]{left:56%;top:57%}.compartment-button{position:absolute;inset:0;background:none;border:0;padding:0;transform-style:preserve-3d}.door-face{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;background:radial-gradient(ellipse,#642230,#240c15);border:3px ridge #a58149;box-shadow:inset 0 0 0 3px #27130c,inset 0 0 0 4px #b88b4a,0 0 10px #0008;transform-origin:left center;transition:transform 1.15s cubic-bezier(.22,.7,.3,1),filter 1.1s;backface-visibility:hidden}.compartment:nth-child(even) .door-face{transform-origin:right center}.door-face:after{content:'';position:absolute;inset:8%;border:1px solid #c99b5266;pointer-events:none}.door-symbol{font:clamp(25px,4svh,43px)/1 Georgia;color:#e7bf78;text-shadow:0 0 13px #d0924260}.door-name{font:11px Arial,sans-serif;letter-spacing:2px;text-transform:uppercase;color:#eacb99}.door-number{font:9px Arial,sans-serif;letter-spacing:1px;color:#b59363}.compartment-button:hover .door-face{filter:brightness(1.25)}.compartment.opened .door-face{transform:rotateY(-112deg);filter:brightness(.55)}.compartment.opened:nth-child(even) .door-face{transform:rotateY(112deg)}.keepsake{position:absolute;inset:0;display:grid;place-items:center;padding:9%;background:radial-gradient(#63202e,#240d17);border:4px ridge #ab8246;box-shadow:inset 0 0 20px #090206}.keepsake-note{font:clamp(13px,2.7svh,24px)/1.1 LoveScript,Georgia;text-align:center;color:#5a2c23;background:linear-gradient(130deg,#fff0d1,#d8b887);padding:13% 7%;width:92%;transform:rotate(-7deg);box-shadow:0 5px 9px #0008}.keepsake-photo{width:88%;height:85%;object-fit:cover;border:5px solid #fff0d6;border-bottom-width:17px;transform:rotate(7deg);box-shadow:0 5px 10px #0008}.keepsake-mini{font:clamp(14px,3svh,29px) LoveScript;color:#653124;background:#f4dfbd;padding:12%;transform:rotate(5deg)}
.heart-lock{position:absolute;left:34%;top:33%;width:32%;height:32%;padding:0;border:0;background:none;z-index:4;filter:drop-shadow(0 4px 10px #0009);transition:filter 1s,transform 1s}.heart-outline{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transition:transform 1.8s,opacity 1.5s;transform-origin:left}.heart-body{fill:#8e612e;stroke:url(#gold);stroke-width:7}.heart-engraving{fill:#583217;stroke:#e3b974;stroke-width:1.3}.key-hole{fill:#170b0a;stroke:#f1ce89;stroke-width:1}.heart-label{position:absolute;top:70%;left:0;right:0;text-align:center;font:8px Arial;letter-spacing:2px;color:#edcf9e;transition:opacity .5s}.heart-lock.ready{filter:drop-shadow(0 0 14px #f7c775b3);animation:heart-glow 2.5s ease-in-out infinite}.heart-lock.key-over{transform:scale(1.14);filter:drop-shadow(0 0 24px #ffe3a0)}.heart-letter{position:absolute;inset:14% 10% 4%;display:grid;place-content:center;font:clamp(19px,4svh,36px)/1.1 LoveScript;background:#f8e3bf;color:#803c36;transform:rotate(-4deg);z-index:-1;opacity:0;box-shadow:0 0 30px #ffc97355}.heart-lock.unlocked .heart-outline{transform:perspective(450px) rotateY(-110deg);opacity:.25}.heart-lock.unlocked .heart-label{opacity:0}.heart-lock.unlocked .heart-letter{opacity:1;transition:opacity 1.4s .3s}.mechanism-ring{position:absolute;left:32%;top:31%;width:36%;height:36%;border:2px dashed #e0b773;border-radius:50%;pointer-events:none;opacity:0;z-index:3}.ring-two{inset:34% auto auto 35%;width:30%;height:30%;border-style:dotted;border-width:4px}.unlocking .mechanism-ring{opacity:.9;animation:ring-turn 2s ease-in-out forwards}.unlocking .ring-two{animation-direction:reverse}.unlocking .heart-lock{filter:drop-shadow(0 0 28px #ffcd72)}
.invitation{position:absolute;inset:12% 15px 0;text-align:center;pointer-events:none}.invitation h1{font-weight:400;font-size:clamp(25px,3.7svh,37px);line-height:1.2;margin:0 0 15px}.invitation h1 em{font:clamp(36px,5svh,49px)/1.2 LoveScript}.invitation h1>span{font-size:27px;color:#e6ab9b}.invitation>p:not(.eyebrow){font-size:17px}.invitation-bottom{position:absolute;bottom:7%;left:0;right:0}.invitation-bottom button{pointer-events:auto}.invitation-bottom>p{font-size:13px;color:#d9c3a0;margin-top:20px}[data-scene=invitation] .vault-stage{transform:translate(-50%,-31%) scale(.74) rotateX(7deg) rotateY(-12deg)}[data-scene=entering] .invitation{opacity:0;transition:opacity .65s}[data-scene=focus] .vault-stage{transform:translate(-50%,-50%) scale(1.35);filter:brightness(.5) blur(2px)}[data-scene=heart] .vault-stage{transform:translate(-50%,-50%) scale(1.5)}.vault-ui{position:absolute;inset:0;pointer-events:none}.vault-heading{text-align:center;position:absolute;top:12%;left:15px;right:15px}.vault-heading h1{font-size:22px;font-weight:400;line-height:1.15;margin:0}.vault-heading h1 em{font:35px LoveScript}.vault-heading .eyebrow{font-size:10px;margin-bottom:8px}.vault-bottom{position:absolute;bottom:6%;left:15px;right:15px;text-align:center;text-shadow:0 2px 10px #000}.vault-bottom>p:first-child{font-size:16px;line-height:1.4;margin:0 0 11px}.progress{display:flex;justify-content:center;gap:12px}.progress span{width:11px;height:11px;border:1px solid #d6b986;border-radius:50%;transition:background .5s,box-shadow .5s}.progress span.open{background:#f7d59a;box-shadow:0 0 10px #ffd79580}#count{font-size:12px;color:#c1a57e;margin:11px 0 0}.key-tray{position:absolute;left:50%;top:9%;transform:translateX(-50%);width:200px;text-align:center;pointer-events:none}.key-tray p{font:17px LoveScript;margin:0;text-shadow:0 2px 9px #000}.golden-key{pointer-events:auto;position:relative;display:block;width:115px;height:100px;border:0;background:none;margin:-2px auto 0;touch-action:none;user-select:none;z-index:9;filter:drop-shadow(0 0 9px #ffda8455)}.golden-key img{width:100%;height:100%;object-fit:contain;pointer-events:none}.golden-key.selected{filter:drop-shadow(0 0 14px #ffe0a8)}.golden-key.dragging{transition:none;cursor:grabbing}.keys-ready .vault-heading{opacity:0}.keys-ready .key-tray{animation:key-arrive 1.2s ease-out}.ending{position:absolute;inset:0;pointer-events:none;text-align:center}.ending h1{position:absolute;top:12%;left:15px;right:15px;font-weight:400;font-size:23px;line-height:1.2;margin:0}.ending h1 em{font:36px LoveScript}.ending h1 span{color:#eeb5a5}.ending-actions{position:absolute;bottom:7%;left:12px;right:12px;display:flex;justify-content:center;gap:12px}.ending button{pointer-events:auto}.ending #save-status{position:absolute;left:15px;right:15px;bottom:1%;font-size:12px}
dialog{color:var(--cream);padding:0;border:1px solid #b9945c88;max-width:calc(100vw - 24px);max-height:calc(100svh - 28px);scrollbar-width:thin;scrollbar-color:#9c7545 #291119;box-shadow:0 24px 100px #000b}dialog::backdrop{background:#0c050bb3;backdrop-filter:blur(4px)}.drawer-dialog{width:480px;background:radial-gradient(ellipse at 50% 0,#542331,#200c15 72%);border-radius:5px;overflow:auto}.drawer-inner{position:relative;padding:47px 30px 22px;text-align:center;min-height:440px}.close{position:absolute;top:12px;right:12px;width:36px;height:36px;z-index:5}.drawer-inner>.eyebrow{font-size:10px;margin-bottom:14px}.drawer-inner h2{font:37px/1.1 LoveScript;margin:0 0 12px;color:#f1d0a0}.drawer-subtitle{font-size:16px;line-height:1.5;margin:0 auto 20px;color:#d9c1a2;max-width:320px}.lock-status{font-size:14px;color:#f3c6a0;min-height:22px;line-height:1.5;margin:12px 0 0}.lock-status.success{color:#ffe1a2}.puzzle-submit{margin-top:24px}.hint{display:block;margin:6px auto 0;color:#bfa57f;font-size:12px}.hint-copy{font-size:13px;color:#dab994;line-height:1.5;margin:8px 0}.wheels{display:flex;justify-content:center;gap:8px;margin-top:22px}.wheel{display:flex;flex-direction:column;align-items:center;gap:7px;flex:1;max-width:108px}.wheel>label{font:10px Arial;letter-spacing:2px;color:#c4a57d}.wheel button{border:0;background:transparent;width:44px;height:30px;font:22px Georgia;color:#deb777}.wheel select{appearance:none;width:100%;text-align:center;cursor:ns-resize;background:linear-gradient(#5f3915,#e6c58b 20%,#fff0c4 49%,#c4944b 80%,#533113);border:2px ridge #dab16d;border-radius:6px;color:#442b14;text-shadow:0 1px #ffedc9;font-size:23px;padding:14px 5px;box-shadow:0 0 0 4px #140b09,inset 0 0 15px #a5702255}.wheel select option{background:#f6deb1;color:#321d14}.name-input{display:block;width:100%;border:0;border-bottom:1px solid #c69a60;background:#17090d66;text-align:center;padding:15px 12px;color:#ffe8c6;font:30px LoveScript;outline-offset:2px}.name-input::placeholder{color:#aa866e}.input-label{display:block;font-size:13px;color:#c9aa83;margin:0 0 12px}.combination{display:flex;justify-content:center;gap:10px}.digit-wheel{display:grid;justify-items:center;gap:7px}.digit-wheel button{background:none;border:0;font-size:22px;color:#dcbb82;width:44px;height:31px}.digit-wheel input{width:53px;height:68px;border:2px ridge #b79257;border-radius:7px;background:linear-gradient(#291b12,#b89352 15%,#efd9a5 50%,#af8448 83%,#302017);color:#342215;text-align:center;font:32px Georgia;box-shadow:0 0 0 3px #160c09;caret-color:#372218}.pattern{position:relative;width:260px;height:260px;max-width:100%;margin:auto;touch-action:none;user-select:none}.pattern svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.pattern-guide{fill:none;stroke:#9f724344;stroke-width:1;stroke-dasharray:2 3}.pattern-line{fill:none;stroke:#f7ce8c;stroke-width:2;stroke-linejoin:round;filter:drop-shadow(0 0 3px #efbd7488)}.pattern-point{position:absolute;width:40px;height:40px;transform:translate(-50%,-50%);padding:0;border:0;border-radius:50%;background:none;touch-action:none}.pattern-point:after{content:'';display:block;width:10px;height:10px;background:#3a2021;border:1px solid #b58e58;border-radius:50%;margin:auto;transition:background .15s,box-shadow .15s}.pattern-point.visited:after,.pattern-point:first-of-type:after{background:#f7d59a;box-shadow:0 0 12px #f7d59a88}.pattern.invalid .pattern-line{stroke:#ef8c80}.pattern-caption{font-size:12px;color:#bfa37c;margin:6px 0}.drawer-dialog.unlocking-drawer{animation:drawer-release .8s ease}.discovery-paper{background:linear-gradient(130deg,#ffedcf,#e5c89d);color:#603c30;box-shadow:0 6px 25px #0005;padding:27px 22px;transform:rotate(-2deg);margin:12px 0}.discovery-paper h3{font:35px/1.1 LoveScript;margin:0 0 18px}.discovery-paper p{font-size:17px;line-height:1.6;margin:0 0 16px}.discovery-paper .signed{font:25px LoveScript;text-align:right}.envelope{position:relative;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:18px;width:100%;aspect-ratio:1.5;border:1px solid #a68054;background:linear-gradient(150deg,#f9e5c2,#d2ac77);color:#793f3a;box-shadow:0 10px 30px #0006;transform:rotate(-4deg);padding:20px;margin:32px auto;transition:transform .7s}.envelope:before{content:'';position:absolute;inset:0;background:linear-gradient(150deg,transparent 49.6%,#a37b4644 50%,transparent 50.5%),linear-gradient(210deg,transparent 49.6%,#a37b4644 50%,transparent 50.5%);pointer-events:none}.envelope span{font:42px LoveScript;position:relative}.envelope b{width:44px;height:44px;border-radius:50%;background:#872338;color:#ebb5a8;display:grid;place-items:center;font:29px Georgia;box-shadow:inset 0 0 0 4px #65182a,0 3px 6px #5e281e66}.envelope:hover{transform:rotate(-1deg) translateY(-3px)}.memory-photo{position:relative;width:min(270px,100%);padding:11px 11px 24px;background:#f9eacf;color:#5f352a;margin:12px auto 18px;border:0;box-shadow:0 9px 25px #0007;transform:rotate(4deg);touch-action:none;user-select:none}.memory-photo img{display:block;width:100%;height:240px;object-fit:cover;filter:blur(calc(14px * (1 - var(--develop,0)))) sepia(calc(.7 * (1 - var(--develop,0))));opacity:calc(.2 + var(--develop,0) * .8);pointer-events:none}.memory-photo:after{content:'';position:absolute;left:11px;right:11px;top:11px;height:240px;background:#bd9977;opacity:calc(.6 * (1 - var(--develop,0)));pointer-events:none}.memory-photo span{display:block;font:24px/1.1 LoveScript;margin-top:14px}.develop-meter{height:2px;width:150px;margin:12px auto;background:#c59a5533;overflow:hidden}.develop-meter i{display:block;height:100%;width:calc(var(--develop,0) * 100%);background:#f4cf90}.little-notes{display:grid;grid-template-columns:1fr 1fr;gap:16px;padding:16px 3px}.little-note{min-height:116px;background:linear-gradient(135deg,#fbe8c6,#d9b57c);border:1px solid #c3a077;color:#703e35;padding:16px 9px;box-shadow:0 6px 14px #0004;font:25px/1.2 LoveScript;transform:rotate(var(--tilt));transition:transform .6s}.little-note:not(.read){background:linear-gradient(150deg,#edcf9f 49.5%,#c7a676 50%,#f5dbae 51%)}.little-note.read{transform:rotate(calc(var(--tilt) * -1));min-height:130px}.final-dialog{width:510px;border:0;background:transparent;box-shadow:none;text-align:center;overflow:auto;padding:46px 22px 15px}.final-dialog::backdrop{background:#11070fe0;backdrop-filter:blur(9px)}#sealed-letter h2{font:43px LoveScript;margin:10px 0}#sealed-letter>p:last-of-type{font-size:16px;line-height:1.5}.final-letter{background:linear-gradient(135deg,#fff0d2,#e8cda4);color:#623e32;padding:33px 29px 17px;box-shadow:0 12px 60px #0008;text-align:left;transform:rotate(-1deg)}.final-letter .eyebrow{font-size:9px;letter-spacing:2px;color:#9c7850}.final-letter h2{font:38px LoveScript;margin:12px 0 21px}.final-letter p:not(.eyebrow){font-size:18px;line-height:1.6;margin:0 0 18px}.final-letter strong{font:44px LoveScript;font-weight:400;color:#973e44}.final-letter p.signature{font:29px/1.25 LoveScript;text-align:right;margin:15px 0}.final-letter .signature span{color:#a84d4e}.final-letter .text-button{color:#804d37;display:block;margin:8px auto 0}
#motes,#sparkles{position:absolute;inset:0;pointer-events:none;z-index:7;overflow:hidden}#motes i{position:absolute;width:2px;height:2px;background:#f5c578;box-shadow:0 0 6px #f5c578;animation:mote-float var(--duration) linear infinite;opacity:0}#sparkles i{position:absolute;width:3px;height:3px;background:#ffe1a1;box-shadow:0 0 8px #ffc679;border-radius:50%}.noscript{position:absolute;inset:0;display:grid;place-content:center;background:#150a10;z-index:30;padding:25px;text-align:center}@keyframes heart-glow{50%{filter:drop-shadow(0 0 24px #ffce80)}}@keyframes ring-turn{to{transform:rotate(240deg);opacity:0}}@keyframes key-arrive{from{opacity:0;translate:0 20px}to{opacity:1;translate:0 0}}@keyframes mote-float{0%{transform:translate(0,60px);opacity:0}20%{opacity:.6}80%{opacity:.4}100%{transform:translate(30px,-100px);opacity:0}}@keyframes drawer-release{30%{transform:translateX(3px)}60%{transform:translateX(-2px)}100%{transform:translateX(0)}}
@media(min-width:1000px){.vault-stage{width:min(680px,78svh);top:53%}.vault-heading{top:25%;left:4%;right:auto;width:230px;text-align:left}.vault-heading h1{font-size:25px}.vault-heading h1 em{font-size:38px}.invitation{top:25%;left:5%;width:330px;text-align:left}.invitation h1{font-size:31px}.invitation-bottom{bottom:22%}.invitation-bottom>p{font-size:13px}[data-scene=invitation] .vault-stage{left:63%;transform:translate(-50%,-50%) scale(.9) rotateY(-10deg)}.vault-bottom{left:auto;right:4%;width:210px;bottom:28%}.key-tray{top:8%}.ending h1{left:4%;right:auto;width:250px;top:25%;text-align:left}.ending-actions{left:auto;right:3%;width:210px;bottom:26%;flex-direction:column}.ending #save-status{left:auto;right:3%;width:210px;bottom:15%}}
@media(max-width:600px){#love-vault{min-height:620px}.topbar{left:17px;right:17px;top:14px}.topbar a span{font-size:23px}.dedication{display:none}.vault-stage{width:108vw;max-width:72svh;top:52%}.invitation{top:12%}.invitation h1{font-size:25px}.invitation h1 em{font-size:35px}.invitation>.eyebrow{font-size:9px}.invitation-bottom{bottom:7%}.invitation-bottom>p{font-size:12px}.vault-heading{top:13%}.vault-heading h1{font-size:20px}.vault-heading h1 em{font-size:31px}.vault-heading .eyebrow{font-size:9px}.vault-bottom{bottom:5%}.vault-bottom>p:first-child{font-size:15px}.door-face{gap:5px}.door-name{font-size:9px;letter-spacing:1.2px}.door-number{font-size:8px}.heart-label{font-size:7px;letter-spacing:1px}.key-tray{top:11%;width:180px}.golden-key{width:105px;height:89px}.drawer-inner{padding:48px 22px 19px}.drawer-inner h2{font-size:34px}.drawer-subtitle{font-size:15px;margin-bottom:17px}.drawer-dialog{max-width:calc(100vw - 24px)}.drawer-inner>.eyebrow{font-size:9px}.wheels{gap:9px}.wheel select{font-size:21px}.ending h1{top:13%;font-size:21px}.ending h1 em{font-size:33px}.ending-actions .gold-button,.ending-actions .quiet-button{font-size:14px;padding:12px 19px;gap:6px}.final-letter{padding:25px 22px 12px}.final-letter h2{font-size:35px}.final-letter p:not(.eyebrow){font-size:16px}.final-letter strong{font-size:38px}.final-dialog{padding:46px 14px 15px}.final-letter p.signature{font-size:27px}.little-note{font-size:23px}.heart-lock.ready{animation-duration:3s}}
@media(max-height:550px) and (min-width:601px){#love-vault{min-height:430px}.vault-stage{width:86svh;top:53%}.vault-heading{left:3%;right:auto;top:27%;width:180px;text-align:left}.vault-heading h1{font-size:20px}.vault-heading h1 em{font-size:28px}.vault-bottom{left:auto;right:3%;bottom:25%;width:180px}.vault-bottom>p:first-child{font-size:14px}.invitation{left:4%;width:240px;top:24%;text-align:left}.invitation h1{font-size:22px}.invitation h1 em{font-size:30px}.invitation-bottom{left:calc(100vw - 300px);width:220px;bottom:28%}.invitation-bottom .gold-button{font-size:14px;padding:12px 16px}[data-scene=invitation] .vault-stage{transform:translate(-50%,-50%) scale(.95)}.key-tray{left:15%;top:24%}.ending h1{left:3%;right:auto;width:190px;top:24%;text-align:left;font-size:20px}.ending-actions{left:auto;right:3%;bottom:23%;width:180px;flex-direction:column}.ending #save-status{left:auto;right:3%;width:180px}.drawer-inner{min-height:0}.dedication{display:none}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
.compartment{width:36%;height:33%}.compartment[data-index="0"]{left:13.2%;top:15.1%;--door:url('../assets/love-vault/door-0.webp')}.compartment[data-index="1"]{left:50.8%;top:15.1%;--door:url('../assets/love-vault/door-1.webp')}.compartment[data-index="2"]{left:13.2%;top:48.9%;--door:url('../assets/love-vault/door-2.webp')}.compartment[data-index="3"]{left:50.8%;top:48.9%;--door:url('../assets/love-vault/door-3.webp')}.door-face{background:var(--door) center/100% 100%;border:0;box-shadow:none;gap:9px}.door-face:after{display:none}.door-symbol{font-size:clamp(28px,5svh,46px)}.door-name{font-size:11px}.heart-lock{left:37.4%;top:37.4%;width:25.5%;height:23.9%}.heart-outline{opacity:0}.heart-lock:before{content:'';position:absolute;inset:0;background:url('../assets/love-vault/heart.webp') center/100% 100%;transition:transform 1.8s,opacity 1.5s;transform-origin:left}.heart-lock.unlocked:before{transform:perspective(450px) rotateY(-115deg);opacity:.1}.heart-lock.unlocked{background:#3c141c;border-radius:45% 45% 30% 30%;box-shadow:0 0 26px #efb96c88}.heart-label{display:none}.heart-letter{inset:7% 0 0}.keepsake{border-width:6px}.compartment[data-index="0"] .door-face,.compartment[data-index="1"] .door-face{padding-bottom:12%}.compartment[data-index="2"] .door-face,.compartment[data-index="3"] .door-face{padding-top:12%}
.keepsake{overflow:hidden}.compartment:not(.opened) .keepsake{visibility:hidden}.door-name{max-width:92%;text-align:center}.golden-key{position:relative;z-index:20}.vault-ui{z-index:8}.vault-heading,.vault-bottom{pointer-events:none}
.heart-lock:before{clip-path:polygon(50% 17%,43% 9%,33% 3%,23% 2%,12% 8%,4% 18%,1% 32%,4% 51%,14% 65%,31% 83%,50% 99%,70% 83%,88% 65%,97% 49%,99% 30%,95% 17%,84% 6%,73% 2%,62% 4%)}.heart-lock.unlocked:before,.heart-lock.unlocked .heart-outline{opacity:0}.heart-lock.unlocked{filter:drop-shadow(0 0 20px #f4c57488)}
