:root{--paper:#fff9fb;--rose:#f7e4eb;--rose-deep:#92556d;--ink:#493c43;--muted:#786771;--gold:#a97765;--line:#eed7e0;--ease:cubic-bezier(.22,1,.36,1);--font:'Lato',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:40px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-size:16px;line-height:1.8;-webkit-font-smoothing:antialiased}body.modal-open{overflow:hidden}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer}img{display:block;max-width:100%;height:auto}h1,h2,h3,p,figure{margin:0}h1,h2,h3{font-weight:400;line-height:1.2}h1{font-size:clamp(42px,4.8vw,66px);letter-spacing:-1.7px}h2{font-size:clamp(30px,3.15vw,42px);letter-spacing:-.8px}h3{font-size:24px;letter-spacing:-.35px}a:focus-visible,button:focus-visible{outline:3px solid var(--gold);outline-offset:6px}a,button{transition:background-color .35s,color .35s,box-shadow .35s,transform .6s var(--ease)}.wrap{width:min(1160px,calc(100% - 96px));margin-inline:auto}.header{display:flex;align-items:center;justify-content:space-between;height:130px;gap:40px}.brand{width:224px;flex-shrink:0}.brand img{width:100%}nav{display:flex;gap:12px;align-items:center}nav a{font-size:14px;padding:10px 19px;border-radius:24px}nav a:hover{background:var(--rose);color:var(--rose-deep)}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1fr .94fr;align-items:center;gap:75px;padding-top:30px;padding-bottom:75px}.intro{font-size:14px;color:var(--rose-deep);margin-bottom:23px}.hero-copy h1{margin-bottom:29px}.hero-copy>p:not(.intro){color:var(--muted);font-size:16px;max-width:450px}.soft-link{display:inline-flex;gap:22px;align-items:center;font-size:14px;margin-top:30px;padding:9px 0;color:var(--rose-deep)}.down-arrow{display:grid;place-items:center;width:38px;height:38px;border-radius:50%;background:var(--rose);font-size:19px;transition:transform .6s var(--ease)}.soft-link:hover .down-arrow{transform:translateY(4px)}.signature{margin-top:65px;display:flex;gap:13px;align-items:center;color:var(--muted);font-size:12px}.signature svg{width:27px;height:27px;stroke:var(--gold);fill:none;stroke-width:1.3;flex-shrink:0}.hero-photo{border-radius:100px 100px 42px 42px;width:100%;height:auto;border:7px solid #f2dce5;box-shadow:0 12px 38px #92556d0b}.floral-note{width:85px;height:85px;margin:0 0 15px -8px}.thread-divider{display:flex;align-items:center;justify-content:center;gap:22px;height:68px}.thread-divider span{height:1px;width:115px;background:var(--line)}.thread-divider img{width:63px;height:63px;transform:rotate(-15deg)}.hero-caption{display:block;text-align:center;font-size:12px;color:var(--muted);margin-top:17px}.hero-copy{animation:arrive .9s var(--ease) both}.hero-art{animation:arrive 1.15s var(--ease) both}@keyframes arrive{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.section{padding-block:80px}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:35px;margin-bottom:43px}.section-heading .intro{margin-bottom:13px}.section-heading>p{font-size:14px;color:var(--muted);max-width:375px}.gallery{display:grid;grid-template-columns:1fr 1fr;gap:60px 50px;align-items:start}.piece:nth-child(even){padding-top:85px}.photo-button{display:block;border:0;padding:0;background:var(--rose);position:relative;overflow:hidden;border-radius:34px;width:100%;isolation:isolate}.photo-button img{width:100%;height:auto;transition:transform 1.1s var(--ease),filter .6s}.photo-button:hover img{transform:scale(1.018)}.expand-icon{display:grid;place-items:center;position:absolute;right:18px;bottom:18px;width:41px;height:41px;background:#fff9fbee;border-radius:50%;font-size:23px;color:var(--ink);transition:background .4s}.photo-button:hover .expand-icon{background:white}.piece-copy{padding:23px 9px 0}.piece-copy p{color:var(--muted);font-size:14px;max-width:400px;margin-top:9px;line-height:1.75}.essence{border:1px solid #edcfdc;margin-top:35px;display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:65px;background:var(--rose);border-radius:45px;padding:48px}.essence-photo{overflow:hidden;border-radius:30px}.essence-photo img{width:100%;height:auto}.essence-copy h2{margin-bottom:23px;font-size:37px}.essence-copy>p:not(.intro){font-size:14px;color:var(--muted);margin-top:15px;max-width:390px}.story-brand{width:150px;margin-top:27px}.moments{padding-top:110px}.moments-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px}.moments-grid figure{overflow:hidden}.moments-grid img{border-radius:34px;width:100%;height:auto}.moments-grid figcaption{text-align:center;font-size:13px;color:var(--muted);margin-top:17px}.contact{background:#f6e8ef url("assets/brand/flor-de-fios.svg") no-repeat right 25px top 25px;background-size:135px;border:1px solid #edcfdc;border-radius:65px;text-align:center;padding:53px 25px 47px;margin-top:28px;margin-bottom:80px}.contact-heart{display:block;color:var(--gold);font-size:39px;line-height:1;margin-bottom:20px}.contact .intro{margin-bottom:13px}.contact>p:not(.intro){color:var(--muted);font-size:14px;margin-top:22px}.contact-links{display:flex;justify-content:center;gap:14px;margin-top:28px;flex-wrap:wrap}.pill-link{display:inline-block;padding:12px 24px;border-radius:40px;background:var(--rose-deep);border:1px solid var(--rose-deep);color:white;font-size:13px}.pill-link:hover{background:#764058;border-color:#764058;transform:translateY(-2px)}.pill-link.secondary{background:transparent;color:var(--rose-deep);border-color:#cda5b7}.pill-link.secondary:hover{background:#efd5e1}.contact .contact-handle{font-size:12px;margin-top:24px}.contact-handle span{margin:0 12px}footer{padding:0 0 32px;display:flex;align-items:center;justify-content:space-between;gap:25px;color:var(--muted);font-size:11px}footer img{width:160px}footer>p:last-child{font-size:10px}.skip{position:fixed;top:-100px;left:15px;padding:10px 18px;border-radius:20px;background:white;z-index:20}.skip:focus{top:15px}dialog{width:min(800px,calc(100% - 36px));max-height:94dvh;padding:12px;border:0;border-radius:32px;background:var(--paper);box-shadow:0 25px 90px #34291f33}dialog::backdrop{background:#3d2936b5;backdrop-filter:blur(7px)}dialog[open]{animation:dialog-in .45s var(--ease)}dialog.closing{animation:dialog-out .22s ease forwards}dialog[open]::backdrop{animation:backdrop-in .4s ease}dialog.closing::backdrop{animation:backdrop-out .22s ease forwards}.dialog-photo{border-radius:24px;overflow:hidden;background:#f7edf1}.dialog-photo img{width:100%;height:66dvh;object-fit:contain;transition:opacity .18s ease}.dialog-photo img.changing{opacity:.15}.dialog-close{position:absolute;z-index:1;top:24px;right:24px;border:0;border-radius:50%;width:42px;height:42px;background:var(--paper);color:var(--ink);font-size:27px;line-height:1}.dialog-close:hover{background:var(--rose)}.dialog-caption{padding:18px 12px 8px;display:flex;gap:20px;align-items:center;justify-content:space-between}.dialog-caption h2{font-size:22px;letter-spacing:0}.dialog-caption p{font-size:12px;color:var(--muted);margin-top:7px;max-width:450px}.dialog-controls{display:flex;align-items:center;gap:10px;flex-shrink:0}.dialog-controls button{width:38px;height:38px;border-radius:50%;border:1px solid var(--line);background:transparent;color:var(--ink)}.dialog-controls button:hover{background:var(--rose)}#photo-count{font-size:12px;color:var(--muted);min-width:32px;text-align:center}@keyframes dialog-in{from{opacity:0;transform:translateY(15px) scale(.985)}to{opacity:1;transform:none}}@keyframes dialog-out{to{opacity:0;transform:translateY(10px) scale(.99)}}@keyframes backdrop-in{from{opacity:0}to{opacity:1}}@keyframes backdrop-out{to{opacity:0}}
.button-heart{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:1.4;flex-shrink:0}.piece-order{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:10px 19px;margin-top:19px;border:1px solid #dcb5c7;border-radius:30px;background:#f9eaf1;color:#85475f;font-size:13px;line-height:1.5}.piece-order:hover{background:#f2dce7;border-color:#bc819a;transform:translateY(-2px);box-shadow:0 5px 14px #92556d0a}.hero-actions{display:flex;align-items:center;flex-wrap:wrap;column-gap:24px;row-gap:10px;margin-top:30px}.hero-actions .soft-link{margin-top:0}.hero-order{margin-top:0;background:transparent}.order-link{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:46px}.contact .order-note{font-size:12px;max-width:440px;margin:19px auto 0}.contact .contact-handle{margin-top:15px}
.floating-bag{position:fixed;right:max(25px,env(safe-area-inset-right));bottom:calc(25px + env(safe-area-inset-bottom));z-index:8;display:grid;place-items:center;width:66px;height:66px;border-radius:50%;background:#f2d9e4;border:1px solid #d4a6ba;box-shadow:0 6px 22px #84526924,inset 0 0 0 4px #fff9fb70}.floating-bag img{width:40px;height:40px;transition:transform .6s var(--ease)}.floating-bag:hover{background:#ebc8d8;transform:translateY(-3px);box-shadow:0 9px 26px #84526930}.floating-bag:hover img{transform:rotate(-5deg)}.modal-open .floating-bag{visibility:hidden}
@media(max-width:1000px){.wrap{width:calc(100% - 64px)}.hero{gap:40px}.header{height:115px}.brand{width:200px}nav a{padding:9px 12px}.signature{margin-top:35px}.essence{padding:32px;gap:35px}.essence-copy h2{font-size:32px}.gallery{gap:40px 32px}.piece:nth-child(even){padding-top:65px}}
@media(max-width:700px){.floating-bag{width:58px;height:58px;right:max(16px,env(safe-area-inset-right));bottom:calc(16px + env(safe-area-inset-bottom))}.floating-bag img{width:35px;height:35px}html{scroll-padding-top:22px}.wrap{width:calc(100% - 36px)}.header{height:100px;position:relative;gap:15px}.brand{width:180px}.menu-toggle{display:flex;gap:12px;align-items:center;background:var(--rose);border:0;border-radius:30px;padding:10px 16px;font-size:12px;color:var(--ink)}.menu-icon{position:relative;display:block;width:14px;height:10px;border-top:1px solid currentColor;border-bottom:1px solid currentColor;transition:transform .4s}.menu-toggle[aria-expanded=true] .menu-icon{transform:rotate(90deg)}nav{position:absolute;top:87px;left:0;right:0;background:#fff9fbf5;backdrop-filter:blur(12px);border:1px solid var(--line);border-radius:24px;padding:12px;flex-direction:column;gap:3px;z-index:3;opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity .35s,transform .45s var(--ease),visibility .35s;pointer-events:none}nav.is-open{opacity:1;visibility:visible;transform:translateY(0);pointer-events:auto}nav a{padding:10px 18px;width:100%;text-align:center}.hero{grid-template-columns:1fr;gap:35px;padding-top:22px;padding-bottom:40px}.hero-copy{padding-inline:9px}.hero-copy h1{font-size:47px;letter-spacing:-1.3px;line-height:1.15;margin-bottom:22px}.hero-copy>p:not(.intro){font-size:15px}.intro{font-size:13px;margin-bottom:19px}.desktop-break{display:none}.soft-link{margin-top:19px;font-size:13px}.hero-actions{margin-top:20px;gap:12px 20px}.hero-actions .soft-link{margin-top:0}.hero-order{font-size:12px;padding:10px 15px}.piece-order{font-size:12px}.contact .order-note{font-size:11px}.signature{margin-top:24px;font-size:11px;gap:10px}.hero-art{width:100%}.hero-photo{border-radius:65px 65px 30px 30px;border-width:5px}.floral-note{width:64px;height:64px;margin-bottom:12px}.thread-divider{height:47px;gap:17px}.thread-divider span{width:74px}.thread-divider img{width:47px;height:47px}.hero-caption{font-size:11px;margin-top:13px}.section{padding-block:45px}.section-heading{display:block;margin-bottom:27px}.section-heading>p{margin-top:18px;font-size:13px}.section-heading h2{font-size:31px}.gallery{grid-template-columns:1fr;gap:34px}.piece:nth-child(even){padding-top:0}.photo-button{border-radius:28px}.piece-copy{padding:18px 7px 0}.piece-copy h3{font-size:23px}.piece-copy p{font-size:13px;max-width:none}.expand-icon{right:14px;bottom:14px;width:38px;height:38px}.essence{grid-template-columns:1fr;padding:19px;gap:27px;border-radius:32px;margin-top:22px}.essence-photo{border-radius:23px}.essence-copy{padding:0 8px 9px}.essence-copy h2{font-size:32px}.essence-copy>p:not(.intro){font-size:13px}.story-brand{width:140px;margin-top:22px}.moments{padding-top:65px}.moments-grid{gap:28px;grid-template-columns:1fr}.moments-grid img{border-radius:28px}.moments-grid figcaption{font-size:12px;margin-top:12px}.contact{background-size:73px;background-position:right 10px top 14px;padding:35px 22px;border-radius:40px;margin-top:12px;margin-bottom:45px}.contact h2{font-size:31px}.contact .intro{font-size:12px}.contact>p:not(.intro){font-size:13px}.contact-links{flex-direction:column;align-items:center;gap:12px;margin-top:25px}.pill-link{width:100%;max-width:260px;font-size:12px}.contact .contact-handle{font-size:10px}.contact-handle span{margin:0 5px}footer{flex-direction:column;gap:11px;padding-bottom:25px}footer img{width:145px}.dialog-caption{flex-direction:column;align-items:stretch;padding:16px 10px 8px;gap:15px}.dialog-caption h2{font-size:20px}.dialog-controls{justify-content:center}.dialog-photo img{height:58dvh}.dialog-close{width:36px;height:36px;top:21px;right:21px}}

/* A drawn thread leads the photographs into view, like stitches across fabric. */
.embroidery-reveal{opacity:0;transition:opacity 1s ease}
.embroidery-reveal.is-embroidered{opacity:1}
.embroidery-thread{display:block;width:190px;height:38px;fill:none;stroke:#b77b91;stroke-width:1.35;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.embroidery-thread path{stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.8s var(--ease)}
.is-embroidered>.embroidery-thread path{stroke-dashoffset:0}
.section-heading.embroidery-reveal{position:relative;padding-top:43px}
.section-heading>.embroidery-thread{position:absolute;top:0;left:0}
.essence.embroidery-reveal{position:relative}
.essence>.embroidery-thread{position:absolute;top:15px;right:38px;width:160px;height:28px}
.contact>.embroidery-thread{margin:0 auto 18px}
.piece.embroidery-reveal .photo-button img,.moments-grid figure.embroidery-reveal img{clip-path:inset(0 0 100% 0);transition:clip-path 1.5s var(--ease),transform 1.1s var(--ease)}
.piece.is-embroidered .photo-button img,.moments-grid figure.is-embroidered img{clip-path:inset(0)}
.piece.embroidery-reveal .piece-copy,.moments-grid figure.embroidery-reveal figcaption{opacity:0;transition:opacity .9s ease .45s}
.piece.is-embroidered .piece-copy,.moments-grid figure.is-embroidered figcaption{opacity:1}
.thread-divider.embroidery-reveal span{transform:scaleX(0);transition:transform 1.7s var(--ease)}
.thread-divider span:first-child{transform-origin:right center}.thread-divider span:last-child{transform-origin:left center}
.thread-divider.is-embroidered span{transform:scaleX(1)}
.thread-divider.embroidery-reveal img{opacity:0;transition:opacity 1s ease .45s}.thread-divider.is-embroidered img{opacity:1}
@media(max-width:700px){.embroidery-thread{width:150px;height:30px}.section-heading.embroidery-reveal{padding-top:35px}.essence>.embroidery-thread{top:auto;bottom:15px;right:20px;width:110px;opacity:.6}}
@media(prefers-reduced-motion:reduce){.embroidery-reveal,.embroidery-reveal .piece-copy,.embroidery-reveal figcaption,.thread-divider.embroidery-reveal img{opacity:1!important}.embroidery-thread path{stroke-dashoffset:0!important}.embroidery-reveal img{clip-path:none!important}.thread-divider.embroidery-reveal span{transform:none!important}}
@media print{.embroidery-reveal,.embroidery-reveal .piece-copy,.embroidery-reveal figcaption,.thread-divider.embroidery-reveal img{opacity:1!important}.embroidery-thread path{stroke-dashoffset:0!important}.embroidery-reveal img{clip-path:none!important}.thread-divider.embroidery-reveal span{transform:none!important}.floating-bag{display:none}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}}
main{position:relative;isolation:isolate}.journey-thread{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:-1;overflow:hidden;fill:none;stroke:#c18da5;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.journey-thread path{stroke-dasharray:1;stroke-dashoffset:1}.milla-signature{color:var(--rose-deep)!important;margin-top:22px!important}.photo-options{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 10px 0}#photo-thumbnails{display:flex;gap:8px;flex-wrap:wrap}#photo-thumbnails button{padding:3px;background:transparent;border:1px solid var(--line);border-radius:13px}#photo-thumbnails button[aria-pressed=true]{border-color:var(--rose-deep);background:var(--rose)}#photo-thumbnails img{width:42px;height:47px;object-fit:cover;border-radius:9px}#photo-zoom{border:1px solid #dcb5c7;border-radius:22px;padding:8px 13px;background:var(--rose);color:var(--rose-deep);font-size:12px;flex-shrink:0}.dialog-photo{height:57dvh;overflow:auto;overscroll-behavior:contain}.dialog-photo img{height:100%;width:100%}.dialog-photo.is-zoomed img{max-width:none;width:170%;height:auto;object-fit:contain}.dialog-controls button:disabled{opacity:.35;cursor:default}.dialog-controls button:disabled:hover{background:transparent}dialog{overflow-y:auto}@media(max-width:700px){.journey-thread{stroke-width:1.1;opacity:.7}.dialog-photo{height:48dvh}.photo-options{padding-inline:5px}#photo-zoom{font-size:11px}#photo-thumbnails img{width:37px;height:41px}.dialog-caption{padding-top:12px;gap:9px}.dialog-caption p{line-height:1.5}}@media(prefers-reduced-motion:reduce){.journey-thread path{stroke-dashoffset:0!important}}@media print{.journey-thread{display:none}}
