@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{--blue:#16aeef;--deep:#075778;--ink:#152f3a;--ice:#e7f6fc;--paper:#fffdf9;--line:#bddce8;--serif:'Playfair Display',Georgia,serif;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.6}::selection{background:#abe5ff;color:#13313e}:focus-visible{outline:3px solid var(--deep);outline-offset:5px}a{color:inherit;text-underline-offset:5px}button,input,select,textarea{font:inherit}button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}button,a{touch-action:manipulation}a{text-decoration:none}.announcement{text-align:center;background:var(--deep);color:white;padding:8px 20px;font-size:12px;letter-spacing:.09em}header{max-width:1440px;margin:auto;padding:12px 5%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{display:block}.brand img{width:124px;height:115px;object-fit:contain;display:block}nav{display:flex;align-items:center;gap:38px;font-size:14px}nav a:hover,.text-link:hover{color:var(--deep);text-decoration:underline}.nav-order{border-bottom:1px solid var(--ink);padding:8px 0}.nav-order span{margin-left:18px}.hero{max-width:1440px;margin:auto;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:6%;padding:55px 6% 70px}.hero h1{font:500 clamp(44px,4.7vw,68px)/1.15 var(--serif);letter-spacing:-.035em;margin:0 0 26px}em{font-weight:500;color:var(--deep)}.hero p{max-width:360px;margin:0 0 30px;font-size:16px}.button{display:inline-flex;gap:32px;justify-content:space-between;align-items:center;border:0;background:var(--deep);color:white;padding:16px 22px;cursor:pointer;font-size:14px;font-weight:600;transition:background .2s,transform .2s}.button:hover{background:#083e55;transform:translateY(-2px)}.button:disabled{opacity:.6;cursor:wait}.text-link{display:block;font-size:13px;margin-top:23px;text-decoration:underline}.text-link span{margin-left:12px}.hero-art{position:relative;padding-bottom:30px}.photo-placeholder{position:relative;overflow:hidden;background:var(--ice)}.hero-photo{aspect-ratio:1/1.03;border-radius:48% 48% 0 0;background:#d9f1fb}.photo-corner{display:block;text-align:center;font-size:10px;letter-spacing:.18em;padding-top:48px;color:#32647a}.pop-arrangement{height:68%;position:absolute;top:16%;width:100%}.pop{position:absolute;width:25%;aspect-ratio:1;border-radius:50%;background:#fdf9ed;border:1px solid #b8d9e5;z-index:1;box-shadow:8px 12px 22px #548ca725}.pop:after,.single-pop:after{content:'';position:absolute;width:6px;background:#fffdf8;height:185%;left:calc(50% - 3px);top:100%;z-index:-1;box-shadow:2px 0 0 #94b6c533}.pop-one{left:15%;top:18%;transform:rotate(-20deg);background:#b8e5f8}.pop-two{left:40%;top:1%;transform:rotate(9deg)}.pop-three{left:66%;top:27%;transform:rotate(25deg);background:#83cef0}.pop:before,.single-pop:before{content:'';position:absolute;inset:20% 12%;border-top:4px solid #fff9e5;border-bottom:4px solid #fff9e5;transform:rotate(-22deg);border-radius:45%}.placeholder-caption{position:absolute;bottom:28px;text-align:center;width:100%;display:grid;gap:2px;font:500 19px var(--serif)}.placeholder-caption small{font:11px var(--sans);margin-top:7px;color:#356578}.handwritten{position:absolute;bottom:-3px;right:-14px;font:italic 21px var(--serif);transform:rotate(-7deg);background:var(--paper);padding:6px 12px}.ribbon{background:var(--ice);border-block:1px solid var(--line);padding:21px 5%;display:flex;justify-content:space-around;gap:20px;font:500 18px var(--serif)}.ribbon b{color:var(--deep);font-size:20px}.section{max-width:1300px;margin:auto;padding:84px 6%}h2{font:500 clamp(34px,3.5vw,48px)/1.2 var(--serif);letter-spacing:-.025em;margin:0 0 24px}.section-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:34px}.section-heading p{font-size:14px;max-width:310px;margin-bottom:26px}.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}figure{margin:0}.gallery .photo-placeholder{aspect-ratio:4/4.8}.photo-index{position:absolute;top:20px;left:20px;font-size:9px;letter-spacing:.14em}.vanilla{background:#edf3ef}.celebration{background:#e3f3fb}.custom{background:#eeeaf3}.single-pop{position:absolute;width:35%;aspect-ratio:1;left:32%;top:27%;border-radius:50%;background:#fcf5dd;border:1px solid #d6cdb5;box-shadow:10px 14px 22px #394e5c14;transform:rotate(-12deg);z-index:1}.celebration .single-pop{background:#7ed0f4;transform:rotate(10deg);border-color:#65afce}.custom .single-pop{background:#d7c8e4;border-color:#bea9ce;transform:rotate(-7deg)}.photo-label{position:absolute;bottom:20px;left:0;width:100%;text-align:center;font:italic 18px var(--serif)}h3{font:500 23px var(--serif);margin:20px 0 7px}figcaption p{font-size:13px;margin:0}.gallery-note{font-size:11px;color:#49606a;margin-top:25px}.story{display:grid;grid-template-columns:1fr 1fr;gap:10%;align-items:center;border-top:1px solid var(--line)}.story-logo{background:var(--ice);padding:35px;display:grid;place-items:center;min-height:360px}.story-logo img{width:80%;max-width:290px}.story-logo span{font:italic 19px var(--serif);margin-top:18px}.story p{font-size:15px;max-width:430px}.inquiry{background:var(--ice);max-width:none;display:grid;grid-template-columns:.85fr 1.15fr;gap:9%;padding-inline:max(6%,calc((100vw - 1144px)/2))}.inquiry-intro>p{max-width:360px;font-size:15px}.form-notice{margin-top:35px;border-top:1px solid #93bfd1;padding-top:20px;max-width:360px}.form-notice strong{font-size:13px}.form-notice p{font-size:12px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:20px}label{display:block;font-size:12px;font-weight:600;margin-bottom:20px}label span{font-weight:400}input,select,textarea{display:block;width:100%;margin-top:8px;border:1px solid #8eb5c6;border-radius:0;background:#fffefa;color:var(--ink);padding:12px;font-size:14px;min-height:47px;caret-color:var(--deep)}input::placeholder,textarea::placeholder{color:#526a75}textarea{resize:vertical}#form-status{font-size:13px;max-width:500px}.faq{display:grid;grid-template-columns:1fr 1.2fr;gap:10%}.faq h2{font-size:34px}details{border-bottom:1px solid var(--line);padding:19px 0}details:first-child{border-top:1px solid var(--line)}summary{cursor:pointer;font-size:15px}details p{font-size:14px;margin:15px 0 4px;max-width:60ch}footer{background:var(--deep);color:white;padding:40px 6%;display:flex;align-items:center;flex-wrap:wrap;gap:15px 45px}.footer-brand{font:26px var(--serif)}.footer-brand em{color:white;font-size:20px}footer p{font-size:12px}footer>a:last-of-type{margin-left:auto;font-size:13px}footer small{width:100%;font-size:10px;opacity:.85}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-thumb{background:#86b9cf;border:2px solid var(--paper);border-radius:8px}@media(prefers-reduced-motion:no-preference){.hero-art{animation:unveil .9s cubic-bezier(.16,1,.3,1)}@keyframes unveil{from{clip-path:inset(12% 0 0 0)}to{clip-path:inset(0)}}}@media(max-width:760px){header{padding:10px 6%}.brand img{width:86px;height:84px}nav{gap:16px}nav>a:not(.nav-order){display:none}.nav-order{font-size:11px}.nav-order span{margin-left:6px}.hero{grid-template-columns:1fr;padding:38px 7% 45px;gap:34px}.hero h1{font-size:46px}.hero p{font-size:15px}.hero-art{max-width:480px;width:100%;margin:auto}.hero-photo{aspect-ratio:1.08}.hero-copy{max-width:500px}.handwritten{right:0}.ribbon{justify-content:center;font-size:15px;padding:17px 5%}.ribbon span:nth-last-child(-n+3),.ribbon b:nth-last-child(-n+3){display:none}.section{padding:54px 7%}.section-heading{display:block}.section-heading p{margin:0}.gallery{gap:30px;grid-template-columns:1fr}.gallery .photo-placeholder{aspect-ratio:1.1}.gallery figcaption{margin-bottom:5px}.single-pop{width:29%;left:35%;top:22%}.story,.inquiry,.faq{grid-template-columns:1fr;gap:34px}.story-logo{min-height:280px}.story-logo img{max-width:230px}.form-row{gap:12px}h2{font-size:36px}.inquiry{padding:54px 7%}.form-notice{margin-top:25px}.faq{gap:8px}footer{padding:35px 7%;display:block}footer a,footer small{display:block}footer>a:last-of-type{margin:22px 0}footer small{margin-top:25px}}@media(max-width:380px){.hero h1{font-size:40px}.form-row{grid-template-columns:1fr;gap:0}.nav-order{font-size:10px}}
