/* Blueprint (corporate): design motion on top of assets/scenes/scenes.css.
   Plain rules = frame 0 of the hero (= the still) and the FINAL state of section pieces (reduced motion, editor). */

/* ---- hero ---- */
/* panes that light after the open: dark glass at frame 0, then amber one by one, and they stay lit */
.sc-piece.sc-blueprint [data-bp=lit]{opacity:0}
.sc-js .sc-piece.sc-blueprint.sc-in [data-bp=lit]{animation:sc-bp-on 900ms var(--ease) var(--t,0ms) forwards}
@keyframes sc-bp-on{from{opacity:0}to{opacity:1}}
/* annotation dimensions: not drawn at frame 0, they draw on after the open */
.sc-piece.sc-blueprint [data-bp=draw]{stroke-dasharray:1 1;stroke-dashoffset:1}
.sc-js .sc-piece.sc-blueprint.sc-in [data-bp=draw]{animation:sc-bp-draw var(--d,800ms) var(--ease-io) var(--t,0ms) forwards}
@keyframes sc-bp-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
/* the warm spill on the terrace grows as the lights come on */
.sc-piece.sc-blueprint [data-bp=warm]{opacity:.4}
.sc-js .sc-piece.sc-blueprint.sc-in [data-bp=warm]{animation:sc-bp-warm 5600ms var(--ease-io) 1100ms forwards}
@keyframes sc-bp-warm{from{opacity:.4}to{opacity:1}}
/* the scan line waits above the sheet and sweeps it top to bottom once every 10 s */
.sc-piece.sc-blueprint [data-bp=scan]{opacity:0}
.sc-js .sc-piece.sc-blueprint.sc-in [data-bp=scan]{animation:sc-bp-scan 10s linear 2600ms infinite}
@keyframes sc-bp-scan{
  0%{opacity:0;transform:translateY(0)}
  3%{opacity:1}
  36%{opacity:1;transform:translateY(108cqh)}
  37%,100%{opacity:0;transform:translateY(108cqh)}}
.sc-js .sc-piece.sc-blueprint:not(.sc-run) [data-bp]{animation-play-state:paused}

/* the page's dark-tone scrim is made for photos; over this drawing (only when the design's own art is shown) the
   sheet is already dark where the text sits, so keep the scrim to the top and leave the lit hall at full warmth */
body.sc-blueprint.es-stock-hero.es-tone-dark .sa-hero .sa-hero-overlay{background:linear-gradient(180deg,rgba(0,0,0,.45),rgba(0,0,0,.12) 30%,rgba(0,0,0,0) 44%)}

/* ---- countdown: a sheet of the blueprint; the page's own numbers become a split-flap board (blueprint.js) ---- */
body.sc-blueprint #sa-sections #countdown{background:radial-gradient(ellipse 90% 70% at 50% 45%,var(--cz-page-bg,rgba(21,56,94,.5)),rgba(10,30,54,0) 72%)!important}
body.sc-blueprint #countdown .sc-p-countdown{width:min(50vw,200px);margin:-8px auto 10px}
body.sc-blueprint #sa-sections #countdown>div>p{color:var(--cz-text,rgba(234,242,250,.72))!important}
/* the board: a dark housing, four units of flap tiles, a label under each */
body.sc-blueprint #sa-sections #countdown .grid{gap:6px;max-width:420px;padding:14px 10px 11px;background:linear-gradient(#0B213C,#081A30);
  border:1px solid rgba(234,242,250,.16);border-radius:12px;box-shadow:inset 0 1px 0 rgba(234,242,250,.06),0 16px 36px rgba(2,8,18,.5)}
