/* Atelier only: independently layered paper, live typography and alpha artwork. */
.atelier-page{--art-paper:#fffaf0;--art-shift:0px;isolation:isolate}
.atelier-page .atelier-cover{position:relative;isolation:isolate;container-type:inline-size;overflow:hidden;min-height:100svh;padding:38px 0 48px;background:var(--c-bg)}
.atelier-page .atelier-cover:before,.atelier-page .art-opening:before{content:'';position:absolute;inset:0;pointer-events:none;z-index:-1;background:radial-gradient(ellipse at 25% 8%,#fff5,transparent 65%),url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Cpath fill='%23000' opacity='.055' filter='url(%23n)' d='M0 0h180v180H0z'/%3E%3C/svg%3E")}
.atelier-page .art-eyebrow{text-align:center;font:500 9px/1.8 var(--c-body);letter-spacing:.3em;text-transform:uppercase;padding:0 24px;overflow-wrap:anywhere}
.atelier-page .art-decoration{position:absolute;display:block;height:auto;object-fit:contain;pointer-events:none;user-select:none;filter:drop-shadow(8px 16px 12px #3b2d4b12);translate:0 var(--art-shift)}
.atelier-page .art-label{font:500 9px/1.9 var(--c-body);letter-spacing:.24em;overflow-wrap:anywhere}
.atelier-page .art-title{font:italic 400 clamp(42px,calc(5.5cqw * var(--c-scale)),96px)/1.02 var(--c-heading);letter-spacing:-.025em;white-space:pre-line;overflow-wrap:anywhere}
.atelier-page .art-recipient{font:400 clamp(24px,3cqw,36px)/1.25 var(--c-heading);margin-top:24px;overflow-wrap:anywhere}
.atelier-page .art-date{font:500 10px/1.9 var(--c-body);letter-spacing:.2em;margin-top:22px}
.atelier-page .art-scroll{display:inline-flex;align-items:center;gap:30px;min-height:44px;margin-top:20px;text-decoration:none;font:400 9px/1.6 var(--c-body);letter-spacing:.08em;border-bottom:1px solid color-mix(in srgb,var(--c-ink) 35%,transparent)}
.atelier-page .art-scroll span{font-size:21px}
.atelier-page .art-eight-scene{position:relative;width:min(760px,90%);height:580px;margin:4px auto 0;isolation:isolate}
.atelier-page .art-eight{position:absolute;inset:-74px 0 auto;text-align:center;font:400 680px/1 Georgia,serif;letter-spacing:-.065em;padding-right:.065em;color:#fff7df;text-shadow:1px 1px 0 #fffdf3,5px 9px 6px #82718d25,16px 22px 35px #64577815;translate:0 calc(var(--art-shift) * -.5)}
.atelier-page .art-flower-left{width:46%;left:-6%;top:6%;transform:rotate(-17deg);z-index:2}
.atelier-page .art-flower-right{width:43%;right:-5%;top:20%;transform:scaleX(-1) rotate(-12deg);z-index:2}
.atelier-page .art-month{position:absolute;bottom:4px;left:0;right:0;text-align:center;font:italic 400 57px/1 var(--c-heading);color:var(--c-ink)}
.atelier-page .art-march-copy{position:relative;text-align:center;max-width:800px;margin:10px auto 0;padding:0 24px}
.atelier-page .art-march-copy .art-title{margin-top:20px;font-size:clamp(40px,calc(4.5cqw * var(--c-scale)),90px)}
.atelier-page .art-march-copy .art-recipient{margin-top:18px}
.atelier-page .art-wedding-scene{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;gap:5%;max-width:1280px;margin:80px auto 55px;padding:0 7%}
.atelier-page .art-vows{position:relative;z-index:3;min-width:0}
.atelier-page .art-couple{font:400 clamp(60px,calc(7.5cqw * var(--c-scale)),140px)/.95 var(--c-heading);letter-spacing:-.045em;margin:38px 0 28px;overflow-wrap:anywhere}
.atelier-page .art-couple span{display:block}
.atelier-page .art-couple i{display:block;font:italic 400 .65em/1.1 var(--c-heading);color:var(--c-accent);padding-left:18%;margin:8px 0}
.atelier-page .art-dedication{font:italic 400 clamp(23px,2.6cqw,34px)/1.35 var(--c-heading);white-space:pre-line;overflow-wrap:anywhere}
.atelier-page .art-venue{font:400 10px/1.9 var(--c-body);max-width:320px;margin-top:16px;overflow-wrap:anywhere}
.atelier-page .art-portrait-stage{position:relative;min-width:0;margin:70px 0 80px;isolation:isolate}
.atelier-page .art-paper-back{position:absolute;inset:-25px 20px 20px -20px;background:#e8e5d9;border:1px solid #fff8;transform:rotate(-5deg);box-shadow:8px 14px 25px #50432816;z-index:-1}
.atelier-page .art-print{padding:13px 13px 36px;background:var(--art-paper);box-shadow:4px 13px 25px #4b3a3a20;transform:rotate(4deg)}
.atelier-page .art-print .c-photo{height:auto;aspect-ratio:3/4}
.atelier-page .art-print .photo-zoom,.atelier-page .art-print .c-photo-empty{position:absolute;inset:0;height:100%}
.atelier-page .art-print figcaption{font:italic 400 13px/1.5 var(--c-heading);text-align:center;top:calc(100% + 7px);width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.atelier-page .art-wedding-flowers{width:85%;right:-36%;bottom:-22%;transform:rotate(-16deg);z-index:2}
.atelier-page .art-birthday-scene{position:relative;display:grid;grid-template-columns:1fr 1fr;gap:0 7%;align-items:center;max-width:1200px;margin:16px auto 60px;padding:0 8%}
.atelier-page .art-age-block{position:relative;z-index:2;padding:20px 0 0;text-align:center;align-self:start}
.atelier-page .art-age{font:400 clamp(180px,28cqw,360px)/.92 var(--c-heading);letter-spacing:-.08em;display:block;color:var(--c-accent);text-shadow:1px 2px #ffe5ca,6px 9px 0 #ddb18e55;transform:rotate(-7deg)}
.atelier-page .art-age-copy{font-size:clamp(48px,7cqw,94px);letter-spacing:-.035em;overflow-wrap:anywhere;line-height:1}
.atelier-page .art-age-block .art-label{margin-top:25px;transform:rotate(-7deg)}
.atelier-page .art-balloons{width:28%;right:-2%;top:-5%;z-index:1;transform:rotate(10deg)}
.atelier-page .art-birthday-print{grid-column:1;width:80%;margin:-2% 0 0 8%;transform:rotate(-8deg);position:relative;z-index:3}
.atelier-page .art-birthday-print:before{content:'';position:absolute;z-index:2;width:36%;height:26px;background:#c8b6d2b3;top:-10px;left:30%;transform:rotate(4deg);box-shadow:0 1px 0 #fff6;clip-path:polygon(2% 0,100% 3%,97% 95%,0 100%)}
.atelier-page .art-birthday-print .c-photo{aspect-ratio:1}
.atelier-page .art-photo-placeholder{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8%;background:#eee3e8;color:#896d7a;outline:1px dashed #bca5b0;outline-offset:-12px;padding:18px;text-align:center}
.atelier-page .art-photo-placeholder>span{font:italic 400 clamp(14px,2.5cqw,32px)/1.2 var(--c-heading)}
.atelier-page .art-photo-placeholder>span:first-child{font:400 clamp(28px,5cqw,58px)/1 var(--c-heading)}
.atelier-page .art-photo-placeholder>small{max-width:85%;font:400 clamp(5px,.65cqw,9px)/1.8 var(--c-body);letter-spacing:.16em}
.atelier-page .art-birthday-copy{grid-column:2;grid-row:2;align-self:end;position:relative;z-index:4;margin-top:75px;min-width:0}
.atelier-page .art-birthday-copy .art-title{font-style:normal;font-size:clamp(42px,calc(5cqw * var(--c-scale)),90px)}
/* The paper treatment continues through the editable long invitation. */
.atelier-page .c-section{position:relative;isolation:isolate}
.atelier-page .c-section h2{font-style:italic}
.atelier-page .c-story{background:color-mix(in srgb,var(--art-paper) 60%,var(--c-bg))}
.atelier-page .c-moments{gap:0 48px}
.atelier-page .c-moment{border:0;border-top:1px solid color-mix(in srgb,var(--c-ink) 20%,transparent);padding:30px 0}
.atelier-page .c-moment-number{font-style:italic;opacity:.45}
.atelier-page .c-event,.atelier-page .c-letter{background:color-mix(in srgb,var(--art-paper) 88%,var(--c-bg))}
.atelier-page .c-message{font-family:var(--c-heading);font-size:clamp(24px,3vw,38px);line-height:1.55}
.atelier-page .art-letter-photo{float:right;width:24%;margin:0 0 55px 70px;transform:rotate(7deg)}
.atelier-page .c-letter .c-message-layout{clear:both}
.atelier-page .c-gallery .c-photo{box-shadow:5px 12px 25px #47354a1a;background:var(--art-paper);padding:10px 10px 28px}
.atelier-page .c-gallery .c-photo figcaption{top:auto;bottom:4px;left:10px;width:calc(100% - 20px);white-space:nowrap;text-overflow:ellipsis;overflow:hidden}
.atelier-page.atelier-march .c-gallery-mosaic .c-gallery>.c-photo:nth-child(3n+1){transform:rotate(-5deg)}
.atelier-page.atelier-march .c-gallery-mosaic .c-gallery>.c-photo:nth-child(3n+2){transform:rotate(6deg)}
.atelier-page.atelier-wedding .c-gallery .c-photo{padding:14px 14px 32px}
.atelier-page .c-appointments{border-block:1px solid color-mix(in srgb,var(--c-ink) 20%,transparent);padding-block:36px}
.atelier-page .c-countdown{border:0}
.atelier-page .c-countdown-digits strong{font-style:italic}
.atelier-page .c-closing{min-height:620px;padding-bottom:270px;text-align:center;overflow:hidden}
.atelier-page .art-closing-decoration{width:240px;left:calc(50% - 120px);bottom:-85px;z-index:-1;transform:rotate(-12deg)}
.atelier-page .c-closing .c-signature{margin-bottom:25px}
.atelier-page .art-opening{background:var(--c-bg);isolation:isolate;overflow:auto}
.atelier-page .art-opening .c-opening-inner{position:relative;padding:75px 45px;background:color-mix(in srgb,var(--art-paper) 75%,var(--c-bg));box-shadow:0 22px 70px #3e324b28;max-width:min(560px,84vw);min-width:0;border:1px solid #fff6;isolation:isolate}
.atelier-page .art-opening-decoration{width:180px;bottom:-90px;right:-70px;z-index:-1}
.atelier-page .art-opening .c-opening-monogram{color:var(--c-accent);font-style:italic}
.atelier-page.c-motion-ready .atelier-cover .art-decoration{animation:art-bloom 1.5s ease-out both}
.atelier-page.c-motion-ready .art-eight,.atelier-page.c-motion-ready .art-age{animation:art-number 1.3s ease-out both}
.atelier-page.c-motion-ready :is(.art-march-copy,.art-vows,.art-birthday-copy){animation:art-copy 1s .2s ease-out both}
@keyframes art-bloom{from{opacity:0;scale:.94}to{opacity:1;scale:1}}
@keyframes art-number{from{opacity:0;filter:blur(3px)}to{opacity:1;filter:blur(0)}}
@keyframes art-copy{from{opacity:0;translate:0 16px}to{opacity:1;translate:0 0}}
/* Confetti: a brief fade on entry, with no parallax or animated blur. */
.atelier-page.atelier-birthday .art-decoration{filter:none;translate:none}
.atelier-page.atelier-birthday .atelier-cover:before{background:radial-gradient(ellipse at 25% 8%,#fff5,transparent 65%)}
.atelier-page.atelier-birthday.c-motion-ready .atelier-cover :is(.art-decoration,.art-age,.art-birthday-copy){animation:art-birthday-enter .3s ease-out both}
@keyframes art-birthday-enter{from{opacity:0}to{opacity:1}}
@container(max-width:650px){
 .atelier-page .art-eight-scene{height:420px;width:100%;margin-top:30px}
 .atelier-page .art-eight{font-size:480px;inset:-62px 0 auto}
 .atelier-page .art-flower-left{width:55%;left:-15%;top:18%;transform:rotate(-15deg)}
 .atelier-page .art-flower-right{width:52%;right:-13%;top:27%}
 .atelier-page .art-month{font-size:47px;bottom:2px}
 .atelier-page .art-march-copy{margin-top:10px}
 .atelier-page .art-march-copy .art-title{font-size:calc(42px * var(--c-scale))}
 .atelier-page .art-wedding-scene{display:flex;flex-direction:column;padding:0 9%;margin:50px auto 5px;gap:0}
 .atelier-page .art-vows{width:100%;text-align:center}
 .atelier-page .art-couple{font-size:clamp(56px,calc(14cqw * var(--c-scale)),110px);margin:25px 0}
 .atelier-page .art-couple i{padding:0;font-size:.55em;line-height:1}
 .atelier-page .art-venue{margin-inline:auto}
 .atelier-page .art-portrait-stage{width:78%;margin:65px 12% 65px 0}
 .atelier-page .art-wedding-flowers{width:84%;right:-40%;bottom:-15%}
 .atelier-page .art-birthday-scene{grid-template-columns:1fr 1fr;gap:0 10px;padding:0 7%;margin-top:20px}
 .atelier-page .art-age-block{grid-column:1/-1;justify-self:start;width:65%;padding-top:15px}
 .atelier-page .art-age{font-size:clamp(160px,58cqw,300px)}
 .atelier-page .art-age-copy{font-size:50px}
 .atelier-page .art-age-block .art-label{font-size:8px;margin-top:14px}
 .atelier-page .art-balloons{width:65%;right:-14%;top:3%;transform:rotate(15deg)}
 .atelier-page .art-birthday-print{grid-row:2;grid-column:1/-1;justify-self:start;width:58%;margin:30px 0 0 4%}
 .atelier-page .art-birthday-copy{grid-column:1/-1;grid-row:3;text-align:right;margin-top:40px}
 .atelier-page .art-birthday-copy .art-title{font-size:calc(44px * var(--c-scale))}
 .atelier-page .art-birthday-copy .art-venue{margin-right:0}
}
@media(max-width:650px){
 .atelier-page .atelier-cover{padding-top:28px}
 .atelier-page .art-letter-photo{float:none;width:55%;max-width:240px;margin:0 auto 60px}
 .atelier-page .c-closing{min-height:580px;padding-bottom:240px}
 .atelier-page .art-opening .c-opening-inner{padding:50px 24px}
}
.atelier-thumb .atelier-miniature{width:800px;height:1100px;transform:scale(calc(100cqw / 800px));transform-origin:top left;pointer-events:none}
.atelier-thumb .atelier-cover{min-height:1100px;padding-top:45px}
.atelier-thumb .art-eight-scene{height:570px}
.atelier-thumb .art-title{font-size:60px}
.atelier-thumb .art-wedding-scene{display:flex;flex-direction:column;gap:0;text-align:center;margin:50px 0 0;padding:0 10%}
.atelier-thumb .art-couple{font-size:64px;margin:25px 0}
.atelier-thumb .art-couple i{display:block;padding:0;font-size:36px;line-height:1;margin:8px 0}
.atelier-thumb .art-couple span{display:block}
.atelier-thumb .art-vows .art-label,.atelier-thumb .art-dedication{display:none}
.atelier-thumb .art-venue{margin-inline:auto}
.atelier-thumb .art-portrait-stage{width:60%;margin:65px 70px 0 0}
.atelier-thumb .art-birthday-scene{margin-top:70px;padding:0 7%;gap:0 4%}
.atelier-thumb .art-age{font-size:280px}
.atelier-thumb .art-birthday-copy{grid-column:1/-1;grid-row:3;text-align:right;margin-top:60px}
.atelier-thumb .art-birthday-print{width:110%;margin-top:40px}
.atelier-thumb .art-balloons{width:62%;right:-13%}
@media(prefers-reduced-motion:reduce){.atelier-page *,.atelier-page *:before,.atelier-page *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.atelier-page .art-decoration,.atelier-page .art-eight{translate:0 0!important}}

.atelier-page .art-title,.atelier-page .art-couple{display:block}
.atelier-page.atelier-wedding .c-closing{padding-bottom:45px}
.atelier-page.atelier-wedding .art-closing-decoration{position:relative;display:block;inset:auto;width:clamp(170px,28%,280px);margin:36px auto 0;transform:none;translate:none;z-index:0;order:1}
.atelier-page.atelier-wedding .c-closing{display:flex;flex-direction:column;align-items:center}
.atelier-page .art-age-three{font-size:clamp(130px,20cqw,260px)}
.atelier-page .c-photo-0 img{object-position:var(--c-cover-position,center) center}
.atelier-page.atelier-birthday .c-agenda-tickets .c-agenda-row{background:transparent;border:0;border-top:1px solid currentColor;border-radius:0;padding:28px 0;box-shadow:none}
.atelier-page.atelier-birthday .c-agenda-tickets .c-agenda-number{border:0;padding:0;font:italic 400 48px/1 var(--c-heading);opacity:.5;letter-spacing:-.04em}
.atelier-page.atelier-birthday .c-agenda-tickets .c-agenda-copy h3{font:400 30px/1.15 var(--c-heading)}
.atelier-page.atelier-birthday .c-agenda-tickets .c-agenda-row time{font:400 28px/1.2 var(--c-heading)}
@container(max-width:650px){.atelier-page .art-age-three{font-size:clamp(120px,43cqw,240px)}}

/* Confetti's balloons and birthday garland are drawn entirely in CSS. */
.atelier-page .art-css-balloons { aspect-ratio: 3 / 4; filter: none; }
.atelier-page .bday-balloon { position: absolute; width: 44%; height: 44%; border: 1px solid #906b5a; border-radius: 49% 51% 46% 54% / 45% 45% 55% 55%; background: radial-gradient(ellipse at 28% 24%,#fff9 0 8%,transparent 10%),linear-gradient(125deg,#efd7c3,#d7a98d); box-shadow: inset -8px -6px 18px #9f6e5b15; }
.atelier-page .bday-balloon:before { content: ''; position: absolute; width: 9%; height: 8%; left: 46%; bottom: -6%; background: inherit; clip-path: polygon(50% 0,100% 100%,0 100%); }
.atelier-page .bday-balloon > i { position: absolute; top: 105%; left: 48%; width: 30%; height: 110%; border-left: 1px solid #906b5a; border-radius: 50%; transform: rotate(-10deg); }
.atelier-page .bday-balloon-0 { top: 18%; left: 0; transform: rotate(-18deg); background-color: #e0c1cb; }
.atelier-page .bday-balloon-1 { top: 0; left: 30%; background: radial-gradient(ellipse at 28% 24%,#fff9 0 8%,transparent 10%),linear-gradient(125deg,#ebe2ed,#c1a9d0); }
.atelier-page .bday-balloon-2 { top: 25%; right: 0; transform: rotate(16deg); background: radial-gradient(ellipse at 28% 24%,#fff9 0 8%,transparent 10%),linear-gradient(125deg,#e7e7c7,#b8c092); }
.atelier-page .bday-bunting { width: min(800px,88%); margin: 30px auto 55px; color: var(--c-ink); }
.atelier-page .bday-bunting-row { position: relative; display: flex; justify-content: center; gap: 10px; padding: 12px 10px 0; margin: 0 auto 12px; width: 80%; }
.atelier-page .bday-bunting-row + .bday-bunting-row { width: 100%; }
.atelier-page .bday-bunting-row:before { content: ''; position: absolute; top: -7px; left: 0; width: 100%; height: 28px; border-bottom: 1px solid #906b5a; border-radius: 0 0 50% 50%; }
.atelier-page .bday-bunting-row > span { display: grid; place-items: center; flex: 0 1 48px; min-width: 0; height: 60px; padding-bottom: 10px; background: #dec0b1; clip-path: polygon(0 0,100% 0,100% 100%,50% 83%,0 100%); font: 500 24px/1 var(--c-heading); transform: rotate(-7deg); }
.atelier-page .bday-bunting-row > span:nth-child(2n) { background: #d4c8dd; transform: translateY(5px) rotate(5deg); }
.atelier-page .bday-bunting-row > span:nth-child(3n) { background: #c8cfb0; }
.atelier-page .bday-bunting-row > span:nth-child(4n) { background: #ead5a9; transform: translateY(7px) rotate(-3deg); }
.atelier-page .art-balloons.art-css-balloons { width: 27%; top: 0; right: 4%; }
.atelier-thumb .art-balloons.art-css-balloons { width: 45%; right: 0; }
.atelier-thumb .bday-bunting { margin-bottom: 20px; }
.atelier-thumb .art-birthday-scene { margin-top: 20px; }
@container(max-width:650px) {
  .atelier-page .bday-bunting { width: 94%; margin: 24px auto 36px; }
  .atelier-page .bday-bunting-row { gap: 5px; padding-inline: 4px; }
  .atelier-page .bday-bunting-row > span { height: 42px; font-size: 19px; padding-bottom: 8px; }
  .atelier-page .art-balloons.art-css-balloons { width: 34%; right: -2%; top: 12%; }
}
.atelier-thumb .atelier-birthday .bday-bunting { margin: 24px auto 15px; }
.atelier-thumb .atelier-birthday .bday-bunting-row > span { height: 44px; font-size: 22px; }
.atelier-thumb .atelier-birthday .art-age { font-size: 210px; }
.atelier-thumb .atelier-birthday .art-birthday-print { width: 88%; margin-top: 18px; }
.atelier-thumb .atelier-birthday .art-birthday-copy { margin-top: 24px; }
.atelier-thumb .atelier-birthday .art-birthday-copy .art-title { font-size: 52px; }
.atelier-thumb .atelier-birthday .art-birthday-copy .art-recipient { margin-top: 16px; }
