@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/dm-mono-latin-ext-300-normal-CnIee3y3.woff2) format("woff2"),url(/assets/dm-mono-latin-ext-300-normal-DQuwWybz.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:300;src:url(/assets/dm-mono-latin-300-normal-CNmLoeDX.woff2) format("woff2"),url(/assets/dm-mono-latin-300-normal-CT8u5j2n.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-ext-400-normal-C2zvOubV.woff2) format("woff2"),url(/assets/dm-mono-latin-ext-400-normal-1aZr6b2b.woff) format("woff");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:DM Mono;font-style:normal;font-display:swap;font-weight:400;src:url(/assets/dm-mono-latin-400-normal-4GdczIuU.woff2) format("woff2"),url(/assets/dm-mono-latin-400-normal--0xN8mdc.woff) format("woff");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Mg12;font-style:normal;font-weight:400;font-display:swap;src:url(/assets/Mg12-Regular-DOsCGmhW.woff2) format("woff2")}@font-face{font-family:Mg12;font-style:italic;font-weight:400;font-display:swap;src:url(/assets/Mg12-RegularItalic-BGbfah5a.woff2) format("woff2")}@font-face{font-family:Mg12;font-style:normal;font-weight:500;font-display:swap;src:url(/assets/Mg12-Medium-CX56Yxxo.woff2) format("woff2")}@font-face{font-family:Mg12;font-style:italic;font-weight:500;font-display:swap;src:url(/assets/Mg12-MediumItalic-DaIPSygK.woff2) format("woff2")}@font-face{font-family:Mg12;font-style:normal;font-weight:700;font-display:swap;src:url(/assets/Mg12-Bold-CGDJBteu.woff2) format("woff2")}@font-face{font-family:Mg12;font-style:italic;font-weight:700;font-display:swap;src:url(/assets/Mg12-BoldItalic-pmCJ3WjF.woff2) format("woff2")}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;background:#fff}html,body{overflow:hidden;overscroll-behavior:none}body{font-family:Mg12,Georgia,serif;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}@keyframes flashIn{0%{background:#0000001a;border-color:#00000080;transform:scale(1.02)}60%{transform:scale(1)}to{background:#00000008;border-color:#0000001a;transform:scale(1)}}.brew{height:100vh;height:100dvh;overflow:hidden;display:flex;align-items:stretch;justify-content:center;padding:28px 24px 32px;padding-bottom:max(32px,env(safe-area-inset-bottom))}.brew__inner{width:100%;max-width:420px;display:flex;flex-direction:column;height:100%}.brew__stack{flex:1;position:relative;min-height:0}.brew__view{position:absolute;top:0;right:0;bottom:0;left:0;overflow-y:auto;-webkit-overflow-scrolling:touch;opacity:0;transform:translateY(-10px);pointer-events:none;transition:opacity .28s ease-out,transform .32s cubic-bezier(.25,.46,.45,.94)}.brew__view.is-active{opacity:1;transform:translateY(0);pointer-events:auto}.brew__header{text-align:center;margin-bottom:28px}.brew__header-eyebrow{font-family:DM Mono,SF Mono,Menlo,monospace;font-size:9px;letter-spacing:.18em;color:#aaa;text-transform:uppercase;margin-bottom:6px}.brew__header-title{font-family:Mg12,Georgia,serif;font-size:28px;color:#111;font-weight:500;letter-spacing:.02em;margin-bottom:8px}.brew__header-grind{font-family:DM Mono,SF Mono,Menlo,monospace;font-size:9px;letter-spacing:.18em;color:#777;text-transform:uppercase}.brew__done{text-align:center;font-family:Mg12,Georgia,serif;font-style:italic;font-size:16px;color:#111;margin-bottom:18px}.brew__steps{border:1px solid #e5e5e5;border-radius:6px;overflow:hidden;margin-bottom:24px}.brew__step{position:relative;display:grid;grid-template-columns:70px 1fr auto;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid #f0f0f0;overflow:hidden;transition:padding .55s cubic-bezier(.25,.46,.45,.94),background .55s cubic-bezier(.25,.46,.45,.94),color .55s cubic-bezier(.25,.46,.45,.94)}.brew__step:before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--brew-fill, 0%);background:#6f4e378c;z-index:0;pointer-events:none;transition:width .5s ease-out,background .6s ease}.brew__step:last-child{border-bottom:none}.brew__step-time{font-family:DM Mono,SF Mono,Menlo,monospace;font-size:12px;color:#111;letter-spacing:.05em;position:relative;z-index:1;transition:font-size .55s cubic-bezier(.25,.46,.45,.94),color .55s cubic-bezier(.25,.46,.45,.94)}.brew__step-label{font-family:Mg12,Georgia,serif;font-size:12px;color:#111;font-weight:400;margin-left:0;position:relative;z-index:1;transition:font-size .55s cubic-bezier(.25,.46,.45,.94),color .55s cubic-bezier(.25,.46,.45,.94),font-weight .55s cubic-bezier(.25,.46,.45,.94),margin-left .55s cubic-bezier(.25,.46,.45,.94)}.brew__step-weight{font-family:Mg12,Georgia,serif;font-size:16px;color:#111;font-weight:400;text-align:right;position:relative;z-index:1;transition:font-size .55s cubic-bezier(.25,.46,.45,.94),color .55s cubic-bezier(.25,.46,.45,.94),font-weight .55s cubic-bezier(.25,.46,.45,.94)}.brew__step--past{padding:8px 18px}.brew__step--past:before{transition:background .6s ease}.brew__step--past .brew__step-time{font-size:12px;color:#fffaf5d9}.brew__step--past .brew__step-label{font-size:11px;color:#fffaf5d9}.brew__step--past .brew__step-weight{font-size:12px;color:#fffaf5d9}.brew__step--active{padding:22px 20px}.brew__step--active:before{transition:background .6s ease}.brew__step--active .brew__step-time{font-size:28px;font-weight:500}.brew__step--active .brew__step-label{font-size:14px;font-weight:500;letter-spacing:-.005em;margin-left:20px}.brew__step--active .brew__step-weight{font-size:28px;font-weight:500}.brew__step--flash:before{background:#6f4e37c7}.brew__controls{display:flex;gap:10px}.brew__btn{padding:13px;border-radius:5px;font-family:DM Mono,SF Mono,Menlo,monospace;font-size:12px;letter-spacing:.18em;text-transform:uppercase;border:none;cursor:pointer;transition:all .2s}.brew__btn:hover{opacity:.75;transform:translateY(-1px)}.brew__btn:active{transform:translateY(0)}.brew__btn--primary{flex:1;background:#111;color:#fff}.brew__btn--primary.brew__btn--running{background:#f0f0f0;color:#111}.brew__btn--ghost{padding:13px 18px;background:transparent;border:1px solid #e5e5e5;color:#777}.brew__recipe-list{border:1px solid #e5e5e5;border-radius:6px}.brew__recipe{display:block;width:100%;text-align:left;background:transparent;border:none;border-bottom:1px solid #f0f0f0;padding:16px 20px;cursor:pointer;opacity:0;transform:translateY(8px);transition:opacity .4s ease-out,transform .4s ease-out,background .2s;transition-delay:0s}.brew__recipe:last-child{border-bottom:none}.brew__recipe:hover{background:#0000000a}.brew__recipe--current{background:#6f4e371a}.brew__recipe--current:hover{background:#6f4e3729}.brew__view--picker.is-active .brew__recipe{opacity:1;transform:translateY(0);transition-delay:calc(var(--i, 0) * 45ms + 90ms)}.brew__recipe-eyebrow{font-family:DM Mono,SF Mono,Menlo,monospace;font-size:9px;letter-spacing:.18em;color:#aaa;text-transform:uppercase;margin-bottom:4px}.brew__recipe-name{font-family:Mg12,Georgia,serif;font-size:18px;color:#111;font-weight:500;margin-bottom:6px}.brew__recipe-grind{font-family:DM Mono,SF Mono,Menlo,monospace;font-size:9px;letter-spacing:.18em;color:#777;text-transform:uppercase}.brew__settings{display:flex;flex-direction:column;gap:26px}.brew__settings-title{font-family:DM Mono,SF Mono,Menlo,monospace;font-size:9px;letter-spacing:.18em;color:#aaa;text-transform:uppercase;margin-bottom:10px;padding:0 4px}.brew__settings-list{border:1px solid #e5e5e5;border-radius:6px;overflow:hidden}.brew__settings-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 18px;border-bottom:1px solid #f0f0f0}.brew__settings-row:last-child{border-bottom:none}.brew__settings-label{font-family:Mg12,Georgia,serif;font-size:15px;color:#111}.brew__settings-help{margin-top:8px;padding:0 4px;font-family:DM Mono,SF Mono,Menlo,monospace;font-size:9px;letter-spacing:.14em;color:#aaa;text-transform:uppercase;line-height:1.5}.brew__settings-num{width:72px;padding:6px 10px;text-align:right;font-family:DM Mono,SF Mono,Menlo,monospace;font-size:14px;color:#111;background:transparent;border:1px solid #e5e5e5;border-radius:4px;transition:border-color .2s}.brew__settings-num:focus{outline:none;border-color:#111}.brew__settings-num::-webkit-outer-spin-button,.brew__settings-num::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.brew__settings-num{-moz-appearance:textfield}.brew__toggle{background:transparent;border:1px solid #e5e5e5;border-radius:4px;padding:6px 16px;font-family:DM Mono,SF Mono,Menlo,monospace;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:#777;cursor:pointer;transition:all .2s}.brew__toggle:hover{border-color:#111}.brew__toggle--on{background:#111;color:#fff;border-color:#111}.brew__toggle--on:hover{background:#111;border-color:#111}.brew__settings-actions{display:flex;gap:10px}.brew__settings-actions .brew__btn{flex:1}.brew__bottom{flex-shrink:0;padding-top:28px;background:#fff}.brew__nav{display:flex;align-items:center;justify-content:space-between;gap:12px}.brew__nav-link{background:none;border:none;padding:6px 4px;font-family:DM Mono,SF Mono,Menlo,monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:#777;cursor:pointer;transition:color .2s}.brew__nav-link:hover{color:#111}.brew__nav-link--active{color:#111;text-decoration:underline;text-underline-offset:4px}.brew__nav-icon{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;padding:0;color:#777;cursor:pointer;border-radius:50%;transition:color .2s,background .2s,transform .4s ease}.brew__nav-icon:hover{color:#111;background:#0000000a}.brew__nav-icon--active{color:#111;background:#0000000a;transform:rotate(45deg)}
