@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Manrope:wght@400;500;600&display=swap');
:root{color-scheme:dark;--cream:#f4e9d4;--gold:#d8b77b;--ink:#2a2116;--ui:Manrope,Arial,sans-serif;--serif:'Cormorant Garamond',Georgia,serif}*{box-sizing:border-box}body{margin:0;background:#1c150f;color:var(--cream);font-family:var(--ui);font-size:16px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}a{color:inherit;text-decoration:none}button:focus-visible,a:focus-visible{outline:2px solid #f8d598;outline-offset:6px}button{border:0;background:none}#kitchen{height:100svh;min-height:600px;position:relative;overflow:hidden;background:#2a1b10}#stage{position:absolute;inset:0;overflow:hidden;background:#352315}#fallback{width:100%;height:100%;object-fit:cover;opacity:1;transition:opacity .6s}#canvas-host{position:absolute;inset:0}canvas{display:block;width:100%;height:100%;touch-action:none;outline:0}#hotspots{position:absolute;inset:0;pointer-events:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(20,14,8,.73),transparent 23%,transparent 76%,rgba(20,14,8,.85));z-index:3}header{position:absolute;top:0;left:0;right:0;padding:28px 40px;display:flex;align-items:center;justify-content:space-between;z-index:5;gap:20px}.brand{display:flex;align-items:center;gap:13px;font-family:var(--serif);font-size:27px;white-space:nowrap;line-height:1}.brand-mark{font-size:35px;border:1px solid #d9bb825c;border-radius:50%;height:46px;width:46px;display:grid;place-items:center;padding-bottom:8px}.brand small{font-family:var(--ui);font-size:10px;letter-spacing:.24em;display:block;margin-top:9px;color:#e9d6b4}nav{display:flex;align-items:center;gap:30px;font-size:14px}.nav-link{padding:10px 0}.contact{padding:12px 18px;border:1px solid #dfc29470;border-radius:3px;background:#291e1150;backdrop-filter:blur(8px)}.languages{display:flex;align-items:center;gap:7px;font-size:12px}.languages button{padding:8px 3px;opacity:.5}.languages button[aria-pressed=true]{opacity:1}.languages span{opacity:.3}#welcome{position:absolute;top:118px;left:44px;z-index:4;pointer-events:none;text-shadow:0 2px 25px #160d04;transition:opacity 1.4s,transform 1.4s;max-width:440px}#welcome.faded{opacity:0;transform:translateY(-12px)}.eyebrow{font-size:10px;font-weight:600;letter-spacing:.24em}h1{font-family:var(--serif);font-weight:500;font-size:clamp(32px,3.5vw,56px);margin:10px 0 3px;line-height:1.02}#welcome p{font-size:14px;margin:10px 0;opacity:.8}footer{position:absolute;bottom:0;left:0;right:0;padding:22px 36px;z-index:5;display:flex;align-items:center;justify-content:space-between;gap:20px}.scene-caption{display:flex;gap:13px;align-items:center;font-size:12px;letter-spacing:.02em;color:#ecddc0}.small-rule{height:1px;width:24px;background:#ba9662;flex-shrink:0}.tools{display:flex;gap:8px;align-items:center}.tools button{font-size:12px;padding:10px 12px;border:1px solid #dbc39230;border-radius:3px;background:#21170d44;white-space:nowrap}.tools button:hover,.tools button[aria-pressed=true]{background:#d0a76725;border-color:#dbc39280}.hotspot{position:absolute;pointer-events:auto;transform:translate(-50%,-50%);min-width:44px;height:44px;display:grid;place-items:center;border-radius:50%;opacity:0;transition:opacity .35s;background:transparent}.hotspot:after{content:'+';font-size:20px;display:grid;place-items:center;width:28px;height:28px;background:#2e2217aa;border:1px solid #f2dfb788;border-radius:50%;backdrop-filter:blur(3px);box-shadow:0 2px 14px #130c0370}.show-hints .hotspot{opacity:.9}.hotspot:focus-visible{opacity:1}.hotspot.hidden{display:none}#tooltip{position:absolute;z-index:7;pointer-events:none;opacity:0;padding:9px 13px;border:1px solid #d8b87a55;background:#281d11eb;border-radius:3px;font-size:12px;transform:translate(-50%,-140%);white-space:nowrap;transition:opacity .16s}#tooltip.visible{opacity:1}#loading{position:absolute;inset:0;z-index:12;background:#211a12e8;display:flex;align-items:center;justify-content:center;gap:12px;font-family:var(--serif);font-size:25px;transition:opacity .5s}#loading.done{opacity:0;pointer-events:none}.loading-dot{width:7px;height:7px;background:var(--gold);border-radius:50%;animation:breathe 1.2s infinite alternate}@keyframes breathe{to{opacity:.25}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#mobile-book{display:none}dialog{border:0;background:transparent;color:var(--ink);padding:45px 35px 20px;width:min(1000px,96vw);max-width:1000px;max-height:96svh;overflow:auto}dialog::backdrop{background:#140e08bf;backdrop-filter:blur(9px)}dialog[open]{animation:book-in .65s cubic-bezier(.2,.7,.2,1)}@keyframes book-in{from{opacity:0;transform:translateY(90px) scale(.85) rotateX(18deg)}to{opacity:1;transform:none}}.close{position:absolute;right:9px;top:0;color:#f3e5c8;font-size:35px;line-height:1;width:44px;height:44px}.book-shell{display:grid;grid-template-columns:1fr 1fr;position:relative;border:12px solid #61392b;border-radius:8px 14px 14px 8px;box-shadow:0 30px 80px #0009,0 4px 0 #311e17,0 7px 0 #e4cf9c,0 10px 0 #452d1e;perspective:1800px;background:#e9d7ac;min-height:460px}.book-page{position:relative;padding:38px 34px 45px;background:radial-gradient(ellipse at 60% 20%,#fff2d5,#eddfba);min-width:0}.left-page{box-shadow:inset -18px 0 30px -22px #5f452b;display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center}.right-page{box-shadow:inset 20px 0 30px -25px #5f452b}.book-spine{position:absolute;left:50%;height:100%;width:2px;background:#816a4738;z-index:3}.book-brand{font-family:var(--serif);font-size:20px;font-style:italic;margin-bottom:32px;color:#725037}.book-page .eyebrow{font-size:9px;color:#8a6b40}.book-page h2{font-family:var(--serif);font-size:45px;line-height:1.03;margin:15px 0;font-weight:500}.book-ornament{color:#a27a43;font-size:38px;margin:8px 0}.book-page p{font-size:14px;line-height:1.8;color:#715b42;max-width:290px}.page-number{position:absolute;bottom:17px;left:0;right:0;text-align:center;font-family:var(--serif);font-size:14px;color:#96754b}.recipe-label{font-family:var(--serif);font-size:28px;margin:0 0 19px;border-bottom:1px solid #92714b40;padding-bottom:15px;font-weight:500}.recipe-list{list-style:none;margin:0;padding:0}.recipe-list li{font-family:var(--serif);font-size:21px;line-height:1.35;padding:6px 0;border-bottom:1px dotted #977e563a}.recipe-footer{font-size:12px!important;line-height:1.6!important;margin-top:20px}.book-controls{display:flex;align-items:center;justify-content:center;gap:30px;color:#ead8b4;margin:25px 0 15px;font-size:12px}.book-controls button{width:44px;height:38px;border:1px solid #dfc29355;font-size:22px;border-radius:3px}.book-controls button:disabled{opacity:.25;cursor:default}.book-cta{display:block;text-align:center;font-size:14px;color:#e7cca0;margin-bottom:5px}#turn-sheet{position:absolute;top:0;bottom:0;left:50%;width:50%;background:linear-gradient(90deg,#d2bd91,#f8eaca);z-index:8;transform-origin:left center;visibility:hidden;backface-visibility:hidden;box-shadow:0 4px 18px #4d351830}.turning #turn-sheet{visibility:visible;animation:page-turn .62s ease-in-out forwards}@keyframes page-turn{from{transform:rotateY(0deg);opacity:1}to{transform:rotateY(-178deg);opacity:0}}.noscript{position:fixed;bottom:80px;background:#21190c;padding:20px;z-index:20}.error-note{position:absolute;bottom:100px;left:20%;right:20%;padding:20px;background:#21190ce8;text-align:center;z-index:20}
@media(max-width:900px){header{padding:22px 25px}nav{gap:18px}.contact{display:none}footer{padding:20px;flex-direction:column;gap:12px}.scene-caption{font-size:12px}#welcome{left:28px;top:108px}.tools button{font-size:12px;padding:9px 10px}}
@media(max-width:600px){#kitchen{min-height:560px}header{padding:20px 19px;align-items:flex-start}.brand{font-size:23px;gap:9px}.brand-mark{width:37px;height:37px;font-size:30px}.brand small{font-size:8px;margin-top:8px}.nav-link{display:none}nav{gap:8px}#welcome{top:108px;left:24px;right:20px}h1{font-size:37px}#welcome p{font-size:13px}footer{padding:16px 12px}.scene-caption{font-size:11px;text-align:center;max-width:330px}.small-rule{display:none}.tools{gap:6px}.tools button{font-size:11px;padding:10px 9px}#mobile-book{display:block;position:absolute;right:20px;bottom:130px;z-index:6;background:#302014c9;border:1px solid #e5c89680;padding:11px 15px;border-radius:3px;font-size:12px;backdrop-filter:blur(6px)}dialog{padding:40px 5px 15px;width:96vw}.book-shell{border-width:7px;min-height:380px}.book-page{padding:22px 13px 38px}.book-page h2{font-size:29px}.book-page p{font-size:12px;line-height:1.6}.book-page .eyebrow{font-size:7px;letter-spacing:.16em}.book-brand{font-size:17px;margin-bottom:20px}.recipe-list li{font-size:17px;padding:5px 0}.recipe-label{font-size:22px;margin-bottom:9px}.recipe-footer{font-size:10px!important}.book-ornament{font-size:30px}.book-controls{margin-top:22px}.error-note{left:10px;right:10px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* The photograph stays still. The book is the only scene interaction. */
#canvas-host{pointer-events:none}canvas{touch-action:auto}#scene-book{position:absolute;z-index:2;transform:translate(-50%,-50%);background:transparent;border:0;border-radius:10px;cursor:pointer}#scene-book:hover{box-shadow:0 0 32px #eecb7133}#scene-book:focus-visible{outline:2px solid #f4dca5;outline-offset:4px}#fallback.ambient-matte{opacity:.27;filter:blur(28px);transform:scale(1.13)}.scene-caption{letter-spacing:.16em;font-size:11px}.tools button{font-size:13px;min-height:42px}#stage{user-select:none;-webkit-user-select:none}#fallback{pointer-events:none;-webkit-user-drag:none}
@media(max-width:650px){#welcome{top:125px}#welcome.faded{opacity:.8;transform:none}#mobile-book{bottom:95px;left:50%;right:auto;transform:translateX(-50%);white-space:nowrap}footer{flex-direction:row;justify-content:space-between;padding:20px}.scene-caption{font-size:9px;letter-spacing:.1em;max-width:210px}.vignette{background:linear-gradient(180deg,#1c150f85,transparent 33%,transparent 66%,#1c150faa)}}