body.sc-blueprint #sa-sections #countdown .grid>div{padding:0;border:0;min-width:0}
body.sc-blueprint #sa-sections #countdown .grid span:last-child{margin-top:9px;font:600 9px/1.3 var(--font-body);letter-spacing:.16em;color:rgba(234,242,250,.66)!important}
html[dir=rtl] body.sc-blueprint #sa-sections #countdown .grid span:last-child{font-size:11px;letter-spacing:0}
/* the page's number, drawn as one static tile (reduced motion, editor, before the script) */
body.sc-blueprint #sa-sections #countdown [id^=cd_]{position:relative;display:inline-block;min-width:1.9em;padding:.16em .16em .12em;border-radius:5px;
  background:linear-gradient(#1A3F68 0 50%,#133356 50%);box-shadow:inset 0 1px 0 rgba(234,242,250,.1),0 2px 0 #06121F;
  font:600 clamp(24px,7.6vw,38px)/1.2 var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:.02em;color:#EAF2FA!important}
body.sc-blueprint #sa-sections #countdown [id^=cd_]::after{content:"";position:absolute;left:0;right:0;top:calc(50% - .75px);height:1.5px;background:#06121F}
/* with the board built, the page's numbers stay for screen readers only */
body.sc-blueprint #countdown.bp-on [id^=cd_]{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
.sc-blueprint .bp-flap{display:flex;justify-content:center;gap:3px;--tw:clamp(24px,8.3vw,40px)}
.sc-blueprint .bp-flap[data-n="3"]{--tw:clamp(18px,5.9vw,30px)}
.sc-blueprint .bp-flap[data-n="4"]{--tw:clamp(14px,4.4vw,24px)}
.sc-blueprint .bp-flap:empty{height:calc(var(--tw) * 1.42)}
.sc-blueprint .bp-d{position:relative;display:block;font-style:normal;width:var(--tw);height:calc(var(--tw) * 1.42);border-radius:5px;background:#06121F;
  box-shadow:0 2px 0 #040C16,0 5px 10px rgba(2,8,18,.45);font:600 calc(var(--tw) * 1.02)/calc(var(--tw) * 1.42) var(--font-display);
  font-variant-numeric:tabular-nums;color:#EAF2FA;text-align:center}
.sc-blueprint .bp-d>b{position:absolute;inset:0;display:block;border-radius:5px;font:inherit;color:inherit;background:linear-gradient(#1C4169,#15375D)}
.sc-blueprint .bp-t,.sc-blueprint .bp-ft{clip-path:inset(0 0 50% 0)}
.sc-blueprint .bp-b,.sc-blueprint .bp-fb{clip-path:inset(50% 0 0 0);background:linear-gradient(#15375D,#102E4F)!important}
.sc-blueprint .bp-d::before{content:"";position:absolute;inset:0;border-radius:5px;box-shadow:inset 0 1px 0 rgba(234,242,250,.12);z-index:3;pointer-events:none}
/* the split line and the two hinge pins */
.sc-blueprint .bp-d::after{content:"";position:absolute;left:-2px;right:-2px;top:calc(50% - .75px);height:1.5px;z-index:3;
  background:linear-gradient(90deg,#3E5E82 0 3px,#06121F 3px calc(100% - 3px),#3E5E82 calc(100% - 3px))}
.sc-blueprint .bp-ft,.sc-blueprint .bp-fb{z-index:4;transform-origin:50% 50%;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.sc-blueprint .bp-ft{animation:sc-bp-ft calc(var(--fd,380ms) / 2) cubic-bezier(.55,0,1,.45) forwards}
.sc-blueprint .bp-fb{animation:sc-bp-fb calc(var(--fd,380ms) / 2) cubic-bezier(0,.55,.45,1) calc(var(--fd,380ms) / 2) both}
.sc-blueprint .bp-ft::after,.sc-blueprint .bp-fb::after{content:"";position:absolute;inset:0;border-radius:inherit;background:#040C16;opacity:0}
.sc-blueprint .bp-ft::after{animation:sc-bp-dim calc(var(--fd,380ms) / 2) linear forwards}
.sc-blueprint .bp-fb::after{animation:sc-bp-dim calc(var(--fd,380ms) / 2) linear calc(var(--fd,380ms) / 2) reverse both}
@keyframes sc-bp-ft{from{transform:perspective(160px) rotateX(0)}to{transform:perspective(160px) rotateX(-90deg)}}
@keyframes sc-bp-fb{from{transform:perspective(160px) rotateX(90deg)}to{transform:perspective(160px) rotateX(0)}}
@keyframes sc-bp-dim{from{opacity:0}to{opacity:.55}}
/* the hourglass's sand keeps running while the piece is on screen */
.sc-js .sc-piece.sc-blueprint.sc-in [data-bp=sand]{animation:sc-bp-sand 5s linear infinite}
@keyframes sc-bp-sand{from{stroke-dashoffset:0}to{stroke-dashoffset:-200}}

/* ================================= FULL BUILD: every section is part of one drawing sheet ================================= */
body.sc-blueprint{--bp-ease:cubic-bezier(.23,1,.32,1);--bp-io:cubic-bezier(.65,0,.35,1)}
/* one sheet under the whole page: the grid runs on without a seam behind the welcome and every section */
body.sc-blueprint main{background-color:var(--cz-page-bg,#0F2A4A)!important;background-image:linear-gradient(rgba(62,94,130,.5) 1px,transparent 1px),linear-gradient(90deg,rgba(62,94,130,.5) 1px,transparent 1px),
  linear-gradient(rgba(62,94,130,.22) 1px,transparent 1px),linear-gradient(90deg,rgba(62,94,130,.22) 1px,transparent 1px)!important;
  background-size:80px 80px,80px 80px,16px 16px,16px 16px!important;background-position:center 0!important}
body.sc-blueprint :is(.es-welcome,#sa-sections,#sa-sections>[data-sa-section],#sa-sections section:not(#countdown)){background:transparent!important}
/* the drawing's own entrances replace Event Studio's generic reveal (it would double them) */
body.sc-blueprint .es-reveal{opacity:1!important;translate:none!important;transition:none!important}
@keyframes sc-bp-rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
@keyframes sc-bp-in{from{opacity:0}to{opacity:1}}
.sc-js body.sc-blueprint main section[id]:not(.sc-in) :is(h2,h2+p){opacity:0}
.sc-js body.sc-blueprint main section[id].sc-in h2{animation:sc-bp-rise 700ms var(--bp-ease) both}
.sc-js body.sc-blueprint main section[id].sc-in h2+p{animation:sc-bp-rise 700ms var(--bp-ease) 110ms both}
body.sc-blueprint :is(.sa-map-rows,.sa-map-actions,form,.grid)>:nth-child(2),body.sc-blueprint .sa-prog-row:nth-child(2){--k:1}
body.sc-blueprint :is(.sa-map-rows,.sa-map-actions,form,.grid)>:nth-child(3),body.sc-blueprint .sa-prog-row:nth-child(3){--k:2}
body.sc-blueprint :is(.sa-map-rows,.sa-map-actions,form,.grid)>:nth-child(4),body.sc-blueprint .sa-prog-row:nth-child(4){--k:3}
body.sc-blueprint :is(.sa-map-rows,.sa-map-actions,form,.grid)>:nth-child(n+5),body.sc-blueprint .sa-prog-row:nth-child(n+5){--k:4}
/* the section pieces: one drawing at the head of each section */
body.sc-blueprint #sa-sections .sc-piece.sc-blueprint:not(.sc-p-countdown){width:min(88vw,320px);margin:-14px auto 18px}
body.sc-blueprint #sa-sections .sc-piece.sc-blueprint.sc-p-program{width:min(84vw,300px)}
body.sc-blueprint #closing>.sc-piece.sc-blueprint{order:0;width:min(86vw,340px);margin:0 auto 22px}

/* ---- welcome: the letter sits on a drafting card; its corners carry crop marks, a pencil rules its head ---- */
body.sc-blueprint .es-welcome-inner{padding:40px 22px 28px;background:var(--cz-section-bg,linear-gradient(rgba(234,242,250,.05),rgba(234,242,250,.02)));border:1px solid var(--cz-divider,rgba(234,242,250,.28));
  box-shadow:inset 0 0 0 5px var(--cz-section-bg,rgba(15,42,74,.6)),inset 0 0 0 6px var(--cz-divider,rgba(234,242,250,.12)),0 18px 40px rgba(2,8,18,.35)}
body.sc-blueprint .es-welcome-inner>:not(.sc-piece){position:relative;z-index:1}
.sc-js body.sc-blueprint section.es-welcome:not(.sc-in) .es-welcome-inner{opacity:0}
.sc-js body.sc-blueprint section.es-welcome.sc-in .es-welcome-inner{animation:sc-bp-rise 800ms var(--bp-ease) both}
.sc-piece.sc-blueprint.sc-p-welcome{position:absolute;inset:-13px;z-index:0}
.sc-piece.sc-blueprint.sc-p-welcome>.sc-stage{position:absolute;inset:0;width:auto;aspect-ratio:auto!important}
.sc-piece.sc-blueprint [data-bp^=c-]{width:24px}
.sc-piece.sc-blueprint [data-bp=c-tl]{left:0;top:0}
.sc-piece.sc-blueprint [data-bp=c-tr]{left:auto;right:0;top:0}
.sc-piece.sc-blueprint [data-bp=c-bl]{left:0;top:auto;bottom:0}
.sc-piece.sc-blueprint [data-bp=c-br]{left:auto;right:0;top:auto;bottom:0}
.sc-piece.sc-blueprint [data-bp=rule]{left:calc(13px + 7cqw);right:calc(13px + 7cqw);width:auto;top:32px;height:1px;background:var(--cz-divider,rgba(234,242,250,.55));--o:0 50%}
.sc-js .sc-piece.sc-blueprint:not(.sc-in) [data-bp=rule]{transform:scaleX(0)}
.sc-js .sc-piece.sc-blueprint.sc-in [data-bp=rule]{animation:sc-bp-rule 1500ms var(--bp-io) 350ms both}
@keyframes sc-bp-rule{from{transform:scaleX(0)}to{transform:none}}
.sc-piece.sc-blueprint [data-bp=pencil]{left:calc(13px + 7cqw - 2px);top:6px;width:30px;opacity:0}
.sc-js .sc-piece.sc-blueprint.sc-in [data-bp=pencil]{animation:sc-bp-pencil 1880ms linear 350ms both}
@keyframes sc-bp-pencil{
  0%{opacity:1;transform:none;animation-timing-function:cubic-bezier(.65,0,.35,1)}
  80%{opacity:1;transform:translateX(calc(86cqw - 26px));animation-timing-function:cubic-bezier(.3,0,.8,.6)}
  100%{opacity:0;transform:translateX(calc(86cqw - 26px)) translate(4px,-10px) rotate(8deg)}}

/* ---- details: the site plan drops its pin; the venue rows become callouts, the buttons spec tags, the map a viewport ---- */
body.sc-blueprint #details .sa-map-rows .rounded-full{background:var(--cz-page-bg,#0F2A4A)!important;border:1.5px solid var(--cz-divider,rgba(234,242,250,.8))!important;color:var(--cz-title,#F2B84B)!important;box-shadow:0 0 0 4px var(--cz-page-bg,rgba(15,42,74,.9))!important}
.sc-js body.sc-blueprint #details .sa-map-rows>:not(.sc-in){opacity:0}
.sc-js body.sc-blueprint #details .sa-map-rows>.sc-in{animation:sc-bp-rise 700ms var(--bp-ease) calc(var(--k,0) * 90ms) both}
body.sc-blueprint #details .sa-map-actions a{border:1px solid var(--cz-divider,rgba(234,242,250,.42))!important;border-radius:0!important;color:var(--cz-text,#EAF2FA)!important;background-color:rgba(234,242,250,.035)!important;
  background-image:linear-gradient(var(--cz-title,#F2B84B),var(--cz-title,#F2B84B)),linear-gradient(var(--cz-title,#F2B84B),var(--cz-title,#F2B84B)),linear-gradient(var(--cz-title,#F2B84B),var(--cz-title,#F2B84B)),linear-gradient(var(--cz-title,#F2B84B),var(--cz-title,#F2B84B)),linear-gradient(var(--cz-title,#F2B84B),var(--cz-title,#F2B84B)),linear-gradient(var(--cz-title,#F2B84B),var(--cz-title,#F2B84B)),linear-gradient(var(--cz-title,#F2B84B),var(--cz-title,#F2B84B)),linear-gradient(var(--cz-title,#F2B84B),var(--cz-title,#F2B84B));background-size:8px 1.5px,1.5px 8px,8px 1.5px,1.5px 8px,8px 1.5px,1.5px 8px,8px 1.5px,1.5px 8px;background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-repeat:no-repeat}
.sc-js body.sc-blueprint #details .sa-map-actions:not(.sc-in)>*{opacity:0}
.sc-js body.sc-blueprint #details .sa-map-actions.sc-in>*{animation:sc-bp-rise 600ms var(--bp-ease) calc(120ms + var(--k,0) * 90ms) both}
body.sc-blueprint #details .sa-map-embed{position:relative;border:0!important}
body.sc-blueprint #details .sa-map-embed .sa-gallery-card{border:1px solid var(--cz-divider,rgba(234,242,250,.45))!important;border-radius:0!important;box-shadow:0 0 0 6px var(--cz-page-bg,#0F2A4A),0 0 0 7px var(--cz-divider,rgba(234,242,250,.16))!important}
body.sc-blueprint #details .sa-map-embed::before{content:"";position:absolute;inset:-14px;z-index:3;pointer-events:none;background:linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85)));background-size:12px 1.5px,1.5px 12px,12px 1.5px,1.5px 12px,12px 1.5px,1.5px 12px,12px 1.5px,1.5px 12px;background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-repeat:no-repeat}
body.sc-blueprint #details .sa-venue-photo{border:1px solid var(--cz-divider,rgba(234,242,250,.45))!important;background:var(--cz-section-bg,#EAF2FA)!important;box-shadow:0 0 0 6px var(--cz-page-bg,#0F2A4A),0 0 0 7px var(--cz-divider,rgba(234,242,250,.16))!important}
.sc-js body.sc-blueprint #details .sa-venue-photo:not(.sc-in){opacity:0}
.sc-js body.sc-blueprint #details .sa-venue-photo.sc-in{animation:sc-bp-in 900ms var(--bp-ease) 100ms both}
/* the pin drops onto the venue, its ring pings slowly */
.sc-js .sc-piece.sc-blueprint:not(.sc-in) [data-bp=drop]{opacity:0}
.sc-js .sc-piece.sc-blueprint.sc-in [data-bp=drop]{animation:sc-bp-drop 800ms var(--bp-ease) var(--t,0ms) both}
@keyframes sc-bp-drop{from{opacity:0;transform:translateY(-34px)}35%{opacity:1}to{opacity:1;transform:none}}
.sc-piece.sc-blueprint [data-bp=ping]{opacity:0}
.sc-js .sc-piece.sc-blueprint.sc-in [data-bp=ping]{animation:sc-bp-ping 5s cubic-bezier(.2,.6,.35,1) var(--t,0ms) infinite both}
@keyframes sc-bp-ping{0%{opacity:0;transform:scale(.3)}8%{opacity:.9}45%,100%{opacity:0;transform:scale(1.25)}}

/* ---- program: the time line is a dimension string; each station is a callout bubble, each interval a dimension arrow ---- */
body.sc-blueprint #program .sa-prog-line-v{background:var(--cz-divider,rgba(234,242,250,.5))!important}
.sc-js body.sc-blueprint #program:not(.sc-in) .sa-prog-line-v{clip-path:inset(0 0 100% 0)}
.sc-js body.sc-blueprint #program.sc-in .sa-prog-line-v{animation:sc-bp-unveil 1.8s var(--bp-io) 250ms both}
@keyframes sc-bp-unveil{from{clip-path:inset(0 0 100% 0)}to{clip-path:inset(0 0 0 0)}}
body.sc-blueprint #program .sa-prog-row>div:first-child{background:var(--cz-page-bg,#0F2A4A)!important;box-shadow:0 0 0 6px var(--cz-page-bg,#0F2A4A)!important;border:1.5px solid var(--cz-divider,rgba(234,242,250,.85))!important;color:var(--cz-text,#EAF2FA)!important}
body.sc-blueprint #program .sa-prog-time{padding:1px 6px!important;border:1px solid var(--cz-title,rgba(242,184,75,.6));border-radius:2px!important;background:transparent!important;color:var(--cz-title,#F2B84B)!important;font-variant-numeric:tabular-nums}
body.sc-blueprint #program .sa-prog-row+.sa-prog-row::before{content:"";position:absolute;top:-30px;inset-inline-start:21px;width:12px;height:30px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 30'%3E%3Cpath d='M6 3V27' stroke='%23EAF2FA' stroke-opacity='.7' stroke-width='1'/%3E%3Cpath d='M6 1L2.6 7H9.4ZM6 29L2.6 23H9.4Z' fill='%23F2B84B'/%3E%3Cpath d='M1 15H11' stroke='%23EAF2FA' stroke-opacity='.45' stroke-width='.8'/%3E%3C/svg%3E") center/12px 30px no-repeat;pointer-events:none}
.sc-js body.sc-blueprint #program .sa-prog-row:not(.sc-in){opacity:0}
.sc-js body.sc-blueprint #program .sa-prog-row.sc-in{animation:sc-bp-rise 700ms var(--bp-ease) calc(var(--k,0) * 60ms) both}
.sc-js body.sc-blueprint #program .sa-prog-row.sc-in>div:first-child{animation:sc-bp-station 700ms var(--bp-ease) calc(var(--k,0) * 60ms + 120ms) both}
.sc-js body.sc-blueprint #program .sa-prog-row.sc-in::before{transform-origin:50% 100%;animation:sc-bp-grow 600ms var(--bp-ease) calc(var(--k,0) * 60ms + 200ms) both}
@keyframes sc-bp-station{from{opacity:0;transform:scale(.7)}to{opacity:1;transform:none}}
@keyframes sc-bp-grow{from{transform:scaleY(0)}to{transform:none}}

/* ---- gallery: prints on the sheet, each with crop marks that close in as it scrolls in ---- */
body.sc-blueprint #gallery .grid{gap:26px}
body.sc-blueprint #gallery .sa-gallery-card{position:relative;overflow:visible!important;border:5px solid var(--cz-section-bg,#EAF2FA)!important;box-shadow:0 12px 28px rgba(2,8,18,.45)!important}
body.sc-blueprint #gallery .sa-gallery-card img{display:block}
body.sc-blueprint #gallery .sa-gallery-card::before{content:"";position:absolute;inset:-13px;pointer-events:none;background:linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85)));background-size:10px 1.5px,1.5px 10px,10px 1.5px,1.5px 10px,10px 1.5px,1.5px 10px,10px 1.5px,1.5px 10px;background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-repeat:no-repeat}
.sc-js body.sc-blueprint #gallery .grid>:not(.sc-in){opacity:0}
.sc-js body.sc-blueprint #gallery .grid>.sc-in{animation:sc-bp-in 700ms var(--bp-ease) calc(var(--k,0) * 110ms) both}
.sc-js body.sc-blueprint #gallery .grid>.sc-in::before{animation:sc-bp-marks 900ms var(--bp-ease) calc(var(--k,0) * 110ms + 150ms) both}
.sc-js body.sc-blueprint #gallery .grid>.sc-in img{animation:sc-bp-print 1100ms var(--bp-ease) calc(var(--k,0) * 110ms + 100ms) both}
@keyframes sc-bp-marks{from{opacity:0;transform:scale(1.18)}to{opacity:1;transform:none}}
@keyframes sc-bp-print{from{opacity:0;transform:scale(1.05)}to{opacity:1;transform:none}}

/* ---- dress code and gifts: the page's words sit on a spec note (an amber lead rule, crop marks) ---- */
body.sc-blueprint :is(#dress_code,#gifts) .sa-text-section__body{position:relative;max-width:30rem;padding:16px 20px;border:1px solid var(--cz-divider,rgba(234,242,250,.28));border-inline-start:3px solid var(--cz-title,#F2B84B);background:var(--cz-section-bg,rgba(10,30,54,.6));color:var(--cz-text,#EAF2FA)!important}
body.sc-blueprint :is(#dress_code,#gifts) .sa-text-section__body::before{content:"";position:absolute;inset:-10px;pointer-events:none;background:linear-gradient(var(--cz-divider,rgba(234,242,250,.7)),var(--cz-divider,rgba(234,242,250,.7))),linear-gradient(var(--cz-divider,rgba(234,242,250,.7)),var(--cz-divider,rgba(234,242,250,.7))),linear-gradient(var(--cz-divider,rgba(234,242,250,.7)),var(--cz-divider,rgba(234,242,250,.7))),linear-gradient(var(--cz-divider,rgba(234,242,250,.7)),var(--cz-divider,rgba(234,242,250,.7))),linear-gradient(var(--cz-divider,rgba(234,242,250,.7)),var(--cz-divider,rgba(234,242,250,.7))),linear-gradient(var(--cz-divider,rgba(234,242,250,.7)),var(--cz-divider,rgba(234,242,250,.7))),linear-gradient(var(--cz-divider,rgba(234,242,250,.7)),var(--cz-divider,rgba(234,242,250,.7))),linear-gradient(var(--cz-divider,rgba(234,242,250,.7)),var(--cz-divider,rgba(234,242,250,.7)));background-size:8px 1.2px,1.2px 8px,8px 1.2px,1.2px 8px,8px 1.2px,1.2px 8px,8px 1.2px,1.2px 8px;background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-repeat:no-repeat}
.sc-js body.sc-blueprint :is(#dress_code,#gifts,#closing) .sa-text-section__body:not(.sc-in){opacity:0}
.sc-js body.sc-blueprint :is(#dress_code,#gifts,#closing) .sa-text-section__body.sc-in{animation:sc-bp-rise 700ms var(--bp-ease) 150ms both}
/* the chips fan out from their ring */
.sc-piece.sc-blueprint [data-bp=fan]{transform:rotate(var(--fan,0deg))}
.sc-js .sc-piece.sc-blueprint:not(.sc-in) [data-bp=fan]{opacity:0;transform:none}
.sc-js .sc-piece.sc-blueprint.sc-in [data-bp=fan]{animation:sc-bp-fan 900ms var(--bp-ease) var(--t,0ms) both}
@keyframes sc-bp-fan{from{opacity:0;transform:rotate(0) translateY(-6px)}25%{opacity:1}to{opacity:1;transform:rotate(var(--fan,0deg))}}

/* ---- rsvp: the form is a drafting sheet with crop marks; on a sent "yes" a badge prints (blueprint.js adds .bp-yes) ---- */
body.sc-blueprint #rsvp form{overflow:visible!important;border:1px solid var(--cz-divider,rgba(15,42,74,.25))!important;box-shadow:inset 0 3px 0 var(--cz-title,#F2B84B),0 20px 44px rgba(2,8,18,.45)!important}
body.sc-blueprint #rsvp form::after{content:"";position:absolute;inset:-14px;pointer-events:none;background:linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85))),linear-gradient(var(--cz-divider,rgba(234,242,250,.85)),var(--cz-divider,rgba(234,242,250,.85)));background-size:12px 1.5px,1.5px 12px,12px 1.5px,1.5px 12px,12px 1.5px,1.5px 12px,12px 1.5px,1.5px 12px;background-position:0 0,0 0,100% 0,100% 0,0 100%,0 100%,100% 100%,100% 100%;background-repeat:no-repeat}
body.sc-blueprint #rsvp form :is(input:not([type=checkbox]):not([type=radio]):not([type=hidden]),textarea,select){background:#FFFFFF!important;border-color:rgba(15,42,74,.32)!important;color:#0F2A4A!important}
body.sc-blueprint #rsvp form :is(input,textarea,select,button):focus-visible,body.sc-blueprint #rsvp form :is(input,textarea,select):focus{outline:2px solid #0F2A4A!important;outline-offset:2px!important;box-shadow:0 0 0 5px rgba(242,184,75,.55)!important}
body.sc-blueprint #rsvp form :is(input[type=radio],input[type=checkbox]){accent-color:#0F2A4A}
.sc-js body.sc-blueprint #rsvp form>:not(.sc-in):not([type=hidden]){opacity:0}
.sc-js body.sc-blueprint #rsvp form>.sc-in{animation:sc-bp-rise 600ms var(--bp-ease) calc(var(--k,0) * 40ms) both}
body.sc-blueprint #rsvp button[type=submit]{position:relative;overflow:visible!important}
body.sc-blueprint #rsvp button[type=submit]::after{content:"";position:absolute;left:50%;top:calc(100% - 2px);z-index:4;width:36px;height:46px;margin-left:-18px;pointer-events:none;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 44 56'%3E%3Crect x='1' y='1' width='42' height='54' fill='%23F4F7FB' stroke='%230A1E36' stroke-width='1.4'/%3E%3Crect x='1' y='1' width='42' height='12' fill='%23F2B84B'/%3E%3Cpath d='M16 6H28' stroke='%230A1E36' stroke-width='2.4' stroke-linecap='round'/%3E%3Crect x='7' y='19' width='14' height='16' fill='none' stroke='%230F2A4A' stroke-width='1.2'/%3E%3Cpath d='M25 22H37M25 28H34M7 42H37M7 48H30' stroke='%230F2A4A' stroke-opacity='.4' stroke-width='1.8' stroke-linecap='round'/%3E%3C/svg%3E") center/contain no-repeat;clip-path:inset(0 0 100% 0);opacity:0}
body.sc-blueprint #rsvp.bp-yes button[type=submit]::after{clip-path:inset(0);opacity:1}
.sc-js body.sc-blueprint #rsvp.bp-yes button[type=submit]::after{animation:sc-bp-print-out 850ms var(--bp-ease) both}
/* while the badge prints, the line under the button steps back (the page is on its way to the thank-you page) */
.sc-js body.sc-blueprint #rsvp.bp-yes button[type=submit]~*{opacity:.12;transition:opacity .25s ease}
@keyframes sc-bp-print-out{from{clip-path:inset(0 0 100% 0);transform:translateY(-22px);opacity:1}to{clip-path:inset(0);transform:none;opacity:1}}
/* the printer's badge waits inside its slot */
.sc-piece.sc-blueprint [data-bp=badge]{clip-path:inset(0 0 100% 0)}
#rsvp.bp-yes .sc-piece.sc-blueprint [data-bp=badge]{clip-path:inset(0)}
.sc-js #rsvp.bp-yes .sc-piece.sc-blueprint [data-bp=badge]{animation:sc-bp-print-out 900ms var(--bp-ease) both}

/* ---- closing: the pavilion at night; the page's words under it ---- */
body.sc-blueprint #closing .sa-text-section__body{max-width:28rem;color:var(--cz-text,rgba(234,242,250,.86))!important}

/* ---- Colours & type: the section drawings sit straight on the page ground, so their line ink follows the couple's
   text colour and their knock-outs the page colour (untouched: the same values). The hero keeps its own art. ---- */
.sc-piece.sc-blueprint:not(.sc-hero) [stroke="#EAF2FA"]{stroke:var(--cz-text,#EAF2FA)}
.sc-piece.sc-blueprint:not(.sc-hero) [fill="#EAF2FA"]{fill:var(--cz-text,#EAF2FA)}
.sc-piece.sc-blueprint:not(.sc-hero) [fill="#0F2A4A"]{fill:var(--cz-page-bg,#0F2A4A)}
