/* The Riviera Blossom (Signature 02): fonts, colours and the words on each realistic scene.
   Type: the composed reviews used Bodoni Moda; offline we carry Playfair Display (its closest local Didone), with EB
   Garamond for longer reading, Caveat for handwriting (the waiter's pad, the reply) and Great Vibes as the cloud names'
   script (the prototype's skywriting). Colours: maiolica cobalt ink, terracotta accents, ivory.
   Sizes in cqw follow the composed reviews (390 px wide: 1 px there = 0.2564cqw), with floors for reading on phones. */
@font-face{font-family:'Playfair Display';src:url('../assets/fonts/playfair-display-latin.woff2') format('woff2');font-weight:400 900;font-display:swap}
@font-face{font-family:'Playfair Display';src:url('../assets/fonts/playfair-display-italic-latin.woff2') format('woff2');font-style:italic;font-weight:400 900;font-display:swap}
@font-face{font-family:'EB Garamond';src:url('../assets/fonts/eb-garamond-latin.woff2') format('woff2');font-weight:400 800;font-display:swap}
@font-face{font-family:'EB Garamond';src:url('../assets/fonts/eb-garamond-italic-latin.woff2') format('woff2');font-style:italic;font-weight:400 800;font-display:swap}
@font-face{font-family:'DM Sans';src:url('../assets/fonts/dm-sans-latin.woff2') format('woff2');font-weight:300 700;font-display:swap}
@font-face{font-family:'Caveat';src:url('../assets/fonts/caveat-medium.ttf') format('truetype');font-weight:400 700;font-display:swap}
@font-face{font-family:'Great Vibes';src:url('../assets/fonts/great-vibes-latin.woff2') format('woff2');font-weight:400;font-display:swap}
:root{--ink:#1b2c66;--ink-soft:#3d4566;--terra:#a8532f;--terra-deep:#8a3f24;--cream:#fffaf0;--page:#eef2f6;--accent:#a8532f;--display:'Playfair Display',Georgia,serif;--serif:'EB Garamond',Georgia,serif;--sans:'DM Sans',system-ui,sans-serif;--hand:'Caveat',cursive;--script:'Great Vibes',cursive}
body.signature-scenes{background:linear-gradient(#e6eef7,#f3eee4 45%,#efe9dd)}
.scene-section[hidden],.scene-stack[hidden]{display:none}

/* shared type on scenes */
.rb-caps{margin:0;font:500 clamp(10px,2.25cqw,12.5px)/1.35 var(--display);letter-spacing:.3em;padding-left:.3em;text-transform:uppercase;color:var(--ink)}
.rb-terra{color:var(--terra-deep)}
.rb-rule{width:12.3cqw;max-width:64px;height:1px;margin:1.8cqw auto;background:linear-gradient(90deg,transparent,var(--terra),transparent);flex:none}
.rb-body{margin:0;font:400 clamp(13px,3.3cqw,17px)/1.45 var(--serif);color:var(--ink-soft);text-wrap:pretty}
.rb-scene{position:relative;width:min(100%,600px);margin:0 auto;overflow:hidden;container-type:inline-size;background:#e9e4da}
.rb-scene>.rb-poster,.rb-scene>.rb-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.rb-film{opacity:0;transition:opacity .5s ease}.rb-film.is-moving{opacity:1}
.rb-scene [data-at].is-waiting{opacity:0;transition:none}
.rb-scene [data-at].is-waiting.is-in{opacity:1;transition:opacity var(--at-fade,.8s) ease}
.rb-wait{opacity:0;transition:opacity .9s ease}.rb-wait.is-in{opacity:1}
.rb-button{display:inline-flex;align-items:center;gap:6px;min-height:44px;padding:0 18px;border:1px solid rgba(27,44,102,.45);border-radius:2px;background:rgba(255,250,240,.82);font:500 11px/1 var(--display);letter-spacing:.24em;text-transform:uppercase;color:var(--ink);text-decoration:none;cursor:pointer}
.rb-button.rb-solid{background:var(--ink);color:var(--cream);border-color:var(--ink);box-shadow:0 2px 10px rgba(27,44,102,.25)}
.rb-button:focus-visible,.rb-scene button:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.rb-scene-note{width:min(100% - 32px,560px);margin:10px auto 0;text-align:center;font:italic 400 15px/1.45 var(--serif);color:var(--ink-soft)}
@media (prefers-reduced-motion:reduce){.rb-film{display:none}.rb-wait{opacity:1}}

/* 00 the opening: the initials inside the wreath on the cartouche */
#opening [data-region="names"]{container-type:size;gap:0}
#opening .rb-caps{font-size:6.8cqh;letter-spacing:.3em;margin:0 0 4cqh}
#opening .rb-initials{margin:0;font:italic 400 36cqh/1 var(--display);color:var(--ink);letter-spacing:.02em}
#opening .rb-amp{font-size:.7em;padding:0 .12em;color:var(--terra)}
#opening .rb-numdate{font-size:7cqh;margin-top:5cqh;white-space:nowrap;letter-spacing:.22em}
#opening [data-rb][hidden]{display:none}
#open-invitation{font-family:var(--display);color:var(--ink);background:rgba(255,250,240,.78)}

/* 01 the hero: the names written by hand across the open sky (round 2, 11 Oct: no cloud letters); the date beneath in
   cobalt small capitals. Each line is an inline block padded round so the script's swashes stay inside the pen's mask. */
#hero .rb-names{justify-content:center;gap:0;container-type:normal}
#hero .rb-script-names{margin:0;font:400 40px/1.02 var(--script);color:#fff;white-space:nowrap;text-align:center;letter-spacing:.005em;
 text-shadow:0 0 1px rgba(21,48,106,.85),0 1px 1px rgba(21,48,106,.55)}
#hero .rb-script-names span{display:inline-block;padding:.12em .32em .2em;margin:-.12em -.32em -.2em;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat}
#hero .rb-script-names.two span{display:block;width:max-content;margin-inline:auto}
#hero .rb-script-names span[hidden]{display:none}
#hero .rb-rule{width:12%;max-width:72px;margin:2.2cqh auto 1.6cqh;background:linear-gradient(90deg,transparent,#b4613a,transparent)}
#hero .rb-when{margin:0;font:600 14px/1.6 var(--display);letter-spacing:.2em;padding-left:.2em;text-transform:uppercase;color:#15306a;text-wrap:balance}
#hero .rb-where{display:block}
@media (min-aspect-ratio:1/1){#hero .rb-where{display:inline}#hero .rb-where::before{content:' \00B7  '}}
.rb-sky{position:absolute;inset:0;pointer-events:none;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;z-index:0;overflow:hidden}
.rb-drift{position:absolute;left:0;top:var(--y);width:var(--w);height:auto;max-width:none;transform:translateX(calc(var(--at) * (100cqw + 100%) - 100%));animation:rb-float var(--dur) linear var(--delay) infinite;will-change:transform;user-select:none}
@keyframes rb-float{from{transform:translateX(-100%)}to{transform:translateX(100cqw)}}
#hero{container-type:inline-size}
#hero [data-region]{z-index:1}
@media (prefers-reduced-motion:reduce){.rb-drift{animation:none}}
body.rb-still .rb-drift{animation:none}
/* the guest's date style (js/occasi-dates.js), above the scroll cue */
.rb-choice{position:absolute;left:50%;bottom:70px;transform:translateX(-50%);z-index:2;width:max-content;max-width:calc(100% - 32px);display:flex;flex-wrap:wrap;justify-content:center;align-items:baseline;gap:0 8px;font:500 12.5px/1.3 var(--display);letter-spacing:.12em;text-transform:uppercase;color:rgba(255,255,255,.9);text-shadow:0 1px 6px rgba(20,40,80,.8)}
.rb-choice .od-choice-k,.rb-choice .od-sep{font:italic 400 14px/1.3 var(--display);text-transform:none;letter-spacing:0}
.rb-choice .od-opt{appearance:none;border:0;border-bottom:1px solid transparent;background:none;margin:0;padding:8px 2px 4px;min-height:32px;font:inherit;letter-spacing:inherit;color:inherit;text-transform:inherit;text-shadow:inherit;cursor:pointer}
.rb-choice .od-opt[aria-pressed="true"]{color:#fff;border-bottom-color:rgba(255,255,255,.9)}
.rb-choice .od-opt:focus-visible{outline:2px solid #fff;outline-offset:2px}
.rb-choice[hidden],body.signature-opening .rb-choice{display:none}

/* 02 the date: cobalt type on the pale sky above the sea */
#the-date [data-region="date"] p{margin:0}
#the-date .rb-day{font:italic 400 9.4cqw/1 var(--display);color:var(--ink);margin:1.6cqw 0 .6cqw!important;text-wrap:balance}
#the-date .rb-place{letter-spacing:.22em}
#the-date .calendar-link{display:inline-block;margin-top:1.4cqw;padding:3px 4px;font:500 clamp(10px,2.2cqw,12px)/1 var(--display);letter-spacing:.24em;text-transform:uppercase;color:var(--terra-deep);text-decoration:underline;text-underline-offset:4px}
#the-date [data-region^="count-"]{justify-content:flex-end;font:400 7.7cqw/1 var(--display);color:var(--ink);font-variant-numeric:lining-nums tabular-nums}
#the-date [data-region^="unit-"]{justify-content:center;font:500 clamp(10px,1.75cqw,11px)/1 var(--display);letter-spacing:.28em;padding-left:.28em;text-transform:uppercase;color:var(--terra)}

/* 03 our story: the postcard column over the sea, which stays put while the cards scroll by */
.rb-story{position:relative;width:min(100%,600px);margin:0 auto;container-type:inline-size;overflow:clip}
.rb-story-sea{position:sticky;top:0;height:100svh;overflow:hidden;z-index:0;background:#9fc0dd}
.rb-story-sea>img,.rb-story-sea>video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.rb-story-sea>video{opacity:0;transition:opacity .6s}.rb-story-sea>video.is-moving{opacity:1}
.rb-story-col{position:relative;margin-top:-100svh;z-index:1}
.rb-panel{position:absolute;left:0;width:100%}
.rb-panel>.rb-still,.rb-panel>.rb-film{position:absolute;inset:0;width:100%;height:100%;display:block}
.rb-panel>.rb-film{opacity:0}.rb-panel>.rb-film.is-moving{opacity:1}
.rb-packed-src{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
.rb-top{z-index:3;pointer-events:none}.rb-bottom{z-index:1}.rb-tile{z-index:2}
.rb-card-text{position:absolute;display:flex;flex-direction:column;justify-content:flex-start;padding-top:.4cqw;overflow:hidden;z-index:1}
.rb-card-text .rb-k{margin:0 0 1.2cqw;font:500 clamp(10px,1.7cqw,11px)/1.2 var(--display);letter-spacing:.3em;text-transform:uppercase;color:var(--terra)}
.rb-card-text h3{margin:0 0 1.4cqw;font:italic 400 clamp(17px,4.9cqw,28px)/1.08 var(--display);color:var(--ink);text-wrap:balance;overflow-wrap:anywhere}
.rb-card-text .rb-msg{margin:0;font:400 clamp(12.5px,2.75cqw,16px)/1.42 var(--serif);color:var(--ink-soft);overflow-wrap:anywhere}
.rb-card-text.is-long{-webkit-mask-image:linear-gradient(#000 78%,transparent);mask-image:linear-gradient(#000 78%,transparent)}
.rb-card-place{position:absolute;display:flex;flex-direction:column;justify-content:space-between;padding:0 0 .6cqw 1.6cqw;z-index:1}
.rb-card-place p{margin:0;font:italic 400 clamp(11px,2.7cqw,16px)/1 var(--display);color:var(--ink);overflow-wrap:anywhere}
.rb-card-place .rb-yr{font:500 clamp(10px,1.85cqw,12px)/1 var(--display);letter-spacing:.24em;color:var(--terra)}
.rb-card-toggle{position:absolute;z-index:2;background:transparent;border:0;padding:0;cursor:pointer;border-radius:2px}
.rb-turn-hint{position:absolute;right:3%;bottom:-1.6cqw;transform:translateY(100%);font:italic 400 13px/1 var(--display);color:#fff;text-shadow:0 1px 6px rgba(20,40,80,.7);opacity:0;transition:opacity .4s}
.rb-hint .rb-turn-hint{opacity:1}
/* the postcards' cue (owner 10 Oct 2026): "Tap to turn" (or "Click to turn" with a mouse) written in terracotta at the
   card's lower corner, under the year, on every card until that card has been turned once; its little arrow turns once
   as it appears (no loop) */
.rb-tile .rb-turn-hint{right:3.6%;bottom:1.6%;transform:none;display:inline-flex;align-items:center;gap:.35em;padding:.2em .1em;
 font:italic 400 clamp(10.5px,2.15cqw,13.5px)/1 var(--display);letter-spacing:.02em;color:var(--terra-deep);text-shadow:none;opacity:0;transition:opacity .6s ease .3s;white-space:nowrap}
.rb-tile .rb-turn-hint svg{flex:none;width:1.05em;height:1.05em}
.rb-tile:not(.rb-turned-once):not(:has(.rb-card-text.rb-wait:not(.is-in))) .rb-turn-hint{opacity:.92}
.rb-tile:not(.rb-turned-once):not(:has(.rb-card-text.rb-wait:not(.is-in))) .rb-turn-hint svg{animation:rb-cue-turn 1.1s cubic-bezier(.45,0,.3,1) .5s 1 both}
.rb-tile.rb-turned-once .rb-turn-hint{transition:opacity .2s ease}
.rb-card-toggle:hover .rb-turn-hint,.rb-card-toggle:focus-visible .rb-turn-hint{color:var(--ink)}
@keyframes rb-cue-turn{0%{transform:rotate(0)}70%{transform:rotate(-380deg)}100%{transform:rotate(-360deg)}}
@media (prefers-reduced-motion:reduce){.rb-tile .rb-turn-hint svg{animation:none!important}}
/* the turning card (fix 10 Oct): a two-faced card over the rendered one, turning on its own vertical axis through the
   peg. Until the guest taps, only the words show (over the rendered card and its sway film); once tapped the tile is
   "live": the film rests, the rendered card is masked out, the written face shows the same pixels, the peg sits on top */
.rb-tile{perspective:230cqw}
.rb-tile.is-turning{z-index:3}.rb-top{z-index:4}
.rb-flip{position:absolute;z-index:1;transform-style:preserve-3d;transition:transform .9s cubic-bezier(.5,.05,.2,1);pointer-events:none}
.rb-face{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;background-repeat:no-repeat}
.rb-tile:not(.is-live) .rb-face-write{background-image:none!important}
.rb-face-pic{transform:rotateY(180deg);background:#f4ecda;padding:1.5cqw;box-shadow:inset 0 0 0 1px rgba(120,100,60,.18);visibility:hidden}
.rb-face-pic img{display:block;width:100%;height:100%;object-fit:cover;box-shadow:0 0 0 1px rgba(60,50,30,.12)}
.is-live .rb-face-pic{visibility:visible}
.is-turned .rb-flip{transform:rotateY(180deg)}
.rb-tile.is-live>.rb-still{-webkit-mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);mask-image:linear-gradient(#000 0 0),linear-gradient(#000 0 0);-webkit-mask-size:100% 100%,var(--hw) var(--hh);mask-size:100% 100%,var(--hw) var(--hh);-webkit-mask-position:0 0,var(--hx) var(--hy);mask-position:0 0,var(--hx) var(--hy);-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-composite:xor;mask-composite:exclude}
.rb-tile.is-live>.rb-film{display:none}
.rb-cord{position:absolute;width:.42cqw;margin-left:-.21cqw;background:linear-gradient(90deg,#d9d2c2,#fbf7ec 45%,#cfc7b5);display:none;z-index:0}
.is-live .rb-cord{display:block}
.rb-peg{position:absolute;inset:0;width:100%;height:100%;z-index:2;pointer-events:none;display:none}
.is-live .rb-peg{display:block}
.rb-view-larger{position:absolute;z-index:5;display:inline-flex;align-items:center;gap:5px;min-height:34px;padding:0 10px;border:0;border-radius:999px;background:rgba(255,250,240,.92);color:var(--ink);font:500 10.5px/1 var(--display);letter-spacing:.14em;text-transform:uppercase;cursor:pointer;pointer-events:none;box-shadow:0 1px 6px rgba(20,30,60,.2);opacity:0;transition:opacity .3s}
.is-turned .rb-view-larger{pointer-events:auto;opacity:1;transition:opacity .35s .7s}
.rb-card-text.is-long{padding-bottom:26px;-webkit-mask-image:linear-gradient(#000 calc(100% - 50px),transparent calc(100% - 26px));mask-image:linear-gradient(#000 calc(100% - 50px),transparent calc(100% - 26px))}
.rb-read-card{position:absolute;z-index:5;min-height:28px;padding:0;border:0;background:none;font:italic 400 13px/1 var(--display);color:var(--terra-deep);text-decoration:underline;text-underline-offset:3px;cursor:pointer;transition:opacity .3s .6s}
.is-turned .rb-read-card{visibility:hidden;opacity:0;transition:none}
.rb-card-toggle{z-index:4}
@media (prefers-reduced-motion:reduce){.rb-flip,.is-turned .rb-view-larger{transition:none}}
body.rb-still .rb-flip,body.rb-still .is-turned .rb-view-larger{transition:none}

/* 04 the order of the day and 05 the menu: the four-row screens and the grown panels */
.rb-view [data-region]{color:var(--ink)}
.scene-section .rb-stack-title{margin:0;font:italic 400 6.2cqw/1.05 var(--display);color:var(--ink);text-wrap:balance}
#celebration .rb-view [data-region="title"] .rb-caps,#celebration .stack-title .kicker{margin-bottom:1.2cqw}
.rb-t,#celebration .stack-item .time{margin:0 0 .5cqw;font:600 clamp(7.5px,1.75cqw,11px)/1.15 var(--display);letter-spacing:.14em;padding-left:.14em;text-transform:uppercase;color:var(--terra-deep);text-wrap:balance}
.rb-e,#celebration .stack-item .title{margin:0;font:italic 400 clamp(13px,3.6cqw,22px)/1.02 var(--display);color:var(--ink);text-wrap:balance}#celebration .rb-view .rb-stack-title{font-size:5.6cqw}
#celebration .stack-text{align-items:center;text-align:center}
#celebration .stack-title .title{font:italic 400 6.2cqw/1.05 var(--display);color:var(--ink);margin:0;text-wrap:balance}
#celebration .stack-title .kicker,#at-our-table .stack-title .kicker{order:-1;margin:0 0 1.2cqw;font:500 clamp(10px,2.2cqw,12px)/1.3 var(--display);letter-spacing:.3em;text-transform:uppercase;color:var(--ink)}
#celebration .stack-day .date{order:-1;margin:0;font:600 clamp(10px,1.8cqw,11px)/1.2 var(--display);letter-spacing:.22em;text-transform:uppercase;color:var(--terra-deep)}
#celebration .stack-day .day{margin:.6cqw 0 0;font:italic 400 clamp(16px,4.4cqw,24px)/1.05 var(--display);color:var(--ink)}
/* round 2 (11 Oct): the blue-and-white maiolica steps carry no terracotta: times, day dates, the rule and the day tabs
   in the cobalt family */
#celebration{--tab-line:rgba(31,63,149,.45);--tab-ink:var(--ink)}
#celebration .rb-t,#celebration .stack-item .time,#celebration .stack-day .date{color:#2a4b9b}
#celebration .rb-rule{background:linear-gradient(90deg,transparent,#3d63b0,transparent)}
/* v4 (owner, 11 Oct: option B, bigger steps where the text goes): each tall riser carries three lines, the time (cobalt
   small capitals), the event (large italic) and the place (italic); a long event wraps on its riser and, if it still
   needs room, its step repeats (the engine). Floors keep every line readable at 390 px. */
#celebration.rb-tall-steps .stack-text{gap:0}
#celebration .rb-slice{position:absolute;left:0;width:100%;z-index:0;pointer-events:none}
/* v5 (owner's choice, 11 Oct): the harbour ferry timetable, a cobalt enamel "Partenze" board. White lettering on the
   enamel rows: the time in its own column (left of the painted rule), the event over the place; floors keep the rows
   readable at 390 px; a long event wraps and grows its own row. The rows flip on as the launch passes (once). */
#celebration.rb-ferry .stack-panel{overflow:hidden}
#celebration.rb-ferry .rb-ferry-film{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;transition:opacity .4s ease;z-index:0}
#celebration.rb-ferry .rb-ferry-film.is-moving{opacity:1}
#celebration.rb-ferry .stack-title{align-items:center;text-align:center;justify-content:center;gap:0}
#celebration.rb-ferry .stack-title .title{font:italic 400 clamp(22px,6.3cqw,38px)/1.05 var(--display);color:#fffdf7;margin:0;text-wrap:balance}
#celebration.rb-ferry .stack-title .kicker{order:-1;margin:0 0 1.4cqw;font:600 clamp(10px,2.4cqw,14px)/1.2 var(--sans);letter-spacing:.26em;padding-left:.26em;text-transform:uppercase;color:rgba(255,253,247,.9)}
#celebration.rb-ferry .rb-crest{align-items:center;justify-content:center;text-align:center}
#celebration.rb-ferry .rb-crest p{font:600 clamp(11.5px,3.4cqw,20px)/1 var(--sans);letter-spacing:.34em;padding-left:.34em;text-transform:uppercase;color:#fffdf7}
#celebration.rb-ferry .stack-item{display:grid;grid-template-columns:22.8% 1fr;grid-template-rows:auto auto;column-gap:4.2cqw;align-content:center;align-items:center;justify-content:stretch;text-align:left}
#celebration.rb-ferry .stack-item .time{grid-column:1;grid-row:1 / span 2;margin:0;text-align:center;font:600 clamp(13.5px,3.6cqw,22px)/1 var(--sans);letter-spacing:.03em;font-variant-numeric:tabular-nums;color:#fffdf7}
#celebration.rb-ferry .stack-item .title{grid-column:2;margin:0;font:500 clamp(15.5px,4.1cqw,25px)/1.12 var(--display);color:#fffdf7;text-wrap:balance;overflow-wrap:anywhere}
#celebration.rb-ferry .stack-item .details{grid-column:2;margin:.5cqw 0 0;font:italic 400 clamp(13.5px,3.45cqw,20px)/1.2 var(--serif);color:rgba(255,253,247,.84);text-wrap:balance;overflow-wrap:anywhere}
#celebration.rb-ferry .stack-item.rb-row-wait p{opacity:0;transform:perspective(500px) rotateX(-82deg);transform-origin:50% 0}
#celebration.rb-ferry .stack-item.rb-row-in p{opacity:1;transform:none;transition:opacity .45s ease calc(var(--k,0) * 0s),transform .6s cubic-bezier(.2,.8,.2,1)}
#celebration.rb-ferry .stack-item.rb-row-now p{transition:none}
#celebration .stack-item.rb-measuring{align-content:start!important}
#celebration .stack-item.rb-measuring p{transform:none!important;transition:none!important}
#celebration.rb-ferry .stack-panel:not([data-rep="1"]):not([data-rep=""]) .stack-item p{text-shadow:none}
@media (prefers-reduced-motion:reduce){#celebration.rb-ferry .stack-item.rb-row-wait p{opacity:1;transform:none}}
/* v6 (owner's choice, 11 Oct): the whitewashed wall. The same list (time | event over place, every word at once), painted
   in cobalt on the lime wash (multiplied into it, so the wall's grain shows through the paint); a hand-painted hairline
   under each row; each line is brushed on left to right, once; a branch's shadow sways slowly over the wall. */
#celebration.rb-limewash .stack-panel{overflow:hidden}
#celebration.rb-limewash .scene-stack{overflow:hidden;overflow:clip}   /* the swaying shadow never widens the page */
#celebration.rb-limewash .stack-text{z-index:1}
#celebration.rb-limewash .stack-title{align-items:flex-start;text-align:left;justify-content:flex-end;gap:0;padding:0 0 1.2cqw 1cqw}
#celebration.rb-limewash .stack-title .title{font:italic 400 clamp(24px,6.6cqw,40px)/1.06 var(--display);color:#22418f;margin:0;mix-blend-mode:multiply;text-wrap:balance}
#celebration.rb-limewash .stack-title .kicker{order:-1;margin:0 0 1.6cqw;font:600 clamp(10px,2.4cqw,14px)/1.2 var(--sans);letter-spacing:.26em;text-transform:uppercase;color:#2f4f9f;mix-blend-mode:multiply}
#celebration.rb-limewash .stack-item{display:grid;grid-template-columns:20% 1fr;grid-template-rows:auto auto;column-gap:3.4cqw;align-content:center;align-items:center;text-align:left;
 background:linear-gradient(90deg,transparent,rgba(34,65,143,.32) 6%,rgba(34,65,143,.32) 94%,transparent) bottom/100% 1px no-repeat}
#celebration.rb-limewash .stack-item .time{grid-column:1;grid-row:1 / span 2;margin:0;font:600 clamp(14px,3.7cqw,22px)/1 var(--display);letter-spacing:.02em;font-variant-numeric:lining-nums tabular-nums;color:#22418f;mix-blend-mode:multiply}
#celebration.rb-limewash .stack-item .title{grid-column:2;margin:0;font:italic 500 clamp(16px,4.2cqw,25px)/1.12 var(--display);color:#1d3a85;mix-blend-mode:multiply;text-wrap:balance;overflow-wrap:anywhere}
#celebration.rb-limewash .stack-item .details{grid-column:2;margin:.5cqw 0 0;font:italic 400 clamp(13.5px,3.45cqw,20px)/1.2 var(--serif);color:#3a5596;mix-blend-mode:multiply;text-wrap:balance;overflow-wrap:anywhere}
/* the brush: a soft-edged mask sweeps each line on, the time first, then the event, then the place */
#celebration.rb-limewash .stack-item p{-webkit-mask-image:linear-gradient(90deg,#000 45%,transparent 55%);mask-image:linear-gradient(90deg,#000 45%,transparent 55%);-webkit-mask-size:240% 100%;mask-size:240% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-position:0 0;mask-position:0 0}
#celebration.rb-limewash .stack-item.rb-row-wait p{-webkit-mask-position:100% 0;mask-position:100% 0}
#celebration.rb-limewash .stack-item.rb-row-in p{-webkit-mask-position:0 0;mask-position:0 0;transition:-webkit-mask-position .9s cubic-bezier(.4,.1,.3,1),mask-position .9s cubic-bezier(.4,.1,.3,1)}
#celebration.rb-limewash .stack-item.rb-row-in .title{transition-delay:.18s}
#celebration.rb-limewash .stack-item.rb-row-in .details{transition-delay:.4s}
#celebration.rb-limewash .stack-item.rb-row-now p{transition:none}
#celebration .rb-wall-shadow{position:absolute;inset:0;z-index:2;pointer-events:none;background:var(--shadow) 0 0/100% auto repeat-y;opacity:.16;mix-blend-mode:multiply;transform-origin:0 0;animation:rb-branch 14s ease-in-out infinite alternate}
@keyframes rb-branch{0%{transform:translate(0,0) rotate(0)}50%{transform:translate(.8%,.35%) rotate(.35deg)}100%{transform:translate(-.5%,.6%) rotate(-.25deg)}}
@media (prefers-reduced-motion:reduce){#celebration .rb-wall-shadow{animation:none}#celebration.rb-limewash .stack-item.rb-row-wait p{-webkit-mask-position:0 0;mask-position:0 0}}
body.rb-still #celebration .rb-wall-shadow{animation:none}
/* the days: their names painted along the top of the wall's section; the chosen one underlined with a brush stroke */
#celebration.rb-limewash .sig-tab{border:0;border-radius:0;background:transparent;box-shadow:none;color:#22418f;padding:6px 10px}
#celebration.rb-limewash .sig-tab[aria-selected="true"]{background:linear-gradient(90deg,transparent,#22418f 12%,#22418f 88%,transparent) 50% 92%/100% 2px no-repeat}
#celebration.rb-limewash .sig-tab *{color:inherit}
/* the day plates: small cobalt enamel plates with a white pinstripe */
#celebration.rb-ferry .sig-tab{border-radius:7px;border:0;background:#1d3a8f;color:#fffdf7;box-shadow:inset 0 0 0 2px #1d3a8f,inset 0 0 0 3.5px rgba(255,253,247,.85),0 6px 12px -8px rgba(15,25,60,.6)}
#celebration.rb-ferry .sig-tab[aria-selected="true"]{background:#fffdf7;color:#1d3a8f;box-shadow:inset 0 0 0 2px #fffdf7,inset 0 0 0 3.5px #1d3a8f,0 6px 12px -8px rgba(15,25,60,.6)}
#celebration.rb-ferry .sig-tab *{color:inherit}
#celebration.rb-tall-steps .rb-t,#celebration.rb-tall-steps .stack-item .time{margin:0 0 .9cqw;font:600 clamp(10.5px,2.5cqw,15px)/1.2 var(--display);letter-spacing:.18em;padding-left:.18em;color:#2a4b9b}
#celebration.rb-tall-steps .rb-e,#celebration.rb-tall-steps .stack-item .title{margin:0;font:italic 400 clamp(17.5px,4.6cqw,28px)/1.06 var(--display);color:var(--ink);text-wrap:balance;overflow-wrap:anywhere}
#celebration.rb-tall-steps .rb-p,#celebration.rb-tall-steps .stack-item .details{margin:.9cqw 0 0;font:italic 400 clamp(12.5px,3cqw,18px)/1.25 var(--serif);color:var(--ink-soft);text-wrap:balance;overflow-wrap:anywhere}
#celebration.rb-tall-steps .rb-view [data-region^="event"]{justify-content:center}
/* an event long enough to run over a step's painted tiles (the step repeats) keeps a soft lime-wash halo for reading */
#celebration .stack-panel:not([data-rep="1"]):not([data-rep=""]) .stack-item p{text-shadow:0 0 3px #f6f1e7,0 0 7px #f6f1e7,0 0 12px rgba(246,241,231,.9)}
.rb-c,#at-our-table .stack-item .time{margin:0 0 1.4cqw;font:500 clamp(10px,1.8cqw,11px)/1.2 var(--display);letter-spacing:.26em;padding-left:.26em;text-transform:uppercase;color:var(--terra-deep)}
.rb-d,#at-our-table .stack-item .title{margin:0;font:italic 400 clamp(14px,3.5cqw,20px)/1.3 var(--display);color:var(--ink);max-width:49cqw;text-wrap:balance}
.rb-rule-short{width:7.7cqw;margin:2.2cqw auto 0}
#at-our-table .rb-view [data-region="title"] .rb-stack-title,#at-our-table .stack-title .title{font:italic 400 7.7cqw/1 var(--display);color:var(--ink);margin:0}
#at-our-table .stack-text{align-items:center;text-align:center}#at-our-table [data-region="title"] .rb-caps,#at-our-table .stack-title .kicker{letter-spacing:.14em;padding-left:.14em;font-size:clamp(10px,1.9cqw,11px)}
#at-our-table .stack-footer .footer{font:italic 400 clamp(13px,3.2cqw,17px)/1.35 var(--display);color:var(--ink-soft);max-width:52cqw;text-wrap:balance}

/* 06 venue and 07 stay: the neutral Riviera card until the owner picks the venue device */
.rb-plain{width:min(100% - 32px,560px);margin:0 auto;padding:clamp(28px,7vw,44px) clamp(22px,6vw,40px);text-align:center;color:var(--ink);background:linear-gradient(#fffaf0,#f6efe1);border:1px solid rgba(27,44,102,.18);outline:6px solid rgba(255,250,240,.75);outline-offset:-12px;box-shadow:0 16px 40px rgba(40,50,80,.12),inset 0 0 0 10px #fffaf0,inset 0 0 0 11px rgba(168,83,47,.35)}
.scene-section .rb-plain h2{margin:6px 0 0;font:italic 400 clamp(26px,7vw,38px)/1.1 var(--display);overflow-wrap:anywhere;text-wrap:balance}
.rb-plain .rb-address{margin:8px 0 0;font:400 17px/1.45 var(--serif);color:var(--ink-soft);overflow-wrap:anywhere}
.rb-plain .rb-rule{width:60px;margin:16px auto}
.rb-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin:0}
.rb-stays{list-style:none;margin:8px 0 0;padding:0;display:grid;gap:14px;text-align:left}
.rb-stay{display:grid;grid-template-columns:30px 1fr;gap:12px;align-items:start;padding:12px 0;border-top:1px solid rgba(27,44,102,.14)}
.rb-pin{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;background:var(--ink);color:var(--cream);font:500 12px/1 var(--display)}
.rb-stay h3{margin:0;font:italic 400 20px/1.15 var(--display);overflow-wrap:anywhere}
.rb-distance{margin:4px 0 0;font:500 11px/1.4 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--terra-deep)}
.rb-notes{margin:4px 0 0;font:400 16px/1.45 var(--serif);color:var(--ink-soft);overflow-wrap:anywhere}
.rb-stays-render .rb-stays{width:min(100% - 32px,560px);margin:12px auto 0}

/* 07 where to stay: hotel postcards pegged on silk lines across the sea (fix 10 Oct) */
.rb-stays-sea{position:relative;width:min(100%,640px);margin:0 auto;container-type:inline-size;overflow:clip;--cw:min(82cqw,500px)}
.rb-stays-col{position:relative;margin-top:-100svh;z-index:1;padding:clamp(28px,8cqw,48px) 0 clamp(36px,10cqw,64px)}
.rb-stays-head{text-align:center;color:var(--ink);padding:0 16px clamp(10px,4cqw,24px)}
.rb-stays-head h2{margin:6px 0 0;font:italic 400 clamp(26px,7.4cqw,40px)/1.1 var(--display);color:var(--ink);text-shadow:0 0 18px rgba(255,255,255,.6)}
.rb-stays-head .rb-caps{text-shadow:0 0 12px rgba(255,255,255,.7)}
.rb-hotels{list-style:none;margin:0;padding:0}
.rb-hotel{position:relative;padding-top:calc(var(--cw) * .2);margin-bottom:calc(var(--cw) * .1)}
.rb-line{position:absolute;left:0;top:calc(var(--cw) * .025);width:100%;height:calc(var(--cw) * .12);overflow:visible;filter:drop-shadow(0 1px 1px rgba(30,50,90,.35))}
.rb-hcard{position:relative;width:var(--cw);aspect-ratio:818/578;perspective:240cqw;margin-left:calc(50% - var(--cw) / 2 - 5cqw);transform:rotate(-1.2deg);transform-origin:50% -20%}
.rb-hotel[data-side=r] .rb-hcard{margin-left:calc(50% - var(--cw) / 2 + 5cqw);transform:rotate(1deg)}
.rb-hotel.is-turning{z-index:3}
.rb-hflip{position:absolute;inset:0;transform-style:preserve-3d;transition:transform .9s cubic-bezier(.5,.05,.2,1);pointer-events:none;z-index:1}
.is-turned .rb-hflip{transform:rotateY(180deg)}
.rb-hface{position:absolute;inset:0;-webkit-backface-visibility:hidden;backface-visibility:hidden;background-repeat:no-repeat}
.rb-hface-front{filter:drop-shadow(0 calc(var(--cw) * .02) calc(var(--cw) * .025) rgba(20,40,80,.25))}
.rb-hface-back{transform:rotateY(180deg);box-shadow:0 calc(var(--cw) * .02) calc(var(--cw) * .04) rgba(20,40,80,.25),inset 0 0 0 1px rgba(120,100,60,.15);border-radius:2px}
.is-turned .rb-hface-back{pointer-events:auto;cursor:pointer}
.rb-htext{position:absolute;display:flex;flex-direction:column;overflow:hidden;padding-top:.3cqw}
.rb-htext .rb-k,.rb-hback .rb-k{margin:0 0 .9cqw;font:500 clamp(10px,1.6cqw,10.5px)/1.2 var(--display);letter-spacing:.26em;text-transform:uppercase;color:var(--terra)}
.rb-hotel h3{margin:0 0 .8cqw;font:italic 400 clamp(17px,4.6cqw,27px)/1.06 var(--display);color:var(--ink);overflow-wrap:anywhere;text-wrap:balance}
.rb-hdist{margin:0 0 1cqw;font:500 clamp(10px,1.75cqw,11.5px)/1.35 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--terra-deep);overflow-wrap:anywhere}
.rb-hnote{margin:0;font:400 clamp(12.5px,2.7cqw,16px)/1.38 var(--serif);color:var(--ink-soft);overflow-wrap:anywhere}
.rb-htext .rb-hnote{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.rb-htext .rb-hnote[hidden]{display:none}
.rb-hplace{position:absolute;display:flex;flex-direction:column;justify-content:space-between;padding:0 0 .6cqw 1.6cqw}
.rb-hplace p{margin:0;font:italic 400 clamp(11px,2.6cqw,16px)/1 var(--display);color:var(--ink);overflow-wrap:anywhere}
.rb-hplace .rb-yr{font:500 clamp(10px,1.8cqw,12px)/1 var(--display);letter-spacing:.2em;color:var(--terra)}
.rb-hback{position:absolute;inset:8% 8% 7%;display:flex;flex-direction:column;overflow:hidden}
.rb-htext>*,.rb-hback>*{flex:none}
.rb-hback.is-long .rb-hnote{-webkit-mask-image:linear-gradient(#000 70%,transparent);mask-image:linear-gradient(#000 70%,transparent)}
.rb-hlinks{display:flex;flex-wrap:wrap;gap:8px;margin:auto 0 0;padding-top:2cqw}
.rb-hbtn{display:inline-flex;align-items:center;min-height:36px;padding:0 12px;border:1px solid rgba(27,44,102,.45);border-radius:2px;background:rgba(255,250,240,.85);font:500 10.5px/1 var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--ink);text-decoration:none}
.rb-hbtn.rb-solid{background:var(--ink);color:var(--cream);border-color:var(--ink)}
.rb-hbtn:focus-visible,.rb-htoggle:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.rb-hpeg{position:absolute;max-width:none;height:auto;z-index:2;pointer-events:none}
.rb-htoggle{position:absolute;inset:0;z-index:4;background:transparent;border:0;padding:0;cursor:pointer}
.is-turned .rb-htoggle{pointer-events:none}
.rb-hotel .rb-turn-hint{right:3%;bottom:-1.4cqw}
.rb-hotel.rb-hint .rb-turn-hint{opacity:1}
.rb-hback .rb-hnote{flex:1 1 auto;min-height:2.7em;overflow:hidden}
.rb-hback h3{font-size:clamp(16px,4.2cqw,25px)}
.rb-hlinks{flex-wrap:nowrap;align-items:center}
.rb-hmore{min-height:36px;padding:0 2px;border:0;background:none;font:italic 400 13px/1 var(--display);color:var(--terra-deep);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
@media (prefers-reduced-motion:reduce){.rb-hflip{transition:none}}
body.rb-still .rb-hflip{transition:none}
/* 07 with the hotel's photo (10 Oct 2026): a picture postcard. The photo is printed on the card with a narrow white
   border, the hotel's name beneath it; "Our pick" is a small terracotta stamp on the print. Turn over for the details. */
.rb-hface-photo .rb-hprint{position:absolute;left:5.5%;right:5.5%;top:6.5%;height:66%;margin:0;padding:1.3cqw;background:#fbf7ee;box-shadow:0 .4cqw 1.2cqw rgba(40,30,20,.22);transform:rotate(-.6deg)}
.rb-hface-photo .rb-hprint img{display:block;width:100%;height:100%;object-fit:cover}
.rb-hface-photo .rb-hcap{position:absolute;left:7%;right:7%;bottom:5%;height:20%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;overflow:hidden}
.rb-hface-photo .rb-hcap h3{margin:0 0 .5cqw;font-size:clamp(16px,4.2cqw,25px)}
.rb-hface-photo .rb-hcap .rb-hdist{margin:0}
.rb-hpick{position:absolute;top:2.6cqw;left:2.6cqw;padding:.9cqw 1.6cqw .8cqw;background:var(--terra);color:var(--cream);font:500 clamp(10px,1.7cqw,11px)/1 var(--display);letter-spacing:.22em;text-transform:uppercase;border:1px dashed rgba(255,248,236,.7);outline:2px solid var(--terra)}
.rb-hrate{margin:.6cqw 0 0;font:italic 400 clamp(12px,2.5cqw,15px)/1.3 var(--display);color:var(--terra-deep);overflow-wrap:anywhere;flex:none}
/* our favourite places: a sheet of the postcard paper under the cards, two short lists */
.rb-guide{width:var(--cw);margin:calc(var(--cw) * .04) auto 0;padding:clamp(18px,5cqw,28px) clamp(18px,5cqw,30px) clamp(10px,3cqw,18px);background:#fbf7ee;color:var(--ink);box-shadow:0 calc(var(--cw) * .02) calc(var(--cw) * .05) rgba(20,40,80,.22);transform:rotate(.4deg);text-align:left}
.rb-guide>.rb-caps{margin:0 0 6px;text-align:center;color:var(--terra)}
.rb-guide-list h3{margin:12px 0 4px;font:italic 400 clamp(19px,5cqw,26px)/1.15 var(--display);color:var(--ink)}
.rb-guide-list ul{list-style:none;margin:0;padding:0}
.rb-guide-list li{padding:9px 0;border-top:1px solid rgba(168,83,47,.22)}
.rb-guide-list a,.rb-guide-name{font:500 clamp(15px,3.6cqw,18px)/1.3 var(--serif);color:var(--ink);overflow-wrap:anywhere}
.rb-guide-list a{text-decoration:underline;text-decoration-color:var(--terra);text-underline-offset:3px}
.rb-guide-list a:focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.rb-guide-note{display:block;margin-top:2px;font:400 clamp(13.5px,3.1cqw,15.5px)/1.4 var(--serif);color:var(--ink-soft);overflow-wrap:anywhere}

/* 06 the venue: the drawn map (fix 10 Oct), framed like a painted maiolica tile, orange-blossom sprigs at two corners */
.rb-venue-map{width:min(100% - 32px,640px);margin:0 auto;text-align:center;color:var(--ink)}
.rb-map-words h2{margin:6px 0 0;font:italic 400 clamp(26px,7vw,40px)/1.1 var(--display);overflow-wrap:anywhere;text-wrap:balance}
.rb-map-words .rb-address{margin:8px 0 0;font:400 17px/1.45 var(--serif);color:var(--ink-soft);overflow-wrap:anywhere}
.rb-map-tile{position:relative;margin:22px auto 20px;aspect-ratio:4/5;padding:clamp(14px,4vw,22px);border-radius:4px;background:#f7f0df;box-shadow:0 18px 40px rgba(27,44,102,.16),0 2px 0 rgba(255,255,255,.7) inset;
 border:clamp(12px,3.4vw,18px) solid #1f3f8a;border-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60' viewBox='0 0 60 60'%3E%3Crect width='60' height='60' fill='%231f3f8a'/%3E%3Crect x='3' y='3' width='54' height='54' fill='none' stroke='%23f7f0df' stroke-width='1.2'/%3E%3Ccircle cx='30' cy='30' r='7' fill='%23f7f0df'/%3E%3Ccircle cx='30' cy='30' r='3.2' fill='%23c46a3c'/%3E%3Cpath d='M30 9 C34 16 34 20 30 23 C26 20 26 16 30 9Z M30 51 C34 44 34 40 30 37 C26 40 26 44 30 51Z M9 30 C16 26 20 26 23 30 C20 34 16 34 9 30Z M51 30 C44 26 40 26 37 30 C40 34 44 34 51 30Z' fill='%23f7f0df' opacity='.9'/%3E%3C/svg%3E") 20 round}
@media (min-width:700px){.rb-map-tile{aspect-ratio:5/4}}
.rb-map-holder{position:absolute;inset:clamp(8px,2.4vw,12px);overflow:hidden;border-radius:2px;background:#fbf6ea;box-shadow:inset 0 0 0 1px rgba(27,44,102,.25)}
.rb-map-tile .rb-rose{position:absolute;left:50%;top:50%;width:38%;transform:translate(-50%,-50%);opacity:0;transition:opacity .6s}
.rb-map-tile.is-rose .rb-rose{opacity:.85}
.rb-map-tile.is-rose .rb-map-holder{background:radial-gradient(circle at 50% 50%,#fbf6ea 30%,#efe5cf)}
.rb-sprig{position:absolute;width:clamp(70px,20vw,110px);z-index:4;pointer-events:none;filter:drop-shadow(0 3px 4px rgba(30,40,20,.25))}
.rb-sprig.tl{left:clamp(-34px,-6vw,-22px);top:clamp(-38px,-7vw,-26px);transform:rotate(-6deg) scaleY(-1) rotate(90deg)}
.rb-sprig.br{right:clamp(-34px,-6vw,-22px);bottom:clamp(-36px,-7vw,-24px);transform:rotate(180deg)}
.rb-venue-map .rb-actions{margin-top:6px}
.rb-map-holder .map-art{display:block;width:100%;height:100%}
.rb-map-holder.map-ready .ma-wash,.rb-map-holder.map-ready .ma-bld,.rb-map-holder.map-ready .ma-rail,.rb-map-holder.map-ready .ma-compass,.rb-map-holder.map-ready .ma-names text,.rb-map-holder.map-ready .ma-labels text{opacity:0}
.rb-map-holder.map-ready .ma-r[pathLength]{stroke-dasharray:1;stroke-dashoffset:1}
.rb-map-holder.map-ready .ma-r.ma-fill{opacity:0}
.rb-map-holder.map-drawn .ma-wash{opacity:1;transition:opacity 1.4s ease}
.rb-map-holder.map-drawn .ma-bld{opacity:.95;transition:opacity 1.2s ease .5s}
.rb-map-holder.map-drawn .ma-rail{opacity:.8;transition:opacity 1s ease 1s}
.rb-map-holder.map-drawn .ma-r[pathLength]{stroke-dashoffset:0;transition:stroke-dashoffset 1.1s cubic-bezier(.4,0,.2,1) var(--dl)}
.rb-map-holder.map-drawn .ma-r.ma-fill{opacity:1;transition:opacity .5s ease var(--dl)}
.rb-map-holder.map-drawn .ma-names text,.rb-map-holder.map-drawn .ma-labels text{opacity:1;transition:opacity .8s ease var(--dl)}
.rb-map-holder.map-drawn .ma-compass{opacity:.85;transition:opacity 1s ease 1.8s}
.rb-map-pin{position:absolute;left:50%;top:50%;z-index:3;display:grid;justify-items:center;transform:translate(-50%,-30px);pointer-events:none}
.rb-pin-flower{width:44px;height:44px;filter:drop-shadow(0 4px 3px rgba(20,30,60,.35))}
.rb-pin-label{margin-top:2px;max-width:min(70vw,260px);padding:3px 9px;border-radius:2px;background:#1b2c66;color:#fffaf0;font:italic 400 14px/1.25 var(--display);white-space:normal;text-align:center;overflow-wrap:anywhere;box-shadow:0 2px 6px rgba(20,30,60,.3)}
.rb-map-holder.map-ready .rb-map-pin{opacity:0}
.rb-map-holder.map-drawn .rb-map-pin{animation:rb-pin-drop 1s cubic-bezier(.3,1.4,.5,1) 1.5s both}
@keyframes rb-pin-drop{0%{opacity:0;transform:translate(-50%,-140px) rotate(-40deg)}60%{opacity:1}100%{opacity:1;transform:translate(-50%,-30px) rotate(0)}}
.rb-map-holder .map-credit{position:absolute;right:6px;bottom:4px;margin:0;font:400 10px/1.2 var(--serif);color:rgba(27,44,102,.85);background:rgba(251,246,234,.88);padding:2px 5px;border-radius:2px}
.rb-map-holder .map-credit a{color:inherit}
@media (prefers-reduced-motion:reduce){.rb-map-holder.map-ready .ma-wash,.rb-map-holder.map-ready .ma-bld,.rb-map-holder.map-ready .ma-rail,.rb-map-holder.map-ready .ma-compass,.rb-map-holder.map-ready .ma-names text,.rb-map-holder.map-ready .ma-labels text,.rb-map-holder.map-ready .ma-r.ma-fill,.rb-map-holder.map-ready .rb-map-pin{opacity:1;animation:none}.rb-map-holder.map-ready .ma-r[pathLength]{stroke-dashoffset:0}}
body.rb-still .rb-map-holder .rb-map-pin{animation:none;opacity:1}
.rb-calm{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}

/* 08 dress code: the words on the marble, each colour named on its linen */
#dress-code [data-region="title"]{align-items:flex-start;text-align:left;justify-content:flex-start}
#dress-code [data-region="title"] .rb-rule{margin:1.6cqw 0}
.scene-section .rb-dress-title{margin:.8cqw 0 0;font:italic 400 7.7cqw/1.05 var(--display);color:var(--ink);text-wrap:balance;overflow-wrap:anywhere}
.rb-dress-text{max-width:60cqw;font-size:clamp(12.5px,2.9cqw,16px)}
#dress-code .rb-tight .rb-rule{display:none}
.rb-swatch{justify-content:center!important;align-items:flex-end!important;flex-direction:row!important;gap:1.4cqw;padding-right:2.6cqw;font:italic 400 clamp(13px,3.85cqw,22px)/1 var(--display);text-shadow:0 0 3px rgba(40,30,20,.35);white-space:nowrap}
.rb-swatch[hidden]{display:none}
.rb-dot{display:inline-block;width:.62em;height:.62em;border-radius:50%;box-shadow:0 0 0 1.5px rgba(255,250,240,.9),0 1px 3px rgba(0,0,0,.25);align-self:center}
#dress-code [data-region="note"]{align-items:flex-start;text-align:left;justify-content:flex-start}
#dress-code [data-region="note"].rb-empty{visibility:hidden}
.rb-note-text{max-width:56cqw;font-size:clamp(12px,2.6cqw,15px)}
.rb-days{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;width:min(100% - 32px,560px);margin:0 auto 12px}
.rb-days button{min-height:40px;padding:0 16px;border:1px solid rgba(27,44,102,.35);border-radius:999px;background:rgba(255,250,240,.8);font:500 11px/1 var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--ink);cursor:pointer}
.rb-days button[aria-selected="true"]{background:var(--ink);color:var(--cream);border-color:var(--ink)}

/* 09 the wedding party: names on the paper tags, the optional roundel photos */
.rb-party{background:#f4f1ea}
.rb-slice{position:absolute;left:0;width:100%;overflow:hidden}
.rb-slice>img{position:absolute;left:0;width:100%;display:block}
.rb-members{list-style:none;margin:0;padding:0}
.rb-party-title{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:2}
.scene-section .rb-party-title h2{margin:.6cqw 0 0;font:italic 400 7.7cqw/1.02 var(--display);color:var(--ink)}
.rb-party-title .rb-rule{margin:1.4cqw auto 0}
.rb-tag{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:2}
.rb-name{margin:0;font:italic 400 clamp(13px,3.5cqw,20px)/1.05 var(--display);color:var(--ink);white-space:nowrap}
.rb-wrap .rb-name{white-space:normal;overflow-wrap:anywhere;text-wrap:balance}
.rb-role{margin:1.2cqw 0 0;font:500 clamp(10px,1.55cqw,10px)/1.2 var(--display);letter-spacing:.22em;padding-left:.22em;text-transform:uppercase;color:var(--terra-deep);text-wrap:balance}
.rb-sample{margin-top:2px;font:italic 400 10px/1 var(--serif);color:var(--ink-soft)}
.rb-photo{position:absolute;border-radius:50%;overflow:hidden;z-index:1;background:#e8e2d4}
.rb-photo img{width:100%;height:100%;object-fit:cover;display:block}
.rb-frame{position:absolute;z-index:1;pointer-events:none}
.rb-rise .rb-tag,.rb-rise .rb-photo,.rb-rise .rb-frame{opacity:0;transform:translateY(6px);transition:opacity .8s ease,transform .8s ease}
.rb-rise.is-in .rb-tag,.rb-rise.is-in .rb-photo,.rb-rise.is-in .rb-frame{opacity:1;transform:none}

/* 10 gallery: the photographs in the prints, multiplied over the render */
.rb-print-layer{position:absolute;inset:0;mix-blend-mode:multiply;-webkit-mask-size:100% 100%;mask-size:100% 100%;-webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;pointer-events:none}
.rb-px{position:absolute;left:0;top:0;transform-origin:0 0}
.rb-print-photo{position:absolute;left:0;top:0;transform-origin:0 0;overflow:hidden;background:#eef0ea}
.rb-print-photo img{width:100%;height:100%;object-fit:cover;display:block;filter:saturate(1.05) contrast(1.03)}
.rb-print-layer.is-blank .rb-print-photo{background:linear-gradient(135deg,#dfe3d8,#f2f1ea);opacity:.55}
.rb-print-layer.is-blank img{display:none}
.rb-develop,.rb-print-layer.is-waiting.is-in .rb-print-photo{animation:rb-develop 2.2s ease-out both}
@keyframes rb-develop{0%{filter:sepia(.5) saturate(.15) brightness(1.4) contrast(.45);opacity:.6}45%{filter:sepia(.25) saturate(.6) brightness(1.15) contrast(.75)}100%{filter:none;opacity:1}}
.rb-caption{position:absolute;margin:0;display:flex;align-items:center;justify-content:center;font:500 clamp(12px,3.1cqw,18px)/1 var(--hand);color:#2b3b70;white-space:nowrap;overflow:visible;pointer-events:none;z-index:2}
.rb-print-hit{position:absolute;background:transparent;border:0;padding:0;cursor:pointer;z-index:3}
.rb-print-hit:disabled{cursor:default}
.rb-gallery-title{position:absolute;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;z-index:2}
.scene-section .rb-gallery-title h2{margin:.6cqw 0 0;font:italic 400 7.7cqw/1.02 var(--display);color:var(--ink)}
.rb-gallery-title .rb-rule{margin:1.6cqw 0}
.rb-hint{font-size:clamp(10px,1.8cqw,11px)}
.rb-gallery-actions{position:absolute;right:4%;bottom:3%;display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px;margin:0;z-index:4}
@media (prefers-reduced-motion:reduce){.rb-develop,.rb-print-layer.is-waiting.is-in .rb-print-photo{animation:none}}

/* 11 questions: the handwriting on the comanda pad's rules */
.rb-q-title{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;z-index:2}
.scene-section .rb-q-title h2{margin:.6cqw 0 0;font:italic 400 7.2cqw/1 var(--display);color:var(--ink)}
.rb-pad{position:absolute;left:0;top:0;transform-origin:0 0}
.rb-page{position:absolute;inset:0;padding:0 14px 0 20px;overflow:hidden}
.rb-page p,.rb-measure p{margin:0;overflow-wrap:anywhere}
.rb-q,.rb-measure .rb-q{font:700 var(--qf,28px)/var(--lh,36.69px) var(--hand);color:#1d3a8a}
.rb-a,.rb-measure .rb-a{font:500 var(--af,26px)/var(--lh,36.69px) var(--hand);color:#3b4152}
.rb-gap{height:var(--lh,36.69px)}
.rb-measure{position:absolute;left:0;top:0;visibility:hidden;pointer-events:none;padding:0 14px 0 20px;box-sizing:border-box}
.rb-ink{clip-path:inset(0 100% 0 0)}.rb-ink.is-written{clip-path:inset(0 0 0 0);transition:clip-path .42s linear}
.rb-tear{animation:rb-tear .38s ease-in both}.rb-settle{animation:rb-settle-in .45s ease-out both}
@keyframes rb-tear{to{opacity:0;transform:translateY(-6%) rotate(-2deg)}}
@keyframes rb-settle-in{from{opacity:0}to{opacity:1}}
.rb-pages{position:absolute;left:18%;right:18%;bottom:2.2%;display:flex;align-items:center;justify-content:center;gap:12px;z-index:4}
.rb-pages[hidden]{display:none}
.rb-pages button{min-height:40px;min-width:40px;padding:0 14px;border:1px solid rgba(27,44,102,.4);border-radius:999px;background:rgba(255,250,240,.9);font:500 11px/1 var(--display);letter-spacing:.16em;text-transform:uppercase;color:var(--ink);cursor:pointer}
.rb-pages button:disabled{opacity:.4;cursor:default}
.rb-count{font:italic 400 14px/1 var(--display);color:#fff;text-shadow:0 1px 5px rgba(20,30,60,.7)}
@media (prefers-reduced-motion:reduce){.rb-ink{clip-path:none}.rb-tear,.rb-settle{animation:none}}

/* 12 gifts: the wording on the sky; more than two lists continue on the linen below */
#gifts [data-region="title"] h2{margin:.8cqw 0 0;font:italic 400 6.4cqw/1.05 var(--display);color:var(--ink);text-wrap:balance}
#gifts .rb-gifts-note{max-width:68cqw;text-align:center}#gifts [data-region="text"]{justify-content:flex-start}
.rb-gift-links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 18px;margin:2cqw 0 0}
.rb-gift-links[hidden]{display:none}
.rb-gift-links a,.rb-gifts-more a{display:inline-flex;align-items:center;min-height:36px;font:500 clamp(10px,2cqw,12px)/1.2 var(--display);letter-spacing:.24em;text-transform:uppercase;color:var(--terra-deep);text-decoration:none;border-bottom:1px solid rgba(138,63,36,.45)}
.rb-gifts-more{width:min(100%,600px);margin:-1px auto 0;padding:22px 24px 26px;text-align:center;background:linear-gradient(#fbfaf6,#f1ede4);box-shadow:inset 0 10px 18px -12px rgba(60,50,30,.25)}
.rb-gifts-more ul{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:6px;justify-items:center}
.rb-gifts-more a{overflow-wrap:anywhere;text-align:center}.rb-gifts-more .rb-gifts-note{max-width:none;margin:0 0 12px;text-align:center}
.rb-spill{width:min(100%,600px);margin:-1px auto 0;padding:22px 26px 26px;text-align:center;background:linear-gradient(#fbf6ec,#f1ebdf)}.rb-spill[hidden]{display:none}.rb-spill .rb-thanks-text{max-width:none;color:var(--ink-soft);text-shadow:none;margin:0}

/* 13 reply: the postbox on the wall, the form on the wall below */
.rb-rsvp{position:relative;width:min(100%,600px);margin:0 auto;container-type:inline-size;background:#d9d1c3}
.rb-reply-title,.rb-sent{position:absolute;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;text-align:left;z-index:2}
.scene-section .rb-reply-title h2,.scene-section .rb-sent h2{margin:.8cqw 0 0;font:italic 400 7.2cqw/1.05 var(--display);color:var(--ink);text-wrap:balance}
.rb-sent h2:focus{outline:none}
.rb-reply-title .rb-rule,.rb-sent .rb-rule{margin:1.6cqw 0}
.rb-sent.is-in{animation:rb-settle-in 1s ease-out both}
.rb-reply-cta{position:absolute;margin:0;display:flex;align-items:center;z-index:2}.rb-reply-cta .rb-button{white-space:nowrap;letter-spacing:.18em}
.rb-wall{position:relative;padding:28px 9% 30px;background:#e8e1d3 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='220' height='220'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' seed='7'/%3E%3CfeColorMatrix values='0 0 0 0 .55  0 0 0 0 .5  0 0 0 0 .42  0 0 0 .09 0'/%3E%3C/filter%3E%3Crect width='220' height='220' filter='url(%23n)'/%3E%3C/svg%3E");box-shadow:inset 0 14px 22px -16px rgba(60,50,30,.35)}
.rb-form{font:400 22px/1.15 var(--hand);color:var(--ink)}
.rb-form h3{font:italic 400 30px/1.08 var(--display);margin:2px 0 14px;overflow-wrap:anywhere;color:var(--ink)}
.rb-form h3:focus{outline:none}
.rb-form .progress{font:500 11px/1.3 var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--terra-deep);margin:0 0 8px}
.rb-form .guest{border:0;padding:0;min-width:0;margin:0 0 16px}
.rb-form .guest legend{font:600 26px/1.08 var(--hand);padding:0;margin:0 0 3px;overflow-wrap:anywhere;max-width:100%}
.rb-form .choices{display:grid;gap:0}.rb-form .attendance-choices{grid-template-columns:1fr 1fr;gap:10px}
.rb-form .choices label{display:flex;align-items:center;gap:8px;min-height:44px;cursor:pointer;overflow-wrap:anywhere;padding:2px 0;font:500 22px/1.08 var(--hand)}
.rb-form .choices input{appearance:none;-webkit-appearance:none;width:19px;height:19px;flex:none;margin:0;border:1.5px solid var(--ink);border-radius:50%;position:relative;background:transparent}
.rb-form .choices input:checked{background:radial-gradient(var(--ink) 44%,transparent 50%)}
.rb-form button{position:relative;min-height:44px;background:transparent;border:0;color:var(--ink);font:500 22px/1.12 var(--hand);cursor:pointer;padding:6px 0;overflow-wrap:anywhere;text-decoration:underline;text-underline-offset:4px}
.rb-form .primary{margin-left:auto;padding:0 20px;background:var(--ink);color:var(--cream);font:500 11px/1 var(--display);letter-spacing:.24em;text-transform:uppercase;text-decoration:none;border-radius:2px;box-shadow:0 2px 10px rgba(27,44,102,.25)}
.rb-form .primary:disabled{opacity:.6}
.rb-form .actions{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-top:12px}
.rb-form .reply-privacy{margin:14px 0 0;font:400 14.5px/1.45 var(--serif);color:var(--ink-soft)}.rb-form .reply-privacy a{color:inherit}
.rb-form .field-label{display:block;margin:6px 0 0;font:500 11px/1.4 var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--terra-deep)}
.rb-form .field-label span{text-transform:none;letter-spacing:0;font-style:italic}
.rb-form textarea,.rb-form input:not([type]),.rb-form .guest-name{display:block;width:100%;max-width:100%;min-height:44px;resize:none;overflow:hidden;border:0;border-bottom:1px solid rgba(27,44,102,.45);border-radius:0;padding:5px 0;color:var(--ink);background:transparent;font:500 22px/1.15 var(--hand);box-sizing:border-box}
.rb-form .send-error{margin:8px 0 0;font:500 16px/1.4 var(--serif);color:#8a2626}
.rb-form .error{font:600 20px/1.1 var(--hand);color:#8a2626;margin:4px 0 8px}
.rb-form p{overflow-wrap:anywhere;margin:0}
.rb-form .help{margin:10px 0;font:400 17px/1.45 var(--serif);color:var(--ink-soft)}
.rb-form .diet-field{padding-bottom:10px}.rb-form .find-field{margin:4px 0 10px}
/* v285 (audit INV-28-F1 / GST-06-F1): several events, one per row with its own tick; meal pickers in the design's type */
.rb-form .event-rsvp-choices{border:0;padding:0;margin:10px 0 0;min-width:0;display:grid;gap:0}
.rb-form .event-rsvp-choices legend{padding:0;margin:0 0 2px;font:500 11px/1.4 var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--terra-deep)}
.rb-form .event-rsvp-choices>p{margin:0 0 4px;font:400 15px/1.4 var(--serif);color:var(--ink-soft)}
.rb-form .event-rsvp-choices label{display:flex;align-items:flex-start;gap:12px;min-height:44px;padding:8px 0;cursor:pointer;border-bottom:1px solid rgba(27,44,102,.16)}
.rb-form .event-rsvp-choices input{appearance:none;-webkit-appearance:none;width:22px;height:22px;flex:none;margin:1px 0 0;border:1.5px solid var(--ink);border-radius:3px;background:transparent}
.rb-form .event-rsvp-choices input:checked{background:var(--ink);box-shadow:inset 0 0 0 3px var(--cream)}
.rb-form .event-rsvp-choices label span{display:grid;gap:2px;min-width:0}
.rb-form .event-rsvp-choices strong{font:500 22px/1.08 var(--hand);overflow-wrap:anywhere}
.rb-form .event-rsvp-choices small,.rb-form .event-rsvp-single small{font:400 16px/1.35 var(--serif);color:var(--ink-soft);overflow-wrap:anywhere}
.rb-form .event-rsvp-single{display:grid;gap:2px;margin:10px 0 0}.rb-form .event-rsvp-single strong{font:500 22px/1.08 var(--hand)}
.rb-form .or-field{display:grid;gap:2px;margin:10px 0 0}
.rb-form .or-field>span{font:500 11px/1.4 var(--display);letter-spacing:.18em;text-transform:uppercase;color:var(--terra-deep)}
.rb-form .or-field select{display:block;width:100%;max-width:100%;min-height:44px;border:0;border-bottom:1px solid rgba(27,44,102,.45);border-radius:0;padding:5px 0;background:transparent;color:var(--ink);font:500 21px/1.1 var(--hand)}
.rb-rsvp [hidden]{display:none!important}
.rb-rsvp :focus-visible{outline:2px solid var(--ink);outline-offset:3px}
.rb-rsvp .preview-note{margin:0;padding:0 9% 18px;text-align:center;font:400 14.5px/1.35 var(--serif);color:var(--ink-soft);background:#e8e1d3}
.rb-rsvp .preview-note b{font-weight:600}

/* 13 reply v2 (fix 10 Oct): the reply written on a sheet of paper right under the postbox; the sheet grows by a seamless
   paper strip between the render's top and bottom panels; on post it folds into a packet and goes into the slot; then
   the thank-you scene takes the letter box's place */
.rb-rsvp.rb-r2{width:min(100%,520px);background:#e9e2d4}
.rb-r2-scene{position:relative;container-type:inline-size;overflow:hidden;background:#e9e2d4}
.rb-r2-top,.rb-r2-bot{position:relative;z-index:1}
.rb-r2-top{aspect-ratio:1080/1460}.rb-r2-bot{aspect-ratio:1080/1180}
.rb-r2-top img,.rb-r2-bot img{display:block;width:100%;height:100%}
.rb-r2-ext{position:relative;z-index:1;height:0;background-repeat:repeat-y;background-size:100% auto;background-position:0 0}
.rb-r2-ext::after{content:'';position:absolute;inset:0;opacity:0;pointer-events:none;background:repeating-linear-gradient(180deg,rgba(255,255,255,0) 0,rgba(255,255,255,.18) 22px,rgba(60,50,30,.16) 46px,rgba(255,255,255,0) 48px);transition:opacity .25s}
.is-folding .rb-r2-ext{transition:height .75s cubic-bezier(.6,0,.3,1)}
.is-folding .rb-r2-ext::after{opacity:1}
.rb-r2-still,.rb-r2-film{position:absolute;left:0;top:0;width:100%;height:auto;aspect-ratio:1080/2640;z-index:3;display:block;pointer-events:none}
.rb-r2-film{opacity:0;transition:opacity .2s}.rb-r2-film.is-moving{opacity:1}
.rb-r2-sheet{position:absolute;z-index:2;color:var(--ink);transition:opacity .6s ease,transform .6s ease,filter .6s ease}
.is-lifting .rb-r2-sheet{opacity:0;transform:translateY(-10px);filter:blur(1.4px)}
.rb-r2 .rb-reply-title{position:static;display:block;text-align:center;margin:0 0 10px}
.scene-section .rb-r2 .rb-reply-title h2{margin:2px 0 4px;font:italic 400 clamp(26px,7.2cqw,38px)/1.05 var(--display)}
.rb-r2 .rb-reply-title .rb-body{font-size:clamp(14px,3.4cqw,17px)}
.rb-r2 .rb-form h3{font-size:clamp(22px,5.6cqw,30px)}
.rb-r2 .rb-form .attendance-choices{grid-template-columns:1fr;gap:0}
@container (min-width:440px){.rb-r2 .rb-form .attendance-choices{grid-template-columns:1fr 1fr;gap:10px}}
.rb-r2 .rb-sent{position:absolute;z-index:4;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}
.scene-section .rb-r2 .rb-sent h2{font-size:clamp(40px,13cqw,64px)}
.rb-r2 .rb-sent .rb-rule{margin:2cqw auto}
.rb-r2 .preview-note{background:#e9e2d4;padding-top:12px}
.rb-thanks-slot{position:relative}
.rb-r2.is-thanks .rb-thanks-slot{position:absolute;left:0;right:0;top:0;z-index:6}
.rb-r2.is-thanks .rb-r2-scene{opacity:0;transition:opacity 1.2s ease}
.rb-r2.is-thanks-done .rb-thanks-slot{position:relative}
.rb-r2.is-thanks-done .rb-r2-scene,.rb-r2.is-thanks .preview-note{display:none}
.rb-thanks-slot figure.rb-arrive{opacity:0;transition:opacity 1.2s ease}
.rb-thanks-slot figure.rb-arrive.is-arrived{opacity:1}
.rb-change{margin:0;padding:16px 16px 22px;text-align:center;background:linear-gradient(#f3ede2,#ece4d6)}
@media (prefers-reduced-motion:reduce){.rb-r2-sheet,.rb-r2.is-thanks .rb-r2-scene,.rb-thanks-slot figure.rb-arrive{transition:none}}
body.rb-still .rb-r2-sheet,body.rb-still .rb-r2.is-thanks .rb-r2-scene,body.rb-still .rb-thanks-slot figure.rb-arrive{transition:none}

/* 13 reply v3 (owner's reference, 10 Oct 2026 night): the reply written straight on the plaster wall at the LEFT, the
   yellow postbox at the RIGHT, lower down, under the bough (the 13_rsvp render). A long form carries the wall on below
   the render (13-rsvp-v3-wall.webp, a seamless tile of the render's own plaster at the render's scale). Narrow columns
   (.is-stacked, set by the script under 460px) put the form first and the postbox below it. */
.rb-rsvp.rb-r3{width:min(100%,520px);background:#c1b8aa var(--wall) 0 0/66.6667% auto repeat}
.rb-r3-scene{position:relative;container-type:inline-size;overflow:hidden;min-height:calc(100cqw * 1620 / 1080)}
.rb-r3-art{position:absolute;left:0;top:0;width:100%;aspect-ratio:var(--art-ratio);z-index:0;
 -webkit-mask-image:linear-gradient(#000 94%,transparent);mask-image:linear-gradient(#000 94%,transparent)}
.rb-r3-pic{position:absolute;inset:0}
.rb-r3-still,.rb-r3-film{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.rb-r3-film{opacity:0;transition:opacity .15s}.rb-r3-film.is-moving{opacity:1}
.rb-r3-sheet{position:relative;z-index:2;margin-left:8.3333%;width:41%;padding:11.5cqw 0 9cqw;color:var(--ink)}
.rb-r3 .rb-form{position:relative;isolation:isolate;transform-origin:50% 0;transition:opacity .16s ease,transform .45s cubic-bezier(.3,.7,.3,1),filter .45s ease}
.rb-r3 .rb-form::before{content:'';position:absolute;inset:-14px -16px -14px;z-index:-1;opacity:0;pointer-events:none;border-radius:1px;
 background:linear-gradient(172deg,#fbf7ee,#f1eadc);box-shadow:0 1px 2px rgba(60,45,25,.18),0 8px 18px -8px rgba(60,45,25,.35);transition:opacity .4s ease}
.rb-r3-sheet.is-paper .rb-form::before{opacity:1}
.rb-r3-sheet.is-torn .rb-form{transform:translateY(-5px) rotate(-.9deg);filter:drop-shadow(0 8px 9px rgba(60,45,25,.22))}
.rb-r3-sheet.is-torn .rb-form::before,.rb-r3-packet.is-torn{clip-path:polygon(0 7px,5% 2px,9% 6px,14% 1px,19% 5px,24% 0,30% 6px,35% 2px,41% 7px,46% 1px,52% 5px,57% 0,63% 6px,68% 2px,74% 7px,79% 1px,85% 5px,90% 0,95% 6px,100% 2px,100% 100%,0 100%)}
.rb-r3-sheet.is-gone .rb-form{opacity:0;visibility:hidden;transition:opacity .16s ease,visibility 0s .16s}
.rb-r3-sheet.is-posted .rb-form{visibility:hidden}
.rb-r3 .rb-reply-title{position:static;display:block;width:134%;margin:0 0 4.6cqw;text-align:left}
.rb-r3 .rb-reply-title .rb-caps{font-size:clamp(10px,1.8cqw,10.5px);letter-spacing:.18em}
.scene-section .rb-r3 .rb-reply-title h2{margin:1.2cqw 0 0;font:italic 400 clamp(26px,6.6cqw,36px)/1.05 var(--display);color:var(--ink)}
.rb-r3 .rb-reply-title .rb-rule{width:9cqw;height:1px;margin:2.4cqw 0 0;background:var(--terra-deep);opacity:.7}
/* the form, as on the reference: small rust capitals for the labels, the answers in an italic hand on thin rules */
.rb-r3 .rb-form{font:italic 400 clamp(15px,3.4cqw,18px)/1.2 var(--serif)}
.rb-r3 .rb-form .progress{font-size:clamp(10px,1.8cqw,10px);letter-spacing:.2em;margin:0 0 2.4cqw}
.rb-r3 .rb-form h3{font:italic 400 clamp(18px,4.4cqw,24px)/1.1 var(--display);margin:0 0 2.6cqw}
.rb-r3 .rb-form .guest{margin:0 0 3.6cqw}
.rb-r3 .rb-form .guest legend{font:italic 400 clamp(16px,3.6cqw,19px)/1.25 var(--serif);color:var(--ink);padding:0 0 3px;width:100%;border-bottom:1px solid rgba(27,44,102,.4);margin:0}
.rb-r3 .rb-form .rb-attending,.rb-r3 .rb-form .field-label{display:block;margin:2.2cqw 0 .4cqw;font:500 clamp(10px,1.9cqw,10.5px)/1.35 var(--display);letter-spacing:.2em;text-transform:uppercase;color:var(--terra-deep)}
.rb-r3 .rb-form .attendance-choices{grid-template-columns:1fr;gap:0}
.rb-r3 .rb-form .choices label{min-height:40px;gap:9px;padding:0;font:italic 400 clamp(15px,3.3cqw,17.5px)/1.15 var(--serif)}
.rb-r3 .rb-form .choices input{width:15px;height:15px;border-width:1.3px}
.rb-r3 .rb-form textarea,.rb-r3 .rb-form input:not([type]),.rb-r3 .rb-form .guest-name{min-height:40px;padding:4px 0;font:italic 400 clamp(15px,3.4cqw,18px)/1.2 var(--serif);border-bottom-color:rgba(27,44,102,.4)}
.rb-r3 .rb-form button{font:italic 400 clamp(14px,3.1cqw,16.5px)/1.15 var(--serif)}
.rb-r3 .rb-form .actions{justify-content:flex-start;flex-wrap:wrap;gap:6px 16px;padding-top:3.4cqw}
.rb-r3 .rb-form .primary{order:-1;margin:0;min-height:44px;padding:0 clamp(14px,3.6cqw,22px);font:500 clamp(10px,2.05cqw,11px)/1 var(--display);letter-spacing:.24em;text-transform:uppercase;font-style:normal}
.rb-r3 .rb-form .reply-privacy{margin:3cqw 0 0;font:400 clamp(11.5px,2.5cqw,13px)/1.45 var(--serif);font-style:normal;color:var(--ink-soft)}
.rb-r3 .rb-form ::placeholder{color:rgba(27,44,102,.4);font-style:italic;opacity:1}
.rb-r3 .rb-form .song-wrap{margin:0 0 1cqw}
.rb-r3 .rb-form .help{font-size:clamp(14px,3cqw,16px);font-style:normal}
.rb-r3 .rb-form .error{font:italic 400 clamp(14px,3cqw,16px)/1.2 var(--serif)}
/* the letter that folds and flies to the box (the render's own letter takes over at the slot) */
.rb-r3-packet{position:absolute;z-index:5;pointer-events:none;border-radius:1px;background:#f5f0e6;box-shadow:0 1px 2px rgba(60,45,25,.2),0 6px 12px -6px rgba(60,45,25,.4);
 background-image:repeating-linear-gradient(180deg,transparent 0 9%,rgba(27,44,102,.14) 9% 9.6%)}
.rb-r3-packet.is-folded{background-image:linear-gradient(180deg,rgba(60,45,25,.10),transparent 30%,transparent 70%,rgba(60,45,25,.08))}
.rb-r3-packet.is-sealed{clip-path:none;background-image:linear-gradient(32deg,transparent 49%,rgba(60,45,25,.16) 50%,transparent 51%),linear-gradient(-32deg,transparent 49%,rgba(60,45,25,.16) 50%,transparent 51%)}
.rb-r3-packet i{position:absolute;left:50%;top:50%;width:16%;aspect-ratio:1;border-radius:50%;transform:translate(-50%,-50%) scale(0);background:radial-gradient(circle at 40% 35%,#3f63c9,#1f3a95 60%,#162b70);transition:transform .25s ease}
.rb-r3-packet.is-sealed i{transform:translate(-50%,-50%) scale(1)}
.rb-r3-packet::after{content:'';position:absolute;right:7%;top:9%;width:13%;aspect-ratio:4/5;background:#2d55c4;opacity:0;transition:opacity .25s}
.rb-r3-packet.is-sealed::after{opacity:1}
.rb-r3 .rb-sent{position:absolute;z-index:4;display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;text-align:left}
.scene-section .rb-r3 .rb-sent h2{font-size:clamp(38px,10cqw,58px)}
.rb-r3 .rb-sent .rb-rule{width:9cqw;height:1px;margin:2.4cqw 0;background:var(--terra-deep);opacity:.7}
.rb-r3 .preview-note{background:transparent;padding-top:6px;color:var(--ink)}
/* stacked: the form on the wall first, then the postbox (the right of the render, from the swag down) */
.rb-r3.is-stacked .rb-r3-scene{min-height:0;display:flex;flex-direction:column}.rb-r3.is-stacked .rb-r3-art{order:2}
.rb-r3.is-stacked .rb-r3-sheet{margin:0;width:auto;padding:13cqw 8% 6cqw}
.rb-r3.is-stacked .rb-form::before{inset:-14px -4% -12px}
.rb-r3.is-stacked .rb-reply-title{width:100%}
.rb-r3.is-stacked .rb-reply-title .rb-caps{font-size:clamp(10px,2.7cqw,11px)}
.scene-section .rb-r3.is-stacked .rb-reply-title h2{font-size:clamp(30px,9.4cqw,40px)}
.rb-r3.is-stacked .rb-form{font-size:18px}
.rb-r3.is-stacked .rb-form .progress{font-size:10px}
.rb-r3.is-stacked .rb-form h3{font-size:24px}
.rb-r3.is-stacked .rb-form .guest legend{font-size:19.5px}
.rb-r3.is-stacked .rb-form .rb-attending,.rb-r3.is-stacked .rb-form .field-label{font-size:10.5px}
.rb-r3.is-stacked .rb-form .choices label,.rb-r3.is-stacked .rb-form textarea,.rb-r3.is-stacked .rb-form input:not([type]),.rb-r3.is-stacked .rb-form .guest-name{font-size:18px}
.rb-r3.is-stacked .rb-form .attendance-choices{grid-template-columns:1fr 1fr;gap:4px 12px}
.rb-r3.is-stacked .rb-form .primary{font-size:11px}
.rb-r3.is-stacked .rb-form .reply-privacy{font-size:13.5px}
.rb-r3.is-stacked .rb-r3-art{position:relative;aspect-ratio:var(--crop-ratio);overflow:hidden;-webkit-mask-image:linear-gradient(transparent,#000 9%);mask-image:linear-gradient(transparent,#000 9%)}
.rb-r3.is-stacked .rb-r3-pic{inset:auto;left:var(--crop-x);top:var(--crop-y);width:var(--crop-w);height:var(--crop-h)}

.rb-r3.is-thanks .rb-thanks-slot{position:absolute;left:0;right:0;top:0;z-index:6}
.rb-r3.is-thanks .rb-r3-scene{opacity:0;transition:opacity 1.2s ease}
.rb-r3.is-thanks-done .rb-thanks-slot{position:relative}
.rb-r3.is-thanks-done .rb-r3-scene,.rb-r3.is-thanks .preview-note{display:none}
@media (prefers-reduced-motion:reduce){.rb-r3 .rb-form,.rb-r3 .rb-form::before,.rb-r3.is-thanks .rb-r3-scene{transition:none}}
body.rb-still .rb-r3 .rb-form,body.rb-still .rb-r3 .rb-form::before,body.rb-still .rb-r3.is-thanks .rb-r3-scene{transition:none}

/* 14 thank-you: cream words on the dusk sky */
:is(#with-love,.rb-thanks-slot) [data-region="message"] p{margin:0}
:is(#with-love,.rb-thanks-slot) .rb-caps{color:#fff6e6}
.scene-section .rb-thanks-title{margin:.8cqw 0 0;font:italic 400 10.3cqw/1.02 var(--display);color:#fffaf0;text-shadow:0 1px 14px rgba(15,25,70,.35);text-wrap:balance}
:is(#with-love,.rb-thanks-slot) .rb-rule{margin:1.2cqw auto;background:linear-gradient(90deg,transparent,#f2c27a,transparent)}
.rb-thanks-text{max-width:70cqw;color:#f3ead8;text-shadow:0 1px 8px rgba(15,25,70,.35)}
.rb-sig{margin-top:1.6cqw!important;font:italic 400 clamp(16px,4.4cqw,24px)/1 var(--display);color:#fff6e6;text-shadow:0 1px 10px rgba(15,25,70,.35)}

/* the photo viewer and the letter: ivory and maiolica blue */
.rb-viewer{width:100vw;height:100dvh;max-width:none;max-height:none;margin:0;padding:0;border:0;background:rgba(18,30,64,.94);color:var(--cream)}
.rb-viewer::backdrop{background:rgba(18,30,64,.6)}
.rb-viewer figure{margin:0;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;padding:56px 16px 64px;box-sizing:border-box}
.rb-viewer img{max-width:100%;max-height:calc(100% - 50px);object-fit:contain;border:10px solid #fffaf0;box-shadow:0 18px 50px rgba(0,0,0,.4);touch-action:pinch-zoom}
.rb-viewer figcaption{font:italic 400 18px/1.3 var(--display);text-align:center;color:#fffaf0}
.rb-viewer figcaption[hidden]{display:none}
.rb-viewer-count{position:absolute;left:0;right:0;bottom:22px;margin:0;text-align:center;font:500 11px/1 var(--display);letter-spacing:.24em;text-transform:uppercase;color:rgba(255,250,240,.75)}
.rb-viewer button{position:absolute;display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(255,250,240,.55);border-radius:50%;background:rgba(255,250,240,.08);color:#fffaf0;font:400 26px/1 var(--display);cursor:pointer}
.rb-viewer button[hidden]{display:none}
.rb-viewer-close{top:12px;right:12px}.rb-viewer-prev{left:10px;top:50%;transform:translateY(-50%)}.rb-viewer-next{right:10px;top:50%;transform:translateY(-50%)}
.rb-viewer button:focus-visible{outline:2px solid #fffaf0;outline-offset:3px}
.rb-letter{width:min(100% - 32px,520px);max-height:85dvh;padding:30px 28px 24px;border:0;background:#fffaf0;color:var(--ink);box-shadow:0 20px 60px rgba(20,30,60,.35)}
.rb-letter::backdrop{background:rgba(18,30,64,.55)}
.rb-letter .rb-k{margin:0 0 6px;font:500 11px/1.2 var(--display);letter-spacing:.3em;text-transform:uppercase;color:var(--terra)}
.rb-letter h3{margin:0 0 12px;font:italic 400 26px/1.1 var(--display)}
.rb-letter .rb-msg{margin:0 0 10px;font:400 17px/1.5 var(--serif);color:var(--ink-soft)}
.rb-letter .rb-yr{font:500 11px/1 var(--display);letter-spacing:.24em;text-transform:uppercase;color:var(--terra)}
.rb-letter-close{margin-top:16px;min-height:44px;padding:0 18px;border:1px solid rgba(27,44,102,.45);background:none;font:500 11px/1 var(--display);letter-spacing:.24em;text-transform:uppercase;color:var(--ink);cursor:pointer}
/* v236: what was recorded, written on the ivory under the thank-you scene (js/signature-riviera-blossom-rsvp.js takeover):
   terracotta capitals, the guests' names in Playfair italic, their answers in Garamond, centred like the thank-you above it.
   Only there once the reply was saved; "Change your reply" sits right under it. */
.rb-recorded{width:min(100%,600px);margin:-1px auto 0;padding:12px 18px 0;box-sizing:border-box;text-align:center;background:linear-gradient(#fbf6ec,#f3ede2)}
.rb-recorded[hidden]{display:none}
.rb-recorded .rsvp-recorded{margin:0;padding:0;border:0;border-radius:0;text-align:center;color:var(--ink-soft)}
.rb-recorded .rsvp-recorded-head{margin:0 0 7px;font:500 14px/1.3 var(--display);letter-spacing:.14em;text-transform:uppercase;color:var(--terra-deep)}
.rb-recorded .rsvp-recorded ul{display:grid;gap:5px}
.rb-recorded .rsvp-recorded li{display:block;overflow-wrap:anywhere}
.rb-recorded li strong{display:block;margin:0 0 1px;font:italic 400 19px/1.2 var(--display);color:var(--ink)}
.rb-recorded li>span{font:400 16px/1.35 var(--serif);color:var(--ink-soft)}
.rb-recorded li>span+span::before{content:" · ";color:var(--terra)}
.rb-recorded .rr-k{font:inherit;color:inherit}
.rb-r3 .rb-thanks-slot:has(>.rb-recorded:not([hidden]))+.rb-change{padding-top:10px;padding-bottom:16px}
@media (min-width:700px){.rb-recorded{padding:16px 24px 2px}.rb-recorded li strong{font-size:21px}.rb-recorded li>span{font-size:17px}}
/* on a computer the thank-you scene steps down a little, so the scene, the record and "Change your reply" share one screen */
@media (min-width:700px){.rb-r3 .rb-thanks-slot:has(>.rb-recorded:not([hidden])){width:min(100%,600px,calc((100dvh - 250px) * 2 / 3));margin-inline:auto}}
/* v244 (usability study #2, #23): "Scroll to explore" at a readable 12 px. v285 (owner rule: no soft patch or glow behind
   words): it is a small cream card in the design's ink, like the other designs' cue, not white type on a dark scrim */
.signature-scroll-cue{padding:9px 16px 7px;border:1px solid rgba(255,255,255,.7);border-radius:999px;background:rgba(255,250,240,.88);color:var(--ink);text-shadow:none;font-size:12px;letter-spacing:.18em}
/* v285.1 (r17): one line at 360 too (left:50% left the card half the screen to wrap in), centred under the cake */
.signature-scroll-cue{width:max-content;max-width:calc(100vw - 32px);white-space:nowrap;text-align:center}

/* v281: the dietary question stands out (bold), open by default */
.diet-toggle{font-weight:700}

/* v285: "Made with Occasi" at the foot of the reply letter; hidden when the couple turns it off */
.rb-r3-sheet::after{content:'Made with Occasi';display:block;margin-top:14px;text-align:center;font:500 9px/1.4 var(--display);letter-spacing:.22em;text-transform:uppercase;color:var(--terra)}html.oc-made-off .rb-r3-sheet::after{content:none;display:none}
/* v285.1 (owner 2 Nov): the tray holds eight; the ninth to the twelfth on its page 2, reached by this line in the cobalt italic */
.rb-party-more{display:block;margin:10px auto 14px;min-height:44px;min-width:88px;padding:8px 16px;border:0;border-radius:0;background:none;font:italic 400 17px/1.2 var(--display);color:var(--ink);text-decoration:underline;text-decoration-color:rgba(180,97,58,.7);text-underline-offset:5px;cursor:pointer}
#wedding-party{scroll-margin-top:12px}
/* v285.1 (owner 2 Nov): the dress code's day pills hold any event name to 30 whole (they wrap), taps 44 px; five a row's page,
   the sixth to the twelfth on page 2 (js/signature-riviera-blossom-dress.js) */
.rb-days button{min-height:44px;max-width:100%;padding:6px 16px;line-height:1.25;overflow-wrap:anywhere;text-wrap:balance}
.rb-days button[hidden]{display:none}
.rb-days-more{display:block;margin:-4px auto 10px;min-height:44px;min-width:88px;padding:8px 16px;border:0;border-radius:0;background:none;font:italic 400 15px/1.2 var(--display);color:var(--ink);text-decoration:underline;text-decoration-color:rgba(180,97,58,.7);text-underline-offset:5px;cursor:pointer}
/* v285.1: a 24-letter role whose single word is wider than the tag breaks rather than run off the paper */
.rb-role{overflow-wrap:anywhere}
