.react-photo-album{display:flex}.react-photo-album,.react-photo-album *{box-sizing:border-box}.react-photo-album--track{align-items:flex-start;display:flex}.react-photo-album--photo{padding:calc(var(--react-photo-album--padding) * 1px);position:relative}.react-photo-album--image{width:100%;height:auto;aspect-ratio:var(--react-photo-album--photo-width) /var(--react-photo-album--photo-height);display:block}.react-photo-album--button{cursor:pointer;border:initial;background:initial}.react-photo-album--masonry{justify-content:space-between}.react-photo-album--masonry .react-photo-album--track{justify-content:flex-start;row-gap:calc(var(--react-photo-album--spacing) * 1px);width:calc((100% - var(--react-photo-album--spacing) * 1px * (var(--react-photo-album--columns) - 1)) / var(--react-photo-album--columns));flex-direction:column}.react-photo-album--masonry .react-photo-album--photo{width:100%}:root{--ink:#26143c;--muted:#71657f;--purple-950:#24063f;--purple-900:#35105f;--purple-800:#4e1682;--purple-700:#6e29aa;--purple-500:#a56be8;--purple-200:#eadcff;--gold:#d8ad5f;--gold-light:#f5db94;--white:#ffffff;--panel:rgba(255,255,255,0.88);--shadow:0 24px 70px rgba(54,20,95,0.22);--font-sans:"Inter","Inter Fallback",ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji"}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:var(--font-sans);background:radial-gradient(circle at top left,rgba(213,183,255,.46),transparent 30rem),linear-gradient(180deg,#fff,#f7efff 48%,#fff)}a{color:inherit;text-decoration:none}img{max-width:100%;height:auto}.hero{position:relative;min-height:86vh;overflow:hidden;padding:clamp(.85rem,2vw,1.45rem) 0 clamp(1rem,2.4vw,1.7rem);color:var(--white);background:#f6efff}.hero.has-uploaded-gallery{min-height:100vh;overflow:visible;padding-bottom:clamp(1.4rem,3vw,2.4rem)}.hero-bg{position:absolute;inset:0;background:radial-gradient(circle at 50% -18%,rgba(255,255,255,.6),transparent 26rem),radial-gradient(circle at 15% 20%,rgba(188,132,255,.5),transparent 18rem),radial-gradient(circle at 86% 18%,rgba(225,184,255,.45),transparent 18rem),linear-gradient(115deg,rgba(84,30,128,.25),rgba(158,92,199,.15),rgba(84,30,128,.25)),url(/assets/hero-event.png) 50% /cover;transform:scale(1.02)}.hero-bg:after,.hero-bg:before{position:absolute;inset:0;content:"";pointer-events:none}.hero-bg:before{background:linear-gradient(106deg,transparent 0 18%,rgba(255,234,255,.42) 18.2%,transparent 19.7%),linear-gradient(74deg,transparent 0 28%,rgba(255,234,255,.34) 28.2%,transparent 29.2%),linear-gradient(126deg,transparent 0 69%,rgba(255,234,255,.32) 69.2%,transparent 70.4%),linear-gradient(58deg,transparent 0 78%,rgba(255,234,255,.42) 78.2%,transparent 79.6%);opacity:.9}.hero-bg:after{background:radial-gradient(circle at 20% 76%,rgba(255,226,255,.85) 0 .18rem,transparent .22rem),radial-gradient(circle at 68% 62%,rgba(255,226,255,.85) 0 .15rem,transparent .2rem),radial-gradient(circle at 88% 80%,rgba(255,226,255,.75) 0 .16rem,transparent .2rem)}.poster{position:relative;z-index:1;display:grid;grid-template-rows:auto auto auto auto;width:100%;min-height:0;margin:0 auto;overflow:hidden;border:0;border-radius:0;background:transparent;box-shadow:none}.hero.has-uploaded-gallery .poster{overflow:visible}.poster:before{display:none}.poster-actions,.poster-gallery,.poster-ribbon,.poster-top{position:relative;z-index:1}.poster-top{z-index:3}.poster-ribbon{z-index:2}.poster-top{display:grid;grid-template-columns:minmax(0,1fr) minmax(8rem,13rem);align-items:end;grid-gap:1rem;gap:1rem;min-height:clamp(9.2rem,15vw,12.8rem);width:min(1180px,calc(100% - 2rem));margin:0 auto;padding:clamp(.55rem,1.6vw,1.1rem) 0 0}@media (max-width:768px){.poster-top{display:flex;justify-content:space-between;align-items:flex-end}.anniversary-logo{width:50%!important;transform:translateY(.5rem)!important}.product-stage{width:38%!important;min-width:0!important;transform:translateY(1.5rem)!important}}.anniversary-logo{display:block;width:clamp(15rem,23vw,27rem);filter:drop-shadow(0 14px 22px rgba(0,0,0,.28));transform:translateY(clamp(.6rem,1.6vw,1.4rem))}.product-stage{display:grid;position:relative;justify-self:end;z-index:5;width:min(14.5rem,24vw);min-width:8rem;padding:0;align-items:center;justify-items:center;border-radius:.35rem;background:transparent;box-shadow:none;overflow:visible;transform:translateY(clamp(1.2rem,3.5vw,2.6rem))}.product-stage img{position:relative;z-index:1;width:100%;min-width:0;display:block;filter:none}.poster-ribbon{width:min(1180px,calc(100% - 1.4rem));margin:-.1rem auto .65rem;padding:.56rem clamp(1.7rem,5vw,4.2rem) .68rem;color:#fff;text-align:center;background:linear-gradient(180deg,rgba(126,49,164,.96),rgba(61,10,97,.98));-webkit-clip-path:polygon(0 0,100% 0,96.8% 50%,100% 100%,0 100%,3.2% 50%);clip-path:polygon(0 0,100% 0,96.8% 50%,100% 100%,0 100%,3.2% 50%);filter:drop-shadow(0 8px 16px rgba(21,2,35,.24))}.poster-ribbon p{margin:0;color:var(--gold-light);font-family:var(--font-sans);font-size:clamp(1.2rem,2.6vw,1.82rem);font-style:normal;font-weight:900;font-feature-settings:"kern",none;font-kerning:normal;font-variant-ligatures:none;line-height:1.12;letter-spacing:0;text-shadow:0 2px 0 rgba(92,45,16,.5),0 5px 12px rgba(0,0,0,.22)}.poster-ribbon span{display:block;margin-top:.26rem;color:#fff;font-size:clamp(.95rem,1.85vw,1.34rem);font-weight:700;font-feature-settings:none;font-variant-ligatures:none;letter-spacing:0;line-height:1.38;text-shadow:0 2px 8px rgba(0,0,0,.32)}.poster-gallery{width:min(1320px,calc(100% - 2rem));height:clamp(18rem,30vw,28rem);margin:0 auto;overflow:hidden;padding:0;-webkit-mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent);mask-image:linear-gradient(90deg,transparent,#000 4%,#000 96%,transparent)}.hero.has-uploaded-gallery .poster-gallery{height:clamp(19rem,29vw,27rem)}.uploaded-mobile-album{display:none;width:100%}.uploaded-desktop-gallery{height:100%;overflow:hidden}.uploaded-mobile-column{display:grid;grid-gap:.45rem;gap:.45rem;min-width:0}.uploaded-mobile-album a{display:block;overflow:hidden;border:2px solid rgba(225,200,255,.78);border-radius:.8rem;background:transparent;box-shadow:0 9px 24px rgba(14,2,26,.24)}.uploaded-photo-album-image{display:block;width:100%;height:auto;background:transparent;object-fit:contain}.uploaded-mobile-item.is-portrait .uploaded-photo-album-image{height:clamp(7.6rem,29vw,10.5rem);object-fit:cover}.uploaded-mobile-item.is-landscape .uploaded-photo-album-image{height:clamp(4.8rem,18vw,6.6rem);object-fit:cover}.uploaded-mobile-item.is-panoramic .uploaded-photo-album-image{height:clamp(4.2rem,15vw,5.6rem);object-fit:cover}.uploaded-mobile-item.is-square .uploaded-photo-album-image{height:clamp(5.9rem,22vw,7.6rem);object-fit:cover}.poster-gallery-track{display:flex;align-items:stretch;width:100%;height:100%;animation:galleryMasonryScroll 96s linear infinite;will-change:transform}.poster-gallery-track:has(.poster-gallery-set:only-child){width:100%;animation:none}.poster-gallery-track:has(.poster-gallery-set:only-child) .poster-gallery-set{width:100%}.hero.has-uploaded-gallery .poster-gallery-track,.uploaded-gallery-track{animation:galleryMasonryScroll 88s linear infinite}.poster-gallery-set{display:grid;grid-auto-flow:column dense;grid-template-rows:repeat(4,minmax(0,1fr));grid-auto-columns:clamp(12rem,16vw,17.5rem);grid-gap:clamp(.45rem,.75vw,.7rem);gap:clamp(.45rem,.75vw,.7rem);height:100%;padding-right:clamp(.45rem,.75vw,.7rem)}.uploaded-gallery-set{display:flex;flex:0 0 auto;align-items:stretch;gap:clamp(.36rem,.55vw,.58rem);height:100%;width:max-content;min-width:100%;overflow:hidden}.uploaded-gallery-column{display:grid;flex:0 0 auto;grid-template-rows:repeat(6,minmax(0,1fr));grid-auto-flow:row;grid-gap:clamp(.28rem,.42vw,.42rem);gap:clamp(.28rem,.42vw,.42rem);height:100%}.uploaded-gallery-column.is-landscape{grid-template-columns:repeat(2,clamp(5.8rem,7.5vw,7.8rem))}.uploaded-gallery-column.is-portrait{grid-template-columns:repeat(2,clamp(4.6rem,6vw,6.2rem));align-self:start}.uploaded-gallery-column.is-mixed{grid-template-columns:repeat(4,clamp(3.9rem,4.9vw,5.2rem));grid-template-rows:repeat(7,minmax(0,1fr));align-self:start}.poster-gallery-set:nth-child(n+3){display:none}.poster-card{display:block;height:auto;min-width:0;margin:0;overflow:hidden;border:2px solid rgba(225,200,255,.78);border-radius:.45rem;background:linear-gradient(180deg,rgba(45,8,76,.02),rgba(45,8,76,.42)),url(/assets/hero-event.png) 50% /cover;box-shadow:0 9px 24px rgba(14,2,26,.24);touch-action:manipulation}.poster-card,.poster-card img{position:relative;min-height:0}.poster-card img{z-index:1;width:100%;height:100%;object-fit:cover}.poster-card.is-uploaded,.poster-card.uploaded{grid-column:span var(--column-span,1);grid-row:span var(--row-span,2);background:transparent;cursor:default}.poster-card.uploaded.is-panoramic{grid-column:span var(--column-span,3);grid-row:span var(--row-span,2)}.poster-card.uploaded.is-landscape{grid-column:span var(--column-span,2);grid-row:span var(--row-span,2)}.poster-card.uploaded.is-portrait{grid-column:span var(--column-span,1);grid-row:span var(--row-span,3)}.poster-card.uploaded.is-square{grid-column:span var(--column-span,1);grid-row:span var(--row-span,2)}.poster-card.is-uploaded img,.poster-card.uploaded img{display:block;width:100%;height:100%;object-fit:contain;object-position:center;transform:none}.uploaded-desktop-gallery .poster-card.uploaded img{width:100%;height:100%;max-width:100%;max-height:100%;border:2px solid rgba(225,200,255,.78);border-radius:.45rem;object-fit:cover}.uploaded-desktop-gallery .poster-card.uploaded.is-landscape img,.uploaded-desktop-gallery .poster-card.uploaded.is-panoramic img,.uploaded-desktop-gallery .poster-card.uploaded.is-portrait img{object-fit:cover}.uploaded-desktop-gallery .poster-card.uploaded{display:flex;align-items:center;justify-content:center;width:100%;height:100%;overflow:visible;border:0;background:transparent;box-shadow:none}.uploaded-gallery-column.is-portrait .poster-card.uploaded.is-portrait{grid-column:span 2}.uploaded-gallery-column.is-mixed .poster-card.uploaded.is-portrait{grid-column:span 2;grid-row:span 3}.uploaded-gallery-column.is-mixed .poster-card.uploaded.is-landscape,.uploaded-gallery-column.is-mixed .poster-card.uploaded.is-panoramic,.uploaded-gallery-column.is-mixed .poster-card.uploaded.is-square{grid-column:span 4;grid-row:span 2}.poster-card:after{position:absolute;inset:0;content:"";background:linear-gradient(180deg,rgba(45,8,76,.04),rgba(45,8,76,.42));pointer-events:none}.poster-card.is-uploaded:after,.poster-card.uploaded:after{display:none}.poster-card.tall{grid-column:span 1;grid-row:span 2}.poster-card.wide{grid-column:span 2;grid-row:span 1}.poster-card.big{grid-column:span 2;grid-row:span 2}.poster-card:nth-child(2n){background-position:18%}.poster-card:nth-child(3n){background-position:50% 34%}.poster-card:nth-child(4n){background-position:78%}.poster-card:nth-child(5n){background-position:100%}.poster-card figcaption,.poster-card span{position:absolute;z-index:1;color:rgba(255,255,255,.82);font-weight:900;text-shadow:0 2px 8px rgba(0,0,0,.35)}.poster-card span{top:.45rem;left:.55rem;font-size:.72rem}.poster-card figcaption{right:.55rem;bottom:.45rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.poster-actions{display:grid;grid-template-columns:minmax(0,1fr);grid-gap:0;gap:0;width:min(1450px,calc(100% - 2rem));margin:clamp(.75rem,1.4vw,1.2rem) auto 0;padding:0;overflow:hidden;border:1px solid rgba(226,174,255,.42);border-radius:1rem;background:radial-gradient(circle at 50% 0,rgba(188,104,255,.2),transparent 58%),rgba(34,8,64,.54);box-shadow:0 20px 54px rgba(13,2,28,.26),inset 0 1px 0 rgba(255,255,255,.17),0 0 24px rgba(184,88,255,.18);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.poster-actions.has-upload-result{grid-template-columns:minmax(16rem,1fr) minmax(22rem,1.28fr)}.action-panel{display:grid;grid-template-columns:clamp(4.2rem,5.8vw,5.6rem) minmax(0,1fr);align-items:center;justify-items:start;grid-gap:clamp(.8rem,1.25vw,1.15rem);gap:clamp(.8rem,1.25vw,1.15rem);min-height:clamp(5.8rem,7.4vw,7.25rem);padding:clamp(.75rem,1.35vw,1.05rem) clamp(1rem,1.9vw,1.65rem);color:#fff;text-align:left;border:0;border-right:1px solid rgba(255,255,255,.1);border-radius:0;background:linear-gradient(90deg,rgba(255,255,255,.07),transparent 38%,rgba(255,255,255,.035)),transparent;box-shadow:none;cursor:pointer;font:inherit;text-decoration:none;overflow:hidden;position:relative;touch-action:manipulation;transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.action-panel>:first-child{justify-self:center;align-self:center}.action-panel:before{position:absolute;inset:0;content:"";pointer-events:none;background:radial-gradient(circle at 15% 42%,rgba(175,82,248,.36),transparent 7rem)}.action-panel>*{position:relative;z-index:1}.action-panel:focus-visible,.action-panel:hover{filter:brightness(1.06);transform:none}.action-panel-photo{grid-template-columns:auto minmax(0,1fr);align-content:center;align-items:center;gap:clamp(1.1rem,2vw,1.75rem)}.action-panel-contact{grid-template-columns:clamp(4.2rem,5.8vw,5.6rem) minmax(0,1fr);border-right:0}.action-panel:not(.action-panel-lucky){grid-template-rows:auto;align-content:center}.action-panel:not(.action-panel-lucky)>:first-child{grid-row:1}.action-panel:not(.action-panel-lucky) .action-copy{grid-column:2;align-self:center}.action-panel-lucky{grid-template-columns:clamp(4.8rem,6.4vw,6.35rem) minmax(0,1fr) auto;background:radial-gradient(circle at 52% 42%,rgba(245,219,148,.26),transparent 9rem),rgba(25,3,54,.22)}.action-icon{display:grid;width:clamp(3.85rem,5.2vw,5.1rem);aspect-ratio:1;place-items:center;border-radius:50%;background:radial-gradient(circle at 34% 22%,rgba(255,255,255,.78),transparent .42rem),radial-gradient(circle at 55% 70%,rgba(202,128,255,.34),transparent 2.2rem),linear-gradient(145deg,#a257ec,#4d1684 68%,#2f0a55);box-shadow:inset 0 2px 0 rgba(255,255,255,.27),inset 0 0 0 1px rgba(255,255,255,.19),0 0 24px rgba(184,86,255,.42),0 16px 30px rgba(20,4,40,.26)}.action-icon:before{color:#fff;font-size:clamp(1.45rem,2.25vw,1.95rem);font-weight:900;line-height:1}.action-icon-upload:before{content:"\2191"}.action-icon-contact:before{content:"i";font-family:Georgia,Times New Roman,serif;font-style:italic}.action-gift-box{display:block;width:clamp(4.8rem,7vw,7rem);height:auto;align-self:center;justify-self:center;object-fit:contain;filter:drop-shadow(0 18px 24px rgba(12,2,28,.28))}.action-photo-frame{display:grid;width:clamp(5.4rem,7.2vw,6.9rem);aspect-ratio:2/3;place-items:center;overflow:hidden;color:rgba(255,255,255,.76);font-size:.76rem;font-weight:800;line-height:1.25;text-align:center;border:2px solid rgba(255,255,255,.72);border-radius:.65rem;background:radial-gradient(circle at 50% 20%,rgba(255,255,255,.28),transparent 4rem),rgba(255,255,255,.16);box-shadow:inset 0 1px 0 rgba(255,255,255,.18),0 10px 22px rgba(18,4,44,.18)}.action-photo-frame.is-landscape{width:clamp(9rem,13vw,12rem);aspect-ratio:3/2}.action-photo-frame.is-panoramic{width:clamp(10rem,16vw,14rem);aspect-ratio:21/9}.action-photo-frame.is-square{width:clamp(5.7rem,7.6vw,7.2rem);aspect-ratio:1}.action-photo-frame img{width:100%;height:100%;object-fit:contain;object-position:center}.action-copy{display:grid;grid-gap:.28rem;gap:.28rem;min-width:0}.action-copy strong{color:#fff;font-size:clamp(.95rem,1.25vw,1.12rem);font-weight:900;line-height:1.16;overflow-wrap:normal}.action-panel-lucky .action-copy strong{color:#ffe98f;display:grid;width:clamp(5.8rem,7.8vw,7.2rem);min-height:clamp(2.65rem,3.9vw,3.35rem);place-items:center;font-size:clamp(2.15rem,3.6vw,3rem);font-feature-settings:"tnum";font-variant-numeric:tabular-nums;line-height:1;white-space:nowrap;border:1px solid rgba(255,222,143,.44);border-radius:.85rem;background:rgba(18,8,36,.64);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 0 18px rgba(255,202,92,.16);text-shadow:0 0 20px rgba(255,213,104,.62)}.action-copy small{color:rgba(255,255,255,.74);font-size:clamp(.72rem,.98vw,.84rem);font-weight:650;line-height:1.45}.action-mini-button{display:inline-flex;align-items:center;justify-content:center;gap:.45rem;grid-column:2;width:max-content;min-height:2.15rem;padding:.52rem .9rem;color:#fff;font:inherit;font-size:clamp(.76rem,.95vw,.86rem);font-weight:900;white-space:nowrap;border:0;border-radius:999px;background:linear-gradient(180deg,rgba(129,60,196,.9),rgba(74,25,122,.95));box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 8px 18px rgba(26,5,47,.24);cursor:pointer}.action-panel-lucky .action-mini-button{grid-column:auto;color:#3f1b11;min-height:2.55rem;padding:.62rem 1.1rem;font-size:clamp(.82rem,1vw,.92rem);background:linear-gradient(180deg,#fff2b9,#e8ae4d);box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 10px 22px rgba(26,5,47,.3)}.poster-button{display:inline-flex;align-items:center;justify-content:center;cursor:pointer;min-height:2.9rem;padding:.8rem 1.45rem;color:#42245d;font-weight:950;text-transform:uppercase;border:2px solid #ffffff;border-radius:999px;background:linear-gradient(90deg,#cfc1da,#ffffff 20%,#bcaecc 50%,#ffffff 80%,#cfc1da);box-shadow:0 12px 24px rgba(54,20,95,.2),inset 0 -3px 6px rgba(0,0,0,.15),inset 0 2px 4px rgba(255,255,255,1);transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.button:hover,.poster-button:hover{transform:translateY(-2px)}.poster-button:hover{filter:brightness(1.05)}.poster-button-light{color:#fff;background:linear-gradient(135deg,#6d2aa4,#b675e8)}@keyframes galleryMasonryScroll{0%{transform:translateX(0)}to{transform:translateX(-50%)}}section:not(.hero){padding:clamp(2.6rem,6vw,4.8rem) clamp(1rem,4vw,4rem)}.section-heading{width:min(820px,100%);margin:0 auto 2rem;text-align:center}.section-heading.align-left{width:min(1120px,100%);text-align:left}.eyebrow{margin:0 0 .9rem;color:var(--gold);font-size:.76rem;font-weight:900;letter-spacing:.1em;text-transform:uppercase}h2{margin:0;color:var(--purple-900);font-size:clamp(2rem,4vw,3.5rem);line-height:1.05;letter-spacing:0}.guide-section{background:#fff}.steps{display:grid;grid-template-columns:repeat(4,1fr);grid-gap:1rem;gap:1rem;width:min(1120px,100%);margin:0 auto}.contact-section,.step,.upload-panel{border:1px solid rgba(112,74,154,.14);border-radius:1rem;background:var(--panel);box-shadow:0 18px 48px rgba(76,38,118,.1)}.step{padding:1.35rem}.step span{display:grid;width:2.4rem;height:2.4rem;margin-bottom:1.2rem;place-items:center;color:var(--white);font-weight:900;border-radius:50%;background:var(--purple-700)}.step h3{min-height:3rem;margin:0 0 .55rem;color:var(--purple-900);font-size:1.05rem}.contact-copy p,.step p,.upload-panel p{color:var(--muted);line-height:1.65}.participation{width:100%;margin:0}section.participation{padding-bottom:clamp(1.5rem,3vw,2.5rem)}.modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.6);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal-content{background:var(--panel);border-radius:1rem;width:100%;max-width:680px;position:relative;box-shadow:0 24px 70px rgba(0,0,0,.3);animation:modalIn .3s cubic-bezier(.16,1,.3,1);max-height:calc(100vh - 2rem);overflow:hidden}.modal-content:not(.is-gift-mode) .participation{padding:0!important}.modal-content:not(.is-gift-mode) .upload-panel{display:grid;grid-gap:.95rem;gap:.95rem;padding:clamp(1.35rem,3vw,2rem) clamp(1.25rem,4vw,3rem)}.modal-content:not(.is-gift-mode) .eyebrow{margin-bottom:.45rem;font-size:.68rem}.modal-content:not(.is-gift-mode) h2{max-width:15ch;font-size:clamp(2.2rem,5.2vw,4rem);line-height:1.02}.modal-content:not(.is-gift-mode) .upload-panel>div>p:not(.eyebrow){margin:.8rem 0 0;font-size:clamp(.95rem,1.6vw,1.1rem);line-height:1.5}.modal-content:not(.is-gift-mode) .upload-box{gap:.7rem}.modal-content:not(.is-gift-mode) .dropzone{min-height:clamp(11rem,24vh,15rem);gap:.45rem;padding:.9rem}.modal-content:not(.is-gift-mode) .upload-icon{width:3rem;height:3rem;font-size:2rem}.modal-content:not(.is-gift-mode) .upload-preview{width:min(28rem,100%);height:clamp(8.5rem,22vh,13rem)}.modal-content:not(.is-gift-mode) .button-primary{min-height:2.9rem;padding:.72rem 1.1rem}.modal-content:not(.is-gift-mode) .status{min-height:1.2rem;margin:0;font-size:.9rem}.modal-content.is-gift-mode{background:radial-gradient(circle at 50% 0,rgba(165,107,232,.35) 0,transparent 60%),linear-gradient(145deg,#2a0b4d,#17042c);color:#fff;box-shadow:0 24px 70px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.2)}.modal-content.is-gift-mode:before{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.03'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");pointer-events:none;border-radius:inherit}.modal-content.is-gift-mode .modal-close{color:#fff;opacity:.8}.modal-content.is-gift-mode .modal-close:hover{background:rgba(255,255,255,.1);opacity:1}.modal-content.is-gift-mode .participation,.modal-content.is-gift-mode .upload-panel{padding:0!important;background:transparent!important;border:none!important;box-shadow:none!important}@keyframes modalIn{0%{opacity:0;transform:scale(.95) translateY(10px)}to{opacity:1;transform:scale(1) translateY(0)}}.modal-close{position:absolute;top:1rem;right:1rem;background:transparent;border:none;font-size:1.5rem;cursor:pointer;color:var(--muted);width:2.5rem;height:2.5rem;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s;z-index:100}.modal-close:hover{background:rgba(0,0,0,.05)}.loading-overlay{position:absolute;inset:0;background:rgba(255,255,255,.96);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:120;border-radius:inherit;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);padding:1.5rem;text-align:center}.loader{width:50px;aspect-ratio:1;border-radius:50%;border:4px solid var(--purple-200);border-right-color:var(--purple-700);animation:loader-spin 1s linear infinite}@keyframes loader-spin{to{transform:rotate(1turn)}}.gift-reveal-new{display:flex;flex-direction:column;gap:2rem;align-items:center;overflow:hidden;padding:clamp(2.5rem,5vw,4rem) 1rem 1.5rem;position:relative}.gift-reveal-new:before{display:none}.gift-content-row{display:flex;gap:3rem;width:100%;justify-content:center;align-items:center;position:relative;z-index:1}@media (max-width:600px){.gift-content-row{flex-direction:column;gap:2rem}}.gift-visual-box{position:relative;width:min(16rem,100%);aspect-ratio:1;display:grid;place-items:center}.gift-visual-box:before{content:"";position:absolute;width:80%;height:80%;background:radial-gradient(circle,rgba(216,173,95,.4) 0,transparent 70%);filter:blur(20px);z-index:-1;animation:visual-pulse 3s ease-in-out infinite}@keyframes visual-pulse{0%{transform:scale(.95);opacity:.6}50%{transform:scale(1.05);opacity:1}to{transform:scale(.95);opacity:.6}}.gift-number-badge{position:absolute;z-index:10;display:flex;justify-content:center;align-items:center;width:5.5rem;height:5.5rem;border-radius:50%;background:linear-gradient(135deg,#fff9d6,#d8ad5f);border:4px solid #fff;box-shadow:0 12px 24px rgba(0,0,0,.4),inset 0 2px 10px rgba(255,255,255,.8);color:var(--purple-950);font-size:2.1rem;font-weight:900;font-feature-settings:"tnum";font-variant-numeric:tabular-nums;white-space:nowrap;opacity:0;transform:scale(.5);animation:numberReveal .65s cubic-bezier(.175,.885,.32,1.275) 1.75s forwards}@keyframes numberReveal{to{opacity:1;transform:scale(1)}}.gift-photo-side{width:min(15rem,100%);aspect-ratio:3/4;padding:.6rem .6rem 3rem;background:#fff;border-radius:.4rem;box-shadow:0 20px 40px rgba(0,0,0,.4);transform:rotate(3deg);transition:transform .3s ease;position:relative}.gift-photo-side:hover{transform:rotate(0deg) scale(1.02)}.gift-photo-side:after{content:"";position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);border-radius:.4rem;pointer-events:none}.gift-photo-side img{width:100%;height:100%;object-fit:cover;border-radius:.2rem;background:#f0f0f0}.gift-thank-you{text-align:center;z-index:1;position:relative;max-width:420px;opacity:0;transform:translateY(.75rem);animation:giftTextReveal .45s ease-out 1.95s forwards}@keyframes giftTextReveal{to{opacity:1;transform:translateY(0)}}.gift-thank-you p{color:#fff!important;font-size:1.15rem;font-weight:500;line-height:1.6;text-shadow:0 2px 4px rgba(0,0,0,.5);margin:0}.gift-thank-you strong{color:var(--gold-light);font-size:1.8rem;font-weight:900;display:inline-block;margin:0 .4rem;text-shadow:0 2px 8px rgba(216,173,95,.4)}.upload-panel{width:min(1120px,100%);margin:0 auto}.contact-section,.upload-panel{padding:clamp(1.2rem,3vw,2rem)}.contact-form,.hero-actions,.upload-box{display:grid;grid-gap:.85rem;gap:.85rem}.button{display:inline-flex;align-items:center;justify-content:center;min-height:3.1rem;padding:.9rem 1.35rem;border:0;border-radius:999px;cursor:pointer;font:inherit;font-weight:900;transition:transform .2s ease,box-shadow .2s ease}.button-primary{color:var(--white);background:linear-gradient(135deg,var(--purple-700),#b77bf1);box-shadow:0 16px 32px rgba(93,33,151,.32)}.button-metallic{color:#2b0c4a;font-weight:900;font-size:1.05rem;text-transform:uppercase;letter-spacing:.04em;border:2px solid #ffffff;background:linear-gradient(180deg,#ffffff,#e9e3ed 45%,#c8b9d3);box-shadow:0 12px 24px rgba(54,20,95,.2),inset 0 -3px 6px rgba(0,0,0,.15),inset 0 2px 4px rgba(255,255,255,1);transition:transform .2s ease,box-shadow .2s ease,filter .2s ease}.button-metallic:hover{filter:brightness(1.05);box-shadow:0 16px 32px rgba(54,20,95,.25),inset 0 -3px 6px rgba(0,0,0,.15),inset 0 2px 4px rgba(255,255,255,1)}.dropzone{display:grid;min-height:15rem;place-items:center;grid-gap:.55rem;gap:.55rem;padding:1.2rem;text-align:center;border:2px dashed rgba(108,46,185,.38);border-radius:.9rem;background:rgba(255,255,255,.72);cursor:pointer}.dropzone input{position:absolute;width:1px;height:1px;opacity:0}.upload-icon{display:grid;width:3.5rem;height:3.5rem;place-items:center;color:var(--white);font-size:2.3rem;line-height:1;border-radius:50%;background:var(--purple-700)}.upload-preview{display:block;width:min(34rem,100%);height:clamp(14rem,32vw,24rem);overflow:hidden;border:3px solid #fff;border-radius:.85rem;background:linear-gradient(45deg,rgba(84,32,133,.05) 25%,transparent 25% 75%,rgba(84,32,133,.05) 75%),linear-gradient(45deg,rgba(84,32,133,.05) 25%,transparent 25% 75%,rgba(84,32,133,.05) 75%),#fff;background-position:0 0,.7rem .7rem,0 0;background-size:1.4rem 1.4rem,1.4rem 1.4rem,auto;box-shadow:0 14px 34px rgba(56,18,89,.18)}.upload-preview img{width:100%;height:100%;object-fit:contain}.dropzone small{color:var(--muted)}.gift-reveal{display:grid;grid-template-columns:minmax(18rem,.86fr) minmax(0,1fr);grid-gap:clamp(1.2rem,3vw,2rem);gap:clamp(1.2rem,3vw,2rem);align-items:center;margin-top:.4rem;padding:clamp(1rem,3vw,1.6rem);overflow:hidden;border:1px solid rgba(112,74,154,.16);border-radius:.9rem;background:radial-gradient(circle at 50% 28%,rgba(255,237,181,.68),transparent 9rem),linear-gradient(135deg,#3c126b,#8f45cf 55%,#f1d899);box-shadow:0 20px 48px rgba(69,17,105,.2)}.gift-visual{position:relative;display:grid;min-height:17rem;place-items:center;overflow:hidden;border-radius:.75rem;background:rgba(255,255,255,.14)}.gift-lottie{position:absolute;inset:0;width:100%;height:100%;border:0;transform:scale(1.28)}.gift-photo{position:absolute;left:50%;bottom:1.05rem;display:grid;width:min(12rem,48%);aspect-ratio:4/5;padding:.42rem;opacity:0;overflow:hidden;border:3px solid #fff;border-radius:.55rem;background:linear-gradient(45deg,rgba(84,32,133,.05) 25%,transparent 25% 75%,rgba(84,32,133,.05) 75%),linear-gradient(45deg,rgba(84,32,133,.05) 25%,transparent 25% 75%,rgba(84,32,133,.05) 75%),#fff;background-position:0 0,.55rem .55rem,0 0;background-size:1.1rem 1.1rem,1.1rem 1.1rem,auto;box-shadow:0 18px 38px rgba(31,4,52,.4);transform:translate(-50%,1.8rem) scale(.72) rotate(-4deg);animation:giftPhotoReveal .95s cubic-bezier(.2,.85,.2,1) 1.35s forwards}.gift-photo img{width:100%;height:100%;min-height:0;object-fit:contain;border-radius:.35rem}.gift-photo span{position:absolute;right:.7rem;bottom:.65rem;display:grid;min-width:3.2rem;min-height:3.2rem;place-items:center;padding:.35rem;color:#43145f;font-size:1.55rem;font-weight:950;border-radius:50%;background:linear-gradient(180deg,#fff4ba,#e1b555);box-shadow:0 10px 20px rgba(44,10,67,.35)}.gift-copy{display:grid;grid-gap:.75rem;gap:.75rem;color:#fff}.gift-copy .eyebrow,.gift-copy p{color:rgba(255,255,255,.82)}.gift-copy h3{margin:0;color:#fff;font-size:clamp(1.8rem,4vw,3.1rem);line-height:1.04}.gift-info{display:grid;grid-template-columns:minmax(8rem,.42fr) minmax(0,1fr);grid-gap:.55rem .8rem;gap:.55rem .8rem;padding:1rem;border-radius:.75rem;background:rgba(33,4,58,.34)}.gift-info span{color:rgba(255,255,255,.72);font-size:.78rem;font-weight:900;text-transform:uppercase}.gift-info strong{min-width:0;color:#fff7c4;font-size:clamp(1rem,2vw,1.35rem);overflow-wrap:anywhere}.gift-note{margin:0;font-weight:800}@keyframes giftPhotoReveal{0%{opacity:0;transform:translate(-50%,1.8rem) scale(.72) rotate(-4deg)}72%{opacity:1;transform:translate(-50%,-2.8rem) scale(1.05) rotate(2deg)}to{opacity:1;transform:translate(-50%,-2.45rem) scale(1) rotate(0deg)}}.contact-section{display:grid;grid-template-columns:minmax(0,.9fr) minmax(20rem,1fr);grid-gap:clamp(1.5rem,4vw,4rem);gap:clamp(1.5rem,4vw,4rem);width:min(1120px,100%);margin:clamp(3rem,7vw,5rem) auto;padding:clamp(1.2rem,3vw,2rem)}.contact-form label{display:grid;grid-gap:.35rem;gap:.35rem}.contact-form span{color:var(--purple-900);font-weight:800}.contact-form input{width:100%;min-height:3.2rem;padding:.8rem 1rem;color:var(--ink);border:1px solid rgba(108,46,185,.24);border-radius:.75rem;background:rgba(255,255,255,.9);font:inherit}.status{min-height:1.5rem;margin:0;color:var(--purple-700);font-weight:800}.success{color:#198754}footer{display:flex;flex-wrap:wrap;justify-content:center;gap:.5rem 1rem;padding:1.4rem;color:rgba(255,255,255,.84);background:#2b0f4f}@media (max-width:900px){.hero{min-height:auto}.hero.has-upload-result,.hero.has-uploaded-gallery{height:auto!important;min-height:auto;padding-bottom:1rem}.poster{min-height:0}.poster-gallery-track{animation-duration:86s}.poster-gallery-set{grid-template-rows:repeat(4,minmax(0,1fr));grid-auto-columns:clamp(10.5rem,26vw,13.5rem)}.uploaded-gallery-column,.uploaded-gallery-set{gap:.28rem}.uploaded-gallery-column.is-landscape{grid-template-columns:repeat(2,clamp(5rem,12vw,6.6rem))}.uploaded-gallery-column.is-portrait{grid-template-columns:repeat(2,clamp(4.2rem,9.8vw,5.4rem))}.uploaded-gallery-column.is-mixed{grid-template-columns:repeat(4,clamp(3.4rem,8vw,4.4rem))}.poster-ribbon p{font-size:clamp(1.08rem,3.4vw,1.55rem)}.poster-ribbon span{font-size:clamp(.86rem,2.55vw,1.1rem);letter-spacing:0}.poster-actions.has-upload-result{grid-template-columns:minmax(10rem,1fr) minmax(16rem,1.15fr) minmax(10rem,1fr)}.poster-actions.has-upload-result .action-panel-lucky{grid-template-columns:auto minmax(0,1fr) auto}.action-panel{min-height:5.6rem;padding:.75rem .9rem}.action-panel-photo{grid-template-columns:auto minmax(0,1fr)}.action-icon{width:3.75rem}.action-gift-box{width:4.4rem}.action-panel-lucky .action-copy strong{width:5.6rem;min-height:2.55rem;font-size:2.15rem}.action-panel-lucky .action-mini-button{min-height:2.35rem;padding:.56rem .85rem}.contact-section,.gift-reveal{grid-template-columns:1fr}.steps{grid-template-columns:repeat(2,1fr)}}@media (max-width:620px){.hero{padding:.8rem 0 1rem}.hero.has-upload-result,.hero.has-uploaded-gallery{height:auto!important;min-height:0;padding-bottom:.75rem}.hero.has-upload-result{display:block;overflow:visible}.hero.has-upload-result .poster{display:block;min-height:0!important}.poster-top{grid-template-columns:1fr 1fr;grid-template-areas:"logo product";justify-items:center;min-height:8.6rem;padding-inline:.85rem;gap:1rem}.anniversary-logo{grid-area:logo;justify-self:start}.product-stage{grid-area:product;justify-self:end}.anniversary-logo{width:clamp(10.8rem,50vw,15.5rem);transform:translateY(.85rem)}.product-stage{width:7.6rem;min-width:0;transform:translateY(.9rem)}.product-stage img{width:100%}.poster-ribbon{width:calc(100% - .7rem);margin:0 auto .55rem;padding:.56rem 1.05rem .64rem;-webkit-clip-path:polygon(0 0,100% 0,94.5% 50%,100% 100%,0 100%,5.5% 50%);clip-path:polygon(0 0,100% 0,94.5% 50%,100% 100%,0 100%,5.5% 50%)}.poster-ribbon p{font-size:clamp(.62rem,2.9vw,.82rem);line-height:1.16;white-space:nowrap}.poster-ribbon span{margin-top:.24rem;font-size:clamp(.8rem,3.75vw,.98rem);line-height:1.35;letter-spacing:0}.poster-gallery{width:calc(100% - .7rem);height:min(50vh,28rem);overflow-y:auto;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch;-webkit-mask-image:none;mask-image:none}.poster-gallery::-webkit-scrollbar{width:0}.hero.has-uploaded-gallery .poster-gallery{height:auto;overflow:visible}.hero.has-uploaded-gallery .poster-gallery.is-masonry-gallery{max-height:none;overflow:visible;padding:0 .18rem .35rem}.hero.has-uploaded-gallery .poster-gallery.is-masonry-gallery::-webkit-scrollbar{width:0}.uploaded-desktop-gallery{display:none}.uploaded-mobile-album{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));align-items:start;grid-gap:.36rem;gap:.36rem;max-height:min(50vh,28rem);overflow-y:auto;overscroll-behavior:contain;padding:0 .1rem .35rem 0;touch-action:pan-y;-webkit-overflow-scrolling:touch}.uploaded-mobile-album::-webkit-scrollbar{width:0}.uploaded-mobile-column{gap:.36rem}.poster-gallery-track{display:block;height:auto;animation:none!important;transform:none!important;will-change:auto}.poster-gallery-set{display:grid;grid-auto-flow:row dense;grid-template-columns:repeat(3,minmax(0,1fr));grid-template-rows:none;grid-auto-columns:auto;grid-auto-rows:clamp(4.8rem,22vw,6.2rem);grid-gap:.35rem;gap:.35rem;height:auto;padding-right:0}.poster-gallery-set[aria-hidden=true]{display:none}.hero.has-uploaded-gallery .poster-gallery-set[aria-hidden=true]{display:grid}.uploaded-gallery-set{display:block;column-count:3;column-gap:.35rem;width:100%;margin-bottom:.35rem;overflow:visible}.poster-actions{width:calc(100% - .7rem);gap:.55rem;overflow:visible;border:0;border-radius:0;background:transparent;box-shadow:none;-webkit-backdrop-filter:none;backdrop-filter:none}.poster-actions,.poster-actions.has-upload-result{grid-template-columns:1fr}.action-panel{grid-template-columns:auto minmax(0,1fr);min-height:0;padding:.75rem;border:1px solid rgba(226,174,255,.38);border-radius:.85rem;background:radial-gradient(circle at 16% 38%,rgba(175,82,248,.28),transparent 6.5rem),linear-gradient(135deg,rgba(88,37,130,.84),rgba(41,12,76,.9));box-shadow:0 12px 28px rgba(13,2,28,.18),inset 0 1px 0 rgba(255,255,255,.14)}.action-panel>:first-child{justify-self:center;align-self:center}.action-panel:before{background:none}.action-icon{width:3.35rem}.action-gift-box{width:3.8rem}.action-photo-frame{width:5.2rem}.action-photo-frame.is-landscape{width:min(11rem,34vw)}.action-photo-frame.is-panoramic{width:min(12rem,38vw)}.action-photo-frame.is-square{width:5.4rem}.action-copy strong{font-size:1rem}.action-copy small{font-size:.76rem;line-height:1.35}.action-panel .action-mini-button{grid-column:2;width:max-content;min-height:2.1rem;padding:.5rem .85rem}.action-panel-lucky{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:.7rem;background:radial-gradient(circle at 50% 35%,rgba(245,219,148,.18),transparent 9rem),linear-gradient(135deg,rgba(66,17,108,.94),rgba(27,5,56,.94))}.action-panel-lucky .action-mini-button{grid-column:auto;width:max-content;min-height:2.25rem;padding:.55rem .85rem;font-size:.78rem}.action-panel-lucky .action-copy strong{width:5.5rem;min-height:2.45rem;font-size:clamp(1.9rem,7.8vw,2.35rem)}.poster-card{height:auto;border-width:1px;border-radius:.36rem}.poster-card.is-uploaded,.poster-card.uploaded,.poster-card.uploaded.is-landscape,.poster-card.uploaded.is-panoramic,.poster-card.uploaded.is-portrait,.poster-card.uploaded.is-square{display:block;width:100%;height:auto;margin:0 0 .35rem;page-break-inside:avoid;break-inside:avoid;background:transparent}.poster-card.is-uploaded img,.poster-card.uploaded img{width:100%;height:auto;object-fit:contain}.uploaded-desktop-gallery .poster-card.uploaded img{height:auto;object-fit:contain}.poster-card span{top:.28rem;left:.34rem;font-size:.58rem}.poster-card figcaption{right:.34rem;bottom:.28rem;font-size:.54rem;letter-spacing:.06em}.poster-card.big,.poster-card.wide{grid-column:span 2}.poster-card.big{grid-row:span 2}.steps{grid-template-columns:1fr}.step h3{min-height:0}.gift-info{grid-template-columns:1fr}}@media (max-width:900px){.hero.has-upload-result,.hero.has-upload-result.has-uploaded-gallery{height:auto!important;min-height:unset!important;padding-bottom:1rem!important}.hero.has-upload-result .poster{display:flex;min-height:0!important;flex-direction:column;overflow:visible}.hero.has-upload-result .poster-actions{margin-bottom:0}}@media (max-width:620px){.hero.has-upload-result{padding-top:.45rem;padding-bottom:.75rem!important}.hero.has-upload-result .poster-actions{margin-top:.55rem}.hero.has-upload-result+.contact-section{margin-top:.75rem}}