/* Photographic binding and paper; all text remains accessible live HTML. */
#book-dialog{width:min(1180px,98vw);max-width:1180px;padding:48px 12px 24px;overflow-x:hidden;scrollbar-width:thin;color:#372819}
#book-dialog::backdrop{background:#080806b0;backdrop-filter:blur(5px)}
.book-volume{position:relative;width:100%;height:700px;filter:drop-shadow(0 28px 30px #000b)}
.book-material{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;clip-path:polygon(2.5% 5%,97% 5%,98.5% 7%,99.5% 87%,98% 90.5%,56% 90.5%,57% 96%,53% 98%,49% 91%,1% 90%,1% 9%)}
.book-shell{position:absolute;inset:7% 8.5% 14.5%;display:grid;grid-template-columns:1fr 1fr;min-height:0;border:0;border-radius:0;background:transparent;box-shadow:none;perspective:2400px;isolation:auto;transform:none}
.book-shell:before,.book-shell:after{display:none}
.book-spine{display:none}
.book-page{position:relative;min-width:0;padding:43px 39px 40px;background:none;color:#403020;border-radius:0;box-shadow:none}
.left-page{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-right:49px}
.right-page{padding-left:43px}
.book-brand{font-family:var(--serif);font-size:22px;font-style:italic;color:#735338;margin-bottom:28px}
.book-page .eyebrow{font-size:9px;letter-spacing:.23em;color:#7c5636}
.book-page h2{font-family:var(--serif);font-weight:500;font-size:clamp(30px,3.6vw,47px);line-height:1.05;letter-spacing:-.02em;margin:18px 0;white-space:pre-line;text-shadow:none}
.book-ornament{font-size:25px;color:#9c7045;margin:10px 0 17px}
.book-page p{font-size:14px;line-height:1.8;color:#614932;max-width:280px}
.recipe-label{font-family:var(--serif);font-size:33px;line-height:1.1;font-weight:500;margin:0 0 17px;padding-bottom:16px;border-bottom:1px solid #9b76514a}
.recipe-list{list-style:none;padding:0;margin:0}
.recipe-list li{font-family:var(--serif);font-size:22px;line-height:1.3;padding:6px 0;border-bottom:1px dotted #98734838}
.recipe-footer{font-size:12px!important;line-height:1.7!important;margin-top:19px}
.page-number{position:absolute;bottom:16px;left:0;right:0;text-align:center;font-family:var(--serif);font-size:14px;color:#846446}
.book-controls{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;width:min(700px,100%);gap:22px;margin:-8px auto 18px;position:relative;color:#e6d1aa}
.book-controls button{width:auto;min-width:166px;min-height:60px;display:flex;align-items:center;justify-content:center;gap:18px;padding:8px 23px;border:1px solid #dabb8170;border-radius:999px;background:linear-gradient(145deg,#65472af5,#302219f5);box-shadow:inset 0 1px 0 #fff2c72b,0 7px 18px #0006;color:#f6e7c9;font-size:15px;transition:transform .2s,background .2s}
#prev-page{justify-self:start}#next-page{justify-self:end}
.book-controls button:hover:not(:disabled){background:linear-gradient(145deg,#866036,#493122);transform:translateY(-2px)}
.book-controls button:active:not(:disabled){transform:translateY(1px)}
.book-controls button:disabled{opacity:.3;cursor:default}
.book-controls button:focus-visible{outline:2px solid #ffe2ab;outline-offset:4px}
.arrow{font:30px/1 Arial,sans-serif;transform:none}
#page-status{min-width:106px;text-align:center;font-size:12px;font-variant-numeric:tabular-nums;line-height:1.5}
.book-cta{display:block;text-align:center;font-size:14px;color:#dfc6a1;text-decoration:underline;text-underline-offset:5px;line-height:1.6}
.close{right:14px;top:1px;width:46px;height:46px;border:1px solid #dbc09355;border-radius:50%;background:#25190fe6;color:#f3e5c8;font-size:30px}
/* Never put filter/opacity/isolation on this 3D hierarchy: it flattens faces. */
#turn-sheet,#turn-sheet.forward,#turn-sheet.backward{position:absolute;inset:0 0 0 50%;width:50%;height:100%;visibility:hidden;background:none;box-shadow:none;transform:none;transform-style:preserve-3d;backface-visibility:visible;z-index:8;pointer-events:none;filter:none}
.turning #turn-sheet{visibility:visible;animation:none}
.leaf-strip{position:absolute;left:0;top:0;height:100%;transform-origin:left center;transform-style:preserve-3d}
.leaf-side{position:absolute;inset:0;overflow:hidden;backface-visibility:hidden;-webkit-backface-visibility:hidden;transform:translateZ(.15px);background:#e7d1ac}
.leaf-back{transform:rotateY(180deg) translateZ(.15px)}
.leaf-print{position:absolute!important;top:0!important;max-width:none;background-image:url('./assets/recipe-book.png');background-size:240.96% 127.39%;background-repeat:no-repeat}
.leaf-print.left-page{background-position:14.71% 32.56%}.leaf-print.right-page{background-position:85.29% 32.56%}
.leaf-shade{position:absolute;inset:0;background:#35200e;pointer-events:none}
@media(max-width:900px) and (min-width:701px){.book-volume{height:650px}.book-page{padding:35px 24px 35px}.book-page h2{font-size:35px}.recipe-list li{font-size:19px}.recipe-label{font-size:28px}.book-page p{font-size:13px}.book-brand{font-size:20px}}
@media(max-width:700px){#book-dialog{padding:44px 0 18px;width:100vw;max-height:98svh}.book-volume{height:910px;width:110%;margin-left:-5%}.book-shell{inset:7% 8.5% 14.5%}.book-page{padding:29px 15px 35px}.book-page h2{font-size:clamp(22px,6vw,32px);line-height:1.12;overflow-wrap:anywhere}.book-brand{font-size:18px;margin-bottom:23px}.book-page .eyebrow{font-size:7px;letter-spacing:.1em}.book-page p{font-size:12px;line-height:1.7}.recipe-label{font-size:25px;overflow-wrap:anywhere}.recipe-list li{font-size:18px;line-height:1.35;padding:5px 0;overflow-wrap:anywhere}.recipe-footer{font-size:11px!important}.book-controls{position:sticky;bottom:0;width:94%;gap:8px;margin:-42px auto 14px;padding:10px 0;background:linear-gradient(transparent,#160e09e8 25%);z-index:9}.book-controls button{min-width:0;width:100%;min-height:58px;padding:8px 13px;gap:8px;font-size:13px}#page-status{min-width:82px;font-size:11px}.arrow{font-size:27px}.book-cta{font-size:13px}.close{right:10px}}
@media(max-width:360px){.book-volume{height:1050px}.recipe-list li{font-size:17px}.book-page{padding-left:12px;padding-right:12px}}
@media(prefers-reduced-motion:reduce){.book-controls button{transition:none}}

@font-face{font-family:Literata;src:url('./assets/fonts/Literata.ttf') format('truetype');font-weight:400 600;font-display:swap}
@font-face{font-family:Caveat;src:url('./assets/fonts/Caveat.ttf') format('truetype');font-weight:400 600;font-display:swap}
#book-dialog{--serif:Literata,Georgia,serif}
.book-page{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:34px 32px 40px}
#recipe-content{width:100%}.recipe-label{font-size:27px;line-height:1.35;padding-bottom:16px;white-space:pre-line}
.recipe-list li{font-size:18px;line-height:1.55;padding:5px 0}
.book-page h2{font-size:35px;line-height:1.3;font-weight:400}
.book-page p{margin-left:auto;margin-right:auto}.book-brand{font-family:Caveat,cursive;font-size:29px}
.recipe-footer{margin-top:20px}.book-page .eyebrow{font-size:8px}
.book-hint{text-align:center;font-size:11px;color:#decaa6;margin:8px 0 0;min-height:0}
.book-hint:empty{display:none}
.invitation .recipe-label{font-family:Caveat,cursive;font-size:38px;line-height:1.1;border:0;margin:0 0 20px;padding:0}
.invitation-note{font-family:Literata,Georgia,serif;font-size:14px!important;line-height:1.8!important}
.book-page .signature{font-family:Caveat,cursive;font-size:29px;line-height:1.2;color:#795037;margin:20px auto}
.invitation-action{display:flex;flex-direction:column;align-items:center;gap:10px;margin:22px auto 0;padding:12px 16px;color:#593325;font-family:Literata,Georgia,serif;font-size:15px;line-height:1.45;border:1px solid #92613b55;border-radius:4px;background:#e8c99d33;box-shadow:0 4px 10px #45261312;transition:background .2s,transform .2s}
.invitation-action:hover{background:#e0b47955;transform:translateY(-2px)}
.invitation-action small{font-family:var(--ui);font-size:10px;color:#785f47}
.letter-seal{display:grid;place-items:center;width:42px;height:42px;border:3px double #a56850;border-radius:50%;background:#76372d;color:#ecd0a4;font-family:Caveat,cursive;font-size:31px;box-shadow:0 2px 3px #4d2b2340}
/* The closed book is an irregular perspective shape, not a rectangular card. */
#scene-book{transform:none;border-radius:0;clip-path:polygon(3% 19%,58% 0%,99% 49%,100% 81%,31% 100%,0% 39%);background:transparent;overflow:hidden;outline:none}
#scene-book:hover,#scene-book:focus-visible{box-shadow:none;outline:none;background:#ffd7860a}
#scene-book svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}
#scene-book path{fill:transparent;stroke:#ffdda4;stroke-width:1.5;opacity:0;transition:opacity .3s;filter:drop-shadow(0 0 4px #ffc36a)}
#scene-book:hover path,#scene-book:focus-visible path{opacity:.75}
#scene-book:after{content:'';position:absolute;inset:-50%;background:linear-gradient(110deg,transparent 35%,#fff0b828 48%,#ffe5a84d 50%,#fff0b818 53%,transparent 65%);transform:translateX(-75%);pointer-events:none}
#scene-book:hover:after,#scene-book:focus-visible:after{animation:book-shine 2.4s ease-in-out infinite}
@keyframes book-shine{0%{transform:translateX(-75%)}75%,100%{transform:translateX(75%)}}
/* A portrait phone shows a full-size leaf cropped from the same physical book. */
#book-dialog.single-page{width:min(100vw,520px);padding:48px 6px 12px;max-height:100svh}
.single-page .book-volume{width:100%;margin:0;height:max(610px,calc(100svh - 142px));overflow:hidden;filter:none}
.single-page .book-material{width:200%;max-width:none;left:0;clip-path:polygon(2.5% 5%,97% 5%,98.5% 7%,99.5% 87%,98% 90.5%,56% 90.5%,57% 96%,53% 98%,49% 91%,1% 90%,1% 9%)}
.single-page.show-right .book-material{left:-100%}
.single-page .book-shell{inset:7% 8% 14.5%;display:block}
.single-page .book-shell > .book-page{position:absolute;inset:0;width:100%;height:100%;padding:22px 18px 35px}
.single-page .book-shell > .right-page{display:none}
.single-page.show-right .book-shell > .left-page{display:none}
.single-page.show-right .book-shell > .right-page{display:flex}
.single-page .book-page h2{font-size:32px}.single-page .recipe-label{font-size:24px;margin-bottom:13px;padding-bottom:13px}
.single-page .recipe-list li{font-size:16px;line-height:1.5;padding:5px 0}.single-page .book-page p{font-size:14px;line-height:1.7}
.single-page .recipe-footer{font-size:11px!important;margin-top:15px}.single-page .book-brand{font-size:30px}
.single-page .book-page .eyebrow{font-size:8px}.single-page .invitation .recipe-label{font-size:35px}
.single-page .book-controls{position:sticky;bottom:0;width:98%;margin:-37px auto 0;gap:8px;padding:9px 2px;background:linear-gradient(transparent,#160e09f5 28%)}
.single-page .book-controls button{min-width:0;min-height:52px;width:100%;padding:6px 12px;font-size:13px}
.single-page #page-status{min-width:92px;font-size:11px}.single-page .book-hint{margin-top:5px}
@media(max-width:1000px) and (orientation:landscape){#book-dialog{width:98vw;max-height:100svh;padding:40px 8px 8px}.book-volume{height:510px;width:100%;margin:0}.book-page{padding:22px 27px 28px}.book-page h2{font-size:27px}.recipe-label{font-size:23px;padding-bottom:9px;margin-bottom:10px}.recipe-list li{font-size:14px;line-height:1.45;padding:4px 0}.book-page p{font-size:12px}.recipe-footer{font-size:10px!important;margin-top:10px}.book-brand{margin-bottom:15px;font-size:25px}.book-controls{position:sticky;bottom:0;width:80%;margin:-22px auto 0;padding:8px 0;background:linear-gradient(transparent,#160e09ef 30%)}.book-controls button{min-height:48px;min-width:130px}.invitation .recipe-label{font-size:31px}.invitation-note{font-size:12px!important}.book-page .signature{font-size:25px;margin:10px auto}.invitation-action{margin-top:10px;padding:8px;font-size:12px;gap:5px}.letter-seal{width:32px;height:32px;font-size:24px}}
@media(max-width:360px) and (orientation:portrait){.single-page .book-volume{height:690px}.single-page .book-shell>.book-page{padding-left:12px;padding-right:12px}.single-page .recipe-list li{font-size:15px}}
@media(prefers-reduced-motion:reduce){#scene-book:hover:after,#scene-book:focus-visible:after{animation:none;transform:translateX(0)}.invitation-action{transition:none}}
.about-story p{font-family:Literata,Georgia,serif;font-size:13px;line-height:1.8;max-width:100%;margin:15px auto}
@media(max-width:600px){#about-button{display:block;font-size:12px}nav{gap:12px}header{gap:10px}.brand{font-size:19px}.brand-mark{width:31px;height:31px;font-size:25px}}
@media(max-width:1000px) and (orientation:landscape){.about-story p{font-size:11px;line-height:1.65;margin:10px auto}}
.single-page .book-shell{inset:7% 3% 14.5% 18%}
.single-page.show-right .book-shell{inset:7% 18% 14.5% 3%}
.single-page .book-page .signature{font-family:Caveat,cursive;font-size:28px;line-height:1.2}
.portrait-scene #scene-book{clip-path:polygon(0% 18%,56% 0%,100% 52%,98% 78%,30% 100%,0% 36%)}
.portrait-scene #welcome{top:94px;left:23px;right:23px;text-align:center}
.portrait-scene #welcome h1{font-family:Literata,Georgia,serif;font-size:26px;font-weight:400;line-height:1.3}
.portrait-scene #welcome p{font-size:12px}.portrait-scene #welcome .eyebrow{font-size:8px}
.portrait-scene #welcome.faded{opacity:.82}
.portrait-scene #mobile-book{bottom:64px;padding:14px 22px;border-radius:999px;background:#352316e8;border:1px solid #d6b580;box-shadow:0 5px 20px #0005;font-size:13px}
.portrait-scene footer{justify-content:center;padding:21px 10px}
.portrait-scene #fallback.ambient-matte{opacity:.5;filter:blur(24px);transform:scale(1.08)}
@media(max-width:360px){.single-page .book-volume{height:780px}.single-page .about-story p{font-size:12px;line-height:1.65}.portrait-scene .brand{font-size:17px}.portrait-scene header{padding:17px 13px}.portrait-scene nav{gap:9px}.portrait-scene #welcome h1{font-size:23px}}
@media(min-width:701px) and (max-width:900px) and (orientation:portrait){.recipe-list li{font-size:16px;line-height:1.45}.recipe-label{font-size:24px}.book-page{padding:28px 25px 36px}.recipe-footer{font-size:11px!important}}
@media(max-width:360px) and (orientation:portrait){.single-page .book-volume{height:850px}}
.portrait-scene #welcome,.portrait-scene #welcome.faded{opacity:1;transform:none;transition:none}
