:root{--ink:#1e1a1b;--pink:#e0186f;--pale:#f6c8d9;--paper:#fbf6ee;--light:#fbe6ee;--line:#1e1a1b30;--display:'Anton',Impact,sans-serif;--body:'Manrope',Arial,sans-serif;--gutter:clamp(22px,4.5vw,80px)}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--ink);font:14px/1.65 var(--body);color:var(--ink)}h1,h2,h3,p{margin:0}h1,h2{font:400 clamp(52px,6.2vw,100px)/1.05 var(--display);letter-spacing:-.025em}h2 span{color:var(--pink)}button,input,select,textarea{font:inherit}button,a,summary{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button{cursor:pointer;color:inherit}a{color:inherit;text-decoration:none}img{display:block;width:100%;height:auto}a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--pink);outline-offset:5px}::selection{background:var(--pink);color:white}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.skip{position:fixed;top:-100px;left:20px;padding:12px;background:var(--pink);color:white;z-index:100}.skip:focus{top:10px}.section-index{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.small-note{font-size:11px;opacity:.65}
.header{height:80px;margin:0 var(--gutter);display:flex;gap:35px;align-items:center;color:var(--paper);border-bottom:1px solid #ffffff30;position:relative;z-index:20}.wordmark{font:400 36px/1 var(--display);letter-spacing:-.04em}.wordmark span{color:var(--pink)}.header-location{font-size:9px;line-height:1.5}.header nav{display:flex;gap:30px;margin-left:auto;font-size:12px}.header nav a:hover{color:var(--pale)}.header-contact{display:flex;align-items:center;gap:18px;padding:10px 17px;background:var(--pink);color:white;font-size:11px;font-weight:700;border-radius:4px}.header-contact span{font-size:19px;line-height:1}.header-contact:hover{background:#bd125a}.menu-button{display:none}
.hero{height:calc(100svh - 80px);min-height:610px;max-height:880px;padding:18px var(--gutter) 0;display:grid;grid-template-rows:auto auto minmax(250px,1fr) auto 38px;gap:14px;color:var(--paper);position:relative;isolation:isolate;overflow:hidden}.hero-topline{display:flex;justify-content:space-between;font-size:10px;letter-spacing:.02em}.hero-title{position:relative;display:flex;justify-content:space-between;gap:25px;font-size:clamp(75px,10.4vw,175px);line-height:1;letter-spacing:-.03em;white-space:nowrap;z-index:1}.hero-title span:first-child{color:var(--pink)}.hero-title span:last-child{color:var(--paper)}.hero-model-wrap{position:relative;min-height:0;width:min(640px,70%);height:100%;margin:0 auto;z-index:2}.hero-model-wrap model-viewer{display:block;height:100%;width:100%;--poster-color:transparent;background:transparent;touch-action:pan-y;outline:0}.hero-model-wrap model-viewer::part(default-progress-bar){display:none}.stage-shadow{position:absolute;bottom:2%;left:25%;width:50%;height:15px;border-radius:50%;background:#0008;filter:blur(12px)}.hero-loading{display:grid;place-content:center;height:100%;text-align:center;background:var(--ink)}.hero-loading>span{font:36px var(--display);color:var(--pink)}.hero-loading p{font-size:11px}.hero-loading img{height:100%;max-height:300px;object-fit:contain}.hero-side-note{position:absolute;right:var(--gutter);top:47%;writing-mode:vertical-rl;font-size:8px;letter-spacing:.17em;color:#c6adb9}.hero-bottom{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:25px;padding:4px 0 10px}.hero-bottom>p{font-size:14px;line-height:1.6}.hero-bottom>p span{font-size:12px;color:#d3bfc8}.hero-bottom>.action-link{justify-self:end}.spin-control{display:flex;align-items:center;gap:9px;border:0;background:none;color:#cbbbc2;font-size:9px;padding:12px 0}.spin-control>span{font-size:16px;color:white}.hero-scroll{display:flex;justify-content:space-between;align-items:center;border-top:1px solid #ffffff30;font-size:9px}.hero-scroll>span:last-child{font-size:20px}
.action-link,.underlined-link{display:inline-flex;align-items:center;justify-content:space-between;gap:25px;background:var(--ink);color:var(--paper);border:1px solid var(--ink);border-radius:5px;padding:16px 21px;min-height:54px;font-size:12px;font-weight:700;line-height:1.4;transition:background .2s,transform .2s;max-width:100%;width:fit-content}.action-link>span,.underlined-link>span{font-size:23px;line-height:1;font-weight:400}.action-link:hover,.underlined-link:hover{background:var(--pink);border-color:var(--pink);color:white;transform:translateY(-2px)}.hero .action-link{background:var(--pink);border-color:var(--pink);color:white}.hero .action-link:hover{background:var(--paper);border-color:var(--paper);color:var(--ink)}
.pieces{padding:58px var(--gutter) 38px;background:var(--paper);overflow:hidden}.pieces-heading{display:grid;grid-template-columns:1fr 1fr;gap:16px 40px;align-items:end}.pieces-heading>.section-index{grid-column:1/-1}.pieces-heading h2{font-size:clamp(60px,6.6vw,106px);line-height:1.02}.pieces-heading h2 br{display:none}.pieces-heading h2 span{-webkit-text-stroke:1px var(--ink);color:transparent;display:block}.pieces-intro{justify-self:end;max-width:350px;font-size:13px;padding-bottom:6px}.pieces-intro .small-note{margin-top:12px}.carousel-stage{height:415px;perspective:1600px;margin:5px calc(-1*var(--gutter)) 0;position:relative;overflow:hidden;cursor:grab;touch-action:pan-y;user-select:none}.carousel-stage:active{cursor:grabbing}.cake-ring{position:absolute;top:50%;left:50%;width:0;height:0;transform-style:preserve-3d}.ring-card{position:absolute;width:210px;height:278px;left:-105px;top:-139px;backface-visibility:hidden;overflow:hidden;box-shadow:0 12px 25px #1e1a1b15}.ring-card button{width:100%;height:100%;display:block;border:0;padding:0;background:var(--paper)}.ring-card img{width:100%;height:100%;object-fit:cover;pointer-events:none}.carousel-drag{display:none}.piece-controls{display:flex;justify-content:center;align-items:center;gap:25px;padding-top:18px;border-top:1px solid var(--line);position:relative}.piece-meta{min-width:230px;text-align:center}.piece-position{font-size:9px;color:var(--pink);letter-spacing:.1em;display:block}#piece-category{font-size:8px;text-transform:uppercase;letter-spacing:.1em}#piece-name{font-size:16px;font-weight:600;line-height:1.5}.piece-arrow{height:44px;width:48px;background:var(--ink);color:white;border:0;border-radius:5px;font-size:23px;flex:none}.piece-arrow:hover{background:var(--pink)}#carousel-pause{position:absolute;right:0;top:21px;width:35px;height:35px;border:1px solid var(--line);border-radius:4px;background:transparent;font-size:15px}#carousel-pause:hover{background:var(--pale)}
.atelier{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,80px);padding:55px var(--gutter);background:var(--pale);align-items:center}.portrait{position:relative;max-width:500px}.portrait img{height:490px;object-fit:cover;object-position:45% 35%;filter:saturate(.85)}.portrait>p{position:absolute;bottom:18px;left:20px;color:white;font-size:10px;text-shadow:0 1px 4px #000}.atelier-copy>.section-index{margin-bottom:23px}.atelier h2{font-size:clamp(52px,5.4vw,84px)}.atelier-text{max-width:460px;margin-top:24px;font-size:13px;line-height:1.8}.atelier-text>p:first-child{font-size:19px;line-height:1.5;margin-bottom:15px;letter-spacing:-.025em}.atelier .underlined-link{margin-top:23px}.atelier-signature{display:none}
.composition{padding:58px var(--gutter) 45px;background:var(--paper)}.composition-heading{display:grid;grid-template-columns:1fr 1fr;gap:20px 30px;align-items:center}.composition-heading h2{grid-column:1/-1;grid-row:2;font-size:clamp(52px,6.4vw,104px);white-space:nowrap;line-height:1.1}.composition-heading>p:last-child{font-size:12px;justify-self:end}.taste-workbench{display:grid;grid-template-columns:1fr 1.1fr;margin-top:30px;gap:clamp(25px,4vw,60px);align-items:start}.cutaway-panel{background:var(--light);border-radius:7px;padding:22px 22px 18px;min-width:0;--biscuit:#e3b978;--insert:#b51d45;--creme:#f7efe2}.cutaway-top{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.09em;font-weight:700;gap:15px}.cutaway-top>span:last-child{color:#916475;font-size:7px;white-space:nowrap}#cake-cutaway{display:block;width:100%;height:auto;max-height:365px;margin:5px 0 -12px;overflow:visible}.cake-side path{transition:fill .4s}.layer-biscuit{fill:#e3b978}.layer-insert{fill:#b51d45}.layer-creme{fill:#f7efe2}.slice-legend{display:flex;justify-content:center;flex-wrap:wrap;gap:8px 18px;font-size:10px}.slice-legend>span{display:flex;align-items:center;gap:7px}.slice-legend i{width:9px;height:9px;border-radius:50%;border:1px solid #1e1a1b20;flex:none}.slice-legend b{font-weight:600}.cutaway-note{font-size:9px;text-align:center;line-height:1.6;margin-top:13px;color:#785661}.choice-instruction{font-size:12px;font-weight:700;margin-bottom:15px}.recipe-group{border:0;border-top:1px solid var(--line);padding:10px 0 12px;margin:0;min-width:0}.recipe-group legend{float:left;width:100%;font:400 25px/1.3 var(--display);letter-spacing:-.01em;padding:0;margin-bottom:10px}.recipe-group legend>span{display:inline-block;font:10px var(--body);color:var(--pink);width:30px;vertical-align:middle}.recipe-options{clear:both;display:grid;grid-template-columns:repeat(2,1fr);gap:7px}.recipe-option{border:1px solid #1e1a1b25;border-radius:4px;padding:10px 11px;display:flex;align-items:center;gap:9px;position:relative;cursor:pointer;font-size:11px;font-weight:500;min-height:41px;background:transparent;transition:background .2s,border-color .2s}.recipe-option input{position:absolute;inset:0;opacity:0;width:100%;height:100%;margin:0;cursor:pointer}.choice-dot{width:12px;height:12px;border-radius:50%;background:var(--swatch);border:1px solid #1e1a1b20;flex:none}.recipe-option>i{font-style:normal;margin-left:auto;visibility:hidden;color:var(--pink);font-size:12px}.recipe-option:has(input:checked){border-color:var(--pink);background:#fbe6ee;font-weight:700}.recipe-option:has(input:checked)>i{visibility:visible}.recipe-option:has(input:focus-visible){outline:2px solid var(--pink);outline-offset:3px}.choice-description{clear:both;font-size:10px;line-height:1.5;color:#78666d;min-height:30px;padding-top:8px}.accord-footer{border-top:1px solid var(--line);padding-top:22px;margin-top:22px;display:flex;justify-content:space-between;align-items:center;gap:25px}.accord-footer .section-index{font-size:8px;color:#876d79;margin-bottom:6px}#recipe-summary{font-size:13px;font-weight:600}
.delivery-local{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(28px,5vw,80px);padding:50px var(--gutter);align-items:center;background:var(--light)}.delivery-photo{height:430px;position:relative;overflow:hidden;border-radius:4px}.delivery-photo img{height:100%;object-fit:cover;object-position:50% 54%}.delivery-photo>span{position:absolute;bottom:20px;left:20px;right:20px;color:white;font-size:8px;letter-spacing:.1em;text-shadow:0 1px 5px black}.local-copy h2{font-size:clamp(47px,4.7vw,74px);line-height:1.06;margin-top:20px}.local-copy>p:not(.section-index){font-size:13px;max-width:470px;margin-top:22px}.delivery-facts{display:flex;gap:25px;margin:23px 0;font-size:11px}.delivery-facts p{max-width:210px;border-left:2px solid var(--pink);padding-left:13px}.delivery-facts strong{display:block;font-size:12px;margin-bottom:4px}.delivery-facts span{display:block;color:#765d68}
.questions{background:var(--paper);padding:55px var(--gutter) 60px}.questions-heading{display:grid;grid-template-columns:1fr 1fr;align-items:end;gap:20px;margin-bottom:28px}.questions-heading>.section-index{grid-column:1/-1}.questions h2{font-size:clamp(52px,6vw,94px)}.questions h2 br{display:none}.questions .underlined-link{justify-self:end;margin-bottom:4px}.faq-list{border-top:1px solid var(--ink)}.faq-list details{border-bottom:1px solid var(--line);transition:background .2s}.faq-list details[open]{background:var(--light);border-color:var(--pink)}.faq-list summary{list-style:none;display:flex;align-items:center;gap:25px;padding:23px 20px;font-size:17px;font-weight:600;cursor:pointer;line-height:1.45;letter-spacing:-.025em}.faq-list summary::-webkit-details-marker{display:none}.faq-list summary>span{font-size:10px;color:var(--pink);letter-spacing:0;flex:none}.faq-list summary>i{display:grid;place-items:center;flex:none;margin-left:auto;width:32px;height:32px;background:var(--ink);border-radius:4px;color:white;font-style:normal;font-size:18px;font-weight:400}.faq-list details[open] summary>i{background:var(--pink);transform:rotate(180deg)}.faq-list details>p{font-size:13px;max-width:780px;padding:0 70px 25px;line-height:1.8}
.footer{background:var(--ink);color:var(--paper);padding:36px var(--gutter) 22px;overflow:hidden}.footer-invitation{display:flex;align-items:center;justify-content:space-between;gap:25px}.footer-invitation>p{font-size:9px;letter-spacing:.08em}.footer-invitation>a{font:400 clamp(30px,3.8vw,60px)/1 var(--display);display:flex;gap:30px;align-items:center}.footer-invitation>a>span{color:var(--pink)}.footer-invitation>a:hover{color:var(--pale)}.footer-brand{display:block;font:400 24.5vw/1.2 var(--display);letter-spacing:-.055em;white-space:nowrap;margin:15px -.4vw;color:var(--pale)}.footer-brand span{color:var(--pink)}.footer-bottom{display:flex;justify-content:space-between;gap:20px;border-top:1px solid #fff3;padding-top:20px;font-size:9px;color:#d7c9cf}
.image-viewer{position:fixed;inset:0;background:#1e1a1bf5;z-index:100;display:flex;align-items:center;justify-content:center;flex-direction:column;padding:65px 30px 35px;color:white}.image-viewer>img{width:auto;height:auto;max-width:90vw;max-height:78vh;object-fit:contain}.image-viewer>p{font-size:12px;margin-top:15px}.close-viewer{position:absolute;top:20px;right:25px;background:var(--pink);color:white;border:0;border-radius:4px;padding:10px 18px;font-size:12px}
#event-dialog{width:min(540px,calc(100% - 24px));max-height:calc(100svh - 24px);overflow:auto;padding:28px 32px;background:var(--paper);border:0;border-radius:7px;color:var(--ink)}#event-dialog::backdrop{background:#1e1a1baa;backdrop-filter:blur(5px)}.event-dialog-top{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:22px}.event-dialog-top>.section-index{font-size:8px}.close-event{border:0;background:var(--pale);padding:8px 12px;border-radius:4px;font-size:10px}.close-event>span{margin-left:7px}#event-dialog h3{font:400 70px/1 var(--display);letter-spacing:-.025em}#event-dialog h3>span{color:var(--pink)}.event-recipe{font-size:12px;margin:20px 0;padding-bottom:18px;border-bottom:1px solid var(--line)}.event-inputs{display:grid;grid-template-columns:1fr 1fr;gap:20px 15px}.event-inputs>label{font-size:11px;font-weight:600}.event-inputs input,.event-inputs select{display:block;width:100%;margin-top:8px;min-height:44px;border:1px solid var(--line);border-radius:4px;padding:10px;background:white;color:var(--ink);font-size:16px}.event-date-label{grid-column:1/-1}.event-date-label>span{font-size:9px;font-weight:400}.guest-note{font-size:10px;margin:18px 0}#message-result{margin-top:20px}#message-status{font-size:12px}#message-text{width:100%;border:1px solid var(--line);border-radius:4px;padding:12px;margin:13px 0;background:white;color:var(--ink);font-size:12px;line-height:1.6;resize:vertical}
@media(min-width:1700px){.hero-title{font-size:10vw}.taste-workbench{max-width:1500px;margin-left:auto;margin-right:auto}}
@media(max-width:1050px){.header{gap:22px}.header nav{gap:20px}.header-location{display:none}.hero-bottom{grid-template-columns:1fr auto}.spin-control{position:absolute;top:45%;left:var(--gutter);max-width:90px;flex-wrap:wrap;line-height:1.5}.portrait img{height:445px}.atelier h2{font-size:5.4vw}.atelier-text{font-size:12px}.atelier-text>p:first-child{font-size:17px}.recipe-options{gap:6px}.recipe-option{font-size:10px;padding:9px}.taste-workbench{gap:25px}.cutaway-panel{padding:17px 15px}.cutaway-top{font-size:7px}.delivery-photo{height:430px}.delivery-facts{flex-direction:column;gap:12px}.composition-heading h2{font-size:6.2vw}}
@media(max-width:760px){
 .header{height:72px;gap:16px}.wordmark{font-size:30px}.header-contact{margin-left:auto;font-size:9px;gap:10px;padding:9px 11px}.menu-button{display:block;background:transparent;color:var(--paper);border:1px solid #fff5;border-radius:4px;padding:8px 10px;font-size:10px}.menu-button i{display:none}.header nav{display:none;position:absolute;top:63px;left:0;right:0;padding:25px;background:var(--ink);border:1px solid #fff3;flex-direction:column;gap:22px;margin:0;font-size:14px}.header nav.is-open{display:flex}
 .hero{height:calc(100svh - 72px);min-height:635px;max-height:900px;padding-top:15px;grid-template-rows:auto auto minmax(230px,1fr) auto 34px;gap:12px}.hero-topline{font-size:8px}.hero-topline>span:last-child{display:none}.hero-title{font-size:17vw;display:block;line-height:1.02}.hero-title>span{display:block}.hero-title>span:last-child{text-align:right}.hero-model-wrap{width:100%;max-width:390px}.hero-side-note{right:18px;top:44%;font-size:6px}.hero-bottom{grid-template-columns:1fr;gap:12px;text-align:center;padding-bottom:5px}.hero-bottom>p{font-size:11px;line-height:1.5}.hero-bottom>p span{font-size:10px}.hero-bottom>.action-link{justify-self:center;min-height:48px;padding:13px 23px;min-width:200px}.spin-control{font-size:0;left:22px;top:48%;padding:12px;gap:0}.spin-control>span{font-size:17px}.hero-scroll{font-size:8px}.action-link,.underlined-link{font-size:11px;min-height:48px;padding:13px 17px;gap:22px}
 .pieces{padding-top:38px;padding-bottom:30px}.pieces-heading{grid-template-columns:1fr;gap:17px}.pieces-heading h2{font-size:13vw}.pieces-heading h2 span{display:inline}.pieces-intro{justify-self:start;max-width:320px;font-size:11px}.pieces-intro .small-note{margin-top:6px;font-size:9px}.section-index{font-size:8px}.carousel-stage{height:320px;perspective:1100px;margin-top:8px}.ring-card{width:160px;height:213px;left:-80px;top:-106.5px}.piece-controls{gap:15px;padding-top:16px;padding-right:34px}.piece-meta{min-width:0;flex:1;max-width:200px}#piece-name{font-size:12px}#piece-category{font-size:7px}.piece-position{font-size:8px}.piece-arrow{width:36px;height:38px;font-size:21px}#carousel-pause{width:28px;height:30px;top:21px;font-size:12px}
 .atelier{padding:35px var(--gutter);grid-template-columns:1fr;gap:27px}.portrait{width:100%;max-width:none}.portrait img{height:350px;object-position:45% 37%}.portrait>p{font-size:8px;left:15px;bottom:15px}.atelier-copy>.section-index{margin-bottom:17px}.atelier h2{font-size:12.6vw;line-height:1.08}.atelier-text{margin-top:20px;max-width:100%;font-size:12px}.atelier-text>p:first-child{font-size:17px;margin-bottom:12px}.atelier .underlined-link{margin-top:20px}
 .composition{padding:38px var(--gutter) 32px}.composition-heading{grid-template-columns:1fr;gap:17px}.composition-heading h2{font-size:12.5vw;white-space:normal;grid-column:1;grid-row:2}.composition-heading h2>span{display:block}.composition-heading>p:last-child{justify-self:start;font-size:11px}.composition-heading>p:last-child>br{display:none}.taste-workbench{grid-template-columns:1fr;gap:22px;margin-top:24px}.cutaway-panel{padding:17px 16px 15px}#cake-cutaway{max-height:295px;margin-top:8px}.cutaway-top{font-size:7px}.cutaway-top>span:last-child{font-size:6px}.slice-legend{font-size:9px;gap:7px 12px}.cutaway-note{font-size:8px;margin-top:11px}.choice-instruction{font-size:11px;margin-bottom:14px}.recipe-group{padding-top:11px;padding-bottom:13px}.recipe-group legend{font-size:25px}.recipe-options{gap:8px}.recipe-option{font-size:11px;padding:11px;min-height:44px}.choice-description{font-size:10px;min-height:0;padding-top:8px}.accord-footer{margin-top:8px;padding-top:20px;display:block}#recipe-summary{font-size:12px}.accord-footer .action-link{margin-top:16px;width:100%}
 .delivery-local{grid-template-columns:1fr;gap:28px;padding:35px var(--gutter)}.delivery-photo{height:280px}.delivery-photo img{object-position:50% 52%}.delivery-photo>span{font-size:7px;left:16px;bottom:15px}.local-copy h2{font-size:12vw;margin-top:18px}.local-copy>p:not(.section-index){font-size:12px;margin-top:19px}.delivery-facts{flex-direction:row;gap:16px;margin:22px 0}.delivery-facts strong{font-size:10px}.delivery-facts p{font-size:9px;padding-left:10px}.delivery-local .underlined-link{width:100%}
 .questions{padding:38px var(--gutter)}.questions-heading{grid-template-columns:1fr;gap:17px;margin-bottom:24px}.questions h2{font-size:12.6vw}.questions h2 br{display:block}.questions .underlined-link{justify-self:start;margin:2px 0 0}.faq-list summary{padding:18px 10px;gap:13px;font-size:13px;letter-spacing:-.02em}.faq-list summary>span{font-size:8px}.faq-list summary>i{width:28px;height:28px;font-size:17px}.faq-list details>p{font-size:11px;padding:0 18px 20px 36px}
 .footer{padding:30px var(--gutter) 20px}.footer-invitation{display:block}.footer-invitation>p{font-size:8px;margin-bottom:15px}.footer-invitation>a{font-size:8.4vw;justify-content:space-between}.footer-brand{font-size:24vw;margin:22px 0}.footer-bottom{flex-wrap:wrap;font-size:8px;gap:14px}.footer-bottom>p{width:100%}.footer-bottom>a:last-child{margin-left:auto}#event-dialog{padding:22px}#event-dialog h3{font-size:63px}.event-dialog-top>.section-index{font-size:7px}
}
@media(max-width:380px){.header{gap:10px}.header-contact{font-size:8px;padding:8px}.hero-title{font-size:16.7vw}.hero{min-height:625px}.recipe-option{padding:10px 8px;font-size:10px;gap:7px}.delivery-facts{flex-direction:column;gap:13px}.delivery-facts p{max-width:none}.delivery-facts strong{font-size:11px}}
@media(min-width:1101px){.recipe-options{grid-template-columns:repeat(4,1fr)}.recipe-option{min-height:47px;padding:9px;gap:7px;font-size:10px}.recipe-option>i{font-size:10px}.choice-description{min-height:31px}.recipe-group{padding-top:12px;padding-bottom:16px}.cutaway-panel{position:sticky;top:20px}.choice-instruction{margin-bottom:14px}}
@media(max-width:760px){.cutaway-panel{position:sticky;top:0;z-index:10;box-shadow:0 8px 12px #1e1a1b09}.cutaway-panel #cake-cutaway{height:180px;max-height:180px;margin:4px 0 0}.cutaway-note{display:none}.cutaway-panel{padding:12px 14px}.slice-legend{margin-top:2px}.taste-workbench{isolation:isolate}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition:none!important;animation:none!important}}
/* Return to the layered hero; reserve its lower strip for copy and buttons. */
.hero{display:block;position:relative;height:calc(100svh - 80px);min-height:670px;max-height:960px;padding-top:20px}
.hero-topline{position:relative;z-index:5}
.hero-title{position:absolute;inset:88px var(--gutter) auto;display:block;font-size:clamp(120px,15.6vw,255px);line-height:1.03;letter-spacing:-.035em;pointer-events:none}
.hero-title>span{display:block;white-space:nowrap}
.hero-title>span:last-child{font-size:.77em;text-align:right;margin-top:34px}
.hero-model-wrap{position:absolute;top:44px;bottom:145px;left:25%;right:25%;width:auto;height:auto;max-width:none;margin:0;z-index:3}
.hero-bottom{position:absolute;left:var(--gutter);right:var(--gutter);bottom:48px;z-index:5;display:grid;grid-template-columns:1fr auto 1fr;gap:24px;padding:14px 0;min-height:85px;background:var(--ink)}
.hero-bottom>.action-link{justify-self:end}.hero .spin-control{position:static;max-width:none;font-size:9px;flex-wrap:nowrap;padding:12px 0}
.hero-scroll{position:absolute;left:var(--gutter);right:var(--gutter);bottom:0;height:38px;z-index:5}
.hero-side-note{top:46%;right:14px;z-index:4}
/* Restore the earlier 3D cake, with the three ingredient groups in view. */
.cake-live-panel{padding-bottom:21px;border-radius:5px;min-width:0}
#recipe-canvas{height:350px;position:relative;min-width:0;width:100%;overflow:hidden;touch-action:pan-y}
#recipe-canvas canvas{position:relative;z-index:1}
.recipe-loading,.cake-live-fallback{position:absolute;inset:0;display:grid;place-content:center;text-align:center;font-size:11px;padding:25px;color:#785661}
.cake-live-panel .slice-legend{margin-top:8px}
.cake-live-panel .cutaway-note{margin-top:14px;display:block}
.contact-banner{display:grid;grid-template-columns:1.3fr 1fr;gap:clamp(35px,7vw,100px);padding:58px var(--gutter);background:var(--pale);align-items:center}
.contact-invitation>.section-index{margin-bottom:24px}
.contact-invitation h2{font-size:clamp(55px,6.1vw,98px);line-height:1.08}
.contact-copy{max-width:390px;justify-self:end}
.contact-copy>p:first-child{font-size:14px;line-height:1.8}
.contact-copy>.action-link{margin-top:25px;min-width:230px}
.contact-copy .contact-location{font-size:10px;color:#745963;margin-top:20px;line-height:1.7}
@media(min-width:1700px){.hero-title{font-size:14.2vw}}
@media(min-width:761px) and (max-width:1100px){.hero-title{top:110px;font-size:15vw}.hero-title>span:last-child{margin-top:50px}.hero-model-wrap{top:70px;left:22%;right:22%;bottom:160px}.hero-bottom{grid-template-columns:1fr auto}.hero .spin-control{position:absolute;left:0;top:-32px;font-size:8px}.contact-banner{gap:35px}.contact-copy>p:first-child{font-size:12px}.contact-copy>.action-link{min-width:210px}.contact-invitation h2{font-size:5.8vw}}
@media(max-width:760px){
 .hero{height:calc(100svh - 72px);min-height:650px;max-height:900px;padding-top:16px}
 .hero-title{top:75px;font-size:19.7vw;line-height:1.08}
 .hero-title>span:last-child{font-size:.73em;text-align:right;margin-top:48px}
 .hero-model-wrap{left:4%;right:4%;top:126px;bottom:174px}
 .hero-bottom{bottom:40px;min-height:125px;grid-template-columns:1fr;gap:13px;text-align:center;padding:12px 0}
 .hero-bottom>.action-link{justify-self:center;min-width:210px}
 .hero .spin-control{position:absolute;left:0;top:-40px;width:32px;min-height:32px;font-size:0;padding:9px;gap:0;background:var(--ink);border:1px solid #ffffff40;border-radius:4px}
 .hero .spin-control>span{font-size:14px}
 .hero-scroll{height:34px}
 .cake-live-panel{padding:13px 14px 14px;position:sticky;top:0;z-index:10}
 #recipe-canvas{height:225px}
 .cake-live-panel .slice-legend{font-size:9px;margin-top:1px;gap:8px 12px}
 .cake-live-panel .cutaway-note{display:none}
 .contact-banner{grid-template-columns:1fr;padding:38px var(--gutter);gap:25px}
 .contact-invitation>.section-index{margin-bottom:19px}
 .contact-invitation h2{font-size:12.5vw;line-height:1.1}
 .contact-copy{max-width:none;justify-self:stretch}
 .contact-copy>p:first-child{font-size:12px}
 .contact-copy>.action-link{margin-top:22px;width:100%}
 .contact-copy .contact-location{font-size:9px;margin-top:17px}
}
@media(max-width:380px){.hero-title{font-size:19.4vw}.hero-title>span:last-child{font-size:.72em}.hero-model-wrap{left:1%;right:1%;bottom:178px}.hero{min-height:640px}}

/* The original mark and an uncluttered, sculptural opening. */
.header{height:88px}.brand-logo{display:block;flex:none;width:64px;height:64px;border-radius:50%;overflow:hidden;background:white}.brand-logo img{width:100%;height:100%;object-fit:contain}.header nav{margin-left:auto}
.hero.hero-arch{height:calc(100svh - 88px);min-height:640px;max-height:960px;padding:0;isolation:isolate}
.hero-portal{position:absolute;right:var(--gutter);top:38px;bottom:0;width:45%;border-radius:50% 50% 0 0 / 29% 29% 0 0;background:var(--pink);z-index:0}
.hero-arch .hero-title{position:absolute;left:var(--gutter);right:auto;top:auto;bottom:145px;width:36%;font-size:clamp(90px,min(12vw,21svh),210px);line-height:.96;letter-spacing:-.035em;z-index:4;margin:0;transform:none}
.hero-arch .hero-title>span,.hero-arch .hero-title>span:last-child{display:block;font-size:1em;text-align:left;white-space:nowrap;margin:0;color:var(--paper)}
.hero-arch .hero-title>span:nth-child(2){color:var(--pink)}
.hero-arch .hero-model-wrap{position:absolute;left:42%;right:var(--gutter);top:0;bottom:12px;width:auto;height:auto;max-width:none;z-index:3}
.hero-arch .stage-shadow{bottom:3%;left:25%;width:50%;background:#1e1a1b50;height:18px}
.hero-arch .hero-bottom{position:absolute;left:var(--gutter);right:auto;top:auto;bottom:58px;display:block;min-height:0;padding:0;background:transparent;z-index:5}
.hero-arch .hero-bottom>.action-link{min-width:235px;min-height:58px;padding:18px 23px;font-size:12px;background:var(--paper);border-color:var(--paper);color:var(--ink)}
.hero-arch .hero-bottom>.action-link:hover{background:var(--pink);border-color:var(--pink);color:white}
.cake-ring{will-change:transform}.ring-card{transform-style:preserve-3d}.ring-card img{backface-visibility:hidden}.piece-controls{padding-right:0}
/* The three ingredients frame the cake again. */
.flavour-studio{display:grid;grid-template-columns:1fr 1.8fr 1fr;grid-template-rows:repeat(3,125px);gap:0 25px;margin-top:25px;align-items:center;position:relative}
.sculpture-stage{grid-column:2;grid-row:1/4;height:375px;min-width:0;position:relative}
.sculpture-stage #recipe-canvas{height:375px;width:100%}
.flavour-anchor{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;position:relative;min-width:0;background:transparent;border:0;padding:12px 0;text-align:left}
.anchor-biscuit{grid-column:1;grid-row:1}.anchor-insert{grid-column:3;grid-row:2}.anchor-creme{grid-column:1;grid-row:3}
.anchor-label{font-size:9px;font-weight:700;letter-spacing:.12em;margin-bottom:8px}
.flavour-anchor strong{font:400 clamp(29px,3.1vw,49px)/1.08 var(--display);letter-spacing:-.02em;text-transform:uppercase;max-width:100%}
.anchor-action{font-size:10px;display:flex;align-items:center;gap:12px;margin-top:12px;color:#80636e;border-bottom:1px solid #80636e60;padding-bottom:2px}
.anchor-action i{font-style:normal;font-size:17px;line-height:1}
.flavour-anchor[aria-pressed=true] strong,.flavour-anchor:hover strong{color:var(--pink)}
.flavour-anchor[aria-pressed=true] .anchor-label{color:var(--pink)}
.anchor-biscuit::after,.anchor-creme::after{content:'';position:absolute;right:-45px;top:50%;width:55px;height:1px;background:var(--line)}
.anchor-insert::before{content:'';position:absolute;left:-65px;top:50%;width:55px;height:1px;background:var(--line)}
.flavour-palette{display:grid;grid-template-columns:1fr 2.2fr;gap:40px;align-items:center;margin-top:15px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.palette-description>.section-index{color:var(--pink);margin-bottom:10px}.palette-description>p:last-child{font-size:12px;line-height:1.6;max-width:285px;min-height:40px}
.palette-options{border:0;padding:0;margin:0;min-width:0}#flavour-options{display:grid;grid-template-columns:repeat(4,1fr);gap:25px}
.palette-choice{display:flex;flex-direction:column;align-items:center;gap:11px;position:relative;cursor:pointer;text-align:center;min-width:0}
.palette-choice input{position:absolute;inset:0;width:100%;height:100%;opacity:0;margin:0;z-index:2;cursor:pointer}
.ingredient-sample{display:block;width:75px;height:75px;position:relative;border-radius:50%;outline:1px solid transparent;outline-offset:5px;transition:transform .2s,outline-color .2s}
.ingredient-sample img{width:100%;height:100%;border-radius:50%}.ingredient-sample>i{position:absolute;right:-3px;bottom:0;width:21px;height:21px;border-radius:50%;display:grid;place-items:center;background:var(--pink);color:white;font-style:normal;font-size:10px;opacity:0}
.palette-choice:has(input:checked) .ingredient-sample{outline-color:var(--pink)}.palette-choice:has(input:checked) .ingredient-sample>i{opacity:1}.palette-choice:has(input:focus-visible){outline:2px solid var(--pink);outline-offset:7px}.palette-choice:hover .ingredient-sample{transform:translateY(-3px)}
.palette-name{font-size:11px;line-height:1.5}.palette-choice:has(input:checked) .palette-name{font-weight:700;color:var(--pink)}
.accord-footer{border-top:0;margin-top:0}
@media(min-width:761px) and (max-width:1100px){.hero-arch .hero-title{width:35%;bottom:155px;font-size:12vw}.hero-arch .hero-model-wrap{left:40%;right:3%;bottom:12px}.hero-portal{right:3%;width:50%;top:55px}.flavour-studio{grid-template-columns:1fr 1.5fr 1fr;gap:0 15px}.flavour-anchor strong{font-size:3.4vw}.anchor-label{font-size:8px}.anchor-biscuit::after,.anchor-creme::after{right:-30px;width:35px}.anchor-insert::before{left:-45px;width:35px}.flavour-palette{gap:25px}#flavour-options{gap:16px}.ingredient-sample{width:65px;height:65px}}
@media(max-width:760px){
 .header{height:80px}.brand-logo{width:54px;height:54px}
 .hero.hero-arch{height:calc(100svh - 80px);min-height:610px;max-height:850px}
 .hero-arch .hero-title{top:24px;bottom:auto;left:var(--gutter);right:var(--gutter);width:auto;font-size:14.1vw;line-height:1.1;letter-spacing:-.025em;white-space:nowrap;text-align:center}
 .hero-arch .hero-title>span,.hero-arch .hero-title>span:last-child{display:inline;text-align:center;margin:0;font-size:1em}
 .hero-portal{top:115px;bottom:92px;left:var(--gutter);right:var(--gutter);width:auto;max-width:410px;margin:auto;border-radius:50% 50% 0 0 / 27% 27% 0 0}
 .hero-arch .hero-model-wrap{top:92px;bottom:89px;left:0;right:0;width:auto}
 .hero-arch .hero-bottom{bottom:23px;left:50%;right:auto;transform:translateX(-50%);padding:0;min-height:0;width:max-content}
 .hero-arch .hero-bottom>.action-link{min-width:230px;min-height:50px;padding:14px 21px;font-size:11px}
 .flavour-studio{grid-template-columns:repeat(3,1fr);grid-template-rows:290px auto;gap:0 15px;margin-top:15px;align-items:start}
 .sculpture-stage{grid-column:1/-1;grid-row:1;height:290px}.sculpture-stage #recipe-canvas{height:290px;max-width:400px;margin:auto}
 .flavour-anchor{grid-row:2;justify-content:flex-start;min-height:116px;padding:15px 0 12px}
 .anchor-biscuit{grid-column:1}.anchor-insert{grid-column:2}.anchor-creme{grid-column:3}
 .anchor-label{font-size:7px;letter-spacing:.05em;margin-bottom:8px}.flavour-anchor strong{font-size:clamp(20px,5.4vw,34px);line-height:1.1}
 .anchor-action{font-size:8px;gap:8px;margin-top:9px}.anchor-action i{font-size:13px}
 .anchor-biscuit::after,.anchor-creme::after,.anchor-insert::before{display:none}
 .flavour-palette{grid-template-columns:1fr;gap:20px;margin-top:0;padding:20px 0 24px}
 .palette-description{display:grid;grid-template-columns:80px 1fr;gap:15px;align-items:start}.palette-description>.section-index{margin:0;font-size:8px}.palette-description>p:last-child{font-size:10px;line-height:1.5;min-height:30px}
 #flavour-options{gap:13px}.ingredient-sample{width:57px;height:57px;outline-offset:4px}.ingredient-sample>i{width:18px;height:18px;font-size:9px}.palette-name{font-size:10px}.palette-choice{gap:11px}
 .accord-footer{padding-top:20px}
}

/* Central rotating cake in front of the large pink title. */
.hero.hero-signature{height:calc(100svh - 88px);min-height:650px;max-height:960px;padding:0;background:var(--ink)}
.hero-signature .hero-title{inset:75px var(--gutter) auto;width:auto;font-size:clamp(135px,min(18.4vw,29.2svh),298px);line-height:1.03;letter-spacing:-.035em;z-index:1;transform:none}
.hero-signature .hero-title>span,.hero-signature .hero-title>span:last-child{display:block;color:var(--pink);margin:0;font-size:1em;white-space:nowrap;text-align:left}
.hero-signature .hero-title>span:last-child{font-size:.75em;text-align:right;margin-top:25px;color:var(--paper)}
.hero-signature .hero-model-wrap{position:absolute;top:0;bottom:100px;left:25%;right:25%;width:auto;height:auto;max-width:none;z-index:3;transform:scale(.84);transform-origin:center}
.hero-signature .stage-shadow{bottom:1%;left:20%;width:60%;height:18px;background:#0008}
.hero-signature .hero-bottom{left:50%;right:auto;top:auto;bottom:27px;transform:translateX(-50%);display:block;padding:0;min-height:0;width:max-content;background:transparent;z-index:5}
.hero-signature .hero-bottom>.action-link{min-width:235px;min-height:54px;padding:16px 22px;background:var(--pink);border-color:var(--pink);color:white;font-size:12px}
.hero-signature .hero-bottom>.action-link:hover{background:var(--paper);border-color:var(--paper);color:var(--ink)}
/* Photographs of the supplied work give the page a lived-in rhythm. */
.photo-story{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:22px;background:var(--paper);padding:35px var(--gutter) 0}
.photo-story figure,.photo-diptych figure{margin:0;min-width:0;overflow:hidden}
.photo-story img{height:325px;object-fit:cover;width:100%}
.story-table img{object-position:50% 61%}.story-hands img{object-position:50% 44%}.story-finish img{object-position:50% 30%}
.photo-story figcaption{font-size:10px;color:#74656d;padding-top:12px;line-height:1.6}
.photo-diptych{display:grid;grid-template-columns:1.2fr 1fr;gap:24px;padding:0 var(--gutter) 42px;background:var(--pale)}
.photo-diptych img{height:340px;object-fit:cover;width:100%}
.photo-diptych figure:first-child img{object-position:50% 48%}.photo-diptych figure:last-child img{object-position:50% 39%}
@media(min-width:761px) and (max-width:1100px){.hero-signature .hero-title{top:90px;font-size:17.8vw}.hero-signature .hero-model-wrap{left:22%;right:22%;bottom:105px}.photo-story{gap:17px}.photo-story img{height:270px}.photo-diptych img{height:285px}}
@media(max-width:760px){
 .hero.hero-signature{height:calc(100svh - 80px);min-height:480px;max-height:820px;display:grid;grid-template-rows:auto minmax(0,1fr) auto;gap:10px;padding:24px var(--gutter);align-items:stretch}
 .hero-signature .hero-title{position:relative;inset:auto;width:100%;font-size:clamp(60px,21.4vw,110px);line-height:1.02;letter-spacing:-.035em;white-space:normal;align-self:start}
 .hero-signature .hero-title>span,.hero-signature .hero-title>span:last-child{text-align:center}
 .hero-signature .hero-title>span:last-child{font-size:.73em;margin-top:8px}
 .hero-signature .hero-model-wrap{position:relative;inset:auto;width:100%;height:100%;min-height:0;max-width:380px;max-height:440px;transform:none;justify-self:center;align-self:center}
 .hero-signature .hero-bottom{position:relative;inset:auto;transform:none;width:100%;max-width:360px;justify-self:center}
 .hero-signature .hero-bottom>.action-link{width:100%;min-width:0;min-height:52px;padding:15px 20px;font-size:12px}
 .photo-story{grid-template-columns:1fr 1fr;gap:19px 14px;padding:26px var(--gutter) 0}
 .story-table{grid-column:1/-1}.photo-story .story-table img{height:245px;object-position:50% 57%}
 .photo-story img{height:230px}.story-hands img{object-position:53% 40%}.story-finish img{object-position:50% 24%}
 .photo-story figcaption{font-size:9px;padding-top:8px}
 .photo-diptych{gap:14px;padding:0 var(--gutter) 30px;grid-template-columns:1fr 1fr}
 .photo-diptych img{height:230px}.photo-diptych figure:first-child img{object-position:50% 44%}
}


/* Vector icons keep the same clean strokes on every device. */
.ui-icon{display:inline-block;width:20px;height:20px;flex:none;vertical-align:middle;pointer-events:none}
.action-link>span,.underlined-link>span,.header-contact>span,.anchor-action>i{display:inline-flex;align-items:center;justify-content:center;flex:none}
.piece-arrow{display:grid;place-items:center}
.footer-invitation .ui-icon{width:1em;height:1em}
.footer-bottom a,.close-viewer,.close-event{display:inline-flex;align-items:center;gap:8px}
.footer-bottom .ui-icon,.close-viewer .ui-icon,.close-event .ui-icon,.anchor-action .ui-icon{width:16px;height:16px}

/* A wider ring keeps the mobile photographs curved and separated. */
@media(max-width:760px){
 .carousel-stage{height:340px;perspective:2200px}
 .ring-card{width:180px;height:240px;left:-90px;top:-120px}
}
.guest-composition{display:grid;grid-template-columns:auto minmax(160px,1fr) auto;align-items:center;gap:24px;padding:17px 0;margin:12px 0 26px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.guest-count{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:600}
.guest-count input{width:70px;min-height:44px;border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:4px;text-align:center;font:26px/1 var(--display);padding:6px}
#recipe-size-range{width:100%;min-width:0;accent-color:var(--pink);cursor:pointer;min-height:44px}
.guest-tiers{text-align:right;font-size:10px;line-height:1.5}
#tiers-label{display:block;font:28px/1.2 var(--display);color:var(--pink)}
@media(max-width:760px){.guest-composition{grid-template-columns:1fr auto;gap:6px 16px;padding:13px 0;margin:8px 0 22px}.guest-count{font-size:10px;gap:8px}.guest-count input{width:62px;font-size:24px}#recipe-size-range{grid-row:2;grid-column:1/-1}.guest-tiers{font-size:9px}#tiers-label{font-size:25px}}

/* ============ Mise à jour 2026-10 : lisibilité mobile, étapes, CTA collant, grain, entrée du titre ============ */
body .hero-signature .hero-badge, body .hero-badge {
  display: flex; justify-content: center; flex-wrap: wrap; gap: 6px 14px;
  margin: 0 0 14px; color: var(--paper);
  font: 700 11px/1.2 var(--body); letter-spacing: .12em; text-transform: uppercase;
}
.hero-badge span { display: inline-flex; align-items: center; gap: 14px; }
.hero-badge span + span::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--pink); }

/* ---------- Section étapes ---------- */
.steps { position: relative; padding: 58px var(--gutter) 46px; background: var(--ink); color: var(--paper); overflow: hidden; isolation: isolate; }
.steps h2 { margin: 16px 0 28px; }
.steps-track {
  list-style: none; margin: 0 calc(var(--gutter) * -1); padding: 0 var(--gutter) 6px;
  display: grid; grid-auto-flow: column; grid-auto-columns: 78%; gap: 14px;
  overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;
}
.steps-track::-webkit-scrollbar { display: none; }
.steps-track li {
  scroll-snap-align: start; padding: 22px 20px 24px;
  border: 1px solid #ffffff2b; border-top: 6px solid var(--pink); border-radius: 4px;
  background: #ffffff08;
}
.steps-track b { display: block; font: 400 76px/.9 var(--display); color: var(--pink); }
.steps-track h3 { margin: 14px 0 8px; font: 400 32px/1 var(--display); text-transform: uppercase; }
.steps-track p { font-size: 15px; line-height: 1.55; opacity: .85; }
.steps-hint { margin-top: 14px; font: 700 11px var(--body); letter-spacing: .12em; text-transform: uppercase; color: var(--pale); }
@media (min-width: 761px) {
  .steps-track { grid-auto-flow: row; grid-template-columns: repeat(4, 1fr); overflow: visible; }
  .steps-hint { display: none; }
}

/* ---------- CTA collé en bas, zone du pouce ---------- */
.sticky-cta {
  display: flex; border: 0; cursor: pointer; width: auto; position: fixed; z-index: 40;
  left: 14px; right: 14px; bottom: max(14px, env(safe-area-inset-bottom));
  min-height: 58px; padding: 0 22px; border-radius: 6px;
  justify-content: space-between; align-items: center;
  background: var(--pink); color: #fff;
  font: 800 14px/1 var(--body); letter-spacing: .02em;
  box-shadow: 0 14px 30px -10px #1e1a1bb0;
  transform: translateY(150%); transition: transform .45s cubic-bezier(.2,.9,.2,1);
}
.sticky-cta span { font-weight: 600; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; opacity: .85; }
.sticky-cta.is-shown { transform: none; }
@media (min-width: 761px) { .sticky-cta { left: auto; width: 340px; right: 28px; } }
@media (max-width: 760px) { .header-contact { display: none; } }
.footer { padding-bottom: 100px; }

/* ---------- grain de papier sur les fonds sombres ---------- */
.hero::after, .steps::after, .footer::after {
  content: ""; position: absolute; inset: 0; z-index: 4; pointer-events: none;
  opacity: .16; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
.footer { position: relative; isolation: isolate; }

/* ---------- titre du hero qui monte au chargement ---------- */
.hero-title > span { animation: rise 1s cubic-bezier(.2,.9,.2,1) both; }
.hero-title > span:last-child { animation-delay: .15s; }
.hero-badge { animation: rise 1s .35s cubic-bezier(.2,.9,.2,1) both; }
@keyframes rise { from { opacity: 0; transform: translateY(40%); } }

body .accord-footer .section-index, body .palette-description > .section-index { font-size: 11px; }
body .hero-bottom > .hero-badge, body .hero-bottom > .hero-badge span { font-size: 11px; }
body .palette-description > p:last-child { font-size: 14px; }
body .contact-copy > p:first-child { font-size: 16px; line-height: 1.65; }
body .contact-copy .contact-location { font-size: 13px; }

/* ---------- textes ≥ 11px et zones tactiles ≥ 44px sur mobile ---------- */
@media (max-width: 760px) {
  body .section-index { font-size: 11px; }
  body .menu-button { min-height: 44px; min-width: 64px; font-size: 12px; }
  body .header-contact { min-height: 44px; font-size: 12px; }
  body .action-link, body .underlined-link { font-size: 13px; }
  body .pieces-intro { font-size: 16px; max-width: none; }
  body .pieces-intro .small-note { font-size: 12px; }
  body .piece-arrow { width: 48px; height: 48px; }
  body #piece-name { font-size: 18px; }
  body #piece-category, body .piece-position { font-size: 11px; }
  body .portrait > p { font-size: 12px; }
  body .atelier-text { font-size: 16px; line-height: 1.6; }
  body .atelier-text > p:first-child { font-size: 21px; line-height: 1.35; }
  body .composition-heading > p:last-child { font-size: 16px; }
  body .guest-count { font-size: 16px; }
  body .guest-tiers { font-size: 12px; }
  body .anchor-label { font-size: 11px; }
  body .anchor-action { font-size: 12px; min-height: 44px; display: inline-flex; align-items: center; }
  body .palette-name { font-size: 13px; }
  body #ingredient-description { font-size: 15px; }
  body #recipe-summary { font-size: 16px; }
  body .contact-copy > p { font-size: 16px; }
  body .contact-location { font-size: 13px; }
  body .faq-list summary { font-size: 17px; min-height: 60px; }
  body .faq-list summary > span { font-size: 11px; }
  body .faq-list details > p { font-size: 15px; }
  body .footer-invitation > p { font-size: 11px; }
  body .footer-invitation > a { min-height: 48px; display: flex; align-items: center; }
  body .footer-bottom { font-size: 12px; }
  body .footer-bottom a { min-height: 44px; display: inline-flex; align-items: center; gap: 6px; }
  body .event-dialog-top > .section-index { font-size: 11px; }
  body .guest-note { font-size: 13px; }
}

@media (prefers-reduced-motion: reduce) {
  .hero-title > span, .hero-badge { animation: none; }
}

/* ============ Hero : CAKE'MA devant le gâteau (2026-10) ============ */
body .hero.hero-signature { display: block; position: relative; background: var(--ink); }
body .hero-signature .hero-title {
  position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap;
}
body .hero-signature .hero-model-wrap {
  position: absolute; inset: 2% 0 132px; width: auto; height: auto;
  max-width: 560px; max-height: none; margin: 0 auto; transform: none; z-index: 3;
  justify-self: normal; align-self: normal;
}
body .hero-signature .hero-bottom {
  position: absolute; left: 50%; right: auto; top: auto; bottom: 22px; transform: translateX(-50%);
  width: min(360px, calc(100% - 2 * var(--gutter))); max-width: none; z-index: 6;
}
body .hero-signature .hero-bottom > .action-link { width: 100%; }
.hero-wordmark {
  position: absolute; inset: 0 0 132px; z-index: 5; pointer-events: none;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  padding-top: 18%; text-align: center;
}
.hero-kicker {
  margin: 0 0 6px; padding: 0 16px; color: var(--paper);
  font: 800 12px/1.2 var(--body); letter-spacing: .2em; text-transform: uppercase;
  text-shadow: 0 1px 3px #0007, 0 1px 14px #0005;
}
.hero-word {
  margin: 0; color: var(--paper);
  font: 400 clamp(92px, 27vw, 300px)/.86 var(--display); letter-spacing: .01em;
  text-shadow: 0 10px 40px #0003;
  animation: hero-word-in 1.1s .2s cubic-bezier(.2,.9,.2,1) both;
}
@keyframes hero-word-in { from { opacity: 0; transform: translateY(18%) scale(.96); letter-spacing: .12em; } }
@media (min-width: 761px) {
  body .hero-signature .hero-model-wrap { inset: 0 0 120px; max-width: 640px; }
  .hero-wordmark { padding-top: 12%; }
  .hero-kicker { margin-bottom: 18px; font-size: 13px; }
}
@media (prefers-reduced-motion: reduce) { .hero-word { animation: none; } }

/* ============ Menu mobile « coupe de layer cake » (2026-10) ============ */
.tier-icon, .nav-thumb, .nav-filling, .nav-foot, .header nav .nav-extra { display: none; }
@media (max-width: 760px) {
  body .menu-button {
    margin-left: auto; position: relative; z-index: 3;
    display: grid; place-items: center; width: 48px; height: 48px; min-width: 0; min-height: 0;
    padding: 0; border: 0; border-radius: 0; background: transparent; color: var(--paper);
  }
  body .menu-button > span:first-child { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
  .tier-icon { display: block; position: relative; width: 26px; height: 22px; }
  .menu-button .tier-icon i { display: block; position: absolute; left: 0; width: 26px; height: 5px; transition: transform .4s cubic-bezier(.2,.9,.2,1), opacity .2s; }
  .tier-icon i:nth-child(1) { top: 3px; background: var(--pink); }
  .tier-icon i:nth-child(2) { top: 10px; background: var(--paper); }
  .tier-icon i:nth-child(3) { top: 17px; background: var(--paper); }
  .menu-button[aria-expanded="true"] .tier-icon i:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .menu-button[aria-expanded="true"] .tier-icon i:nth-child(2) { opacity: 0; transform: scaleX(0); }
  .menu-button[aria-expanded="true"] .tier-icon i:nth-child(3) { transform: translateY(-7px) rotate(-45deg); background: var(--pink); }

  .header .brand-logo { position: relative; z-index: 3; }
  body .header nav {
    display: flex; position: fixed; inset: 0; z-index: 2; margin: 0; border: 0;
    flex-direction: column; justify-content: flex-end; gap: 0;
    padding: 88px 0 calc(20px + env(safe-area-inset-bottom, 0px));
    background: var(--ink); font-size: 16px;
    visibility: hidden; transition: visibility 0s .45s;
  }
  body .header nav.is-open { visibility: visible; transition: none; }
  body .header nav .nav-row {
    display: flex; align-items: center; justify-content: space-between; gap: 16px;
    min-height: 84px; padding: 0 16px; background: #2a2425; color: var(--paper);
    font: 400 clamp(40px, 12vw, 56px)/1 var(--display); letter-spacing: -.02em; text-transform: uppercase;
    transform: translateX(-104%); transition: transform .5s cubic-bezier(.2,.9,.2,1), background .2s, color .2s;
    transition-delay: calc(var(--i) * 70ms);
  }
  body .header nav .nav-row:nth-of-type(even) { background: #241f20; transform: translateX(104%); }
  body .header nav.is-open .nav-row { transform: none; }
  body .header nav .nav-row:active, body .header nav .nav-row:focus-visible { background: var(--pink); color: #fff; outline: none; }
  body .header nav .nav-extra { display: flex; }
  .nav-label { min-width: 0; }
  .nav-thumb { display: block; flex: none; width: 56px; height: 56px; object-fit: cover; }
  .nav-filling { display: block; height: 7px; background: var(--paper); transform: scaleX(0); transform-origin: left; transition: transform .45s cubic-bezier(.2,.9,.2,1); }
  .nav-filling:nth-of-type(even) { background: var(--pink); transform-origin: right; }
  .header nav.is-open .nav-filling { transform: none; transition-delay: .25s; }
  .nav-foot { display: grid; gap: 14px; padding: 22px 16px 0; opacity: 0; transform: translateY(16px); transition: opacity .3s, transform .4s cubic-bezier(.2,.9,.2,1); }
  .header nav.is-open .nav-foot { opacity: 1; transform: none; transition-delay: .35s; }
  .nav-cta { display: flex; justify-content: space-between; align-items: center; min-height: 56px; padding: 0 20px; border: 0; border-radius: 0; background: var(--pink); color: #fff; font: 800 16px var(--body); cursor: pointer; }
  .nav-foot p { margin: 0; color: var(--paper); font: 500 15px/1.5 var(--body); }
  .nav-foot a { color: var(--paper); text-decoration: underline; text-underline-offset: 3px; display: inline-flex; min-height: 44px; align-items: center; }
  html.menu-open { overflow: hidden; }
  html.menu-open .sticky-cta { visibility: hidden; }
}
@media (prefers-reduced-motion: reduce) {
  body .header nav .nav-row, .nav-filling, .nav-foot, .tier-icon i { transition: none; }
}

/* Solution de secours e-mail dans la demande (Instagram reste le canal principal) */
.email-fallback { margin: 14px 0 0; font-size: 15px; line-height: 1.5; }
.email-fallback a { display: inline-flex; align-items: center; min-height: 44px; text-decoration: underline; text-underline-offset: 3px; font-weight: 700; }

/* ============ Corrections critique Impeccable (2026-10) ============ */
:root { --pink-ink: #c2125d; } /* rose plus profond pour les petits textes sur fond clair (5,5:1) */

/* Hero : promesse visible sous CAKE'MA, mot plus lisible sur le gâteau */
body .hero-signature .hero-wordmark .hero-title {
  position: static; display: block; align-self: center; inset: auto; width: auto; height: auto; overflow: visible; clip-path: none; transform: none;
  margin: 14px 0 0; padding: 0 16px; white-space: normal; text-align: center;
  font: 700 clamp(18px, 4.6vw, 24px)/1.3 var(--body); letter-spacing: 0; text-transform: none; color: var(--paper);
  text-shadow: 0 1px 3px #1e1a1bcc, 0 2px 18px #1e1a1bb3;
  animation: hero-word-in 1.1s .45s cubic-bezier(.2,.9,.2,1) both;
}
.hero-word { text-shadow: 0 0 2px #1e1a1b80, 0 3px 22px #1e1a1bc0, 0 0 70px #1e1a1b8c; }
.hero-kicker { text-shadow: 0 1px 3px #1e1a1bd9, 0 1px 16px #1e1a1bb3; }
@media (prefers-reduced-motion: reduce) { body .hero-signature .hero-wordmark .hero-title { animation: none; } }

/* Bouton du header (ordinateur) devenu un vrai bouton */
button.header-contact { border: 0; cursor: pointer; font-family: var(--body); }

/* Invités : message d'ajustement */
.guest-adjust { margin: 8px 0 0; font: 700 14px/1.4 var(--body); color: var(--pink-ink); }

/* Présentoir : bouton pause */
.carousel-toggle {
  display: block; margin: 14px auto 0; min-height: 44px; padding: 0 12px; border: 0; background: transparent;
  font: 600 14px var(--body); color: var(--ink); text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}

/* Petits textes : 12 px minimum partout, ordinateur compris */
body .section-index, body .anchor-label, body .piece-position, body #piece-category, body .faq-list summary > span,
body .hero-badge, body .hero-bottom > .hero-badge span, body .steps-hint, body .footer-invitation > p { font-size: 12px; }
body .anchor-action, body .palette-name, body .footer-bottom, body .footer-bottom a, body .close-event,
body .close-viewer, body .event-date-label span, body .guest-tiers, body .small-note, body .portrait > p,
body .contact-location { font-size: 13px; }
@media (min-width: 761px) { body .header nav a { font-size: 14px; } body .header-contact { font-size: 13px; } }

/* Contraste des petits textes */
body .piece-position, body .anchor-label, body .faq-list summary > span,
body .composition .section-index, body .palette-name { color: var(--pink-ink); }
body .accord-footer .section-index { color: #6e5560; }
body .contact-copy .contact-location { color: #5a3f49; }
body .portrait > p { background: #1e1a1bb3; color: #fff; padding: 4px 8px; }

/* Détails */
.footer-brand { letter-spacing: -.02em; }
.steps-track { scroll-padding-inline: var(--gutter); }
body .accord-footer .section-index, body .palette-description > .section-index, body .event-dialog-top > .section-index,
body .sticky-cta span, body .recipe-loading, body .ingredient-sample > i { font-size: 12px; }
body .guest-count { font-size: max(14px, 1em); }
@media (min-width: 761px) {
  body .guest-count { font-size: 15px; }
  body .header nav a { display: inline-flex; align-items: center; min-height: 44px; }
  body .header-contact { min-height: 44px; }
  body .footer-bottom a { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; }
}

/* Estimation de prix en direct (7 à 8 € la part) */
.guest-price { grid-column: 1 / -1; width: 100%; max-width: none; margin: 10px 0 0; font: 500 15px/1.45 var(--body); color: var(--ink); }
.guest-price strong { font-weight: 800; color: var(--pink-ink); }
.faq-list details > p strong { font-weight: 800; }

/* menu mobile : 6 couches désormais */
@media (max-width: 760px) { body .header nav .nav-row { min-height: 72px; } }


/* Saveurs : toute la carte d'Emma (pastille de couleur quand il n'y a pas d'illustration) */
.ingredient-sample { background: var(--swatch, transparent); box-shadow: inset 0 0 0 1px #1e1a1b1a; }
#flavour-options { grid-template-columns: repeat(auto-fill, minmax(76px, 1fr)); row-gap: 18px; }
body #flavour-options .ingredient-sample { width: 58px; height: 58px; }
@media (min-width: 761px) { #flavour-options { grid-template-columns: repeat(auto-fill, minmax(88px, 1fr)); } body #flavour-options .ingredient-sample { width: 64px; height: 64px; } }

/* Mobile : pas de bouton collant (prend trop de place), donc plus de réserve en bas */
@media (max-width: 760px) { .sticky-cta { display: none; } .footer { padding-bottom: 22px; } }
.ingredient-sample img[src*="photos/"] { object-fit: cover; }

/* ============ Brunch : section classique, la carte en deux colonnes ============ */
.brunch { display: grid; gap: 40px; padding: 64px var(--gutter); background: var(--ink); color: var(--paper); }
.brunch h2 { font-size: clamp(48px, 5.4vw, 84px); line-height: 1; color: var(--paper); }
.brunch h2 span { color: var(--pink); }
.brunch-intro { max-width: 28em; margin-top: 22px; font: 400 17px/1.65 var(--body); color: #ece3e7; }
.brunch-extra { max-width: 28em; margin-top: 14px; font: 400 15px/1.6 var(--body); color: #c9bcc2; }
.brunch-cta { display: inline-flex; align-items: center; gap: 18px; margin-top: 30px; min-height: 54px; padding: 14px 22px; border: 0; border-radius: 5px; background: var(--pink); color: #fff; font: 700 15px/1.3 var(--body); transition: background .2s, color .2s; }
.brunch-cta svg { width: 22px; height: 22px; }
.brunch-cta:hover { background: var(--paper); color: var(--ink); }
.brunch-cta:focus-visible { outline-color: var(--pale); }
.brunch-menu { display: grid; gap: 32px; align-content: start; padding: 32px 28px; border-radius: 8px; background: var(--paper); color: var(--ink); }
.brunch-menu h3 { margin: 0 0 12px; font: 400 32px/1 var(--display); letter-spacing: .01em; text-transform: uppercase; color: var(--pink-ink); }
.brunch-menu ul { list-style: none; margin: 0; padding: 0; }
.brunch-menu li { font: 500 16px/1.5 var(--body); padding: 6px 0; }
@media (prefers-reduced-motion: reduce) { .brunch-cta { transition: none; } }
@media (max-width: 760px) { .brunch-cta { width: 100%; justify-content: space-between; } }
@media (min-width: 761px) {
  .brunch { grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 64px; align-items: center; padding: 88px var(--gutter); }
  .brunch-menu { grid-template-columns: 1fr 1fr; gap: 40px; padding: 44px 48px; }
}
@media (max-width: 760px) { .brunch { padding: 52px var(--gutter); gap: 32px; } .brunch-menu { gap: 24px; } .brunch-menu li { padding: 4px 0; } }
/* Brunch : plus d'encadré, la carte directement sur le fond */
.brunch-menu { padding: 0; border-radius: 0; background: none; color: var(--paper); }
.brunch-menu h3 { color: var(--pink); font-size: 30px; margin-bottom: 14px; }
.brunch-menu li { color: #ece3e7; padding: 5px 0; }
@media (max-width: 760px) { .brunch-menu { grid-template-columns: 1fr 1fr; gap: 20px; } .brunch-menu h3 { font-size: 26px; } .brunch-menu li { font-size: 14px; line-height: 1.4; } }
@media (min-width: 761px) { .brunch-menu { padding: 0; align-self: center; } }
/* Brunch : juste le titre, le texte et le bouton */
.brunch-intro-col > .brunch-intro { margin-top: 0; }
@media (min-width: 761px) { .brunch { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: end; padding: 80px var(--gutter); } }
@media (min-width: 761px) { .brunch { align-items: start; } .brunch h2 { margin-top: -.08em; } }

/* Demande : l'occasion et la date, plus une case si la date n'est pas fixée */
body .event-inputs .event-date-label { grid-column: auto; }
.no-date { grid-column: 1 / -1; display: flex; align-items: center; gap: 10px; min-height: 44px; font: 500 14px/1.4 var(--body); cursor: pointer; }
.no-date input { width: 20px; height: 20px; margin: 0; accent-color: var(--pink-ink); }
#event-date:disabled { opacity: .45; }

/* ============ Saveurs : choix à gauche sur une ligne, gâteau à droite ============ */
body .flavour-studio { display: grid; grid-template-columns: minmax(0, 1fr); grid-template-rows: auto; gap: 18px; margin-top: 18px; align-items: center; }
body .sculpture-stage { grid-column: 1; grid-row: 1; height: 300px; }
body .sculpture-stage #recipe-canvas { height: 100%; max-width: 420px; margin: auto; }
.flavour-picks { grid-column: 1; grid-row: 2; min-width: 0; }
.anchor-row { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; }
.anchor-row:has(.anchor-extra:not([hidden])) { grid-template-columns: repeat(4, minmax(0, 1fr)); }
body .flavour-anchor { grid-row: auto; grid-column: auto; min-height: 0; padding: 6px 0; justify-content: flex-start; }
body .flavour-anchor::before, body .flavour-anchor::after { display: none; }
body .flavour-anchor strong { font-size: clamp(20px, 5.4vw, 40px); }
.tier-pick { margin-bottom: 18px; }
.tier-note { max-width: 34em; margin-bottom: 12px; font: 400 15px/1.5 var(--body); }
.tier-note strong { font-weight: 800; color: var(--pink-ink); }
.tier-tabs { display: inline-grid; grid-auto-flow: column; grid-auto-columns: minmax(72px, 1fr); padding: 4px; gap: 4px; border-radius: 8px; background: #1e1a1b12; }
.tier-tabs button { min-height: 44px; padding: 0 16px; border: 0; border-radius: 6px; background: transparent; color: var(--ink); font: 700 15px/1 var(--body); transition: background .2s, color .2s; }
.tier-tabs button:hover { background: #1e1a1b14; }
.tier-tabs button[aria-pressed="true"] { background: var(--ink); color: var(--paper); }
@media (min-width: 761px) {
  body .flavour-studio { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 0 56px; margin-top: 28px; }
  .flavour-picks { grid-column: 1; grid-row: 1; }
  body .sculpture-stage { grid-column: 2; grid-row: 1; height: 440px; }
  body .sculpture-stage #recipe-canvas { max-width: none; }
  .anchor-row { gap: 24px; }
  body .flavour-anchor strong { font-size: clamp(26px, 2.6vw, 42px); }
}
@media (prefers-reduced-motion: reduce) { .tier-tabs button { transition: none; } }

/* Demande : le champ date ne déborde plus sur mobile */
body .event-inputs { grid-template-columns: repeat(2, minmax(0, 1fr)); }
body .event-inputs > label { min-width: 0; }
body .event-inputs input, body .event-inputs select { min-width: 0; max-width: 100%; }
#event-date { -webkit-appearance: none; appearance: none; min-height: 44px; }
/* Grand cupcake au trait, à moitié coupé par le bord droit de sa section.
   Rose sur fond sombre, encre sur fond clair ; il passe derrière le contenu. */
#etapes, #brunch { position: relative; isolation: isolate; }
.cupcake-deco { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; color: var(--ink); opacity: .5; }
#etapes .cupcake-deco, #brunch .cupcake-deco { color: var(--pink); opacity: .7; }
.cupcake-deco svg { position: absolute; width: 220px; height: 244px; right: -110px; stroke-width: 1.3; }
.cupcake-deco svg * { vector-effect: non-scaling-stroke; }
#etapes .cupcake-deco svg { bottom: -70px; }
#brunch .cupcake-deco svg { bottom: -40px; }
@media (min-width: 761px) {
  .cupcake-deco svg { width: 320px; height: 355px; right: -160px; }
  #etapes .cupcake-deco svg { top: -60px; bottom: auto; }
  #brunch .cupcake-deco svg { bottom: -40px; }
}
/* Étapes : le cupcake pend à l'envers depuis le haut de la section */
#etapes .cupcake-deco svg { top: -150px; bottom: auto; right: 6%; transform: rotate(180deg); }
@media (min-width: 761px) { #etapes .cupcake-deco svg { top: -190px; bottom: auto; right: 34%; } }
#etapes .cupcake-deco svg { top: -80px; right: -60px; }
@media (min-width: 761px) { #etapes .cupcake-deco svg { top: -120px; right: 18%; } }

/* Fonds clairs : un outil ou un gâteau au trait, coupé par un bord (encre ; rose foncé sur le rose d'Emma) */
#pieces, #emma, #composition, #questions { position: relative; isolation: isolate; }
.pastry-deco { position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; color: var(--ink); opacity: .4; }
#emma .pastry-deco { color: var(--pink-ink); opacity: .55; }
.pastry-deco svg { position: absolute; stroke-width: 1.3; }
.pastry-deco svg * { vector-effect: non-scaling-stroke; }
.deco-presentoir svg { width: 220px; height: 226px; left: -70px; bottom: -40px; }
.deco-poche svg { width: 200px; height: 210px; right: -60px; bottom: -30px; transform: rotate(-35deg); }
.deco-part svg { width: 200px; height: 190px; right: -80px; top: 40px; }
.deco-spatule svg { width: 260px; height: 130px; right: -70px; bottom: 10px; transform: rotate(-18deg); }
@media (min-width: 761px) {
  .deco-presentoir svg { width: 320px; height: 328px; left: -110px; bottom: -70px; }
  .deco-poche svg { width: 300px; height: 315px; right: -90px; bottom: -60px; }
  .deco-part svg { width: 300px; height: 285px; right: auto; left: -130px; top: auto; bottom: 150px; }
  .deco-spatule svg { width: 380px; height: 190px; right: -110px; bottom: 30px; }
}
@media (max-width: 760px) { .deco-part, .deco-spatule { display: none; } .deco-poche svg { bottom: -110px; right: -80px; } }
@media (min-width: 761px) {
  .deco-part svg { width: 220px; height: 210px; left: -110px; top: 250px; bottom: auto; }
  .deco-spatule svg { width: 260px; height: 130px; right: auto; left: 45%; top: 30px; bottom: auto; transform: rotate(-12deg); }
}
/* v2 : poche à douille redessinée, fouet sur la FAQ */
.deco-poche svg { width: 110px; height: 204px; right: 14px; bottom: auto; top: auto; transform: rotate(28deg); }
#emma .deco-poche svg { bottom: 10px; }
.deco-fouet svg { width: 110px; height: 213px; transform: rotate(62deg); }
@media (max-width: 760px) { .deco-fouet { display: none; } #emma .deco-poche svg { bottom: 4px; right: 4px; width: 80px; height: 148px; } }
@media (min-width: 761px) {
  #emma .deco-poche svg { width: 150px; height: 278px; right: 50px; top: 70px; bottom: auto; }
  .deco-fouet svg { left: 47%; top: -40px; }
}
@media (max-width: 760px) { .deco-poche { display: none; } }
/* 4 choix (avec la garniture) : 2 × 2 sur mobile */
@media (max-width: 760px) { .anchor-row:has(.anchor-extra:not([hidden])) { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 6px; } }
.ingredient-sample:not(:has(img)) { box-shadow: inset 0 0 0 1px #1e1a1b26; }
@media (min-width: 761px) { .anchor-row:has(.anchor-extra:not([hidden])) { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 18px; max-width: 460px; } }

/* Hero : la vraie vidéo d'un gâteau d'Emma qui tourne (remplace le modèle 3D) */
.hero-model-wrap .hero-video { display: block; width: 100%; height: 100%; object-fit: contain; background: var(--ink); }
.hero-model-wrap .stage-shadow { display: none; }
/* bords de la vidéo fondus dans le fond : aucune démarcation visible */
.hero-model-wrap .hero-video { -webkit-mask-image: radial-gradient(ellipse 50% 50% at 50% 50%, #000 78%, transparent 100%); mask-image: radial-gradient(ellipse 50% 50% at 50% 50%, #000 78%, transparent 100%); }
/* Poche à douille : à moitié sortie par le bord droit, plus discrète */
@media (min-width: 761px) { #emma .deco-poche svg { right: -70px; top: 90px; } #emma .pastry-deco { opacity: .35; } }

/* Section Emma : pile de tirages photo, celle du dessus glisse et repasse dessous */
.photo-stack { position: relative; aspect-ratio: 4 / 5; height: auto; touch-action: pan-y; cursor: grab; outline: none; isolation: isolate; }
.photo-stack img { position: absolute; inset: 0; width: 100%; height: 100% !important; object-fit: cover; object-position: 50% 30%; filter: none; border: 8px solid #fff; box-shadow: 0 14px 30px -12px #1e1a1b66; transform: translate(var(--x, 0), var(--y, 0)) rotate(var(--r, 0deg)); transition: transform .7s cubic-bezier(.2, .8, .2, 1), opacity .4s; user-select: none; -webkit-user-drag: none; }
.photo-stack img.is-leaving { transition: transform .45s cubic-bezier(.5, 0, .75, 0); }
.photo-stack:focus-visible { outline: 3px solid var(--pink-ink); outline-offset: 10px; }
.photo-stack .stack-dots { position: absolute; left: 0; right: 0; bottom: -34px; display: flex; justify-content: center; gap: 8px; }
.photo-stack .stack-dots i { width: 7px; height: 7px; border-radius: 50%; background: #1e1a1b40; transition: background .3s, transform .3s; }
.photo-stack .stack-dots i.on { background: var(--pink-ink); transform: scale(1.3); }
@media (max-width: 760px) { .photo-stack { width: 84%; margin: 0 auto 40px; } }
@media (min-width: 761px) { .photo-stack { max-width: 420px; margin-bottom: 30px; } }
@media (prefers-reduced-motion: reduce) { .photo-stack img { transition: none; } }
/* points de la pile : plus bas, bien détachés des photos */
.photo-stack .stack-dots { bottom: -48px; }
@media (max-width: 760px) { .photo-stack { margin-bottom: 56px; } }
@media (min-width: 761px) { .photo-stack { margin-bottom: 44px; } }
/* Section Emma : un ruban rose au trait fin, noué, dans le coin en haut à droite */
#emma .deco-ruban { color: var(--pink-ink); opacity: .55; }
.deco-ruban svg { width: 260px; height: 195px; right: -40px; top: -20px; transform: rotate(-12deg); stroke-width: 1.4; }
@media (min-width: 761px) { .deco-ruban svg { width: 420px; height: 315px; right: -70px; top: -40px; } }
@media (max-width: 760px) { .deco-ruban svg { right: -90px; top: -60px; } }
@media (max-width: 760px) { .deco-ruban { display: none; } }
/* points : tous de la même taille, seule la couleur indique la photo affichée */
.photo-stack .stack-dots i { width: 8px; height: 8px; flex: none; }
.photo-stack .stack-dots i.on { transform: none; }
@media (min-width: 761px) { .deco-ruban svg { right: -200px; top: -30px; } }
/* Section Emma : pétales de rose au trait, éparpillés et coupés par le bord droit */
#emma .deco-petales { color: var(--pink-ink); opacity: .6; }
.deco-petales svg { width: 300px; height: 315px; right: -70px; top: -30px; stroke-width: 1.3; }
@media (min-width: 761px) { .deco-petales svg { width: 400px; height: 420px; right: -110px; top: -50px; } }
@media (max-width: 760px) { .deco-petales { display: none; } }
@media (min-width: 761px) { .deco-petales svg { width: 420px; height: 480px; right: -150px; top: -40px; } }
@media (min-width: 761px) { .deco-petales svg { right: -80px; } }
/* Ordi : la promesse passait sur le plateau du gâteau qui tourne ; masquée à l'écran, gardée pour Google et les lecteurs d'écran */
@media (min-width: 761px) { .hero-promise { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; } }
/* Petite ligne du haut : une seule ligne sur mobile, plus lisible sur le gâteau */
.kicker-short { display: none; }
@media (max-width: 760px) { .kicker-long { display: none; } .kicker-short { display: inline; } .hero-kicker { white-space: nowrap; } }
.hero-kicker { text-shadow: 0 0 6px #1e1a1b, 0 0 14px #1e1a1b, 0 1px 2px #1e1a1b; }
@media (max-width: 359px) { .hero-kicker { letter-spacing: .06em; font-size: 11px; } }
/* Mobile : cupcake des étapes poussé dans le coin, plus discret */
@media (max-width: 760px) { #etapes .cupcake-deco svg { right: -110px; top: -120px; } #etapes .cupcake-deco { opacity: .45; } }
/* Texte d'Emma : paragraphes aérés, première phrase en accroche */
body .atelier-text > p + p { margin-top: 12px; }
body .atelier-text > p:nth-last-of-type(2) { font-weight: 600; }
.atelier-note { font-size: 14px; font-weight: 600; color: var(--pink-ink); margin-top: 18px !important; }
/* Ordi : avec le texte long, la pile de photos reste en haut et accompagne la lecture */
@media (min-width: 761px) { #emma.atelier { align-items: start; } #emma .photo-stack { position: sticky; top: 110px; } }

/* Emma : trois tirages fixes, espacés et décalés. */
#emma.atelier{align-items:center}
.atelier-photos{width:100%;max-width:560px;height:clamp(430px,43vw,540px);display:grid;grid-template-columns:1.55fr 1fr;grid-template-rows:1fr 1fr;gap:20px;align-self:center;padding:16px 8px 16px 0;position:relative}
.atelier-photo{margin:0;min-width:0;min-height:0;background:#fff;padding:6px;box-shadow:0 12px 24px -16px #1e1a1b70}
.atelier-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:none}
.atelier-photo-main{grid-row:1/3;transform:rotate(-2deg);margin:10px 0;z-index:1}
.atelier-photo-main img{object-position:48% 45%}
.atelier-photo-detail{transform:translateY(-7px) rotate(3deg)}
.atelier-photo-detail img{object-position:48% 42%}
.atelier-photo-finish{transform:translateY(7px) rotate(-3deg)}
.atelier-photo-finish img{object-position:50% 40%}
body .atelier-text>p:nth-last-of-type(2){font-weight:600}
.footer-social{display:grid;grid-template-columns:.85fr 1.4fr;align-items:center;gap:40px;margin:4px 0 30px;padding:28px 0 34px;border-top:1px solid #ffffff26}
.social-heading .section-index{color:var(--pale);font-size:9px;letter-spacing:.1em;margin-bottom:10px}
.social-heading h2{font:600 clamp(18px,1.8vw,25px)/1.35 var(--body);letter-spacing:-.03em;color:var(--paper)}
.social-heading>p:last-child{font-size:11px;color:#d7c9cf;margin-top:8px}
.social-links{display:grid;grid-template-columns:1fr 1fr;gap:16px;min-width:0}
.social-link{position:relative;display:flex;align-items:center;gap:15px;min-height:94px;padding:20px;border:1px solid #ffffff38;border-radius:5px;color:var(--paper);transition:border-color .2s,background .2s}
.social-link:hover{border-color:var(--pale);background:#ffffff08}
.social-icon{width:28px;height:28px;flex:none;color:var(--pale)}
.social-label{display:flex;flex-direction:column;gap:4px;min-width:0}
.social-label strong{font-size:15px;font-weight:600;line-height:1.2}
.social-label>span{font-size:10px;color:#d7c9cf}
.social-arrow{margin-left:auto;width:17px;height:17px;align-self:flex-start}
@media(min-width:761px) and (max-width:1100px){.atelier-photos{height:450px;gap:14px}.footer-social{grid-template-columns:1fr;gap:20px}.social-link{min-height:85px}}
@media(max-width:760px){
 .atelier-photos{max-width:430px;height:clamp(310px,86vw,380px);margin:4px auto 8px;padding:12px 4px;gap:16px}
 .atelier-photo{padding:4px}.atelier-photo-main{margin:6px 0}
 .atelier-photo-detail{transform:translateY(-4px) rotate(3deg)}.atelier-photo-finish{transform:translateY(4px) rotate(-3deg)}
 .footer-social{grid-template-columns:1fr;gap:20px;padding:26px 0;margin-bottom:22px}
 .social-links{gap:12px}.social-link{align-items:flex-start;flex-direction:column;gap:14px;min-height:142px;padding:17px}
 .social-icon{width:26px;height:26px}.social-arrow{position:absolute;top:17px;right:15px}
 .social-label strong{font-size:15px}.social-label>span{font-size:10px}
}

/* Questionnaire brunch dans la demande (seulement pour l'occasion « Brunch ») */
.brunch-quiz { margin: 22px 0 6px; }
.bq-intro { font: 500 14px/1.5 var(--body); margin-bottom: 12px; }
.bq-section { border-top: 1px solid var(--line); }
.bq-section:last-child { border-bottom: 1px solid var(--line); }
.bq-section summary { list-style: none; display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 8px 0; cursor: pointer; font: 700 15px/1.3 var(--body); }
.bq-section summary::-webkit-details-marker { display: none; }
.bq-section summary b { font: 400 18px/1 var(--display); color: var(--pink-ink); min-width: 26px; }
.bq-section summary::after { content: "+"; margin-left: 8px; font: 400 22px/1 var(--body); color: var(--pink-ink); }
.bq-section[open] summary::after { content: "–"; }
.bq-count { margin-left: auto; font: 600 12px/1 var(--body); font-style: normal; color: var(--pink-ink); }
.bq-body { display: grid; gap: 16px; padding: 4px 0 18px; }
.bq-field { border: 0; padding: 0; margin: 0; min-width: 0; }
.bq-field legend, .bq-input > span { display: block; padding: 0; margin-bottom: 8px; font: 600 13px/1.4 var(--body); }
.bq-opts { display: flex; flex-wrap: wrap; gap: 6px; }
.bq-opt { position: relative; display: inline-flex; }
.bq-opt input { position: absolute; inset: 0; opacity: 0; margin: 0; cursor: pointer; }
.bq-opt span { display: inline-flex; align-items: center; min-height: 36px; padding: 6px 12px; border: 1px solid #1e1a1b33; border-radius: 6px; background: #fff; font: 500 13px/1.3 var(--body); transition: background .15s, border-color .15s, color .15s; }
.bq-opt input:checked + span { background: var(--ink); border-color: var(--ink); color: var(--paper); }
.bq-opt input:focus-visible + span { outline: 2px solid var(--pink-ink); outline-offset: 2px; }
.bq-input input, .bq-input textarea { display: block; width: 100%; min-height: 44px; padding: 10px; border: 1px solid var(--line); border-radius: 4px; background: #fff; color: var(--ink); font: 16px/1.4 var(--body); }
@media (prefers-reduced-motion: reduce) { .bq-opt span { transition: none; } }
.bq-field em { font-style: normal; font-weight: 400; color: #6d5a62; }
.bq-missing legend, .bq-missing > span { color: #b00020; }
.bq-missing .bq-opt span, .bq-missing input, .bq-missing textarea { border-color: #b00020; }
