/* Constructed menu materials. Text stays in normal flow on every object. */
.cmn-object{--cmn-ink:var(--ink,#3e5143);--cmn-paper:var(--paper,#fbf7eb);--cmn-accent:var(--accent,#8b6c63);position:relative;isolation:isolate;width:100%;max-width:720px;margin:25px auto 45px;color:var(--cmn-ink);overflow:visible}
.cmn-object,.cmn-object *{box-sizing:border-box;min-width:0}
.cmn-object svg{display:block;pointer-events:none;max-width:none;overflow:visible}
.cmn-definitions{position:absolute!important;width:0!important;height:0!important;overflow:hidden!important}
.cmn-surface{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.cmn-inscription{position:relative;z-index:3;overflow:visible!important;max-height:none!important;height:auto!important;text-align:center;color:inherit;font-size:16px;line-height:1.5;overflow-wrap:anywhere;white-space:normal}
.cmn-inscription :is(h1,h2,h3,p){color:inherit!important;overflow-wrap:anywhere}
.cmn-inscription :is(h1,h2){font:500 clamp(30px,5cqi,48px)/1.12 var(--serif,'Cormorant Garamond',Georgia,serif)!important;margin:0 0 22px;text-transform:none}
.cmn-inscription .feast-course{position:relative;display:block;margin:0!important;padding:0!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;overflow:visible!important;height:auto!important;max-height:none!important}
.cmn-inscription .course-index{display:block;font:500 16px/1.4 var(--sans,Arial,sans-serif);letter-spacing:.09em;margin-bottom:14px;opacity:.7}
.cmn-inscription .feast-course h3{font:500 clamp(28px,4.8cqi,39px)/1.15 var(--serif,'Cormorant Garamond',Georgia,serif)!important;margin:0 0 22px;text-transform:none}
.cmn-inscription .course-dishes{display:grid;gap:16px;margin:0;padding:0;overflow:visible!important;max-height:none!important}
.cmn-inscription .course-dishes p{font:400 17px/1.5 var(--serif,Georgia,serif);margin:0!important;white-space:pre-line;overflow:visible!important;max-height:none!important}
.cmn-maker-mark{position:absolute;z-index:3;left:24%;right:24%;bottom:8%;text-align:center;font:500 11px/1.5 var(--sans,Arial,sans-serif);letter-spacing:.14em;opacity:.55;overflow-wrap:anywhere}
.cmn-botanical{position:absolute;z-index:1;width:22%;height:auto}

/* Pearlescent scallop shell, with true radial ridges converging on its hinge. */
.cmn-shell{max-width:690px;min-height:510px;padding:25% 20% 29%;color:#695647;filter:drop-shadow(0 10px 8px #7360461c)}
.cmn-shell .cmn-inscription{color:#665246;text-shadow:0 1px 0 #fff7}
.cmn-shell .cmn-inscription h3{font-style:italic}
.cmn-shell .cmn-maker-mark{bottom:20%}

/* Printed gold follows an actual pointed leaf, away from the marginal veins. */
.cmn-leaf{max-width:660px;min-height:590px;padding:24% 21% 26%;color:#fff0c0;filter:drop-shadow(3px 12px 9px #304a2d26)}
.cmn-leaf .cmn-inscription{color:#fff0c0;text-shadow:0 1px 1px #263c28}
.cmn-leaf .cmn-inscription h3{font-style:italic}
.cmn-leaf .cmn-maker-mark{bottom:16%;color:#ecd59a}

/* An olive-wood serving board, with grain, end knots and a shaped handle. */
.cmn-vineyard-board{max-width:700px;padding:145px 15% 100px;color:#503b25;filter:drop-shadow(4px 10px 7px #4b361623)}
.cmn-board-material{position:absolute;inset:77px 0 0;z-index:0}
.cmn-board-handle{position:absolute;z-index:-1;top:0;right:8%;width:115px;height:135px}
.cmn-vineyard-board .cmn-inscription{color:#533d25;text-shadow:0 1px .4px #f2dba7,-.3px -.4px .2px #6f562a55}
.cmn-vineyard-board .cmn-maker-mark{bottom:40px;left:20%;right:20%}

/* Pressed petals are suspended below a clear, thick resin casting. */
.cmn-flower-resin{max-width:670px;min-height:490px;padding:17% 19% 23%;color:#3d5749;filter:drop-shadow(2px 9px 7px #3e55442a)}
.cmn-resin-flower-one{left:1%;top:2%;width:24%;transform:rotate(-13deg)}
.cmn-resin-flower-two{right:2%;bottom:2%;width:22%;transform:scaleX(-1) rotate(-9deg)}
.cmn-resin-petals{position:absolute;z-index:1;left:4%;bottom:7%;width:32%;height:auto;opacity:.82}
.cmn-resin-reflection{position:absolute;inset:4%;z-index:2;pointer-events:none;background:linear-gradient(111deg,transparent 9%,#fff8 10%,#fff0 17%,transparent 56%,#fff6 57%,transparent 64%);opacity:.45}
.cmn-flower-resin .cmn-maker-mark{bottom:10%}

/* Three individually formed tiers; fixed-aspect piping never stretches with long copy. */
.cmn-wedding-cake{--cake-edge:#c7ae8e;max-width:680px;padding:0 2%;margin-top:100px;color:#6b443e;filter:drop-shadow(0 14px 12px #76604822)}
.cmn-cake-top,.cmn-cake-tier,.cmn-cake-base{position:relative;background:linear-gradient(90deg,#d7c2a2 0%,#f2e4c9 6%,#fff6e4 25%,#fff8e8 47%,#efddbc 76%,#cab18b 100%);border:1px solid var(--cake-edge);border-top:0;border-radius:0 0 50% 50% / 0 0 14px 14px;box-shadow:inset 6px 0 9px #ffffff57,inset -7px 0 12px #9d7c4830,0 5px 4px #78563232;}
.cmn-cake-cap{position:absolute;inset:-20px -1px auto;height:41px;border-radius:50%;background:radial-gradient(ellipse at 35% 25%,#fffbef,#f7e9ce 67%,#ddc7a5 94%);border:1px solid #bea789;box-shadow:inset 0 2px 2px #fffdf7,inset 0 -3px 2px #e2ceb0;z-index:0;pointer-events:none;}
.cmn-cake-top{width:49%;height:115px;margin:0 auto -2px;z-index:5;}
.cmn-cake-top:after{content:'';position:absolute;left:8%;right:8%;bottom:-14px;height:15px;border-radius:50%;background:#6e4d2838;filter:blur(4px);z-index:-1;}
.cmn-cake-top .cmn-cake-cap{height:33px;top:-16px;}
.cmn-cake-florals{position:absolute;width:123%;height:auto;left:-12%;bottom:calc(100% - 29px);z-index:5;transform-origin:50% 95%;filter:drop-shadow(0 3px 1px #94715755);}
.cmn-cake-top-piping{position:absolute;top:4px;left:1%;width:98%;height:auto;z-index:3;}
.cmn-cake-tier{width:83%;margin:0 auto -2px;min-height:310px;padding:72px 11% 76px;z-index:4;}
.cmn-cake-tier:after{content:'';position:absolute;left:5%;right:5%;bottom:-13px;height:13px;border-radius:50%;background:#6e4d2844;filter:blur(4px);z-index:-1;}
.cmn-cake-piping{position:absolute;top:3px;left:1%;width:98%;height:auto;z-index:3;}
.cmn-cake-pearls{position:absolute;bottom:0;left:0;width:100%;height:auto;z-index:3;}
.cmn-cake-edge-fluting{position:absolute;inset:45px 9px 35px;border-inline:3px double #e2c9a37a;border-radius:0 0 50% 50% / 0 0 9px 9px;box-shadow:inset 2px 0 #fffaf07a,inset -2px 0 #aa855340;pointer-events:none;}
.cmn-wedding-cake .cmn-inscription{color:#744d44;text-shadow:0 1px .2px #fff7df;}
.constructed-menu-page .cmn-wedding-cake .crafted-menu-heading h2{font-style:italic!important;}
.cmn-cake-base{width:98%;height:80px;margin:0 auto;z-index:3;}
.cmn-cake-base .cmn-cake-cap{height:34px;top:-16px;}
.cmn-cake-satin-band{position:absolute;top:28px;bottom:14px;left:-1px;right:-1px;border-block:1px solid #a58252;border-radius:0 0 50% 50% / 0 0 13px 13px;background:linear-gradient(90deg,#927041,#e2c68b 15%,#ffefbd 34%,#d4b576 57%,#a47d42 92%,#d7b783);box-shadow:0 2px 2px #79593233,inset 0 2px #fff3c799,inset 0 -2px #99713e44;}
.cmn-cake-stand{position:relative;width:106%;max-width:none;height:auto;margin:-24px -3% 0;z-index:1;}
@media(prefers-reduced-motion:no-preference){.object-course-enter .cmn-cake-piping{animation:cmn-icing-reveal 1.4s .12s ease both;}.object-course-enter .cmn-cake-florals{animation:cmn-sugar-bloom 1.6s cubic-bezier(.2,.65,.3,1) both;}}
@keyframes cmn-icing-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0)}}
@keyframes cmn-sugar-bloom{from{opacity:.4;transform:scale(.88) rotate(-4deg)}to{opacity:1;transform:scale(1) rotate(0)}}

/* The plate is always circular; only an explicitly activated ceramic extension can grow. */
.cmn-porcelain{max-width:700px;container-type:inline-size;color:#45604d}
.cmn-porcelain-grid{display:grid;position:relative}
.cmn-plate-disc{grid-area:1/1;align-self:start;width:100%;height:auto;aspect-ratio:1;position:relative;z-index:1;filter:drop-shadow(0 8px 6px #40544122)}
.cmn-plate-writing{grid-area:1/1;align-self:center;padding:17% 18%;position:relative;z-index:3}
.cmn-plate-extension{display:none;position:absolute;z-index:0;left:15%;right:15%;top:65cqi;bottom:0;border:1px solid #a9bba3;border-radius:0 0 22px 22px;background:linear-gradient(90deg,#d6dfcf,#fdfbef 7% 93%,#d4ddca);box-shadow:inset 0 -5px 0 #d5decc,inset 4px 0 0 #f8f9ec,inset -4px 0 0 #f8f9ec,0 8px 9px #384d3420}
.cmn-porcelain.cmn-extended .cmn-plate-extension{display:block}
.cmn-porcelain .cmn-inscription .course-dishes{gap:13px}
.cmn-porcelain .cmn-inscription :is(h2,h3){margin-bottom:14px}
.cmn-porcelain .cmn-inscription .course-index{margin-bottom:10px}

/* Kraft packet, folded seams, jute and loose seeds. */
.cmn-forage{max-width:610px;min-height:520px;padding:25% 19% 23%;color:#564630;filter:drop-shadow(1px 8px 6px #4c391b1f)}
.cmn-forage .cmn-inscription{color:#57442f}
.cmn-twine-knot{position:absolute;z-index:4;top:8%;left:12%;width:37%;height:auto}
.cmn-seeds{position:absolute;left:11%;bottom:7%;width:30%;height:auto}
.cmn-forage .cmn-maker-mark{bottom:9%;left:40%;right:17%;font-size:10px}

/* An opened, striped canopy. Its seams and scallops surround lettering on the fabric. */
.cmn-terrace{max-width:730px;min-height:570px;padding:26% 19% 28%;color:#425547;filter:drop-shadow(1px 9px 9px #344b301f)}
.cmn-terrace .cmn-inscription{color:#435748;text-shadow:0 1px 0 #fff5}
.cmn-parasol-pin{position:absolute;left:calc(50% - 5px);top:10%;width:10px;height:10px;border-radius:50%;background:linear-gradient(90deg,#8e825a,#e7d8a7,#8c7c4e);box-shadow:0 1px 2px #364b342e;z-index:1}
.cmn-terrace .cmn-maker-mark{bottom:17%}

/* Engraved beach lettering and a moving strip of shallow foam. */
.cmn-coast{max-width:680px;min-height:470px;padding:18% 28% 20% 11%;color:#685036;overflow:hidden;border-radius:14% 3% 12% 3% / 3% 2% 4% 3%}
.cmn-coast .cmn-inscription{color:#685036;text-shadow:0 1px .4px #fff6d7,-.35px -.6px .25px #6e56215c}
.cmn-coast .cmn-inscription h3{font-style:italic}
.constructed-menu-page .cmn-coast .cmn-inscription h2{font:500 clamp(44px,9cqi,64px)/1.1 'Occasi Sand',cursive!important;letter-spacing:0!important;text-shadow:-.6px -.8px .4px #64472266,.6px 1px .4px #fff0d3!important}
.constructed-menu-page .cmn-coast .cmn-inscription .course-dishes p{font:500 clamp(24px,4.4cqi,29px)/1.2 'Occasi Sand',cursive!important;text-shadow:-.35px -.7px .3px #64472266,.5px .8px .3px #fff0d3!important}
.cmn-sand-grain{position:absolute;inset:0;z-index:1;pointer-events:none;background-image:radial-gradient(#846a4133 .55px,transparent .8px),radial-gradient(#fff8d9c9 .6px,transparent .9px);background-size:8px 11px,13px 17px;background-position:0 0,4px 7px;opacity:.42}
.cmn-beach-prints{position:absolute;z-index:2;right:14%;top:41%;width:47px;height:auto;opacity:.7}
.cmn-coast .cmn-maker-mark{bottom:8%;left:15%;right:34%}

/* A hand-blown conservatory bell jar with etched lettering and a brass base. */
.cmn-glass{max-width:680px;min-height:555px;padding:27% 21% 22%;color:#3d5b4d}
.cmn-glass .cmn-inscription{color:#3d594b;text-shadow:0 1px 0 #fff8}
.cmn-cloche-knob{position:absolute;left:39%;top:-28px;width:22%;height:90px;z-index:2}
.cmn-cloche-base{position:absolute;left:0;bottom:-7px;width:100%;height:87px;z-index:1}
.cmn-glass-glint{position:absolute;z-index:2;left:20%;right:20%;top:18%;bottom:16%;pointer-events:none;background:linear-gradient(111deg,transparent 35%,#ffffed5c 45%,transparent 58%);opacity:.55}

/* Oval ceramic cameo, beaded jade border and a softly modelled ivory face. */
.cmn-cameo{max-width:650px;min-height:570px;padding:24% 21% 25%;color:#51604a;filter:drop-shadow(2px 10px 8px #30483225)}
.cmn-cameo .cmn-inscription{color:#4e5c47}
.cmn-cameo .cmn-inscription h3{font-style:italic}
.cmn-cameo .cmn-maker-mark{bottom:15%}

@media(prefers-reduced-motion:no-preference){
 .object-course-enter .cmn-shell>.cmn-surface{animation:cmn-shell-light 1.2s ease both}
 .object-course-enter .cmn-leaf>.cmn-surface{animation:cmn-leaf-unfold 1.3s ease both;transform-origin:50% 94%}
 .object-course-enter .cmn-flower-resin .cmn-resin-reflection,.object-course-enter .cmn-glass .cmn-glass-glint{animation:cmn-material-glint 1.8s ease both}
 .object-course-enter .cmn-cake-top{animation:cmn-cake-settle .9s ease both}
 .object-course-enter .cmn-twine-knot{animation:cmn-twine-settle 1.1s ease both;transform-origin:50% 30%}
 .object-course-enter .cmn-terrace>.cmn-surface{animation:cmn-canopy-open 1.3s ease both;transform-origin:center 40%}
 .cmn-coast .cmn-tidal-foam{animation:cmn-foam-breathe 7s ease-in-out infinite alternate}
 .object-course-enter .cmn-coast .cmn-footstep{animation:cmn-print-step .75s ease both;animation-delay:calc(var(--cmn-step) * .3s)}
 .object-course-enter .cmn-cameo>.cmn-surface,.object-course-enter .cmn-plate-disc{animation:cmn-ceramic-light 1.2s ease both}
}
@keyframes cmn-shell-light{from{filter:brightness(.94)}to{filter:brightness(1)}}
@keyframes cmn-leaf-unfold{from{transform:perspective(1000px) rotateY(-8deg);filter:brightness(.9)}to{transform:perspective(1000px) rotateY(0);filter:brightness(1)}}
@keyframes cmn-material-glint{0%{opacity:0;transform:translateX(-8%)}45%{opacity:.85}100%{opacity:.45;transform:translateX(0)}}
@keyframes cmn-cake-settle{from{transform:translateY(-7px)}to{transform:translateY(0)}}
@keyframes cmn-twine-settle{from{transform:rotate(-5deg)}to{transform:rotate(0)}}
@keyframes cmn-canopy-open{from{transform:scaleX(.96);filter:brightness(.94)}to{transform:scaleX(1);filter:brightness(1)}}
@keyframes cmn-foam-breathe{from{opacity:.35;transform:translateX(2px)}to{opacity:.8;transform:translateX(-4px)}}
@keyframes cmn-print-step{from{opacity:0}to{opacity:1}}
@keyframes cmn-ceramic-light{from{filter:brightness(.94)}to{filter:brightness(1)}}

@container(max-width:600px){
 .cmn-inscription :is(h1,h2){font-size:32px}
 .cmn-inscription .feast-course h3{font-size:30px!important;margin-bottom:18px}
 .cmn-inscription .course-dishes p{font-size:16px;line-height:1.5}
 .cmn-inscription .course-dishes{gap:14px}
 .cmn-inscription .course-index{font-size:16px;letter-spacing:.05em;margin-bottom:12px}
 .cmn-shell{padding:24% 18% 30%;min-height:415px}
 .cmn-leaf{padding:27% 20% 29%;min-height:460px}
 .cmn-vineyard-board{padding:115px 13% 77px}
 .cmn-board-material{top:62px}.cmn-board-handle{width:90px;height:112px;right:6%}
 .cmn-flower-resin{padding:25% 17% 30%;min-height:450px}
 .cmn-wedding-cake{margin-top:77px}.cmn-cake-top{width:49%;height:69px;margin-bottom:-2px}.cmn-cake-tier{width:87%;padding:48px 10% 52px;min-height:265px}.cmn-cake-base{height:58px}.cmn-cake-base .cmn-cake-cap{height:25px;top:-12px}.cmn-cake-satin-band{top:21px;bottom:9px}.cmn-cake-cap{height:29px;top:-14px}.cmn-cake-top .cmn-cake-cap{height:22px;top:-10px}.cmn-cake-stand{margin-top:-13px}
 .cmn-plate-writing{padding:15% 17%}
 .cmn-porcelain .cmn-inscription .course-dishes{gap:10px}.cmn-porcelain .cmn-inscription .course-dishes p{line-height:1.4}
 .cmn-forage{padding:30% 18% 27%;min-height:465px}
 .cmn-terrace{padding:27% 17% 31%;min-height:460px}
 .cmn-coast{padding:22% 27% 26% 9%;min-height:420px}.cmn-beach-prints{width:35px;right:12%;top:43%}
 .cmn-glass{padding:29% 19% 28%;min-height:450px}.cmn-cloche-knob{height:66px;top:-21px}.cmn-cloche-base{height:62px;bottom:-5px}
 .cmn-cameo{padding:25% 20% 27%;min-height:450px}
}
@container(max-width:350px){
 .cmn-inscription .feast-course h3{font-size:28px!important}
 .cmn-maker-mark{font-size:10px}
 .cmn-shell{padding-inline:17%}.cmn-leaf{padding-inline:18%}.cmn-cameo{padding-inline:18%}.cmn-flower-resin{padding-inline:16%}
 .cmn-plate-writing{padding-inline:16%}
}
body:is(.motion-paused,[data-motion=paused],[data-site-motion=paused]) .cmn-object *,body:is(.motion-paused,[data-motion=paused],[data-site-motion=paused]) .cmn-object *::before,body:is(.motion-paused,[data-motion=paused],[data-site-motion=paused]) .cmn-object *::after{animation:none!important;transition:none!important}
body:is(.motion-paused,[data-motion=paused],[data-site-motion=paused]) .cmn-object .cmn-footstep{opacity:1!important}
@media(prefers-reduced-motion:reduce){.cmn-object *,.cmn-object *::before,.cmn-object *::after{animation:none!important;transition:none!important}.cmn-object .cmn-footstep{opacity:1!important}}
@media print{.cmn-object{overflow:visible!important;break-inside:avoid;print-color-adjust:exact;-webkit-print-color-adjust:exact}.cmn-object *{animation:none!important;transition:none!important}.cmn-inscription{overflow:visible!important;max-height:none!important}.cmn-object .cmn-footstep{opacity:1!important}}
