:root{--cream:#faf6ee;--purple:#c9b5db;--ink:#392c43;--yellow:#f5df89;--deep:#68507d;--line:#d8cadb;font-family:'Trebuchet MS',Arial,sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0}a{color:inherit}.skip{position:absolute;top:-100px;left:20px;z-index:5;background:white;padding:15px}.skip:focus{top:10px}.announcement{background:var(--purple);text-align:center;padding:18px 20px;line-height:20px;font-size:1rem;font-weight:700;letter-spacing:.03em}.announcement span{margin:0 18px}header{max-width:1440px;margin:auto;padding:26px 6%;display:flex;justify-content:space-between;align-items:center}.brand{text-decoration:none;display:flex;align-items:center;gap:12px}.brand img{width:64px;height:auto}.brand>span,.footer-brand{font-family:'Cooper Black','Bookman Old Style',Georgia,serif;font-weight:900;font-size:1.85rem;line-height:.83;letter-spacing:-.06em}.brand-dot{color:var(--deep)}.button{display:inline-flex;gap:16px;align-items:center;justify-content:center;background:var(--yellow);border:1.5px solid var(--ink);border-radius:100px;padding:19px 28px;text-decoration:none;font-weight:700;font-size:1rem;box-shadow:0 4px 0 var(--ink);transition:transform .18s,box-shadow .18s}.button:hover{transform:translateY(-3px);box-shadow:0 7px 0 var(--ink)}.button:active{transform:translateY(3px);box-shadow:0 1px 0 var(--ink)}a:focus-visible{outline:3px solid #75509b;outline-offset:7px}.button-small{padding:13px 23px;font-size:.875rem;box-shadow:none}.hero{max-width:1440px;margin:auto;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:4%;padding:24px 6% 64px}.hero-copy{padding:15px 0}.eyebrow{font-size:.875rem;font-weight:700;letter-spacing:.12em;line-height:1.6}.eyebrow>span{color:var(--deep);margin-right:8px}h1{font-family:'Cooper Black','Bookman Old Style',Georgia,serif;font-size:clamp(4.2rem,7.9vw,7.4rem);font-weight:900;letter-spacing:-.065em;line-height:1.01;margin:22px 0 25px}h1 em{font-style:normal;color:var(--deep);position:relative}h1 em:after{content:'';position:absolute;height:7px;background:var(--yellow);left:2%;right:0;bottom:-8px;border-radius:100%;transform:rotate(-3deg)}.intro{font-size:1.2rem;line-height:1.65;max-width:390px;margin:30px 0}.helper{font-size:.875rem;font-weight:700;line-height:1.6;margin-top:18px;color:#655a68}.yuzu-note{display:flex;align-items:center;gap:15px;margin-top:36px}.yuzu-note img{width:86px;height:auto;transform:rotate(-8deg)}.yuzu-note p{font-size:1rem;transform:rotate(-4deg);margin:0}.yuzu-note span{display:block;font-family:Georgia,serif;font-style:italic;font-size:.875rem;margin-top:7px;color:var(--deep)}.hero-art{position:relative;background:#e3d6ec;border:1px solid #c1aacd;border-radius:48% 48% 26px 26px;padding:25px 13px 0;isolation:isolate;box-shadow:12px 12px 0 #f4e8ae}.original-art{display:block;width:100%;height:auto;position:relative;z-index:1}.art-tag{position:absolute;z-index:2;top:24%;right:-16px;background:var(--yellow);border:1px solid #b19d55;border-radius:8px;padding:13px 17px;transform:rotate(8deg);font-size:.875rem;font-weight:700}.art-caption{position:absolute;bottom:18px;left:50%;transform:translateX(-50%) rotate(-3deg);z-index:2;white-space:nowrap;padding:10px 18px;background:var(--cream);border:1px solid var(--line);font-family:inherit;font-style:normal;font-size:1rem;border-radius:4px}.ribbon{display:flex;justify-content:space-around;align-items:center;gap:30px;background:var(--purple);padding:23px 24px;border-block:1px solid #ad96bf;overflow:hidden;font-size:1rem;font-weight:700;letter-spacing:.1em}.ribbon span{white-space:nowrap}.ribbon b{font-size:1.5rem;font-weight:400}.signup{display:grid;grid-template-columns:1fr 1.5fr;align-items:center;gap:60px;max-width:1040px;margin:auto;padding:95px 6% 100px}.signup-yuzu{display:flex;flex-direction:column;align-items:center;gap:18px;transform:rotate(-5deg)}.signup-yuzu img{width:100%;max-width:230px;height:auto}.signup-yuzu span{font-family:inherit;font-style:normal;line-height:1.5;font-size:1rem}h2{font-family:'Cooper Black','Bookman Old Style',Georgia,serif;font-size:clamp(2.5rem,4.4vw,4.2rem);line-height:1.07;letter-spacing:-.055em;margin:16px 0 20px}.signup p:not(.eyebrow){font-size:1.05rem;line-height:1.7;max-width:410px;margin-bottom:28px}footer{font-weight:700;border-top:1px solid var(--line);padding:30px 6%;display:flex;gap:25px;justify-content:space-between;align-items:center;font-size:.875rem;line-height:1.6}footer p{margin:0}.footer-brand{font-size:1.4rem;line-height:1.2}@media(min-width:1600px){.hero{gap:7%}}@media(max-width:760px){.announcement{font-size:.75rem;line-height:1.6;padding:14px 18px}.announcement span{margin:0 5px}header{padding:24px 6%}.brand>span{font-size:1.5rem}.brand img{width:43px}.button-small{padding:11px 16px;gap:12px}.hero{grid-template-columns:1fr;gap:38px;padding-top:0;padding-bottom:50px}.hero-copy{text-align:center}h1{font-size:clamp(4rem,13vw,6rem);margin:18px 0 24px}.eyebrow{font-size:.75rem}.intro{margin:28px auto;max-width:360px;font-size:1.05rem}.yuzu-note{justify-content:center;margin-top:27px}.hero-art{max-width:470px;width:95%;margin:auto}.art-tag{right:-9px}.ribbon{justify-content:center;padding:16px;gap:20px;font-size:.75rem}.signup{grid-template-columns:1fr;text-align:center;gap:28px;padding:60px 7%}.signup-yuzu img{max-width:140px}.signup-yuzu span{font-size:.875rem}.signup p:not(.eyebrow){margin-inline:auto}footer{flex-direction:column;text-align:center;gap:12px;padding-block:30px}.helper{font-size:.8125rem}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.button{transition:none}}









/* Lift the hero copy after removing its introductory tagline. */
.hero-copy{transform:translateY(-30px)}@media(max-width:760px){.hero-copy{transform:none;padding-top:0}}




/* Stronger, more closely spaced button arrows. */
.button>span[aria-hidden="true"]{font-weight:900;-webkit-text-stroke:.55px currentColor}


.footer-message{text-align:center}footer .copyright{display:inline-block;margin-left:8px;font-size:.875rem}




/* Keep the footer tagline centered independently of the side text. */
@media(min-width:761px){footer{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:24px}footer>.footer-brand{justify-self:start}footer>.footer-message{justify-self:center}footer>span:last-child{text-align:right;justify-self:end}}


/* Stack the ribbon phrases on small screens instead of clipping them. */
@media(max-width:760px){.ribbon{flex-direction:column;gap:10px;padding:20px 16px;text-align:center;overflow:visible}.ribbon span{white-space:normal;max-width:100%;overflow-wrap:break-word}.ribbon b{display:none}}



/* Bold ribbon phrases framed by decorative diamonds. */
.ribbon .ribbon-phrase{font-weight:900;display:inline-flex;align-items:center;justify-content:center;gap:12px;white-space:normal;text-align:center}.ribbon-phrase i{font-style:normal;flex-shrink:0;font-size:1.2em}


/* One accent beside the middle phrase, centered in its left gutter on mobile. */
.ribbon-love i{font-size:26px}@media(max-width:760px){.ribbon{padding-inline:0}.ribbon .ribbon-love{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:0;width:100%}.ribbon-love i{justify-self:center}.ribbon-love>span{grid-column:2}}


.ribbon-love .banner-flower{width:36px;height:36px;object-fit:contain;justify-self:center;flex-shrink:0;border-radius:50%}


/* Hearts on desktop; retain the flower accents on mobile. */
.ribbon-love .banner-heart{display:inline-block;font-size:26px;line-height:1;color:var(--ink)}.ribbon-love .banner-flower{display:none}@media(max-width:760px){.ribbon-love .banner-heart{display:none}.ribbon-love .banner-flower{display:block}.ribbon-love>span:not(.banner-heart){grid-column:2}}


/* Original desktop ribbon, with the existing flower layout on mobile. */
.ribbon-mobile{display:none}.ribbon-desktop{display:flex}@media(max-width:760px){.ribbon-desktop{display:none}.ribbon-mobile{display:flex}}


/* Soft rounded heart silhouettes within the existing separator slots. */
.ribbon-desktop .rounded-heart{width:1em;height:1em;display:inline-block;vertical-align:-.12em;fill:currentColor}


.announcement .banner-top-heart{width:1em;height:1em;display:inline-block;vertical-align:-.12em;fill:currentColor}

