@font-face{font-family:Rany;src:url(/assets/Rany-Medium.otf)format("opentype");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:Rany;src:url(/assets/Rany-Bold.otf)format("opentype");font-style:normal;font-weight:700;font-display:swap}@font-face{font-family:MiSans;src:url(/assets/MiSans-UI.woff2)format("woff2");font-style:normal;font-weight:100 900;font-display:swap}:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;color:#090909;font-synthesis:none;--acid:#d2fa2a;--ink:#090909;--paper:#fff;--soft:#f1f1ef;--line:#c7c7c1;--muted:#6f6f6b;background:#ececea;font-family:MiSans,PingFang SC,Microsoft YaHei,sans-serif}*{box-sizing:border-box}html{background:#ececea}body{background:#ececea;min-width:320px;min-height:100vh;margin:0}button,input,select{font:inherit;-webkit-tap-highlight-color:transparent}button{cursor:pointer}.brew-page{background:var(--paper);width:min(680px,100%);min-height:100vh;padding:env(safe-area-inset-top) 20px calc(142px + env(safe-area-inset-bottom));margin:0 auto}.brand-header,.timer-header{justify-content:space-between;align-items:center;min-height:72px;display:flex}.brand-header{border-bottom:1px solid var(--ink)}.brand-mark{text-transform:uppercase;width:max-content;font-family:Rany,Arial,sans-serif;line-height:.78;display:grid}.brand-mark b{letter-spacing:-.035em;font-size:18px;font-weight:700}.brand-mark small{letter-spacing:-.02em;justify-self:end;font-size:10px;font-weight:700}.brand-header>span{text-align:right;max-width:145px;font-family:Rany,Arial,sans-serif;font-size:9px;font-weight:700;line-height:1.05}.coffee-hero{padding-top:18px}.coffee-hero>img,.hero-placeholder{aspect-ratio:1.34;object-fit:cover;border-radius:18px;width:100%;display:block}.hero-placeholder{background:var(--acid);place-items:center;display:grid}.hero-placeholder span{color:var(--ink);font-family:Rany,Arial,sans-serif;font-size:112px;font-weight:700}.coffee-copy{padding:28px 0 4px}.product-index{color:var(--acid);letter-spacing:-.04em;justify-content:space-between;align-items:flex-end;margin:0 0 25px;font-family:Rany,Arial,sans-serif;font-size:clamp(28px,8vw,46px);font-weight:700;line-height:.78;display:flex}.product-index b{font-size:.82em;font-weight:500}.origin-line,.timer-kicker{color:var(--ink);margin:0;font-size:10px;font-weight:750;line-height:1.45}.origin-line:before{content:"●";margin-right:6px;font-size:8px}.coffee-copy h1{letter-spacing:-.055em;margin:10px 0 0;font-size:clamp(38px,10vw,58px);font-weight:760;line-height:1.02}.original-name{color:var(--muted);margin:7px 0 0;font-family:Rany,Arial,sans-serif;font-size:14px}.flavor-notes{color:var(--ink);margin:20px 0 0;font-size:17px;font-weight:700;line-height:1.55}.summary{color:#383836;margin:13px 0 0;font-size:13px;line-height:1.75}.coffee-facts{border-top:1px solid var(--line);border-bottom:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));margin-top:23px;display:grid}.coffee-facts span{min-width:0;color:var(--ink);padding:13px 12px 14px 0;font-size:12px;font-weight:650}.coffee-facts span+span{border-left:1px solid var(--line);padding-left:14px}.coffee-facts small{color:var(--muted);margin-bottom:5px;font-size:9px;font-weight:500;display:block}.recipe-card,.steps-card{margin-top:38px;padding-top:3px}.section-title{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.section-title>div{min-width:0}.section-title strong{color:var(--acid);letter-spacing:-.045em;font-family:Rany,Arial,sans-serif;font-size:clamp(31px,9vw,49px);font-weight:700;line-height:.77;display:block}.section-title h2,.section-title p{margin:0}.section-title h2{color:var(--acid);letter-spacing:-.04em;margin-top:5px;font-size:23px;font-weight:760;line-height:1}.section-title p{color:var(--muted);margin-top:10px;font-size:10px}.section-title>span{color:var(--acid);flex:none;font-family:Rany,Arial,sans-serif;font-size:47px;font-weight:500;line-height:.78}.preset-selector{scrollbar-width:none;gap:9px;margin:25px 0 0;padding-bottom:4px;display:flex;overflow-x:auto}.preset-selector::-webkit-scrollbar{display:none}.preset-selector button{border:1px solid var(--ink);background:var(--paper);min-width:112px;color:var(--ink);text-align:left;border-radius:0;flex:none;padding:12px 14px}.preset-selector button.active{background:var(--acid)}.preset-selector strong,.preset-selector span{display:block}.preset-selector strong{font-family:Rany,Arial,sans-serif;font-size:20px;font-weight:700;line-height:1}.preset-selector span{color:var(--muted);margin-top:6px;font-size:9px}.preset-selector button.active span{color:var(--ink)}.recipe-grid{border-top:1px solid var(--line);border-left:1px solid var(--line);grid-template-columns:repeat(3,minmax(0,1fr));margin-top:24px;display:grid}.recipe-grid>div,.recipe-grid>button{border:0;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--paper);min-width:0;min-height:83px;color:inherit;text-align:left;border-radius:0;padding:14px 11px}.recipe-grid small,.recipe-grid strong,.recipe-grid span{display:block}.recipe-grid small{color:var(--muted);font-size:9px;font-weight:550}.recipe-grid strong{text-overflow:ellipsis;white-space:nowrap;margin-top:7px;font-size:15px;font-weight:760;overflow:hidden}.recipe-grid span{color:#53534f;text-overflow:ellipsis;white-space:nowrap;margin-top:5px;font-size:8px;overflow:hidden}.recipe-fact-button{position:relative}.recipe-fact-button:after{content:"↗";font-family:Rany,Arial,sans-serif;font-size:11px;position:absolute;top:10px;right:9px}.recipe-fact-button:active{background:var(--acid)}.steps-card ol{counter-reset:brew-step;border-top:1px solid var(--line);gap:0;margin:27px 0 0;padding:0;list-style:none;display:grid}.steps-card li{counter-increment:brew-step;border-bottom:1px solid var(--line);grid-template-columns:27px 48px minmax(0,1fr);align-items:start;gap:10px;padding:16px 0;display:grid}.steps-card li:before{content:counter(brew-step);background:var(--ink);width:22px;height:22px;color:var(--paper);border-radius:50%;place-items:center;font-family:Rany,Arial,sans-serif;font-size:11px;font-weight:700;display:grid}.steps-card time{color:var(--ink);font-variant-numeric:tabular-nums;padding-top:3px;font-family:Rany,Arial,sans-serif;font-size:12px;font-weight:700}.steps-card strong{font-size:15px;font-weight:760}.steps-card p{color:var(--muted);margin:5px 0 0;font-size:10px;line-height:1.5}.start-dock{z-index:20;background:linear-gradient(to top, var(--paper) 78%, #fff0);max-width:680px;padding:30px 20px calc(14px + env(safe-area-inset-bottom));margin:auto;position:fixed;bottom:0;left:0;right:0}.start-dock button,.primary-timer-action{border:1px solid var(--ink);background:var(--acid);width:100%;min-height:66px;color:var(--ink);border-radius:0;justify-content:space-between;align-items:center;padding:0 18px;display:flex}.start-dock button span{text-align:left;font-family:Rany,Arial,sans-serif;font-size:19px;font-weight:700;line-height:.8}.start-dock button span b{font-family:MiSans,sans-serif;font-size:11px;font-weight:700}.start-dock button small{font-family:Rany,Arial,sans-serif;font-size:17px;font-weight:700}.start-dock p{color:var(--muted);text-align:center;margin:6px 0 0;font-size:8px}.timer-page{background:var(--paper);width:min(680px,100%);height:100svh;min-height:560px;color:var(--ink);padding:env(safe-area-inset-top) 16px calc(11px + env(safe-area-inset-bottom));flex-direction:column;margin:0 auto;display:flex;overflow:hidden}.timer-header{border-bottom:1px solid var(--ink);flex:none;min-height:66px}.timer-header>div>span{color:var(--muted);margin-top:5px;font-size:9px;display:block}.timer-header button{border:1px solid var(--ink);background:var(--paper);color:var(--ink);border-radius:0;padding:7px 12px;font-size:10px;font-weight:700}.timer-progress{background:var(--soft);flex:none;height:6px;overflow:hidden}.timer-progress span{background:var(--acid);height:100%;transition:width .15s linear;display:block}.timer-live{background:var(--acid);flex:none;margin-top:12px;padding:16px 15px 14px}.timer-live-heading{justify-content:space-between;align-items:flex-end;gap:12px;display:flex}.timer-live-heading h1{letter-spacing:-.045em;margin:5px 0 0;font-size:clamp(25px,7vw,39px);font-weight:780;line-height:1.02}.overtime-badge{border:1px solid var(--ink);color:var(--ink);font-variant-numeric:tabular-nums;flex:none;padding:5px 8px;font-family:Rany,Arial,sans-serif;font-size:11px}.live-metrics{grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:end;gap:9px;margin-top:13px;display:grid}.live-metrics>div{min-width:0}.live-metrics>div:last-child{text-align:right}.live-metrics small{color:#333;margin-bottom:4px;font-size:8px;font-weight:650;display:block}.live-metrics strong{font-variant-numeric:tabular-nums;letter-spacing:-.055em;white-space:nowrap;font-family:Rany,Arial,sans-serif;font-size:clamp(50px,15vw,84px);font-weight:500;line-height:.78;display:block}.live-metrics strong em{letter-spacing:0;margin-left:2px;font-family:MiSans,sans-serif;font-size:.27em;font-style:normal;font-weight:650}.live-metrics>span{font-family:Rany,Arial,sans-serif;font-size:clamp(34px,10vw,54px);font-weight:500;line-height:.72}.timer-instruction{min-height:16px;color:var(--ink);margin:12px 0 0;font-size:10px;font-weight:650;line-height:1.4}.timer-flow{color:#333;font-variant-numeric:tabular-nums;margin:4px 0 0;font-size:9px}.timer-next{color:#444;margin:5px 0 0;font-size:8px}.timer-timeline{border-top:1px solid var(--ink);flex-direction:column;flex:auto;min-height:0;margin-top:10px;display:flex;overflow:hidden}.timeline-heading{flex:none;justify-content:space-between;align-items:center;padding:9px 2px 7px;display:flex}.timeline-heading>div{align-items:baseline;gap:7px;display:flex}.timeline-heading span{font-family:Rany,Arial,sans-serif;font-size:13px;font-weight:700}.timeline-heading strong,.timeline-heading small{color:var(--muted);font-size:8px;font-weight:500}.timer-timeline ol{border-top:1px solid var(--line);scrollbar-width:none;scroll-behavior:smooth;min-height:0;margin:0;padding:0;list-style:none;overflow-y:auto}.timer-timeline ol::-webkit-scrollbar{display:none}.timer-timeline li{border-bottom:1px solid var(--line);min-height:46px;color:var(--muted);grid-template-columns:25px 43px minmax(0,1fr);align-items:start;gap:8px;padding:8px 4px;transition:color .2s,background .2s;display:grid}.timeline-marker{border:1px solid;border-radius:50%;place-items:center;width:22px;height:22px;display:grid}.timeline-marker span{font-family:Rany,Arial,sans-serif;font-size:9px;font-weight:700}.timer-timeline time{font-variant-numeric:tabular-nums;padding-top:4px;font-family:Rany,Arial,sans-serif;font-size:10px;font-weight:700}.timeline-copy{min-width:0}.timeline-copy>div{justify-content:space-between;align-items:baseline;gap:8px;display:flex}.timeline-copy strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;font-weight:650;overflow:hidden}.timeline-copy b{flex:none;font-family:Rany,Arial,sans-serif;font-size:11px;font-weight:700}.timeline-copy p{text-overflow:ellipsis;white-space:nowrap;margin:3px 0 0;font-size:8px;line-height:1.35;overflow:hidden}.timer-timeline li.completed{color:var(--ink)}.timer-timeline li.completed .timeline-marker{background:var(--ink);color:var(--paper)}.timer-timeline li.current{background:var(--acid);color:var(--ink)}.timer-timeline li.current .timeline-marker{background:var(--ink);color:var(--acid)}.timer-timeline li.current .timeline-copy strong{font-weight:780}.timer-timeline li.upcoming{color:#969690}.timer-controls{flex:none;padding-top:9px}.timer-controls>div{grid-template-columns:1fr 1.15fr;gap:8px;display:grid}.timer-controls .primary-timer-action,.complete-timer-action{justify-content:center;min-height:48px;font-size:12px;font-weight:760}.timer-controls .primary-timer-action{background:var(--paper)}.complete-timer-action{border:1px solid var(--ink);background:var(--acid);color:var(--ink);border-radius:0}.reset-timer-action{color:var(--muted);background:0 0;border:0;margin:7px auto 0;padding:2px 12px;font-size:9px;display:block}.timer-controls p{color:var(--muted);text-align:center;margin:4px 0 0;font-size:7px}.complete-page{text-align:center;justify-content:center;align-items:center}.complete-page .timer-header{top:env(safe-area-inset-top);position:absolute;left:16px;right:16px}.complete-mark{background:var(--acid);width:96px;height:96px;color:var(--ink);place-items:center;margin-bottom:25px;font-family:Rany,Arial,sans-serif;font-size:44px;display:grid}.complete-page h1{letter-spacing:-.05em;margin:8px 0;font-size:42px;font-weight:780}.complete-page>p:not(.timer-kicker){color:var(--muted);margin:0}.complete-time{border-top:1px solid var(--ink);border-bottom:1px solid var(--ink);gap:3px;width:min(320px,100%);margin:28px 0;padding:20px 0;display:grid}.complete-time small,.complete-time span{color:var(--muted);font-size:9px}.complete-time strong{color:var(--ink);font-variant-numeric:tabular-nums;font-family:Rany,Arial,sans-serif;font-size:64px;font-weight:500;line-height:.9}.complete-page .primary-timer-action{justify-content:center;max-width:320px}.state-page{background:var(--paper);text-align:center;place-content:center;justify-items:center;min-height:100svh;padding:30px;display:grid}.state-page .brand-mark{top:calc(22px + env(safe-area-inset-top));font-family:Rany,Arial,sans-serif;font-size:20px;font-weight:700;position:absolute}.state-page h1{margin:22px 0 7px;font-size:27px;font-weight:760}.state-page p{max-width:280px;color:var(--muted);margin:0;font-size:11px;line-height:1.7}.unavailable-mark{background:var(--acid);width:92px;height:92px;color:var(--ink);place-items:center;font-family:Rany,Arial,sans-serif;font-size:46px;font-weight:700;display:grid}.loader{border:3px solid var(--soft);border-top-color:var(--acid);width:42px;height:42px;animation:.8s linear infinite spin}.grind-sheet-backdrop{z-index:60;padding-top:env(safe-area-inset-top);background:#0009;justify-content:center;align-items:flex-end;display:flex;position:fixed;inset:0}.grind-sheet{background:var(--paper);width:min(680px,100%);max-height:calc(100svh - 24px);color:var(--ink);padding:9px 20px calc(22px + env(safe-area-inset-bottom));border-radius:22px 22px 0 0;overflow-y:auto;box-shadow:0 -20px 50px #0000002e}.grind-sheet-handle{background:var(--line);width:42px;height:4px;margin:0 auto 16px}.grind-sheet header{justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.grind-sheet header p,.grind-sheet header h2{margin:0}.grind-sheet header p{color:var(--acid);letter-spacing:-.03em;font-family:Rany,Arial,sans-serif;font-size:20px;font-weight:700;line-height:.82}.grind-sheet header h2{letter-spacing:-.05em;margin-top:7px;font-size:30px;font-weight:780}.grind-sheet header button{border:1px solid var(--ink);background:var(--paper);width:38px;height:38px;color:var(--ink);border-radius:50%;place-items:center;padding:0 0 3px;font-size:27px;line-height:1;display:grid}.grind-select{color:var(--muted);gap:7px;margin-top:24px;font-size:10px;display:grid}.grind-select select{border:1px solid var(--ink);background:var(--paper);width:100%;min-height:49px;color:var(--ink);border-radius:0;padding:0 12px;font-size:14px}.grind-target{margin-top:18px}.grind-target>span{color:var(--muted);margin-bottom:8px;font-size:10px;display:block}.grind-target>div{grid-template-columns:52px minmax(0,1fr) 52px;align-items:stretch;gap:8px;display:grid}.grind-target button{border:1px solid var(--ink);background:var(--paper);color:var(--ink);border-radius:0;font-family:Rany,Arial,sans-serif;font-size:27px}.grind-target label{display:block;position:relative}.grind-target input{border:1px solid var(--ink);background:var(--paper);width:100%;height:64px;color:var(--ink);text-align:center;font-variant-numeric:tabular-nums;border-radius:0;padding:0 46px 0 12px;font-family:Rany,Arial,sans-serif;font-size:38px}.grind-target label small{color:var(--muted);font-size:10px;position:absolute;bottom:13px;right:14px}.grind-output{border:1px solid var(--ink);background:var(--acid);min-height:180px;color:var(--ink);text-align:center;border-radius:0;place-items:center;margin-top:18px;padding:22px;display:grid}.grind-output>small{font-size:10px;font-weight:650}.grind-output>strong{font-variant-numeric:tabular-nums;margin:7px 0 0;font-family:Rany,Arial,sans-serif;font-size:78px;font-weight:500;line-height:.84}.grind-output>span{font-size:10px}.grind-output.invalid{background:var(--soft)}.grind-output.invalid>strong{color:var(--muted)}.grind-notes,.grind-disclaimer,.grind-empty p{color:var(--muted);font-size:10px;line-height:1.6}.grind-notes{margin:12px 0 0}.grind-disclaimer{margin:14px 0 0}.grind-empty{border:1px solid var(--ink);background:var(--paper);text-align:center;margin-top:20px;padding:22px}.grind-empty strong{font-size:19px;font-weight:760}.grind-empty p{margin:7px 0 0}@keyframes spin{to{transform:rotate(360deg)}}@media (width>=681px){.brew-page,.timer-page{box-shadow:0 0 60px #00000017}}@media (width<=360px){.brew-page{padding-left:16px;padding-right:16px}.product-index{font-size:28px}.section-title strong{font-size:29px}.section-title>span{font-size:39px}.recipe-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.timer-page{padding-left:11px;padding-right:11px}.live-metrics{gap:6px}.live-metrics strong{font-size:clamp(45px,14vw,59px)}.timer-timeline li{grid-template-columns:24px 39px minmax(0,1fr);gap:6px}}@media (height<=700px){.timer-page{min-height:520px}.timer-header{min-height:54px}.timer-live{margin-top:8px;padding-top:11px;padding-bottom:10px}.timer-live-heading h1{font-size:22px}.live-metrics{margin-top:9px}.live-metrics strong{font-size:clamp(43px,13vw,62px)}.timer-instruction{margin-top:8px}.timer-timeline li{min-height:41px;padding-top:5px;padding-bottom:5px}.timer-controls .primary-timer-action,.complete-timer-action{min-height:43px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
