@font-face{font-family:BerlinSans;src:url("assets/fonts/berlin-sans.ttf") format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:BerlinSerif;src:url("assets/fonts/berlin-serif.ttf") format("truetype");font-weight:700;font-display:swap}
@font-face{font-family:ArtArabic;src:url("assets/fonts/art-arabic.ttf") format("truetype");font-weight:400 900;font-display:swap}
:root{color-scheme:dark;font-family:Arial,Helvetica,sans-serif;color:#f3eaf3;background:#0b080f;font-synthesis:none}*{box-sizing:border-box}body{margin:0;overflow:hidden;height:100svh;height:100dvh;display:flex;flex-direction:column}#ambient{position:fixed;inset:-70px;z-index:-1;background:url('assets/originals/small-departures.webp') center/cover;filter:blur(85px) saturate(.8);opacity:.16;transition:background-image .5s;pointer-events:none}body:after{content:"";position:fixed;inset:0;z-index:-1;background:radial-gradient(ellipse at center,transparent,#0b080f99)}button{font:inherit;color:inherit;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:2px solid #fff;outline-offset:5px}#stage{flex:1;min-height:0;display:flex;align-items:center;justify-content:center;padding:max(18px,env(safe-area-inset-top)) 18px 12px;touch-action:none;user-select:none;-webkit-user-select:none}#artwork{position:relative;flex:none;max-width:100%;max-height:100%;box-shadow:0 20px 65px #0008}#canvas,#native-canvas,#fallback{display:block;position:absolute;inset:0;width:100%;height:100%;border-radius:1px}#fallback{object-fit:contain}#canvas,#native-canvas{opacity:0}#canvas.ready,#native-canvas.ready{opacity:1}canvas[hidden]{display:none}footer{flex:none;display:flex;justify-content:center;padding:10px 20px max(18px,env(safe-area-inset-bottom))}nav{display:flex;align-items:center;gap:20px}nav button{width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:transparent;transition:background .15s,transform .15s}nav button:hover{background:#ffffff0c}nav button:active{transform:scale(.94)}#pause{background:#ffffff09}svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.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}@media(min-width:800px){#stage{padding:24px 36px 12px}footer{padding-bottom:22px}}@media(max-height:450px){#stage{padding-top:10px;padding-bottom:0}footer{padding:4px 16px max(4px,env(safe-area-inset-bottom))}nav button{width:44px;height:44px}}@media(prefers-reduced-motion:reduce){*{transition:none!important}}

html,body{touch-action:none;overscroll-behavior:none}

/* A matter of proportion — native controls over a living, code-drawn print. */
#artwork{container-type:inline-size}
#fallback[hidden],#coffee-controls[hidden]{display:none}
#coffee-controls{position:absolute;inset:0;z-index:2;pointer-events:none;color:#482e20;color-scheme:light;font-family:Arial,Helvetica,sans-serif}
.coffee-heading{position:absolute;top:4.2%;left:7.4%;right:7.4%;text-align:center}
.coffee-heading p{margin:0 0 8px;font-size:12px;font-weight:400;letter-spacing:.1em;color:#806c56}
.coffee-heading h1{margin:0;font-family:Georgia,'Times New Roman',serif;font-size:clamp(28px,9cqw,60px);font-weight:400;line-height:1.12;letter-spacing:-.045em;white-space:nowrap}
.coffee-recipe{display:flex;align-items:center;justify-content:space-between;margin-top:14px;font-size:clamp(12px,2.7cqw,14px);color:#806c56;font-variant-numeric:tabular-nums}
#coffee-ratio{letter-spacing:.1em}
.coffee-sliders{position:absolute;left:7.4%;right:7.4%;bottom:3.3%;pointer-events:auto}
.coffee-slider{display:grid;grid-template-columns:1fr auto;align-items:center;cursor:pointer;font-size:clamp(14px,3.1cqw,17px);line-height:1.25}
.coffee-slider output{font-size:clamp(13px,2.9cqw,15px);font-variant-numeric:tabular-nums;color:#806c56}
.coffee-slider input{--fill:0%;grid-column:1 / -1;display:block;width:100%;height:32px;margin:0;appearance:none;-webkit-appearance:none;background:transparent;cursor:ew-resize;touch-action:none;outline-offset:0;accent-color:var(--ingredient)}
.coffee-slider input::-webkit-slider-runnable-track{height:3px;border-radius:3px;background:linear-gradient(to right,var(--ingredient) 0 var(--fill),#d9cebd var(--fill) 100%)}
.coffee-slider input::-moz-range-track{height:3px;border-radius:3px;background:#d9cebd}
.coffee-slider input::-moz-range-progress{height:3px;border-radius:3px;background:var(--ingredient)}
.coffee-slider input::-webkit-slider-thumb{appearance:none;-webkit-appearance:none;width:21px;height:21px;margin-top:-9px;border-radius:50%;background:var(--ingredient);border:3px solid #f8f2e8;box-shadow:0 0 0 1px #ac977965,0 2px 3px #59342116}
.coffee-slider input::-moz-range-thumb{width:15px;height:15px;border-radius:50%;background:var(--ingredient);border:3px solid #f8f2e8;box-shadow:0 0 0 1px #ac977965}
.coffee-slider input:focus-visible{outline:2px solid #795433;border-radius:4px}
.coffee-note{margin:6px 0 0;text-align:center;font-size:12px;line-height:1.25;color:#806c56}
@container(max-width:310px){.coffee-heading p{display:none}.coffee-heading h1{font-size:25px}.coffee-recipe{margin-top:10px}.coffee-slider input{height:24px}.coffee-note{margin-top:3px}.coffee-sliders{bottom:2.8%}}
body.coffee-active,html:has(body.coffee-active){touch-action:pan-y}
body.coffee-active #stage{overflow-y:auto;touch-action:pan-y;scrollbar-width:none}
body.coffee-active #stage::-webkit-scrollbar{display:none}
body.coffee-active #artwork{max-height:none}
@media(max-height:570px){body.coffee-active #stage{align-items:flex-start}}
