.dock{max-width:calc(100vw - 20px);padding:6px;gap:2px}.dock .wish-trigger{background:#782522;color:#fff8ee;border-radius:30px;padding:12px 14px}.dock button{padding:10px 11px}.dock button:last-child{border:0}.dock button:hover{filter:brightness(.85)}.tools-hidden .dock,.tools-hidden #floating-wishes{display:none}#restore-tools{position:fixed;bottom:20px;right:max(16px,calc((100vw - 450px)/2));border-radius:50%;width:44px;height:44px;background:#fff4e6;color:#782522;border:0;font-size:26px;z-index:15}#music-toggle{position:fixed;top:16px;right:max(16px,calc((100vw - 450px)/2));background:#4a1419db;border:1px solid #fff9;color:#fff7eb;border-radius:50%;width:37px;height:37px;font-size:25px;z-index:20;cursor:pointer}#music-toggle:after{content:'';position:absolute;width:32px;height:1px;background:#fff7eb;transform:rotate(-45deg);left:2px;top:17px}#music-toggle.playing{animation:record-spin 8s linear infinite}#music-toggle.playing:after{display:none}#reading-progress{position:fixed;left:0;top:0;height:3px;width:0;background:#d9b998;z-index:50}.scroll-controls{position:fixed;right:max(8px,calc((100vw - 475px)/2));bottom:105px;display:grid;gap:5px;z-index:8}.scroll-controls button{width:29px;height:32px;border:1px solid #fff5;border-radius:20px;color:#fff;background:#5d1f24a6;cursor:pointer}.sheet{border:1px solid #d6b6a0;border-radius:20px 20px 7px 7px;background:#fffaf1;color:#782522;width:min(440px,94vw);max-height:85dvh;padding:25px;overflow:auto;box-shadow:0 15px 70px #25040655}.sheet[open]{animation:sheet-in .3s ease-out}.sheet::backdrop{background:#27080ac7;backdrop-filter:blur(5px)}.sheet header{display:flex;align-items:center;justify-content:space-between;gap:10px}.sheet h2{font-family:'Mentawai',cursive;font-size:34px;margin:0}.sheet header button{border:1px solid #78252233;background:transparent;border-radius:50%;width:30px;height:30px;font-size:24px;line-height:24px;color:inherit;cursor:pointer}.sheet input,.sheet textarea{background:white;border:1px solid #d9c6b9}.sheet label{display:block;margin:20px 0 9px;font-size:14px}.sheet .button{background:#782522;color:#fff8ed;margin-top:15px}.sheet-intro{font-size:14px;line-height:1.7}.sheet .form-note{font:11px/1.7 Arial;color:#8b7168;text-align:center}.sheet [role=status]{font-size:13px;line-height:1.6}button:disabled{opacity:.5;cursor:wait}.gift-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin:20px 0}.gift-grid button{display:flex;align-items:center;flex-direction:column;gap:10px;border:1px solid #e1cfc0;border-radius:10px;background:#fffdf9;color:#782522;padding:15px 5px;font:12px Georgia;cursor:pointer;transition:transform .2s}.gift-grid button:hover{transform:translateY(-4px);background:#f7e5dc}.gift-grid span{font-size:30px}.share-qr{display:block;width:200px;height:200px;margin:20px auto;background:white;padding:8px}.share-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap}.share-actions .button{font-size:12px;padding:10px 15px}#bank-info{font-size:14px;line-height:1.8;margin-top:20px}#bank-info img{width:200px;max-width:100%}#wish-list{margin-top:25px;border-top:1px solid #dcc0ac;padding-top:15px}#wish-list article{border-bottom:1px solid #eadbcf;padding:15px 0}#wish-list strong{font-size:14px}#wish-list p{font-size:14px;line-height:1.7;margin:9px 0;overflow-wrap:anywhere;white-space:pre-wrap}.empty-wishes{font-style:italic;font-size:14px;text-align:center;line-height:1.8}#floating-wishes{position:fixed;bottom:85px;left:max(14px,calc((100vw - 450px)/2));width:min(290px,70vw);display:flex;flex-direction:column;gap:7px;z-index:7;pointer-events:none;max-height:145px;overflow:hidden;mask-image:linear-gradient(transparent,#000 16px)}.wish-bubble{font:11px/1.5 Arial;color:white;background:#c8797bd1;padding:7px 10px;border-radius:7px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;animation:bubble-in .5s ease-out;flex-shrink:0}.wish-bubble strong{color:#ffecdb}.countdown{display:flex;justify-content:center;gap:13px;margin-top:40px}.countdown>div{border:1px solid #d7b09e66;border-radius:7px;width:66px;padding:14px 3px}.countdown b{font-size:27px;font-weight:400;display:block}.countdown span{font-size:11px;display:block;margin-top:7px;opacity:.7}.calendar-download{font-size:12px}.venue-map{width:100%;height:200px;border:1px solid #d8c5b4;margin-top:25px;border-radius:5px}select{display:block;background:#fffaf1;color:#54211e;border:0;border-radius:4px;padding:12px;font:14px Georgia;width:100%;margin:12px 0}#guest-number{margin-top:10px}#guest-number:disabled{opacity:.5}.reveal{opacity:0;transform:translateY(25px);transition:opacity .85s ease var(--reveal-delay,0ms),transform .85s ease var(--reveal-delay,0ms)}.reveal.revealed{opacity:1;transform:translateY(0)}.hero h1{animation:ink-in 1.4s ease-out both}.hero-couple{animation:couple-in 1.6s ease-out both}.hero .save{animation:ink-in 1s ease-out both}.gift-burst{position:fixed;left:50%;top:42%;transform:translate(-50%,-50%);font-size:110px;z-index:60;pointer-events:none;animation:gift-pop 2s ease-in-out forwards;filter:drop-shadow(0 10px 20px #7a22346b)}.celebration-particle{position:fixed;top:65%;z-index:59;color:#ef8f9d;pointer-events:none;animation:particle-rise 2.6s cubic-bezier(.1,.6,.4,1) forwards}.petal{position:fixed;top:-35px;font-size:18px;color:#ec9aa181;pointer-events:none;z-index:6;animation:petal-fall 9s linear forwards}#toast{position:fixed;top:65px;left:50%;transform:translate(-50%,-8px);background:#fff8ecf5;border:1px solid #d5b9a3;color:#782522;padding:12px 20px;border-radius:25px;font:13px/1.5 Georgia;box-shadow:0 5px 30px #47191c30;z-index:100;opacity:0;transition:.25s;max-width:90vw;pointer-events:none;text-align:center}#toast.visible{opacity:1;transform:translate(-50%,0)}#lightbox .gallery-prev,#lightbox .gallery-next{top:45%;right:auto;left:8px;background:#fff9;border-radius:50%;font-size:30px}#lightbox .gallery-next{left:auto;right:8px}.gallery-caption{color:#fff;text-align:center;font-size:13px;margin:12px 0}.gallery-prev:focus-visible,.gallery-next:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #d9a868;outline-offset:4px}@keyframes record-spin{to{transform:rotate(360deg)}}@keyframes ink-in{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}@keyframes couple-in{from{opacity:0;transform:scale(.97) translateY(25px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes sheet-in{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}@keyframes bubble-in{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes gift-pop{0%{opacity:0;transform:translate(-50%,-30%) scale(.2)}25%,65%{opacity:1;transform:translate(-50%,-50%) scale(1.15)}100%{opacity:0;transform:translate(-50%,-80%) scale(.9)}}@keyframes particle-rise{0%{opacity:0;transform:translate(0,0) scale(.2)}12%{opacity:1}100%{opacity:0;transform:translate(var(--x),-65vh) rotate(var(--rotate)) scale(1.3)}}@keyframes petal-fall{0%{transform:translate(0,-30px) rotate(0)}100%{transform:translate(65px,110vh) rotate(200deg);opacity:0}}@media(max-width:380px){.dock button{padding:10px 8px;font-size:12px}.dock .wish-trigger{padding:12px}.sheet{padding:20px}.sheet h2{font-size:29px}.gift-grid{gap:6px}.countdown{gap:8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;scroll-behavior:auto!important}.reveal{opacity:1;transform:none;transition:none}}
.sheet button{position:static;width:auto;height:auto;font-size:13px}.sheet header button{width:30px;height:30px;font-size:24px;flex-shrink:0}.sheet .gift-grid button{font-size:12px}.sheet input,.sheet textarea,.sheet select{max-width:100%}.sheet{overflow-x:hidden}.sheet .share-qr{max-width:100%;max-height:none}#lightbox>button:first-child{z-index:2}
