/* Code-native learning widgets. State changes follow user input; nothing plays on a loop. */
body.academy-v9.academy-v9 main :is(.ig-hub,.ig-article-embed){--ig-forest:#073b31;--ig-mint:#c8dfcf;--ig-cream:#fffaf0;--ig-gold:#e0b960;--ig-line:#073b3133;min-width:0;color:var(--ig-forest);font-family:Manrope,Arial,sans-serif}
body.academy-v9.academy-v9 main .ig-hub{padding:64px var(--ac-gutter,5vw);background:#e5ecdf;scroll-margin-top:calc(var(--header-offset,88px) + 28px)}
body.academy-v9.academy-v9 main .ig-hub-head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.8fr);gap:8px 40px;align-items:end;max-width:1200px;margin:0 auto 30px}
body.academy-v9.academy-v9 main .ig-hub-head>.eyebrow{grid-column:1/-1;margin-bottom:2px}
body.academy-v9.academy-v9 main .ig-hub-head h2{margin:0;font:800 clamp(48px,5vw,76px)/1.02 'Barlow Condensed',sans-serif;letter-spacing:-.018em}
body.academy-v9.academy-v9 main .ig-hub-head>p:last-child{max-width:44ch;margin:0;font-size:18px;line-height:1.7}
body.academy-v9.academy-v9 main .ig-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;max-width:1200px;margin:0 auto 20px}
body.academy-v9.academy-v9 main .ig-tabs button{display:flex;align-items:center;gap:12px;min-width:0;min-height:56px;padding:14px 18px;text-align:left;white-space:normal;border:1px solid #648474;border-radius:3px;background:#f6f3eb;color:var(--ig-forest);font:600 16px/1.4 Manrope,Arial,sans-serif;transition:background-color 150ms,color 150ms,border-color 150ms}
body.academy-v9.academy-v9 main .ig-tabs button>span{flex:none;font:800 25px/1 'Barlow Condensed',sans-serif;color:#557b61}
body.academy-v9.academy-v9 main .ig-tabs button:is([aria-selected=true],[aria-pressed=true]){background:var(--ig-forest);color:#fffaf0;border-color:var(--ig-forest)}
body.academy-v9.academy-v9 main .ig-tabs button:is([aria-selected=true],[aria-pressed=true])>span{color:var(--ig-gold)}
body.academy-v9.academy-v9 main .ig-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;max-width:1200px;margin:0 auto 28px;border:1px solid var(--ig-line);background:#fffdf8;border-radius:4px;isolation:isolate;overflow:visible}
body.academy-v9.academy-v9 main .ig-panel:last-of-type{margin-bottom:0}
body.academy-v9.academy-v9 main .ig-panel>*{min-width:0}
body.academy-v9.academy-v9 main .ig-visual{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;background:#dce8d8;border-radius:3px 0 0 3px;border-right:1px solid var(--ig-line)}
body.academy-v9.academy-v9 main .ig-visual>svg{display:block;flex:none;width:100%;height:360px;max-height:400px;overflow:visible;object-fit:contain}
body.academy-v9.academy-v9 main .ig-grind-visual>svg{height:330px;max-width:370px}
body.academy-v9.academy-v9 main .ig-kicker{align-self:start;margin:0 0 14px;font:600 13px/1.6 Manrope,Arial,sans-serif;letter-spacing:.09em;text-transform:uppercase}
body.academy-v9.academy-v9 main .ig-visual-note{margin:18px 0 0;max-width:48ch;text-align:center;font:400 13px/1.6 Manrope,Arial,sans-serif;letter-spacing:0;color:#405b48}
body.academy-v9.academy-v9 main .ig-equation{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 14px;width:100%;margin:10px 0 0;line-height:1.3}
body.academy-v9.academy-v9 main .ig-equation b{font:800 clamp(32px,3vw,44px)/1.1 'Barlow Condensed',sans-serif;white-space:nowrap}
body.academy-v9.academy-v9 main .ig-equation>span{font-size:18px;line-height:1.5}
body.academy-v9.academy-v9 main .ig-dilution-visual .ig-equation>span{max-width:20ch;font-size:16px}
body.academy-v9.academy-v9 main .ig-particle-label{margin:16px 0 0;font:800 40px/1.1 'Barlow Condensed',sans-serif}
body.academy-v9.academy-v9 main .ig-pour-total{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:8px 18px;margin-top:12px;width:100%}
body.academy-v9.academy-v9 main .ig-pour-total>span{font-size:16px;line-height:1.5}
body.academy-v9.academy-v9 main .ig-pour-total output{font:800 clamp(36px,3.5vw,48px)/1.1 'Barlow Condensed',sans-serif;overflow-wrap:anywhere}
body.academy-v9.academy-v9 main .ig-explain{padding:32px;align-self:center}
body.academy-v9.academy-v9 main .ig-explain>.eyebrow{margin:0 0 12px;font-size:13px;line-height:1.6;letter-spacing:.12em}
body.academy-v9.academy-v9 main .ig-explain h3{font:800 clamp(40px,3.7vw,56px)/1.04 'Barlow Condensed',sans-serif;letter-spacing:-.015em;margin:0 0 20px}
body.academy-v9.academy-v9 main .ig-explain>p{font-size:18px;line-height:1.7;margin:0 0 22px}
body.academy-v9.academy-v9 main .ig-explain .text-link{display:inline-flex;align-items:center;max-width:100%;min-height:48px;margin-top:8px;font-size:16px;line-height:1.5;text-wrap:pretty}
body.academy-v9.academy-v9 main .ig-segments{display:flex;flex-wrap:wrap;gap:8px;margin:22px 0}
body.academy-v9.academy-v9 main .ig-segments button{flex:1 1 110px;min-width:0;min-height:48px;padding:10px 14px;background:transparent;color:var(--ig-forest);border:1px solid #648474;border-radius:24px;font:600 16px/1.5 Manrope,Arial,sans-serif;white-space:normal;transition:background-color 150ms,color 150ms}
body.academy-v9.academy-v9 main .ig-segments button[aria-pressed=true]{background:var(--ig-forest);color:#fffaf0;border-color:var(--ig-forest)}
body.academy-v9.academy-v9 main .ig-slider-label{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:6px 16px;font:600 16px/1.6 Manrope,Arial,sans-serif;margin:18px 0 0}
body.academy-v9.academy-v9 main .ig-slider-label output{flex:none;font:800 28px/1.2 'Barlow Condensed',sans-serif;color:#265a40}
body.academy-v9.academy-v9 main .ig-panel input[type=range]{display:block;width:100%;max-width:100%;min-width:0;height:48px;min-height:48px;padding:0;margin:0;background:transparent;accent-color:#265f43;cursor:pointer;touch-action:pan-y}
body.academy-v9.academy-v9 main .ig-panel input[type=range]::-webkit-slider-thumb{width:26px;height:26px;cursor:grab}
body.academy-v9.academy-v9 main .ig-panel input[type=range]::-moz-range-thumb{width:24px;height:24px;border:2px solid #fffaf0;border-radius:50%;background:#265f43;box-shadow:0 0 0 1px #265f43;cursor:grab}
body.academy-v9.academy-v9 main .ig-panel input[type=range]:active::-webkit-slider-thumb{cursor:grabbing}
body.academy-v9.academy-v9 main .ig-panel input[type=range]:active::-moz-range-thumb{cursor:grabbing}
body.academy-v9.academy-v9 main .ig-range-ends{display:flex;justify-content:space-between;gap:16px;margin:-4px 0 16px;font-size:13px;line-height:1.6;color:#405b48}
body.academy-v9.academy-v9 main .ig-result{display:flex;align-items:center;flex-wrap:wrap;gap:12px 20px;margin:22px 0 16px;padding:20px;background:var(--ig-mint);border-left:4px solid #648474}
body.academy-v9.academy-v9 main .ig-result output{font:800 clamp(36px,3.5vw,48px)/1.1 'Barlow Condensed',sans-serif;overflow-wrap:anywhere}
body.academy-v9.academy-v9 main .ig-result>span{flex:1 1 160px;font-size:16px;line-height:1.5}
body.academy-v9.academy-v9 main .ig-explain .ig-note{font:400 14px/1.7 Manrope,Arial,sans-serif;margin:16px 0;color:#40594c}
body.academy-v9.academy-v9 main .ig-insight{padding:22px;margin:22px 0 14px;background:#f0eadc;border-top:3px solid var(--ig-gold)}
body.academy-v9.academy-v9 main .ig-insight h4{font:800 30px/1.1 'Barlow Condensed',sans-serif;letter-spacing:0;margin:0 0 12px}
body.academy-v9.academy-v9 main .ig-insight p{font-size:16px;line-height:1.7;margin:0}
body.academy-v9.academy-v9 main .ig-insight p+p{margin-top:12px}
body.academy-v9.academy-v9 main .ig-insight .ig-addition{font-size:14px;font-weight:600}
body.academy-v9.academy-v9 main .ig-select-label{display:grid;gap:8px;font:600 16px/1.6 Manrope,Arial,sans-serif;margin:22px 0;min-width:0}
body.academy-v9.academy-v9 main .ig-select-label select{display:block;width:100%;min-width:0;max-width:100%;min-height:48px;padding:12px 32px 12px 12px;border:1px solid #648474;border-radius:3px;background:#fffdf8;color:var(--ig-forest);font:400 16px/1.5 Manrope,Arial,sans-serif}
body.academy-v9.academy-v9 main .ig-pour-stages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin:20px 0}
body.academy-v9.academy-v9 main .ig-pour-stages button{display:flex;flex-direction:column;align-items:start;justify-content:center;gap:5px;min-width:0;min-height:72px;padding:12px 10px;border:1px solid #648474;border-radius:3px;background:transparent;color:#315a42;font:800 26px/1 'Barlow Condensed',sans-serif;text-align:left;transition:background-color 150ms,color 150ms}
body.academy-v9.academy-v9 main .ig-pour-stages button>span{font:600 13px/1.5 Manrope,Arial,sans-serif;overflow-wrap:anywhere}
body.academy-v9.academy-v9 main .ig-pour-stages button[aria-pressed=true]{background:var(--ig-forest);color:#fffaf0;border-color:var(--ig-forest)}
body.academy-v9.academy-v9 main .ig-pour-nav{display:flex;flex-wrap:wrap;justify-content:space-between;gap:12px;margin:20px 0}
body.academy-v9.academy-v9 main .ig-pour-nav button{flex:1 1 140px;min-width:0;min-height:48px;padding:11px 18px;border:1px solid #648474;border-radius:3px;font:600 16px/1.5 Manrope,Arial,sans-serif;white-space:normal;background:#fffdf8;color:var(--ig-forest)}
body.academy-v9.academy-v9 main .ig-pour-nav button:last-child{background:var(--ig-mint)}
body.academy-v9.academy-v9 main .ig-pour-nav button:disabled{cursor:default;opacity:.55}
body.academy-v9.academy-v9 main .ig-dilution-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:20px 0}
body.academy-v9.academy-v9 main .ig-dilution-facts>div{display:flex;flex-direction:column;gap:6px;min-width:0;padding:18px;background:var(--ig-mint);border-top:3px solid #648474}
body.academy-v9.academy-v9 main .ig-dilution-facts output{font:800 clamp(36px,3.5vw,48px)/1.1 'Barlow Condensed',sans-serif;overflow-wrap:anywhere}
body.academy-v9.academy-v9 main .ig-dilution-facts span{font-size:14px;line-height:1.5;overflow-wrap:break-word}
body.academy-v9.academy-v9 main .ig-noscript{max-width:1200px;margin:20px auto 0;padding:18px;border:1px solid var(--ig-line);background:#fffdf8;font-size:16px;line-height:1.7}
body.academy-v9.academy-v9 main .ig-article-embed{padding:44px var(--ac-gutter,5vw);background:#e7ecdf}
body.academy-v9.academy-v9 main .ig-article-embed .ig-panel{margin-bottom:0}
/* Semantic SVG elements are revealed by explicit stage state, never an autoplay sequence. */
body.academy-v9.academy-v9 main :is(.ig-pour-water,.ig-pour-coffee,.ig-pour-drink,.ig-pour-stream){opacity:0;transition:opacity 150ms,transform 150ms}
body.academy-v9.academy-v9 main [data-pour-stage="1"] .ig-pour-coffee,
body.academy-v9.academy-v9 main [data-pour-stage="2"] .ig-pour-coffee,
body.academy-v9.academy-v9 main [data-pour-stage="3"] :is(.ig-pour-coffee,.ig-pour-drink,.ig-pour-stream){opacity:1}
body.academy-v9.academy-v9 main [data-pour-stage="2"] .ig-pour-water{opacity:.7;transform:translateY(25px)}
body.academy-v9.academy-v9 main [data-pour-stage="3"] .ig-pour-water{opacity:.8;transform:translateY(0)}
body.academy-v9.academy-v9 main .ig-panel :is([data-vessel-fill],[data-grind-particles] circle,[data-solids]){transition:fill 150ms,opacity 150ms,r 150ms,y 150ms,height 150ms,transform 150ms}
body.academy-v9.academy-v9 main .ig-panel :is(button,input,select,a):focus-visible,body.academy-v9.academy-v9 main .ig-tabs button:focus-visible{outline:3px solid #39794e;outline-offset:4px}
body.academy-v9.academy-v9 main :is(.ig-tabs button,.ig-segments button,.ig-pour-stages button,.ig-pour-nav button):not(:disabled):active{background:#e8ce87;color:#073b31}
@media(max-width:1180px){
 body.academy-v9.academy-v9 main .ig-panel{grid-template-columns:minmax(0,1fr)}
 body.academy-v9.academy-v9 main .ig-visual{border-right:0;border-bottom:1px solid var(--ig-line);padding:24px 30px;border-radius:3px 3px 0 0}
 body.academy-v9.academy-v9 main .ig-visual>svg{height:300px;max-height:340px;max-width:600px}
 body.academy-v9.academy-v9 main .ig-grind-visual>svg{height:280px;max-width:340px}
 body.academy-v9.academy-v9 main .ig-kicker{align-self:center;margin-bottom:8px}
 body.academy-v9.academy-v9 main .ig-explain{padding:32px;max-width:850px;width:100%;justify-self:center}
 body.academy-v9.academy-v9 main .ig-explain h3{font-size:48px}
 body.academy-v9.academy-v9 main .ig-tabs button{padding:12px;gap:8px}
 body.academy-v9.academy-v9 main .ig-pour-stages button{min-height:68px}
 body.academy-v9.academy-v9 main .ig-dilution-facts output{font-size:44px}
}
@media(max-width:700px){
 body.academy-v9.academy-v9 main :is(.ig-hub,.ig-article-embed){padding:40px var(--ac-gutter,20px)}
 body.academy-v9.academy-v9 main .ig-hub-head{grid-template-columns:minmax(0,1fr);gap:16px;margin-bottom:24px}
 body.academy-v9.academy-v9 main .ig-hub-head h2{font-size:48px}
 body.academy-v9.academy-v9 main .ig-hub-head>p:last-child{font-size:16px}
 body.academy-v9.academy-v9 main .ig-tabs{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin-bottom:16px}
 body.academy-v9.academy-v9 main .ig-tabs button{font-size:16px;padding:12px;gap:8px;align-items:start;min-height:60px}
 body.academy-v9.academy-v9 main .ig-tabs button>span{font-size:22px;padding-top:2px}
 body.academy-v9.academy-v9 main .ig-panel{margin-bottom:24px}
 body.academy-v9.academy-v9 main .ig-visual{padding:20px 16px}
 body.academy-v9.academy-v9 main .ig-visual>svg{height:240px;max-height:260px;max-width:100%}
 body.academy-v9.academy-v9 main .ig-grind-visual>svg{height:220px}
 body.academy-v9.academy-v9 main .ig-kicker{font-size:12px;text-align:center}
 body.academy-v9.academy-v9 main .ig-equation{gap:7px 10px}
 body.academy-v9.academy-v9 main .ig-equation b{font-size:34px}
 body.academy-v9.academy-v9 main .ig-equation>span{font-size:16px}
 body.academy-v9.academy-v9 main .ig-explain{padding:24px 20px}
 body.academy-v9.academy-v9 main .ig-explain h3{font-size:40px}
 body.academy-v9.academy-v9 main .ig-explain>p{font-size:16px}
 body.academy-v9.academy-v9 main .ig-explain .ig-note{font-size:14px}
 body.academy-v9.academy-v9 main .ig-insight{padding:18px}
 body.academy-v9.academy-v9 main .ig-insight h4{font-size:28px}
 body.academy-v9.academy-v9 main .ig-pour-stages{grid-template-columns:repeat(2,minmax(0,1fr))}
 body.academy-v9.academy-v9 main .ig-pour-stages button{padding:12px;min-height:64px}
 body.academy-v9.academy-v9 main .ig-pour-stages button>span{font-size:14px}
 body.academy-v9.academy-v9 main .ig-dilution-facts{gap:10px}
 body.academy-v9.academy-v9 main .ig-dilution-facts>div{padding:14px 10px}
 body.academy-v9.academy-v9 main .ig-dilution-facts output{font-size:36px}
 body.academy-v9.academy-v9 main .ig-result{padding:18px}
 body.academy-v9.academy-v9 main .ig-pour-total output{font-size:36px}
}
@media(prefers-reduced-motion:reduce){body.academy-v9.academy-v9 main :is(.ig-hub,.ig-article-embed) *,body.academy-v9.academy-v9 main :is(.ig-hub,.ig-article-embed) *:before,body.academy-v9.academy-v9 main :is(.ig-hub,.ig-article-embed) *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
body.academy-v9.academy-v9[data-academy-motion=off] main :is(.ig-hub,.ig-article-embed) *,body.academy-v9.academy-v9[data-academy-motion=off] main :is(.ig-hub,.ig-article-embed) *:before,body.academy-v9.academy-v9[data-academy-motion=off] main :is(.ig-hub,.ig-article-embed) *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
@media print{
 body.academy-v9.academy-v9 main :is(.ig-hub,.ig-article-embed){padding:18px 0;background:#fff;break-inside:avoid}
 body.academy-v9.academy-v9 main .ig-tabs,body.academy-v9.academy-v9 main .ig-panel :is(input,select,.ig-segments,.ig-pour-stages,.ig-pour-nav){display:none!important}
 body.academy-v9.academy-v9 main .ig-panel{grid-template-columns:minmax(0,.7fr) minmax(0,1fr);background:#fff;border:1px solid #aaa}
 body.academy-v9.academy-v9 main .ig-visual{background:#fff;border:0;padding:12px}
 body.academy-v9.academy-v9 main .ig-visual>svg{height:180px;max-height:180px}
 body.academy-v9.academy-v9 main .ig-explain{padding:16px}
 body.academy-v9.academy-v9 main .ig-explain h3{font-size:24pt}
 body.academy-v9.academy-v9 main .ig-panel :is(p,.ig-insight p){font-size:10pt;line-height:1.5}
}
