:root{
  --orange:#f47721;
  --orange2:#ff9a2e;
  --blue:#80c6f2;
  --mint:#9fd6c7;
  --pink:#f27ca8;
  --coral:#ef5748;
  --yellow:#f5b436;
  --cream:#fff8ea;
  --paper:#fffdf8;
  --ink:#151927;
  --white:#fff;
  --line:rgba(21,25,39,.15);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:"DM Sans",sans-serif;
  color:var(--ink);
  background:var(--paper);
  line-height:1.55;
}
a{color:inherit;text-decoration:none}
.site-header{
  position:sticky;top:0;z-index:20;
  display:flex;justify-content:space-between;align-items:center;
  padding:16px clamp(18px,4vw,54px);
  background:rgba(255,253,248,.94);
  backdrop-filter:blur(12px);
  border-bottom:1px solid var(--line);
}
.brand{display:flex;align-items:center;gap:10px;font-weight:700}
.brand-mark{
  width:34px;height:34px;border-radius:50%;display:grid;place-items:center;
  background:var(--orange);font-family:"Fraunces",serif;font-size:21px;
}
.brand-name{letter-spacing:-.02em}
.site-nav{display:flex;gap:24px;align-items:center;font-size:14px;font-weight:600}
.site-nav a:hover{opacity:.65}
.nav-book{background:var(--ink);color:white;padding:11px 17px;border-radius:999px}
.menu-button{
  display:none;border:1px solid var(--line);background:transparent;
  border-radius:999px;padding:9px 14px;font:inherit;
}
.hero{display:grid;grid-template-columns:1.05fr .95fr;min-height:720px;overflow:hidden}
.hero-copy{padding:clamp(70px,9vw,126px) clamp(24px,7vw,104px);align-self:center}
.eyebrow{margin:0 0 15px;font-size:12px;font-weight:700;letter-spacing:.17em;text-transform:uppercase}
h1,h2,h3{margin-top:0}
h1,h2{font-family:"Fraunces",serif;line-height:.97;letter-spacing:-.045em}
h1{font-size:clamp(58px,7.7vw,112px);margin-bottom:28px}
h1 em{font-style:normal;color:var(--hot, #ee3e7e)}
h2{font-size:clamp(42px,5.2vw,76px);margin-bottom:22px}
.hero-text{max-width:560px;font-size:clamp(18px,2vw,22px);margin-bottom:32px}
.hero-actions,.wedding-actions,.visit-actions{display:flex;gap:18px;align-items:center;flex-wrap:wrap}
.button{
  display:inline-flex;align-items:center;justify-content:center;
  min-height:50px;padding:0 22px;border-radius:999px;font-weight:700;
  transition:.18s transform ease,.18s opacity ease;
}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--orange);color:var(--ink)}
.button-dark{background:var(--ink);color:white}
.button-outline{border:1px solid var(--ink)}
.text-link{font-weight:700;border-bottom:1px solid currentColor}
.hero-art{position:relative;background:var(--blue);overflow:hidden}
.shape{position:absolute;border-radius:999px}
.shape-a{width:65%;height:110%;right:-12%;top:-5%;background:var(--orange)}
.shape-b{width:52%;height:70%;left:-11%;bottom:-13%;background:var(--pink)}
.shape-c{width:38%;height:45%;right:12%;bottom:2%;background:var(--mint)}
.spark{position:absolute;font-size:54px;color:var(--ink)}
.spark-1{top:11%;left:12%}.spark-2{bottom:13%;right:9%;color:var(--coral)}
.hero-sign{
  position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-3deg);
  width:min(350px,72%);aspect-ratio:1/1.12;background:var(--cream);
  border:2px solid var(--ink);box-shadow:16px 16px 0 rgba(21,25,39,.14);
  padding:32px;display:flex;flex-direction:column;justify-content:flex-end;
}
.hero-sign span{font-family:"Fraunces",serif;font-size:clamp(45px,5vw,76px);line-height:.9}
.hero-sign small{margin-top:8px;letter-spacing:.35em;font-weight:700}
.ticker{overflow:hidden;padding:14px 0;background:var(--ink);color:white;white-space:nowrap;font-weight:700;letter-spacing:.08em}
.ticker div{width:max-content;animation:slide 25s linear infinite}
@keyframes slide{to{transform:translateX(-40%)}}
.section{padding:clamp(72px,9vw,128px) clamp(22px,7vw,104px)}
.intro{display:grid;grid-template-columns:1fr .85fr;gap:clamp(40px,8vw,115px);background:var(--mint)}
.intro-copy{align-self:end;font-size:clamp(18px,2vw,23px)}
.section-heading{display:flex;justify-content:space-between;align-items:end;gap:42px;margin-bottom:50px}
.section-heading>p{max-width:440px}
.services{background:var(--cream)}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:30px}
.service-card{
  min-height:320px;border-radius:26px;padding:28px;
  display:flex;flex-direction:column;border:1px solid rgba(21,25,39,.12)
}
.service-card .num{font-weight:700}.service-card h3{margin:auto 0 12px;font-family:"Fraunces",serif;font-size:34px;line-height:1}
.service-card p{margin:0}.orange{background:var(--orange)}.blue{background:var(--blue)}.pink{background:var(--pink)}
.weddings{background:var(--coral)}
.wedding-card{
  max-width:1100px;margin:auto;background:var(--ink);color:white;border-radius:32px;
  padding:clamp(36px,7vw,82px);display:grid;grid-template-columns:1.1fr .9fr;gap:50px;align-items:center
}
.wedding-card h2{color:white}.wedding-card p{max-width:680px}.light{color:white}
.wedding-art{position:relative;min-height:360px}
.flower-big,.ring,.sparkle{position:absolute}
.flower-big{font-size:180px;color:var(--pink);left:8%;top:10%}
.ring{font-size:260px;color:var(--yellow);right:0;bottom:-40px}
.sparkle{font-size:92px;color:var(--mint);right:10%;top:8%}
.work{background:var(--paper)}
.art-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:30px}
.art-card{min-height:360px;border-radius:150px 150px 18px 18px;padding:20px;display:flex;align-items:end;font-weight:700;letter-spacing:.08em}
.a1{background:var(--pink)}.a2{background:var(--orange)}.a3{background:var(--blue)}.a4{background:var(--mint)}
.visit{background:var(--blue)}
.visit-card{max-width:920px;margin:auto;background:var(--cream);border-radius:30px;padding:clamp(34px,6vw,78px);text-align:center}
.visit-card h2{font-size:clamp(40px,6vw,72px)}
.visit-actions{justify-content:center;margin-top:32px}
footer{
  padding:38px clamp(22px,7vw,104px);
  background:var(--ink);color:white;
  display:grid;grid-template-columns:1.3fr 1fr auto auto;gap:26px;align-items:center;
  font-size:13px
}
.footer-links{display:flex;gap:14px}.footer-note{opacity:.65}
@media(max-width:900px){
  .hero{grid-template-columns:1fr}.hero-art{min-height:610px}
  .intro{grid-template-columns:1fr}
  .section-heading{flex-direction:column;align-items:flex-start}
  .service-grid{grid-template-columns:1fr}.service-card{min-height:230px}
  .wedding-card{grid-template-columns:1fr}.wedding-art{min-height:260px}
  .art-grid{grid-template-columns:1fr 1fr}.art-card{min-height:280px}
  footer{grid-template-columns:1fr 1fr}
}
@media(max-width:680px){
  .site-header{padding:14px 16px}.menu-button{display:inline-flex}
  .site-nav{
    position:absolute;left:16px;right:16px;top:calc(100% + 8px);
    display:none;flex-direction:column;align-items:stretch;gap:0;
    background:var(--paper);border:1px solid var(--line);border-radius:18px;
    padding:10px;box-shadow:0 18px 50px rgba(21,25,39,.16)
  }
  .site-nav.open{display:flex}.site-nav a{padding:13px 12px}.nav-book{text-align:center;margin-top:6px}
  .hero-copy{padding:64px 20px 56px}h1{font-size:clamp(54px,18vw,82px)}
  .hero-art{min-height:510px}.hero-sign{width:70%}
  .section{padding:72px 20px}
  .art-grid{gap:10px}.art-card{min-height:220px;border-radius:100px 100px 14px 14px}
  footer{grid-template-columns:1fr}
}
