@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Lora:wght@400;500;600&display=swap');
:root{--ink:#30251f;--brown:#70513b;--rust:#9b462f;--green:#45543d;--sand:#e7dac7;--cream:#faf6ed;font-family:Inter,Arial,sans-serif;color:var(--ink);background:var(--cream);font-synthesis:none}*{box-sizing:border-box}body{margin:0}a{color:inherit;text-underline-offset:4px}button,input,select{font:inherit}button,a{touch-action:manipulation}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid var(--rust);outline-offset:5px}.skip{position:absolute;top:-100px}.skip:focus{top:8px;background:var(--cream);z-index:5;padding:12px}.notice{text-align:center;background:var(--sand);padding:10px 20px;font-size:12px;line-height:1.5}header{max-width:1380px;margin:auto;padding:28px 5%;display:flex;align-items:center;justify-content:space-between;gap:30px;border-bottom:1px solid var(--sand)}.brand{font-family:Lora,Georgia,serif;font-weight:600;text-decoration:none;font-size:25px;white-space:nowrap}.brand span{color:var(--rust)}nav{display:flex;gap:25px}nav a{font-size:13px;text-decoration:none;padding:9px 0}nav a[aria-current=page]{color:var(--rust);border-bottom:2px solid var(--rust)}.menu{display:none}main{max-width:1260px;margin:auto;padding:0 32px}h1,h2,h3{font-family:Lora,Georgia,serif;font-weight:400;letter-spacing:-.045em}h1{font-size:clamp(42px,5.5vw,76px);line-height:1.07;margin:20px 0 24px;max-width:800px}h2{font-size:clamp(30px,3.4vw,46px);line-height:1.15;margin:0 0 22px}h3{font-size:25px;margin:12px 0}p{font-size:16px;line-height:1.75;max-width:620px;margin:0 0 22px}.eyebrow{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--green);font-weight:700}.hero{display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:65px;padding:60px 0 68px}.hero p{max-width:410px}.hero figure{margin:0}.hero img{width:100%;height:460px;object-fit:cover;border-radius:120px 120px 4px 4px}.hero figcaption{font-size:11px;line-height:1.6;color:var(--brown);margin-top:12px}.actions{display:flex;align-items:center;gap:25px;flex-wrap:wrap}.button,button.primary{display:inline-block;background:var(--green);color:var(--cream);padding:16px 23px;border:1px solid var(--green);border-radius:3px;font-size:13px;font-weight:600;text-decoration:none;white-space:nowrap}.textlink{font-size:13px;font-weight:600}.intro{padding:65px 0;max-width:780px}.intro h1{font-size:clamp(42px,5vw,65px)}.band{border-top:1px solid var(--sand);padding:52px 0;display:grid;grid-template-columns:.8fr 1.2fr;gap:65px}.band p:last-child{margin-bottom:0}.linkrow{display:flex;gap:25px;flex-wrap:wrap;margin-top:25px}.pill{font-size:11px;font-weight:600;color:var(--green);background:var(--sand);padding:7px 11px;border-radius:3px;display:inline-block}.split{display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:start;padding-bottom:64px}.panel{padding:32px;background:var(--sand);border-radius:4px}.panel p{font-size:14px}.small{font-size:12px;line-height:1.7;color:var(--brown)}.steps{counter-reset:step;margin:0;padding:0 0 60px;list-style:none}.steps li{counter-increment:step;display:grid;grid-template-columns:60px 230px 1fr;gap:22px;padding:28px 0;border-top:1px solid var(--sand)}.steps li:before{content:'0' counter(step);font:24px Lora,serif;color:var(--rust)}.steps h2{font-size:27px}.steps p{margin-bottom:10px}.source{font-size:12px;color:var(--brown)}.mapframe{width:100%;height:420px;border:1px solid var(--sand);border-radius:4px}.region-buttons{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.region-buttons button,.secondary{border:1px solid var(--brown);color:var(--ink);padding:11px 16px;background:transparent;border-radius:3px}.region-buttons button[aria-pressed=true]{background:var(--green);color:var(--cream);border-color:var(--green)}.product-art{min-height:400px;background:var(--sand);display:flex;align-items:center;justify-content:center;border-radius:4px}.bag{width:230px;min-height:320px;padding:35px 22px 25px;background:var(--brown);color:var(--cream);border-radius:8px 8px 18px 18px;box-shadow:15px 20px 0 var(--cream);text-align:center;border-top:12px solid var(--ink)}.bag strong{font:22px Lora,serif}.bag hr{border:0;border-top:1px solid var(--sand);margin:30px 0}.bag p{font-size:12px}.bag em{font:32px Lora,serif;display:block;margin:18px 0}.product-detail h1{font-size:48px}.price{font-family:Lora,serif;font-size:28px;margin:20px 0}.field{margin:20px 0;display:block}.field select,.field input{display:block;padding:12px;margin-top:9px;background:var(--cream);color:var(--ink);border:1px solid var(--brown);border-radius:3px;max-width:100%;width:100%}.goals{padding:20px 0 60px;display:flex;flex-wrap:wrap;gap:16px}.goal{border:1px solid var(--sand);padding:20px;flex:1 1 170px}.goal h3{font-size:22px}.goal p{font-size:18px;margin:10px 0}.goal small{font-size:11px;color:var(--brown)}table{border-collapse:collapse;width:100%;font-size:14px;margin-bottom:24px}th,td{text-align:left;padding:18px 10px;border-bottom:1px solid var(--sand)}th{font-size:11px;text-transform:uppercase;letter-spacing:.07em}td:last-child,th:last-child{text-align:right}.demo-note{border-left:3px solid var(--rust);padding:0 0 0 17px}.status{min-height:25px;font-size:13px;color:var(--green)}footer{max-width:1260px;margin:30px auto 0;padding:35px 32px;border-top:1px solid var(--sand);display:flex;justify-content:space-between;gap:24px;font-size:12px;color:var(--brown)}footer p{font-size:12px;max-width:450px}.mobile-only{display:none}@media(max-width:900px){header{padding:22px 25px;flex-wrap:wrap;gap:15px}nav{gap:18px}.brand{font-size:22px}.hero{gap:30px}.hero img{height:380px}.band{gap:30px}.steps li{grid-template-columns:40px 180px 1fr}}@media(max-width:650px){main{padding:0 22px}header{padding:20px 22px}.menu{display:block;background:transparent;color:var(--ink);border:1px solid var(--sand);padding:9px 12px;border-radius:3px;font-size:12px}nav{display:none;width:100%;flex-wrap:wrap;gap:7px 20px}nav.open{display:flex}.hero{grid-template-columns:1fr;padding:34px 0 40px;gap:35px}.hero h1{font-size:44px;max-width:390px;margin-top:16px}.hero img{height:310px;border-radius:90px 90px 3px 3px}.hero p{font-size:15px}.intro{padding:40px 0 32px}.band,.split{grid-template-columns:1fr;gap:24px}.band{padding:35px 0}.split{padding-bottom:35px}.steps li{grid-template-columns:32px 1fr;gap:14px}.steps li div{grid-column:2}.steps h2{margin:0}.panel{padding:24px}.product-detail h1{font-size:40px}.product-art{min-height:365px}.mapframe{height:330px}footer{padding:25px 22px;display:block}.notice{font-size:11px}th,td{padding:15px 5px}.actions{gap:18px}}@media(prefers-reduced-motion:no-preference){.button,button{transition:background .18s,transform .18s}.button:hover,button.primary:hover{background:var(--ink);transform:translateY(-2px)}}
/* Shop access remains visible when the mobile menu is closed. */
header{gap:22px}nav{margin-left:auto;gap:20px}.shop-button{padding:12px 18px;font-size:12px}.shop-button[aria-current=page]{outline:2px solid var(--rust);outline-offset:3px}.game-board{padding:36px;background:var(--sand);border-radius:8px;margin-bottom:48px}.game-heading{display:flex;justify-content:space-between;gap:24px;align-items:center}.game-heading h2{margin:18px 0 0}.challenge-total{text-align:right}.challenge-total strong{font:42px Lora,serif;display:block}.challenge-total span{font-size:11px}.podium{display:flex;align-items:flex-end;justify-content:center;gap:18px;min-height:295px;margin:30px 0}.podium-player{text-align:center;flex:1;max-width:220px}.class-avatar{width:54px;height:54px;background:var(--cream);color:var(--green);border:2px solid var(--green);border-radius:50%;display:grid;place-items:center;margin:0 auto 10px;font:24px Lora,serif}.podium-player h3{font:18px Inter,sans-serif;letter-spacing:0;margin:0 0 6px}.podium-player .sample-score{font-weight:700;font-size:18px;margin:0 0 14px;display:block}.podium-block{height:100px;border-radius:6px 6px 0 0;background:var(--brown);color:var(--cream);padding:18px 10px;display:flex;flex-direction:column;align-items:center;gap:9px}.podium-block strong{font:38px Lora,serif}.podium-block span{font-size:11px}.podium-player[data-rank="1"]{order:2}.podium-player[data-rank="1"] .podium-block{height:155px;background:var(--green)}.podium-player[data-rank="2"]{order:1}.podium-player[data-rank="2"] .podium-block{height:115px}.podium-player[data-rank="3"]{order:3}.podium-player[data-rank="3"] .podium-block{height:85px;background:var(--rust)}.team-challenge{display:flex;align-items:center;gap:28px;background:var(--cream);padding:28px;border-radius:6px;margin-bottom:20px}.challenge-ring{--progress:52%;flex-shrink:0;width:112px;height:112px;border-radius:50%;background:conic-gradient(var(--green) var(--progress),var(--sand) 0);display:grid;place-items:center}.challenge-ring span{display:grid;place-items:center;width:90px;height:90px;border-radius:50%;background:var(--cream);font:27px Lora,serif}.team-challenge h3{margin-top:0}.team-challenge p{font-size:14px;margin-bottom:12px}.collection-note{font-size:13px;color:var(--brown);max-width:760px;margin-bottom:30px}.coffee-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:22px;margin-bottom:60px}.coffee-card{min-width:0;border:1px solid var(--sand);border-radius:5px;overflow:hidden}.coffee-visual{height:285px;background:var(--sand);display:grid;place-items:center;padding:25px}.coffee-pack{width:174px;max-width:100%;height:230px;background:var(--brown);color:var(--cream);border-top:10px solid var(--ink);border-radius:6px 6px 12px 12px;padding:20px 13px;display:flex;align-items:center;text-align:center;flex-direction:column;justify-content:space-between;box-shadow:7px 8px 0 var(--cream)}.coffee-pack strong{font:17px Lora,serif}.pack-origin{font-size:9px;letter-spacing:.16em}.pack-title{font:29px Lora,serif;line-height:1.2}.pack-weight{font-size:9px}.beans .coffee-pack{background:var(--green)}.light .coffee-pack{background:var(--cream);color:var(--ink);border-top-color:var(--brown);box-shadow:7px 8px 0 var(--brown)}.dark .coffee-pack{background:var(--ink);border-top-color:var(--rust)}.coffee-copy{padding:22px}.coffee-copy h2{font-size:27px;letter-spacing:-.04em;margin:9px 0 12px}.coffee-copy p{font-size:13px}.coffee-price{display:flex;align-items:center;gap:10px}.coffee-price strong{font:24px Lora,serif}.coffee-price span{font-size:10px;color:var(--brown)}.coffee-copy .field{font-size:11px;line-height:1.5}.coffee-copy select{font-size:12px;padding:10px}.coffee-copy details{font-size:12px;line-height:1.6;margin:0 0 20px}.coffee-copy summary{cursor:pointer;text-underline-offset:4px;text-decoration:underline}.coffee-copy details p{margin:12px 0;font-size:12px}.coming-soon{display:block;text-align:center;border:1px solid var(--sand);padding:12px;font-size:12px;color:var(--brown);border-radius:3px}.shop-intro{padding-bottom:28px}@media(max-width:1100px){.coffee-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:900px){header{gap:16px}nav{gap:12px}nav a{font-size:12px}.shop-button{padding:11px 13px}.game-board{padding:26px}}@media(max-width:650px){header{gap:12px}.brand{font-size:20px}.menu{margin-left:auto;order:2}.shop-button{order:1;margin-left:auto;font-size:11px;padding:10px 12px}.menu{margin-left:0}nav{order:3;margin-left:0}.game-board{padding:20px;margin-bottom:30px}.game-heading{align-items:start;gap:12px}.game-heading h2{font-size:30px}.challenge-total strong{font-size:30px}.challenge-total span{display:block;max-width:90px;line-height:1.5}.podium{gap:9px;margin-top:24px;min-height:265px}.podium-player h3{font-size:13px}.podium-player .sample-score{font-size:16px}.class-avatar{width:42px;height:42px;font-size:20px}.podium-block{padding:15px 5px}.podium-block span{font-size:9px}.team-challenge{padding:20px;gap:18px;align-items:flex-start;flex-direction:column}.challenge-ring{width:88px;height:88px}.challenge-ring span{width:70px;height:70px;font-size:23px}.coffee-grid{gap:16px}.coffee-visual{height:240px;padding:20px}.coffee-pack{height:200px;width:150px}.coffee-copy{padding:18px}.coffee-copy h2{font-size:26px}.coffee-price{align-items:start;flex-direction:column;gap:4px}.coffee-pack strong{font-size:14px}.pack-title{font-size:25px}}@media(max-width:440px){.coffee-grid{grid-template-columns:1fr}.coffee-visual{height:290px}.coffee-pack{height:245px;width:185px}.coffee-pack strong{font-size:18px}.pack-title{font-size:33px}.coffee-copy h2{font-size:30px}.coffee-price{align-items:center;flex-direction:row;gap:14px}.brand{font-size:19px}header{gap:9px}.menu{font-size:11px;padding:9px}.shop-button{padding:10px;font-size:10px}}
/* Parent research results stay separate from the fictional class game. */
.survey-results [hidden]{display:none}
.survey-note{margin-top:14px}.survey-results{border-top:1px solid var(--sand);padding:42px 0 28px}.survey-heading{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:30px}.survey-heading h2{margin-top:14px;margin-bottom:0}.response-count{text-align:right}.response-count strong{font:58px Lora,Georgia,serif;display:block;color:var(--green)}.response-count>span{font-size:12px}.survey-charts{display:grid;grid-template-columns:1fr 1fr;gap:50px}.survey-charts h3{font-size:25px;margin-top:0;letter-spacing:-.03em}.survey-charts article{padding:25px 0;border-top:1px solid var(--sand)}.survey-charts .small{margin-bottom:16px}.survey-bars{display:grid;gap:16px}.survey-bar-row{display:grid;grid-template-columns:100px 1fr 85px;align-items:center;gap:12px;font-size:12px}.survey-track{height:8px;background:var(--sand);border-radius:8px;overflow:hidden}.survey-track span{display:block;height:100%;background:var(--green);border-radius:8px}.survey-bar-row:nth-child(2) .survey-track span{background:var(--brown)}.survey-value{text-align:right;font-variant-numeric:tabular-nums}.survey-refresh{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:20px 0}.survey-refresh p{margin:0}.survey-refresh button{white-space:nowrap;font-size:12px}.demo-disclosure{margin-top:20px}.demo-disclosure>.game-board{margin-top:30px}.demo-disclosure>summary{padding:10px 0}.demo-disclosure>.small{margin-top:15px}@media(max-width:760px){.survey-charts{grid-template-columns:1fr;gap:20px}.survey-heading{align-items:flex-start}.response-count strong{font-size:44px}.response-count{max-width:90px}.survey-bar-row{grid-template-columns:95px 1fr 77px;gap:8px}.survey-refresh{align-items:flex-start;flex-direction:column}.survey-results{padding-top:30px}}
/* Four visible destinations, including direct shop access. */
.menu{display:none!important}nav{display:flex;align-items:center;gap:26px}nav a.nav-shop{color:var(--cream);padding:12px 22px;border:1px solid var(--green)}nav a.nav-shop[aria-current=page]{border:1px solid var(--green);outline:2px solid var(--rust);outline-offset:3px}.kaldi-story{background:var(--sand);border-radius:6px;padding:42px;margin:15px 0 55px}.kaldi-heading{max-width:720px}.kaldi-heading h2{margin-top:20px}.story-scenes{list-style:none;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:35px;margin:30px 0}.story-number{font:46px Lora,serif;color:var(--rust)}.story-scenes h3{font-size:26px}.story-scenes p{font-size:14px}.kaldi-story>.small{max-width:900px}.kaldi-story .linkrow{margin-top:12px}@media(max-width:760px){header{flex-wrap:wrap}nav{margin:0;width:100%;justify-content:space-between;gap:12px}nav a{font-size:12px}nav a.nav-shop{padding:11px 16px}.story-scenes{grid-template-columns:1fr;gap:18px}.kaldi-story{padding:26px}.story-scenes h3{margin-top:8px}}@media(max-width:440px){nav{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-start}nav a{font-size:11px}nav a.nav-shop{padding:9px 12px}.kaldi-story{padding:22px}}
.site-logo{display:block;width:132px;height:132px;object-fit:cover;object-position:center;border-radius:5px}.brand:has(.site-logo){display:block;line-height:0}header{padding-top:10px;padding-bottom:10px}.pack-logo{width:90px;height:90px;object-fit:cover;object-position:center;border-radius:4px}.coffee-pack{padding-top:9px}.coffee-pack .pack-title{font-size:25px}.coffee-pack .pack-logo{width:76px;height:76px}@media(max-width:760px){header{align-items:center;gap:6px}.site-logo{width:104px;height:104px}nav{padding:6px 0 12px}.coffee-pack .pack-title{font-size:23px}}
/* Icon-only logo: display a crop of the supplied original, without changing the asset. */
.site-logo,.pack-logo,.coffee-pack .pack-logo{width:80px;height:80px;object-fit:none;object-position:50% 39%;border-radius:0}.site-logo{margin:0}.mission{max-width:740px;padding:45px 0 60px;border-top:1px solid var(--sand)}.mission p{font-size:17px}.read-more{border-top:1px solid var(--sand);padding:20px 0;margin-bottom:25px;line-height:1.7}.read-more>summary{font-size:14px;cursor:pointer;color:var(--green);font-weight:600}.read-more>p{margin-top:18px;font-size:14px}.read-more .band{padding:30px 0;gap:30px}.shop-guide{margin-top:0;margin-bottom:26px;padding:12px 0}.shop-guide>p{font-size:13px}.kaldi-story{padding:32px;margin-bottom:35px}.story-scenes{gap:25px}.hero{padding-top:40px;padding-bottom:45px}.hero h1{font-size:clamp(42px,5vw,68px)}footer .site-logo{width:80px;height:80px}header{padding-top:8px;padding-bottom:8px}@media(max-width:760px){header{flex-wrap:wrap}.site-logo{width:80px;height:80px}.hero{padding-top:28px}.read-more .band{grid-template-columns:1fr;gap:14px}.mission{padding:30px 0 40px}.kaldi-story{padding:23px}.hero h1{font-size:44px}}
/* School and coffee-community outreach uses the existing site palette. */
.outreach-page{max-width:1080px}.outreach-intro{max-width:760px}.outreach-intro p{max-width:540px}.outreach-steps{margin-top:30px;padding-bottom:24px}.outreach-steps h3{margin:0;font-size:27px}.outreach-steps p{font-size:16px}.outreach-section{padding:36px 0;border-top:1px solid var(--sand)}.outreach-section>p{max-width:680px}.outreach-section h2,.outreach-faq-list>h2{font-size:clamp(28px,3.4vw,40px)}.invitation{margin:0;padding:20px 0}.invitation-copy{white-space:pre-wrap;overflow-wrap:anywhere;max-width:760px}.invitation .status{margin:14px 0 0}.outreach-join .contact-privacy{margin-top:18px}.contact-privacy{max-width:650px}.partner-lanes article{display:grid;grid-template-columns:1fr 1.6fr;gap:48px;padding:32px 0;border-top:1px solid var(--sand)}.partner-lanes h2{font-size:32px;margin:0;line-height:1.25}.partner-lanes p{margin-bottom:14px}.partner-lanes .small{margin-bottom:0}.outreach-faq-list{padding:26px 0}.outreach-faq-list .read-more{margin-bottom:0}.outreach-faq-list .read-more p,.outreach-faq p,.invitation .invitation-copy{font-size:16px}.outreach-home{padding:36px 0 48px;border-top:1px solid var(--sand)}.outreach-home h2{font-size:clamp(28px,3.4vw,40px)}.footer-links{display:flex;flex-wrap:wrap;gap:14px 22px;max-width:450px}summary:focus-visible{outline:3px solid var(--rust);outline-offset:5px}@media(max-width:650px){.partner-lanes article{grid-template-columns:1fr;gap:16px;padding:26px 0}.partner-lanes h2{font-size:28px}.outreach-steps h3{font-size:25px}.outreach-section{padding:28px 0}.outreach-intro h1{font-size:42px}.outreach-intro .button,.outreach-join .button{white-space:normal}.footer-links{padding-bottom:10px}.outreach-home{padding:28px 0 36px}}
.support-skills{max-width:760px;margin:28px 0}.support-skills>div{display:grid;grid-template-columns:1fr 1.4fr;gap:24px;margin:0 0 22px}.support-skills dt{font-weight:600;font-size:16px;line-height:1.6}.support-skills dd{margin:0;font-size:16px;line-height:1.7;color:var(--brown)}@media(max-width:650px){.support-skills>div{grid-template-columns:1fr;gap:4px;margin-bottom:20px}}

/* Use the brand manual's horizontal website lockup at a legible size. */
:root{--cream:#f7f4ee}
.site-logo{display:block;width:320px;height:auto;max-width:100%;object-fit:contain;object-position:center;border-radius:0}
footer .site-logo{width:260px}
@media(max-width:760px){.site-logo{width:250px;height:auto}footer .site-logo{width:240px}}
@media(max-width:370px){.site-logo{width:215px;height:auto}}

/* A few documentary photographs and quiet, single-ink drawings soften the pages. */
.journey-photo{margin:0}
.journey-photo figcaption{font-size:12px;line-height:1.55;color:var(--brown);margin-top:10px;max-width:650px}
.journey-photo{margin:-22px 0 48px}
.journey-photo img{display:block;width:100%;height:260px;object-fit:cover;object-position:center 47%;border-radius:3px}
.illustrative-stories{border-top:1px solid var(--sand);padding:52px 0 55px;scroll-margin-top:24px}
.story-intro{max-width:750px}
.story-intro h2{margin:8px 0 15px}
.story-intro p{max-width:700px}
.fiction-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:45px;margin:28px 0 15px}
.fiction-grid article{border-top:1px solid var(--sand);padding-top:18px}
.fiction-grid h3{font-size:27px}
.fiction-grid p{font-size:15px;max-width:500px}
.fiction-note{max-width:750px}
@media(max-width:760px){.journey-photo{margin:-8px 0 35px}.journey-photo img{height:190px}.illustrative-stories{padding:38px 0}.fiction-grid{grid-template-columns:1fr;gap:12px}}

.life-map{border-top:1px solid var(--sand);border-bottom:1px solid var(--sand);padding:32px 0 30px;margin:34px 0}
.life-map h2{font-size:clamp(29px,3.5vw,39px);margin:0 0 12px}
.life-map>p{font-size:15px;max-width:690px}
.life-map>img{display:block;width:100%;height:auto;margin:18px 0 10px}
.life-map-stops{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px 18px;padding:0;margin:17px 0 14px;list-style:none;counter-reset:journey}
.life-map-stops li{counter-increment:journey;font-size:12px;line-height:1.45;color:var(--ink)}
.life-map-stops li::before{content:counter(journey) ". ";font-weight:700;color:#2f6b4f}
.life-map .small{font-size:11px;color:var(--brown);margin:0}
@media(max-width:650px){.life-map-stops{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.life-map{padding:25px 0}}

/* The hand-drawn book becomes a small recurring mark on editorial headings. */
main h1[data-icon]::before,main h2[data-icon]::before{content:"";display:block;width:52px;height:43px;margin:0 0 12px;background:var(--heading-icon) center/contain no-repeat}
[data-icon="bag"]{--heading-icon:url("assets/bag-line.svg")}
[data-icon="chart"]{--heading-icon:url("assets/chart-line.svg")}
[data-icon="checklist"]{--heading-icon:url("assets/checklist-line.svg")}
[data-icon="coffee-sprig"]{--heading-icon:url("assets/coffee-sprig-line.svg")}
[data-icon="coin"]{--heading-icon:url("assets/coin-line.svg")}
[data-icon="compass"]{--heading-icon:url("assets/compass-line.svg")}
[data-icon="conversation"]{--heading-icon:url("assets/conversation-line.svg")}
[data-icon="cup"]{--heading-icon:url("assets/cup-line.svg")}
[data-icon="goat"]{--heading-icon:url("assets/goat-line.svg")}
[data-icon="hands"]{--heading-icon:url("assets/hands-line.svg")}
[data-icon="jebena"]{--heading-icon:url("assets/jebena-line.svg")}
[data-icon="pencil"]{--heading-icon:url("assets/pencil-line.svg")}
[data-icon="people"]{--heading-icon:url("assets/people-line.svg")}
[data-icon="pin"]{--heading-icon:url("assets/pin-line.svg")}
[data-icon="podium"]{--heading-icon:url("assets/podium-line.svg")}
[data-icon="school"]{--heading-icon:url("assets/school-line.svg")}
[data-icon="schoolbook"]{--heading-icon:url("assets/schoolbook-line.svg")}
[data-icon="steps"]{--heading-icon:url("assets/steps-line.svg")}
.shop-page main h1::before{filter:brightness(0) invert(1);opacity:.82}
.shop-page .coffee-card h2::before{display:none}

.ib-values{border-top:1px solid var(--sand);padding:35px 0 32px}
.ib-values>p{max-width:760px}
.ib-value-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px;margin:24px 0}
.ib-value-grid article{border-top:1px solid var(--sand);padding-top:14px}
.ib-value-grid h3{font-size:23px;margin:0 0 8px}
.ib-value-grid p{font-size:14px;line-height:1.65;margin:0}
.ib-values .small{font-size:11px;color:var(--brown)}
@media(max-width:650px){.ib-value-grid{grid-template-columns:1fr;gap:16px}}

.fiction-grid sup{font:12px Arial,sans-serif;margin-left:2px;vertical-align:super}
.fiction-grid sup a{text-decoration:none;color:var(--brown)}
.story-footnote{font-size:11px;line-height:1.55;color:var(--brown);max-width:720px;margin:6px 0 0}

.hero-photo img{display:block;object-position:10% center}
@media(max-width:650px){.hero-photo img{object-position:25% center}}

.editorial-photo{margin:0 0 48px}
.editorial-photo img{display:block;width:100%;height:clamp(240px,31vw,390px);object-fit:cover;border-radius:3px}
.editorial-photo figcaption,.photo-pair figcaption{font-size:11px;line-height:1.55;color:var(--brown);margin-top:10px}
.editorial-photo--portrait{max-width:620px;margin:0 auto 48px}
.editorial-photo--portrait img{height:clamp(340px,45vw,520px);object-position:center 43%}
.photo-pair{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin:4px 0 48px}
.photo-pair figure{margin:0}
.photo-pair img{display:block;width:100%;height:clamp(190px,25vw,310px);object-fit:cover;border-radius:3px}
@media(max-width:650px){.editorial-photo{margin-bottom:35px}.editorial-photo img{height:250px}.editorial-photo--portrait img{height:390px}.photo-pair{gap:10px;margin-bottom:36px}.photo-pair img{height:180px}.photo-pair figcaption{font-size:10px}}

/* Coffee knowledge library: short editorial cards with clear source attribution. */
.knowledge-page{max-width:1260px}
.knowledge-intro{max-width:850px;padding-bottom:48px}
.knowledge-intro p{max-width:710px}
.knowledge-jump{display:flex;flex-wrap:wrap;gap:10px;margin-top:27px}
.knowledge-jump a{font-size:12px;font-weight:600;text-decoration:none;border:1px solid var(--sand);padding:11px 14px;border-radius:2px}
.knowledge-jump a:hover{border-color:var(--green);color:var(--green)}
.knowledge-section{border-top:1px solid var(--sand);padding:44px 0 52px;scroll-margin-top:24px}
.knowledge-section-heading{max-width:720px;margin-bottom:27px}
.knowledge-section-heading h2{margin:10px 0 10px}
.knowledge-section-heading p{font-size:15px;margin:0}
.knowledge-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.knowledge-card{min-height:258px;padding:24px 23px 21px;border:1px solid var(--sand);border-radius:3px;text-decoration:none;display:flex;flex-direction:column;background:#fbf8f2;transition:border-color .18s,transform .18s,box-shadow .18s}
.knowledge-card:hover{border-color:var(--green);transform:translateY(-3px);box-shadow:0 8px 20px #30251f0c}
.knowledge-card-top{display:flex;justify-content:space-between;gap:12px;color:var(--green);font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;line-height:1.5}
.knowledge-card-top span:last-child{font-size:18px;line-height:1}
.knowledge-card h3{font-size:26px;line-height:1.18;margin:23px 0 11px;letter-spacing:-.04em}
.knowledge-card p{font-size:13px;line-height:1.65;color:var(--brown);margin:0 0 20px}
.knowledge-card-action{font-size:12px;font-weight:700;color:var(--green);text-decoration:underline;text-underline-offset:4px;margin-top:auto}
.knowledge-note{font-size:11px;color:var(--brown);max-width:830px;margin:0 0 40px}
.knowledge-next{border-top:1px solid var(--sand);padding:44px 0 26px}
.knowledge-next h2{font-size:clamp(30px,3.4vw,43px)}
.knowledge-next p{font-size:15px}
.knowledge-entry{border-top:1px solid var(--sand);padding:26px 0 38px}
.knowledge-entry h2{font-size:clamp(28px,3vw,39px);margin:0 0 12px}
.knowledge-entry p{font-size:15px;max-width:680px}
@media(max-width:900px){.knowledge-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.knowledge-intro{padding-bottom:32px}.knowledge-section{padding:32px 0 39px}.knowledge-grid{grid-template-columns:1fr;gap:12px}.knowledge-card{min-height:220px}.knowledge-card h3{margin-top:17px}.knowledge-entry{padding:24px 0 32px}}

/* Let the fifth main link wrap naturally below the logo on smaller screens. */
@media(max-width:760px){header nav{flex-wrap:wrap;justify-content:flex-start;column-gap:20px;row-gap:7px}}

/* Keep navigation labels readable between desktop and mobile widths. */
header nav a{white-space:nowrap}
@media(max-width:1060px){header{flex-wrap:wrap}header nav{width:100%;margin-left:0;justify-content:flex-start;flex-wrap:wrap}}

.about-story{max-width:none}
.about-story>p{max-width:740px}
.about-story .life-map{max-width:1000px}

/* The personal route is presented as a small editorial travel atlas. */
.about-story .life-map{max-width:none;margin:52px 0 45px;padding:40px 0 36px;border-color:#d6c7b5}
.life-map-heading{display:flex;justify-content:space-between;align-items:end;gap:30px;margin-bottom:26px}
.life-map-heading h2{margin:8px 0 9px}
.life-map-heading p{margin:0}
.life-map-count{display:flex;align-items:center;gap:14px;border-left:1px solid var(--sand);padding-left:25px;color:var(--green);max-width:235px;line-height:1.25}
.life-map-count strong{font:normal 55px/1 Lora,Georgia,serif;letter-spacing:-.08em}
.life-map-count span{font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.life-map-visual{margin:0;background:#e8eee6;border:1px solid #c6d3c4;box-shadow:0 12px 28px #30251f10}
.life-map-visual-top{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:15px 22px;background:#344d3c;color:#f9f3e6;font-size:11px;letter-spacing:.12em;text-transform:uppercase;font-weight:700}
.life-map-visual-top span:last-child{opacity:.7;font-weight:500}
.life-map-visual img{display:block;width:100%;height:auto}
.life-map-visual figcaption{font-size:11px;line-height:1.5;color:#445a4c;padding:0 22px 15px}
.life-map-stops{grid-template-columns:repeat(4,minmax(0,1fr));gap:0 18px;margin:27px 0 15px}
.life-map-stops li{position:relative;display:flex;flex-direction:column;min-height:84px;padding:16px 8px 14px 41px;border-top:1px solid #c9baa8;font-size:14px;font-weight:600;line-height:1.35}
.life-map-stops li::before{content:counter(journey);position:absolute;left:0;top:13px;display:grid;place-items:center;width:29px;height:29px;border-radius:50%;background:#344d3c;color:#fff;font:700 12px Inter,Arial,sans-serif}
.life-map-stops li:last-child::before{background:var(--rust)}
.life-map-stops small{display:block;font-size:11px;line-height:1.45;font-weight:400;color:var(--brown);margin-top:4px}
.place-notes{margin-top:36px;padding-top:30px;border-top:1px solid #d6c7b5}
.place-notes-intro{max-width:720px;margin-bottom:23px}
.place-notes-intro h3{font:normal clamp(27px,3.3vw,38px)/1.15 Lora,Georgia,serif;letter-spacing:-.035em;margin:9px 0 12px}
.place-notes-intro p{font-size:15px;line-height:1.7;margin:0}
.place-notes-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.place-notes-grid article{padding:21px 20px 23px;background:#f2eee6;border-top:2px solid var(--green)}
.place-notes-grid article span{display:block;font-size:10px;line-height:1.4;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--green);margin-bottom:10px}
.place-notes-grid article p{font-size:13px;line-height:1.65;margin:0}
@media(max-width:760px){.place-notes-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.place-notes-grid{grid-template-columns:1fr}.place-notes-grid article{padding:19px}.place-notes{margin-top:26px;padding-top:25px}}
@media(max-width:760px){.life-map-count{display:none}.life-map-stops{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.about-story .life-map{margin:36px 0;padding:29px 0}.life-map-visual-top{padding:13px 15px}.life-map-visual-top span:last-child{display:none}.life-map-visual figcaption{padding:2px 15px 14px}.life-map-stops{gap:0 10px}.life-map-stops li{min-height:83px;font-size:12px;padding-left:33px}.life-map-stops li::before{width:26px;height:26px}.life-map-stops small{font-size:10px}}

/* A documented cooperative example connects coffee value to community choices. */
.union-story{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.15fr);gap:64px;padding:48px 45px 43px;margin:2px 0 56px;background:#e9eee7;border-left:4px solid var(--green)}
.union-story-heading h2{font-size:clamp(31px,3.6vw,48px);margin:18px 0 0;max-width:500px}
.union-story-copy{padding-top:4px}
.union-story-copy p{max-width:650px;font-size:15px;margin-bottom:17px}
.union-story-copy .linkrow{display:flex;flex-wrap:wrap;gap:14px 22px;margin:19px 0}
.union-story-copy .small{font-size:11px;line-height:1.6;color:var(--brown);margin:0}
@media(max-width:760px){.union-story{grid-template-columns:1fr;gap:23px;padding:32px 25px;margin-bottom:38px}.union-story-heading h2{max-width:650px;margin-top:12px}}

/* Clear next steps for parents, schools and coffee partners. */
.home-process{padding:41px 0 51px;border-top:1px solid var(--sand)}
.hero .hero-more{margin:14px 0 0;font-size:13px;line-height:1.5;color:var(--brown)}
.hero-more a{font-weight:600;color:var(--green)}
.home-process h2{margin:11px 0 25px}
.home-process-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}
.home-process-grid article{border-top:1px solid #c9baa8;padding-top:15px}
.home-process-grid article>span{font:30px Lora,Georgia,serif;color:var(--rust)}
.home-process-grid h3{font-size:23px;margin:11px 0 8px}
.home-process-grid p{font-size:14px;margin:0;max-width:300px}
.home-proof{display:grid;grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);gap:35px;padding:35px 0;border-top:1px solid var(--sand)}
.home-proof h2{font-size:clamp(29px,3.2vw,40px);margin:10px 0 0}
.home-proof ul{list-style:none;margin:0;padding:0}
.home-proof li{display:grid;grid-template-columns:105px 1fr;gap:18px;padding:12px 0;border-top:1px solid var(--sand);font-size:13px;line-height:1.55}
.home-proof li:first-child{border-top:0}
.home-proof li strong{color:var(--green)}
.home-roles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:24px}
.home-roles a{display:flex;flex-direction:column;gap:8px;min-height:104px;padding:19px;border:1px solid var(--sand);text-decoration:none;background:#fbf8f2;transition:border-color .18s,transform .18s}
.home-roles a:hover{border-color:var(--green);transform:translateY(-2px)}
.home-roles strong{font-size:14px}
.home-roles span{font-size:12px;color:var(--green);line-height:1.5}
.shop-choice-guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:0 0 27px;padding:15px 0;border-top:1px solid #35382f;border-bottom:1px solid #35382f}
.shop-choice-guide div{display:flex;flex-wrap:wrap;align-items:baseline;gap:6px 16px}
.shop-choice-guide strong{font-size:12px;color:#d7b38b}
.shop-choice-guide span{font-size:12px;color:#e2dbd0;line-height:1.5}
.shop-survey{display:flex;justify-content:space-between;align-items:center;gap:30px;padding:45px 0 56px;border-top:1px solid #35382f}
.shop-survey h2{font-size:clamp(28px,3.2vw,39px);margin:10px 0}
.shop-survey p{font-size:14px;margin:0}
.shop-survey .button{flex-shrink:0}
.school-brief{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;padding:20px 0 32px;border-top:1px solid var(--sand)}
.school-brief div{display:flex;flex-direction:column;gap:5px}
.school-brief strong{font:25px Lora,Georgia,serif;color:var(--green)}
.school-brief span{font-size:12px;line-height:1.5;color:var(--brown)}
.partner-jump{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 31px}
.partner-jump a{font-size:12px;font-weight:600;text-decoration:none;padding:10px 13px;border:1px solid var(--sand);background:#fbf8f2}
.partner-jump a:hover{border-color:var(--green);color:var(--green)}
.partner-lanes article{scroll-margin-top:20px}
.partner-checklist{max-width:700px;margin:20px 0;padding:20px 23px;background:#e9eee7;border-left:3px solid var(--green)}
.partner-checklist strong{font-size:13px}
.partner-checklist ul{margin:10px 0 0;padding-left:19px}
.partner-checklist li{font-size:13px;line-height:1.65;margin:5px 0}
.survey-school-link{font-size:13px;margin:10px 0 0}
.survey-school-link a{font-weight:600;color:var(--green)}
@media(max-width:760px){.home-process-grid,.home-roles{grid-template-columns:1fr;gap:13px}.home-process-grid article{padding-top:12px}.home-process-grid p{max-width:none}.home-proof{grid-template-columns:1fr;gap:14px}.home-roles a{min-height:0}.shop-choice-guide{grid-template-columns:1fr;gap:10px}.shop-survey{align-items:flex-start;flex-direction:column}.school-brief{grid-template-columns:1fr;gap:14px}.school-brief div{padding-bottom:11px;border-bottom:1px solid var(--sand)}}

/* A small set of editorial marks tied to the problem, rather than a generic book on every heading. */
[data-icon="scale"]{--heading-icon:url("assets/scale-line.svg")}
[data-icon="farmer"]{--heading-icon:url("assets/farmer-line.svg")}
[data-icon="schooldesk"]{--heading-icon:url("assets/schooldesk-line.svg")}
[data-icon="notebook"]{--heading-icon:url("assets/notebook-line.svg")}

/* The problem: direct evidence with its limits kept close to the claims. */
.problem-page main{max-width:1260px}
.problem-hero{display:grid;grid-template-columns:1.1fr .9fr;gap:64px;align-items:center;padding:70px 0 82px}
.problem-hero h1{font-size:clamp(42px,5vw,68px);max-width:720px}
.problem-hero p{font-size:18px;max-width:610px}
.problem-hero figure,.problem-contrast figure,.problem-hope figure{margin:0}
.problem-hero img{display:block;width:100%;height:510px;object-fit:cover;border-radius:130px 130px 3px 3px}
.problem-hero figcaption,.problem-contrast figcaption,.problem-hope figcaption{font-size:11px;line-height:1.5;color:var(--brown);margin-top:10px}
.problem-section{padding:62px 0 65px;border-top:1px solid var(--sand)}
.problem-section h2{max-width:790px;margin:11px 0 29px}
.problem-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:30px 0 22px}
.problem-stats article{background:#eee4d5;padding:29px 26px 27px;min-height:300px;display:flex;flex-direction:column}
.problem-stats strong{font:500 clamp(46px,5.3vw,74px) Lora,Georgia,serif;letter-spacing:-.06em;line-height:1;color:var(--rust)}
.problem-stats p{font-size:15px;line-height:1.6;margin:18px 0 20px}
.problem-stats a,.problem-sources a{font-size:12px;font-weight:600;text-underline-offset:4px}
.problem-stats a{margin-top:auto}
.problem-method{font-size:12px;line-height:1.65;color:var(--brown);max-width:970px}
.problem-contrast,.problem-hope{display:grid;grid-template-columns:1.15fr .85fr;gap:65px;align-items:start}
.problem-contrast p,.problem-hope p{font-size:16px;max-width:700px}
.problem-contrast figure img,.problem-hope figure img{display:block;width:100%;height:430px;object-fit:cover;border-radius:3px}
.problem-contrast figure img{object-position:center 35%}
.problem-prices{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:25px 0 20px}
.problem-prices div{padding:22px;border:1px solid #cbb9a2}
.problem-prices span{font-size:12px;line-height:1.55;display:block;min-height:56px}
.problem-prices strong{font:500 clamp(24px,2.5vw,35px) Lora,Georgia,serif;display:block;margin-top:8px}
.problem-sources{display:flex;flex-wrap:wrap;gap:14px 24px;margin-top:22px}
.problem-two{display:grid;grid-template-columns:1fr 1fr;gap:50px}
.problem-two p{max-width:560px}
.problem-hope{background:#e8e8da;margin:0 -32px;padding:60px 32px 68px;border-top:0}
.problem-hope .source{display:inline-block;margin-top:22px}
.problem-updated{font-size:11px;color:var(--brown);margin:24px 0 45px;max-width:900px}
@media(max-width:900px){.problem-hero,.problem-contrast,.problem-hope{gap:30px}.problem-hero img{height:420px}.problem-stats article{padding:22px 20px}}
@media(max-width:700px){.problem-hero,.problem-contrast,.problem-hope,.problem-two{grid-template-columns:1fr}.problem-hero{padding:43px 0 47px;gap:26px}.problem-hero h1{font-size:clamp(40px,10vw,54px)}.problem-hero p{font-size:16px}.problem-hero img{height:300px;border-radius:90px 90px 3px 3px}.problem-section{padding:42px 0 44px}.problem-stats{grid-template-columns:1fr;gap:10px}.problem-stats article{min-height:0}.problem-stats strong{font-size:56px}.problem-contrast figure img,.problem-hope figure img{height:250px}.problem-two{gap:0}.problem-prices{grid-template-columns:1fr}.problem-prices span{min-height:0}.problem-hope{margin:0 -22px;padding:42px 22px 48px}.problem-hope .actions{gap:18px}}
/* Local preview: market evidence, student wall and coffee journey */
.market-section>p:first-of-type{max-width:760px}.market-cards,.market-charts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin:25px 0}.market-card,.market-chart{display:block;text-decoration:none;color:var(--ink);background:#f2eee6;border:1px solid #d8cbbb;padding:22px;transition:transform .2s ease,box-shadow .2s ease}.market-card:hover,.market-chart:hover{transform:translateY(-3px);box-shadow:0 10px 20px #30251f18}.market-card>span:first-child{display:block;color:var(--green);font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;line-height:1.5}.market-card>strong{display:block;font:normal clamp(30px,3.4vw,48px)/1.1 Lora,Georgia,serif;letter-spacing:-.06em;margin:14px 0}.market-card p{font-size:13px;line-height:1.6;margin:0 0 16px}.market-link{display:block;color:var(--green);font-size:11px;font-weight:700;text-decoration:underline;text-underline-offset:3px}.market-chart{background:#faf7ef}.market-chart-title{display:block;font:normal 22px/1.2 Lora,Georgia,serif}.market-chart small{display:block;font-size:10px;letter-spacing:.05em;color:var(--brown);margin:8px 0 20px}.chart-row{display:grid;grid-template-columns:90px minmax(0,1fr) 55px;gap:8px;align-items:center;font-size:10px;margin:12px 0}.chart-row b{text-align:right;font-size:10px}.chart-track{height:14px;background:#e2d7c7}.chart-track i{display:block;height:100%;background:var(--green)}.market-chart .chart-row:nth-of-type(2) .chart-track i{background:var(--rust)}.market-chart .market-link{margin-top:20px}.place-note-links{display:flex;flex-wrap:wrap;gap:12px;margin-top:14px}.place-note-links a{font-size:11px;color:var(--green);font-weight:700;text-underline-offset:3px}.place-notes-method{font-size:11px;line-height:1.6;color:var(--brown);margin:20px 0 0}.place-notes-grid article p b{color:var(--green)}.journey-triptych{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin:25px auto 40px;max-width:1200px}.journey-triptych figure{margin:0;min-width:0;background:#e9dfd2}.journey-triptych img{display:block;width:100%;height:330px;object-fit:cover}.journey-triptych figure:nth-child(2) img{object-position:center 38%}.journey-triptych figcaption{font:normal 17px Lora,Georgia,serif;padding:12px 15px}.journey-triptych-note{grid-column:1/-1;font-size:11px;color:var(--brown);margin:0}.wall-main{max-width:1200px;margin:auto;padding:35px 24px 80px}.wall-hero{max-width:760px;padding:25px 0 40px}.wall-hero h1{font-size:clamp(40px,5.5vw,70px);line-height:1.08}.wall-hero p{max-width:650px;font-size:17px;line-height:1.7}.wall-layout{display:grid;grid-template-columns:minmax(0,1.8fr) minmax(270px,1fr);gap:35px;align-items:start}.wall-feed h2{margin:0 0 25px}.wall-post{background:#fffaf2;border:1px solid #dfd2c2;padding:26px;margin-bottom:16px}.wall-post-top{display:flex;align-items:center;gap:12px}.wall-avatar{display:grid;place-items:center;flex:none;width:42px;height:42px;background:var(--green);color:#fff;border-radius:50%;font:normal 22px Lora,Georgia,serif}.wall-post-top strong,.wall-post-top small{display:block}.wall-post-top strong{font-size:13px}.wall-post-top small{font-size:11px;color:var(--brown);margin-top:3px}.wall-post h3{font:normal 25px/1.25 Lora,Georgia,serif;margin:21px 0 12px}.wall-post p{font-size:14px;line-height:1.7}.wall-post a{font-size:12px;color:var(--green);font-weight:700}.wall-prompt{background:#f2eee6}.wall-prompt .wall-avatar{background:var(--rust)}.wall-sidebar{background:#e9eee7;padding:26px;position:sticky;top:20px}.wall-sidebar h2{font-size:28px;line-height:1.2}.wall-sidebar p,.wall-sidebar li{font-size:13px;line-height:1.65}.wall-sidebar ol{padding-left:19px}.wall-safety{border-top:1px solid #b8c7b6;padding-top:18px;margin-top:25px;font-size:11px!important}.wall-compose{display:grid;grid-template-columns:minmax(230px,1fr) minmax(300px,1.4fr);gap:36px;margin-top:65px;padding-top:35px;border-top:1px solid #d9cdbc}.wall-compose h2{font-size:37px}.wall-compose>div p{font-size:14px;line-height:1.7}.wall-compose form{background:#f2eee6;padding:26px}.wall-compose label{display:block;font-size:12px;font-weight:700;margin:0 0 7px}.wall-compose label span{font-weight:400}.wall-compose input,.wall-compose textarea,.wall-compose select{display:block;width:100%;box-sizing:border-box;border:1px solid #b8a99a;background:#fff;padding:12px;font:14px Inter,Arial,sans-serif;margin:0 0 18px;color:var(--ink)}.wall-compose textarea{resize:vertical}.wall-compose #post-status{font-size:12px;margin:14px 0 0}.wall-preview{grid-column:2}.wall-preview[hidden]{display:none}.wall-preview #preview-body{white-space:pre-wrap}.wall-preview #preview-source{overflow-wrap:anywhere;font-size:11px;color:var(--brown)}
@media(max-width:850px){.market-cards,.market-charts{grid-template-columns:1fr}.market-card>strong{font-size:40px}.wall-layout{grid-template-columns:1fr}.wall-sidebar{position:static}.wall-compose{grid-template-columns:1fr}.wall-preview{grid-column:1}}
@media(max-width:600px){.journey-triptych{grid-template-columns:1fr;gap:14px}.journey-triptych img{height:230px}.wall-main{padding:20px 16px 60px}.wall-compose{gap:18px}.wall-hero{padding-bottom:25px}}

/* Participation and innovation cards. The bag mock-ups use the user-supplied blank pack. */
.home-process-grid a{display:block;border-top:1px solid #c9baa8;padding:15px 12px 14px 0;text-decoration:none;transition:background .18s,padding-left .18s}
.home-process-grid a:hover,.home-process-grid a:focus-visible{background:#eee7db;padding-left:12px}
.home-process-grid a>span{font:30px Lora,Georgia,serif;color:var(--rust)}
.home-process-grid a strong{display:block;margin-top:16px;color:var(--green);font-size:12px}
.participation-page{max-width:1160px}
.participation-page .intro{padding-bottom:35px}
.action-grid,.idea-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px;margin:12px 0 65px}
.action-card,.idea-card{display:flex;flex-direction:column;align-items:flex-start;min-height:250px;padding:25px 23px;border:1px solid var(--sand);background:#fcfaf5;text-decoration:none;scroll-margin-top:20px;transition:transform .18s,border-color .18s}
.action-card:hover,.idea-card:not(.static):hover{transform:translateY(-3px);border-color:var(--green)}
.action-card>img,.idea-card>img{width:48px;height:44px;object-fit:contain;margin:18px 0 2px}
.action-card h2{font-size:28px;margin:8px 0 12px}
.idea-card h3{font-size:26px;margin:7px 0 14px}
.action-card p,.idea-card p{font-size:14px;line-height:1.65;margin:0 0 20px}
.action-card strong,.idea-card strong{margin-top:auto;color:var(--green);font-size:12px}
.participation-note{border-top:1px solid var(--sand);padding:35px 0 65px}
.participation-note h2{font-size:36px}
.participation-note p{max-width:800px;font-size:15px}
.innovation-section{border-top:1px solid var(--sand);padding:45px 0 50px}
.section-lead{max-width:760px;margin-bottom:26px}
.section-lead h2{margin:12px 0 12px}
.section-lead p{font-size:15px}
.sticker-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.sticker-card{background:#fcfaf5;border:1px solid var(--sand);padding:12px 12px 20px}
.sticker-card>div:last-child{padding:11px 10px 0}
.sticker-card h3{font-size:22px;margin:8px 0}
.sticker-card p{font-size:13px;line-height:1.6;margin:0}
.bag-preview{position:relative;background:#ece5da;overflow:hidden;height:300px;display:grid;place-items:center}
.bag-preview>img{display:block;height:280px;max-width:95%;width:auto;object-fit:contain}
.sticker{position:absolute;top:38%;left:50%;transform:translateX(-50%) rotate(-3deg);width:110px;min-height:87px;padding:11px 8px;background:#f8f4e9;border:1px solid #756e5c;box-shadow:2px 4px 4px #46372736;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:7px}
.sticker b{font:33px Georgia,serif;color:var(--green);line-height:1}
.sticker small{font-size:5px;letter-spacing:.12em;line-height:1.4}
.sticker-question{border-radius:50%;width:98px;min-height:98px;transform:translateX(-50%) rotate(4deg)}
.sticker-price{background:#eef2e7;transform:translateX(-50%) rotate(2deg)}
.sticker-class{background:#f7ecd8;border-style:dashed;transform:translateX(-50%) rotate(-5deg)}
.sticker-class b{font:24px Georgia,serif}
.sticker-fact{background:#fff5df;transform:translateX(-50%) rotate(5deg)}
.sticker-blank{border:2px dotted var(--brown);transform:translateX(-50%) rotate(-1deg)}
.sticker-rule{margin:26px 0 0;max-width:830px;padding:21px 25px;border-left:3px solid var(--green);background:#e9eee7}
.sticker-rule strong{font-size:14px}
.sticker-rule p{font-size:13px;max-width:790px;margin:8px 0}
.funding-zero{display:flex;align-items:baseline;gap:24px;padding:22px 0 35px;border-top:1px solid var(--sand)}
.funding-zero strong{font:30px Lora,serif;color:var(--rust)}
.funding-zero span{font-size:13px;color:var(--brown)}
.idea-card.static{min-height:215px}
@media(max-width:900px){.action-grid,.idea-grid,.sticker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.action-grid,.idea-grid,.sticker-grid{grid-template-columns:1fr;gap:12px;margin-bottom:38px}.action-card,.idea-card{min-height:0}.bag-preview{height:340px}.bag-preview>img{height:320px}.funding-zero{display:block}.funding-zero span{display:block;margin-top:9px}.innovation-section{padding:32px 0}.participation-note{padding:30px 0 45px}}

.sticker-art b{display:block;width:48px;height:43px;margin:0 auto;background:url("assets/coffee-sprig-line.svg") center/contain no-repeat}
/* A clear home for the purpose, and a separate home for every way to take part. */
.hero .hero-purpose{font-size:15px;color:var(--brown);margin-top:16px}
.home-values{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:50px;margin:24px 0 64px}
.home-values figure{margin:0}.home-values img{display:block;width:100%;height:350px;object-fit:cover;border-radius:3px}
.home-values figcaption{font-size:10px;color:var(--brown);line-height:1.5;margin-top:9px}
.home-values h2{font-size:clamp(29px,3.3vw,41px);line-height:1.15;margin:15px 0 20px}
.home-values p{font-size:16px;line-height:1.75}
.home-survey-link{display:inline-block;margin-top:25px;font-size:13px}
.knowledge-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;padding:0 0 32px}
.knowledge-overview a{display:flex;flex-direction:column;gap:9px;text-decoration:none;border-top:1px solid var(--sand);padding-top:18px}
.knowledge-overview strong{font-size:15px}.knowledge-overview span{font-size:12px;line-height:1.6;color:var(--green)}
@media(max-width:760px){.home-values{grid-template-columns:1fr;gap:25px;margin-bottom:40px}.home-values img{height:260px}.knowledge-overview{grid-template-columns:1fr;gap:20px}.hero .hero-purpose{font-size:14px}}
/* Short, shareable invitations behind a single Get Involved hub. */
.audience-group{border-top:1px solid var(--sand);padding-top:30px;margin-top:15px}
.audience-group .action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.audience-group .action-card h3{font:26px Lora,Georgia,serif;line-height:1.2;margin:14px 0}
.audience-page{max-width:940px}.audience-page .intro>.textlink{display:block;margin-bottom:30px;font-size:13px}
.audience-page .intro .eyebrow{display:block}.audience-next,.audience-questions{border-top:1px solid var(--sand);padding:30px 0}
.audience-next p,.audience-questions li{max-width:760px;line-height:1.8}.audience-questions li{margin-bottom:14px}
.audience-questions ul{padding-left:22px}.audience-questions .small{max-width:740px;margin:22px 0}
.invitation-share{padding:28px;background:#e9eee7;margin-bottom:50px}.invitation-share h2{font-size:28px;margin-top:0}
.invitation-share label{display:block;font-size:12px;margin-bottom:9px}.share-controls{display:flex;gap:12px;align-items:stretch}
.share-controls input{min-width:0;flex:1;border:1px solid var(--sand);padding:12px;background:#fffdf8;color:var(--ink);font-family:inherit;font-size:14px}
.share-controls button{cursor:pointer;border:0}.invitation-share .small{min-height:1.5em;margin-bottom:0}
@media(max-width:650px){.audience-group .action-grid{grid-template-columns:1fr}.share-controls{flex-direction:column}.invitation-share{padding:20px}.audience-group .action-card h3{font-size:24px}}

/* The Coffee Game: a fictional, self-contained learning journey. */
.coffee-game-page{max-width:1260px}
.game-hero{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(260px,.8fr);gap:50px;align-items:center;padding:58px 0 48px;border-bottom:1px solid var(--sand)}
.game-hero h1{max-width:720px}.game-hero p{max-width:650px}.game-hero .small{max-width:570px}
.game-hero-art{min-height:240px;display:grid;grid-template-columns:repeat(5,1fr);grid-template-rows:1fr auto;align-items:center;justify-items:center;padding:30px 24px 24px;background:#e9eee7;border:1px solid #cbdbc9;border-radius:130px 130px 6px 6px}
.game-hero-art img{width:68px;height:78px;object-fit:contain}.game-hero-art .game-path-line{width:100%;height:2px;background:var(--green);transform:rotate(-12deg)}
.game-hero-art span:nth-last-child(-n+3){grid-row:2;font-size:10px;letter-spacing:.14em;color:var(--green);font-weight:700}.game-hero-art span:nth-last-child(3){grid-column:1}.game-hero-art span:nth-last-child(2){grid-column:3}.game-hero-art span:last-child{grid-column:5}
.coffee-game{padding:44px 0 62px;min-height:400px}
.game-intro{display:grid;grid-template-columns:minmax(220px,.75fr) minmax(0,1.25fr);gap:60px;align-items:center;background:#eee8dc;padding:35px 58px 35px 25px}
.game-intro-art{position:relative;max-width:360px;overflow:hidden}.game-intro-art>img:first-child{width:100%;height:360px;object-fit:contain;display:block}
.game-intro-art .game-bag-logo{position:absolute;left:50%;top:42%;width:56%;height:auto;transform:translate(-50%,-50%)}
.game-intro h2{margin:14px 0 22px}.game-intro p{font-size:15px}.game-intro .button{margin-top:9px}
.game-topline{display:flex;justify-content:space-between;gap:20px;align-items:center;color:var(--green);font-weight:700;font-size:12px;letter-spacing:.06em;text-transform:uppercase;margin:0 0 24px}
.game-map{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;list-style:none;margin:0 0 30px;padding:0}
.game-map li{display:flex;align-items:center;gap:9px;min-width:0;padding:12px 11px;background:#efe8dc;border-top:3px solid #d8c8b7;color:#766b5f;font-size:11px;font-weight:700}
.game-map img{width:29px;height:29px;opacity:.5;object-fit:contain;flex:none}.game-map li.current{background:#e9eee7;border-color:var(--green);color:var(--green)}.game-map li.done{border-color:var(--rust);color:var(--ink)}.game-map li.current img,.game-map li.done img{opacity:1}
.game-scene{display:grid;grid-template-columns:minmax(185px,.34fr) minmax(0,1fr);background:#fbf9f3;border:1px solid #d8c8b7;min-height:480px}
.game-scene-mark{background:#e9eee7;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:30px;padding:40px 22px;text-align:center}
.game-scene-mark img{width:120px;height:120px;object-fit:contain}.game-scene-mark span{font:normal 28px Lora,Georgia,serif;color:var(--green)}
.game-question{padding:42px 44px 40px}.game-question h2{font-size:clamp(30px,3.5vw,44px);margin-bottom:14px}.game-question>p{font-size:16px;max-width:690px;margin-bottom:26px}
.game-choices{display:grid;gap:10px;margin-bottom:18px}.game-choice{display:block;width:100%;padding:17px 21px;border:1px solid #cab9a5;border-radius:3px;text-align:left;background:#fffdf9;color:var(--ink);font-size:14px;line-height:1.6;transition:background .18s,border-color .18s,transform .18s}
.game-choice:hover:not(:disabled){background:#e9eee7;border-color:var(--green);transform:translateX(3px)}.game-choice:disabled{cursor:default;color:#756b61}.game-choice.best-choice{border:2px solid var(--green);background:#e9eee7;color:var(--ink)}.game-choice.selected:not(.best-choice){border-color:var(--rust);background:#f4e7df;color:var(--ink)}
.game-feedback{background:#f2eee5;border-left:4px solid var(--green);padding:18px 21px;margin:18px 0 20px}.game-feedback strong{display:block;color:var(--green);font-size:14px}.game-feedback p{font-size:14px;line-height:1.6;margin:9px 0 10px}.game-feedback a{font-size:12px}
.game-finish{max-width:800px;margin:0 auto;text-align:center;background:#e9eee7;border:1px solid #c7d5c3;padding:54px 40px}.game-finish>img{display:block;width:82px;height:82px;margin:0 auto 22px}.game-finish h2{margin:14px auto}.game-finish strong{display:block;font:normal 28px Lora,Georgia,serif;color:var(--rust);margin:15px auto}.game-finish p{margin-left:auto;margin-right:auto}.game-finish .actions{justify-content:center}
.game-after{display:grid;grid-template-columns:1fr .8fr;gap:55px;border-top:1px solid var(--sand);padding:45px 0 65px}.game-after h2{margin-top:13px}.game-after-links{display:grid;align-content:center}.game-after-links a{display:flex;justify-content:space-between;gap:20px;text-decoration:none;font-weight:600;font-size:14px;border-top:1px solid #d1c3b3;padding:16px 0}.game-after-links a:last-child{border-bottom:1px solid #d1c3b3}.game-after-links span{color:var(--green)}
@media(max-width:800px){.game-hero{gap:24px}.game-intro{gap:20px;padding:22px}.game-map li{font-size:10px}.game-map img{width:24px}.game-scene{grid-template-columns:145px 1fr}.game-scene-mark img{width:80px;height:80px}.game-question{padding:32px 26px}}
@media(max-width:650px){.game-hero{grid-template-columns:1fr;padding:40px 0 35px}.game-hero-art{min-height:170px;padding:20px}.game-hero-art img{width:48px;height:55px}.game-intro{grid-template-columns:1fr}.game-intro-art{display:none}.coffee-game{padding:28px 0 42px}.game-map{grid-template-columns:repeat(5,minmax(0,1fr));gap:3px}.game-map li{padding:10px 3px;justify-content:center;flex-direction:column;text-align:center;font-size:9px;line-height:1.2}.game-map img{width:24px;height:25px}.game-scene{display:block}.game-scene-mark{padding:17px;flex-direction:row;gap:14px;justify-content:flex-start}.game-scene-mark img{width:42px;height:42px}.game-scene-mark span{font-size:22px}.game-question{padding:25px 20px 30px}.game-question>p{font-size:15px}.game-choice{padding:15px;font-size:13px}.game-finish{padding:38px 22px}.game-after{grid-template-columns:1fr;gap:15px;padding:35px 0 50px}}
@media(prefers-reduced-motion:reduce){.game-choice{transition:none}}

.game-invite{display:flex;justify-content:space-between;align-items:center;gap:28px;background:#e9eee7;padding:28px 30px;margin:10px 0 35px}.game-invite h2{font-size:32px;margin:10px 0}.game-invite p{font-size:14px;margin:0}.game-invite .button{flex:none}@media(max-width:650px){.game-invite{display:block;padding:22px}.game-invite .button{margin-top:16px}}
#coffee-game [hidden]{display:none!important}

/* Coffee Town: original block-builder and tiny storefront. */
.town-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:45px;align-items:center;padding:58px 0 55px;border-bottom:1px solid var(--sand)}
.town-hero h1{font:normal clamp(50px,6vw,82px)/1.02 Lora,Georgia,serif;letter-spacing:-.06em;margin:16px 0 23px}
.town-hero p{max-width:590px;font-size:18px;line-height:1.65}.town-hero .small{font-size:12px;max-width:530px;margin-top:22px;color:var(--brown)}
.town-hero-scene{min-height:330px;background:linear-gradient(#d9e6dd 0 55%,#d0bc8e 55% 57%,#8a996a 57%);border:8px solid #45543d;box-shadow:10px 10px 0 #b9a27d;display:flex;justify-content:center;align-items:flex-end;gap:14px;padding:30px 25px 48px;overflow:hidden}
.hero-block{width:23%;min-height:120px;background:#e7d2a9;box-shadow:inset -12px -10px 0 #b69c72,8px 8px 0 #3b4c35;border:3px solid #473a29;display:flex;flex-direction:column;align-items:center;justify-content:center;transform:translateY(4px)}
.hero-block span{font:normal 67px/1 Georgia,serif;color:#3c6b49}.hero-block small{font:700 9px Inter,Arial,sans-serif;letter-spacing:.16em;margin-top:10px}
.hero-roastery{min-height:164px;background:#d6a47e}.hero-roastery span{color:#934e2d}.hero-shop{min-height:148px;background:#f1cb89}.hero-shop span{color:#6b4627}.hero-school{min-height:185px;background:#f0e2bf}.hero-school span{color:#496a56}
.town-game{padding:50px 0 60px}.town-game-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:22px}.town-game-head h2{font-size:clamp(30px,3vw,42px);margin:8px 0 0}.town-reset{border:1px solid #b7a58f;background:transparent;color:var(--brown);padding:10px 15px;font-size:12px;font-weight:700}
.town-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:0 0 20px}.town-metrics>div{display:grid;grid-template-columns:32px auto;grid-template-rows:auto auto;column-gap:9px;align-items:center;background:#e9eee7;border:1px solid #c7d4c1;padding:12px 17px}.metric-icon{grid-row:1/3;font-size:26px;color:var(--green)}.town-metrics strong{font-size:25px;line-height:1}.town-metrics small{font-size:10px;color:var(--green);text-transform:uppercase;letter-spacing:.08em}
.town-layout{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(300px,.82fr);gap:25px;align-items:start}.town-builder,.town-commerce{min-width:0}.town-section-title{display:flex;align-items:end;justify-content:space-between;gap:10px;margin:10px 0 17px}.town-section-title h3,.town-impact h3{font:normal 29px/1.2 Lora,Georgia,serif;margin:5px 0}.town-section-title p{font-size:11px;color:var(--brown);margin:0 0 3px}.town-step{font-size:10px;letter-spacing:.15em;font-weight:700;color:var(--rust)}
.block-palette{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-bottom:16px}.block-palette button{display:grid;justify-items:center;gap:4px;border:2px solid #d7c9b6;background:#f9f4e8;padding:10px 5px;color:var(--ink);transition:transform .14s,border-color .14s}.block-palette button:hover:not(:disabled){transform:translateY(-3px)}.block-palette button.selected{border-color:var(--green);background:#e8efe2;box-shadow:3px 3px 0 #a8b59d}.block-palette button:disabled{opacity:.5;cursor:not-allowed}.palette-icon{display:grid;place-items:center;width:40px;height:40px;border:2px solid #3d4f38;box-shadow:3px 3px 0 #b2a085;background:#a7b58b;color:#24472d;font:31px Georgia,serif}.icon-roastery{background:#dfa673;color:#7c351f}.icon-shop{background:#f1ca84;color:#60452b}.icon-path{background:#c6b598;color:#5b4c39}.block-palette b{font-size:11px}.block-palette small{font-size:10px;color:var(--brown)}
.world-frame{border:8px solid #374635;background:#81966c;box-shadow:8px 8px 0 #d0c5b2}.world-sky{display:flex;justify-content:space-between;padding:8px 12px;background:#d5e7d9;color:#37523f;font:700 10px Inter,Arial,sans-serif;letter-spacing:.1em}.world-map{padding:18px;background:repeating-linear-gradient(45deg,#859c6d 0 18px,#8fa574 18px 36px)}.world-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;max-width:610px;margin:auto}.world-tile{position:relative;aspect-ratio:1;border:2px solid #48643c;background:#a4b588;box-shadow:inset -5px -5px 0 #839a6d,3px 3px 0 #3e5c38;color:#274d34;display:grid;place-items:center;transition:transform .12s,filter .12s}.world-tile:hover{filter:brightness(1.12);transform:translateY(-2px)}.world-tile:active{transform:translateY(1px)}.world-tile.tile-empty:after{content:'+';font:22px Georgia,serif;color:#55704b;opacity:.4}.world-tile .tile-mark{font:clamp(25px,4vw,49px)/1 Georgia,serif;text-shadow:2px 2px 0 #e4dbb6}.world-tile.tile-grove{background:#93ac76;color:#2e7146}.world-tile.tile-roastery{background:#c88b60;color:#752e1e}.world-tile.tile-shop{background:#eac17b;color:#694225}.world-tile.tile-school{background:#e4dab9;color:#3a6a56;cursor:default}.world-tile.tile-path{background:#c2ae87;color:#78684b}.world-ground{display:flex;justify-content:space-between;padding:8px 12px;color:#f4eed7;background:#43573e;font:700 10px Inter,Arial,sans-serif;letter-spacing:.05em}
.town-status{min-height:45px;margin:18px 0 5px;background:#ecf1e9;border-left:4px solid #587552;padding:12px 15px;font-size:13px;font-weight:600;line-height:1.4}.town-status.error{background:#f9e5df;border-color:#a44f37}.town-quest{margin:23px 0 0;padding:17px 20px;background:#f0e9dc;border:1px dashed #c8b9a5}.town-quest>strong{font-size:13px}.town-quest ol{display:grid;grid-template-columns:1fr 1fr;gap:7px 14px;padding:0;margin:12px 0 0;list-style:none}.town-quest li{font-size:12px;color:#7e7467}.town-quest li:before{content:'□';margin-right:7px}.town-quest li.complete{color:var(--green);font-weight:700}.town-quest li.complete:before{content:'✓'}
.action-card-game,.order-card{border:1px solid #d5c5b2;background:#fffaf0;padding:19px;margin-bottom:11px}.action-heading{display:flex;gap:12px;align-items:center;margin-bottom:15px}.action-glyph{display:grid;place-items:center;width:42px;height:42px;border:2px solid var(--green);background:#e9eee7;color:var(--green);font:29px Georgia,serif}.action-heading b,.action-heading small{display:block}.action-heading b{font-size:14px}.action-heading small{font-size:11px;line-height:1.5;color:var(--brown);margin-top:3px}.town-action{display:flex;width:100%;justify-content:space-between;align-items:center;border:0;background:#607657;color:#fff;padding:12px 16px;font-size:12px;font-weight:700;transition:background .15s,transform .15s}.town-action:hover:not(:disabled){background:#3c5e3c;transform:translateY(-2px)}.town-action:disabled{background:#c9c9bb;color:#6e7068;cursor:not-allowed}.town-action span{font-size:17px}.pack-options{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:0 0 13px}.pack-options label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}.pack-options select{display:block;width:100%;margin-top:6px;padding:9px;background:#fff;border:1px solid #bbaa93;font-size:12px;text-transform:none;letter-spacing:0;color:var(--ink)}.inventory-row{display:flex;flex-wrap:wrap;gap:5px;margin-top:14px}.inventory-chip{font-size:10px;background:#ede4d4;padding:5px 7px;color:#5a4a36}
.order-card{background:#f5dca7;border:2px solid #5f442d;box-shadow:5px 5px 0 #cfb587}.order-top{display:block;font-size:10px;letter-spacing:.15em;font-weight:700}.order-avatar{display:grid;place-items:center;float:right;width:45px;height:45px;margin-top:-7px;background:#eec381;border:2px solid #704e2c;border-radius:50%;font:31px Georgia,serif}.order-card h4{font:normal 25px Lora,Georgia,serif;margin:13px 0 7px}.order-card p{font-size:13px;line-height:1.5;margin:0 0 15px}.order-pay{display:flex;justify-content:space-between;border-top:1px dashed #8f7659;padding:11px 0;font-size:12px}.town-action-dark{background:#423b2e}.town-action-dark:hover:not(:disabled){background:#231f19}
.sale-receipt{background:#fffdf7;border:1px dashed #98866f;padding:16px 18px;margin-top:18px;box-shadow:4px 4px 0 #ded2bd}.sale-receipt>span{font-size:10px;letter-spacing:.1em;font-weight:700}.sale-receipt>span b{float:right}.sale-receipt p{font:normal 20px Lora,serif;margin:14px 0}.sale-receipt>div{display:flex;justify-content:space-between;border-top:1px dotted #d6c6ad;padding:8px 0;font-size:12px}.sale-receipt small{display:block;color:var(--brown);font-size:10px;line-height:1.5;margin-top:9px}.receipt-pop{animation:receipt-in .35s ease-out}@keyframes receipt-in{from{transform:translateY(12px);opacity:.3}to{transform:translateY(0);opacity:1}}
.town-impact{display:grid;grid-template-columns:1fr 1fr;gap:22px;background:#e7efe4;border:1px solid #b9ccb7;margin-top:27px;padding:25px 28px}.town-impact p{font-size:13px;line-height:1.6;margin:10px 0 0}.impact-ledger{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;align-items:start}.impact-ledger>div:not(.book-meter){background:#f9fbf5;padding:10px;display:grid;gap:4px}.impact-ledger span{font-size:10px;color:var(--green)}.impact-ledger strong{font-size:26px}.impact-ledger .book-meter{grid-column:1/-1;height:12px;background:#b8cbb2;border:1px solid #8eab8c}.book-meter span{display:block;height:100%;background:#9a6537;transition:width .25s}.impact-ledger p{grid-column:1/-1;margin:0}.game-disclaimer{font-size:11px!important;line-height:1.6;color:var(--brown);max-width:850px;margin:25px 0 0}.game-disclaimer a{font-weight:700}
@media(max-width:850px){.town-hero{grid-template-columns:1fr;gap:20px}.town-hero-scene{min-height:250px}.town-layout{grid-template-columns:1fr}.town-commerce{display:grid;grid-template-columns:1fr 1fr;gap:10px}.town-commerce>.town-section-title{grid-column:1/-1}.town-commerce .order-card{grid-column:1/-1}.town-commerce .sale-receipt{grid-column:1/-1}}
@media(max-width:600px){.town-hero{padding:35px 0 40px}.town-hero h1{font-size:50px}.town-hero p{font-size:15px}.town-hero-scene{min-height:190px;padding:20px 14px 35px;gap:8px;box-shadow:5px 5px 0 #b9a27d}.hero-block{min-height:80px;box-shadow:inset -7px -7px 0 #b69c72,4px 4px 0 #3b4c35}.hero-block span{font-size:38px}.hero-block small{font-size:7px}.hero-roastery{min-height:105px}.hero-shop{min-height:95px}.hero-school{min-height:115px}.town-game{padding:35px 0 45px}.town-metrics{grid-template-columns:1fr 1fr}.town-metrics>div{padding:10px}.town-section-title{display:block}.town-section-title p{margin-top:6px}.block-palette{gap:5px}.block-palette button{padding:7px 2px}.palette-icon{width:34px;height:34px;font-size:25px}.block-palette b,.block-palette small{font-size:9px}.world-map{padding:11px}.world-grid{gap:3px}.world-tile{border-width:1px;box-shadow:inset -3px -3px 0 #839a6d,2px 2px 0 #3e5c38}.world-tile .tile-mark{font-size:25px}.town-commerce{display:block}.town-impact{grid-template-columns:1fr;padding:20px}.town-quest ol{grid-template-columns:1fr 1fr}.game-after{grid-template-columns:1fr}.town-game-head{align-items:center}.town-reset{white-space:nowrap;font-size:10px;padding:8px}}
@media(prefers-reduced-motion:reduce){.world-tile,.town-action,.sale-receipt,.block-palette button{transition:none;animation:none}}
.world-tile.school-glow{background:#f5db95;box-shadow:inset -5px -5px 0 #cea75a,0 0 0 3px #fff4b8,3px 3px 0 #3e5c38}.world-tile.school-glow .tile-mark{text-shadow:0 0 8px #fff,2px 2px 0 #d1a957}

/* Team mystery room: a short escape quest unlocked by the first fictional sale. */
.world-tile.tile-lab{background:#455b50;color:#f9d784;box-shadow:inset -5px -5px 0 #2b4036,3px 3px 0 #29412f}.world-tile.tile-lab .tile-mark{text-shadow:0 0 10px #ffe09a;font-size:clamp(24px,4vw,42px)}.world-tile.tile-lab:not(:disabled):hover{filter:brightness(1.2)}
.lab-teaser{display:grid;grid-template-columns:140px 1fr;gap:27px;align-items:center;background:#3d5042;color:#f5efdc;border:5px solid #273d32;box-shadow:7px 7px 0 #c8bca9;margin:28px 7px 35px 0;padding:25px 30px}.lab-teaser.unlocked{border-color:#87613d;background:#445e48}.lab-teaser-art{width:116px;height:116px;background:#263b31;border:4px solid #bd9962;box-shadow:6px 6px 0 #1b3025;display:grid;align-content:center;justify-items:center;color:#f2d18b}.lab-teaser-art span{font:normal 64px/1 Georgia,serif}.lab-teaser-art small{font:700 10px Inter,Arial,sans-serif;letter-spacing:.17em}.lab-teaser h3{font:normal 31px/1.2 Lora,Georgia,serif;margin:7px 0 8px}.lab-teaser p{font-size:13px;line-height:1.6;max-width:650px;margin:0 0 15px}.lab-teaser .town-step{color:#ead09d}.lab-teaser .town-action{max-width:300px;background:#e5c482;color:#30251f}.lab-teaser .town-action:hover:not(:disabled){background:#f5d99c}.lab-teaser .town-action:disabled{background:#9d9d85;color:#344038}.lab-teaser small{display:block;margin-top:10px;font-size:10px;color:#eee2c9}
.lab-room{background:#223b32;color:#f6f1df;border:7px solid #183027;box-shadow:10px 10px 0 #b1a58d;padding:30px;margin:0 10px 45px 0;scroll-margin-top:20px}.lab-room-head{display:flex;justify-content:space-between;gap:20px;align-items:start}.lab-room-head h3{font:normal clamp(31px,3.7vw,46px)/1.1 Lora,Georgia,serif;margin:12px 0}.lab-room-head p{font-size:14px;line-height:1.6;max-width:720px;margin:0 0 22px}.lab-room .town-step{color:#e6bc7f}.lab-room .town-reset{color:#fff7e5;border-color:#8dac94;white-space:nowrap}.lab-team{padding:17px;background:#314e3f;border:1px solid #64856b}.lab-team>p{font-size:12px;line-height:1.6;margin:0 0 13px}.role-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.role-grid>div{background:#e5e0ca;color:#24382d;border:2px solid #ab9c7c;min-height:92px}.role-grid button{width:100%;border:0;background:transparent;text-align:left;padding:13px;color:#233b2d;font-size:13px;font-weight:700}.role-grid button span{display:block;margin-top:7px;font-size:10px;color:#766043}.role-grid p{font-size:11px;line-height:1.6;border-top:1px solid #c7baa0;margin:0;padding:11px 13px 15px}.role-grid p strong{color:#74502f}.lab-locks{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:25px 0 14px}.lab-locks span{padding:10px 7px;text-align:center;border:1px solid #65806a;background:#2b483b;color:#adc4af;font-size:10px;font-weight:700;letter-spacing:.08em}.lab-locks span.active{background:#d6b272;color:#2b2a20;border-color:#e6cc91}.lab-locks span.open{background:#6d9374;color:#162b20;border-color:#96bd9c}.lab-locks span.open:before{content:'✓ ';font-weight:700}
.lab-puzzle{background:#f2ead6;color:#2a3027;border:3px solid #af946d;padding:26px}.lab-puzzle h4{font:normal clamp(28px,3.2vw,39px)/1.1 Lora,Georgia,serif;margin:9px 0}.lab-puzzle p{font-size:13px;line-height:1.6;margin:0 0 18px}.lab-puzzle .town-step{color:#8d5232}.lab-bag-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.lab-bag-grid button{min-height:140px;background:#bd8c5c;color:#2e261f;border:3px solid #765337;box-shadow:inset -10px -7px 0 #a47347,5px 5px 0 #8d795f;border-radius:5px 5px 15px 15px;clip-path:polygon(4% 0,96% 0,100% 92%,92% 100%,8% 100%,0 92%);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;transition:transform .14s,filter .14s}.lab-bag-grid button:hover{transform:translateY(-5px);filter:brightness(1.1)}.lab-bag-grid button:before{content:'♨';font:31px Georgia,serif;color:#3c523d}.lab-bag-grid span{font-size:14px;font-weight:800;letter-spacing:.08em}.lab-bag-grid b{font-size:11px}.route-track{background:#d9d1b7;border:2px dashed #9c8768;padding:17px;margin-bottom:17px;font-size:14px;line-height:1.5;min-height:58px}.route-options{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.route-options button{border:2px solid #55785e;background:#9ab18a;color:#1f3827;box-shadow:4px 4px 0 #a5a48a;padding:14px 6px;font-size:12px;font-weight:700}.route-options button:hover:not(:disabled){background:#bed0aa;transform:translateY(-2px)}.route-options button:disabled{opacity:.4;cursor:default}.lab-clear{background:transparent;border:0;text-decoration:underline;margin:15px 0 0;color:#6a573d;font-size:11px}.safe-lock{display:grid;grid-template-columns:1fr 1fr;gap:15px;align-items:end}.safe-equation{background:#30493b;color:#f4e4bc;padding:18px;text-align:center;font:normal clamp(26px,4vw,44px) Georgia,serif;letter-spacing:.05em;grid-row:1/3}.safe-equation span{color:#f2ce7d}.safe-lock label{font-size:11px;font-weight:700;align-self:end}.safe-lock>div:last-child{display:flex;gap:8px}.safe-lock input{width:55px;min-height:44px;text-align:center;border:2px solid #67806c;background:#fffdf1;color:#223a2b;font:27px Georgia,serif}.safe-lock .town-action{width:auto;flex:1}.lab-win{text-align:center;padding:35px}.lab-win-icon{display:grid;place-items:center;margin:0 auto 13px;width:75px;height:75px;border:3px solid #567d61;background:#d9e9ce;color:#34563b;font:51px Georgia,serif}.lab-win p{max-width:590px;margin:15px auto 25px}.lab-win .actions{justify-content:center}.lab-status{min-height:42px;margin:17px 0 0;padding:11px 14px;background:#486a52;border-left:4px solid #d8bd75;color:#f6f2e2;font-size:12px;font-weight:700}.lab-note{color:#d4dfcf;font-size:10px!important;margin:12px 0 0}
@media(max-width:750px){.lab-teaser{grid-template-columns:90px 1fr;padding:18px;gap:16px}.lab-teaser-art{width:78px;height:78px}.lab-teaser-art span{font-size:40px}.lab-teaser-art small{font-size:7px}.lab-room{padding:20px}.role-grid{grid-template-columns:1fr}.role-grid>div{min-height:0}.role-grid button span{display:inline;margin-left:10px}.lab-bag-grid{grid-template-columns:repeat(2,1fr)}.lab-bag-grid button{min-height:118px}}
@media(max-width:520px){.lab-teaser{grid-template-columns:1fr}.lab-teaser-art{display:none}.lab-teaser h3{font-size:26px}.lab-room{margin-right:4px;padding:13px;border-width:5px;box-shadow:5px 5px 0 #b1a58d}.lab-room-head{display:block}.lab-room-head h3{font-size:30px}.lab-room-head .town-reset{margin-bottom:17px}.lab-team{padding:12px}.lab-locks span{font-size:8px;letter-spacing:0}.lab-puzzle{padding:16px}.lab-bag-grid{gap:7px}.lab-bag-grid button{min-height:105px}.safe-lock{grid-template-columns:1fr}.safe-equation{grid-row:auto}.safe-lock>div:last-child{grid-column:1}}
@media(prefers-reduced-motion:reduce){.lab-bag-grid button{transition:none}}
.lab-win .town-reset{color:var(--green);border-color:var(--green);background:#f7f2e5}.lab-win .town-reset:hover{background:#e8e2d1}
.safe-equation small{display:block;font:700 10px Inter,Arial,sans-serif;letter-spacing:.12em;margin-bottom:10px}.safe-equation span{display:block;font:normal 44px Georgia,serif;letter-spacing:.24em}.safe-lock input{width:96px;letter-spacing:.12em}

/* Coffee Town: playable expansion */
#coffee-game [hidden]{display:none!important}
#coffee-game .block-palette{grid-template-columns:repeat(7,minmax(0,1fr))}
#coffee-game .town-customize{display:flex;align-items:center;flex-wrap:wrap;gap:.65rem;margin:1rem 0;color:#3a4337}
#coffee-game .town-customize label{font-size:.83rem;font-weight:700}
#coffee-game .town-customize select,#coffee-game .town-customize input,#coffee-game .room-controls input,#coffee-game #label-text,#coffee-game #clue-text{border:1px solid #b8ac95;border-radius:5px;padding:.6rem;background:#fffdf7;color:#2a241e;font:inherit}
#coffee-game .town-customize input{max-width:12rem}
#coffee-game[data-theme="sunset"] .world-map{background:linear-gradient(#f7d3aa,#dba574)}
#coffee-game[data-theme="night"] .world-map{background:linear-gradient(#1d3344,#42576b)}
#coffee-game[data-theme="night"] .world-tile{filter:brightness(.85)}
#coffee-game .tile-tree{background:#8db68f}#coffee-game .tile-bench{background:#d2b083}#coffee-game .tile-mural{background:#d7a4a8}
#coffee-game .world-ground span:first-child{font-size:.72rem;line-height:1.5}
#coffee-game .mini-game,#coffee-game .roast-meter{padding:1rem;margin:.8rem 0;border:1px solid #d4c6af;border-radius:8px;background:#fffaf0}
#coffee-game .cherry-grid{display:grid;grid-template-columns:repeat(4,3rem);gap:.45rem;margin:.7rem 0}
#coffee-game .cherry{width:3rem;height:3rem;border-radius:50%;font-size:2rem;line-height:1;background:#fff;border:2px solid #aa8670;cursor:pointer}
#coffee-game .cherry.ripe{color:#b03537}#coffee-game .cherry.green{color:#629762}#coffee-game .cherry.picked{opacity:.3}
#coffee-game [hidden]{display:none!important}
#coffee-game .harvest-game,#coffee-game .brew-game{background:#fbf5e9;border-color:#c8b89d;box-shadow:0 8px 24px rgba(52,38,25,.06)}
#coffee-game .harvest-heading strong,#coffee-game .brew-game-head strong{display:block;font-family:Georgia,serif;font-size:1.35rem;color:#284734}
#coffee-game .harvest-game>p,#coffee-game .brew-game>p{margin:.4rem 0 .85rem;line-height:1.5}
#coffee-game .harvest-heading{display:flex;justify-content:space-between;align-items:end;gap:.5rem 1rem;flex-wrap:wrap;margin-bottom:.6rem}
#coffee-game .harvest-kicker{display:block;color:#a55439;font-size:.67rem;font-weight:800;letter-spacing:.13em;margin-bottom:.18rem}
#coffee-game .harvest-rule{max-width:17rem;font-size:.77rem;line-height:1.35;color:#5d604c}
#coffee-game .harvest-hud{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:#9da88e;border:1px solid #9da88e;border-radius:9px 9px 0 0;overflow:hidden;margin-top:1rem}
#coffee-game .harvest-hud>div{min-width:0;background:#274a36;color:#fff9e8;padding:.45rem .6rem}
#coffee-game .harvest-hud>div:first-child{background:#9d5136}
#coffee-game .harvest-hud span{display:block;font-size:.67rem;font-weight:700;letter-spacing:.04em;line-height:1.2}
#coffee-game .harvest-hud strong{display:block;font:700 1.5rem/1.1 Georgia,serif;margin-top:.2rem}
#coffee-game .harvest-hud strong span{display:inline;font:inherit}
#coffee-game .harvest-hud .harvest-lives{font:700 1.2rem/1.3 system-ui,sans-serif;letter-spacing:.1em;white-space:nowrap}
#coffee-game .harvest-stage{position:relative;overflow:hidden;height:280px;border:2px solid #274a36;border-top:0;border-radius:0 0 12px 12px;background:linear-gradient(180deg,rgba(17,43,25,.1),rgba(20,37,22,.32) 64%,rgba(23,37,23,.62)),url('assets/coffee-cherries.jpg') center 43%/cover;touch-action:none;outline-offset:3px}
#coffee-game .harvest-stage:after{content:'';position:absolute;z-index:1;bottom:0;left:0;right:0;height:27px;background:linear-gradient(#936a44,#6f4d33);border-top:4px solid #a2835f}
#coffee-game .harvest-stage:focus-visible{outline:3px solid #a64c32}
#coffee-game .harvest-scene-caption{position:absolute;top:.7rem;left:.8rem;z-index:1;background:rgba(250,247,234,.88);border-radius:3px;color:#294d38;padding:.22rem .4rem;font-size:.58rem;font-weight:800;letter-spacing:.13em}
#coffee-game .harvest-picker{position:absolute;z-index:4;bottom:8px;left:50%;width:96px;height:112px;transform:translateX(-50%);transition:left .09s linear;filter:drop-shadow(0 5px 3px rgba(21,26,17,.45))}
#coffee-game .picker-head{position:absolute;top:3px;left:35px;width:27px;height:29px;border-radius:48% 48% 44% 44%;background:#a56e49;border:2px solid #473927}
#coffee-game .picker-head:before{content:'';position:absolute;top:-8px;left:-7px;width:38px;height:13px;border-radius:60% 60% 10% 10%;background:#ddbc76;border:2px solid #674d31;transform:rotate(-7deg)}
#coffee-game .picker-body{position:absolute;top:32px;left:24px;width:50px;height:62px;border-radius:20px 20px 7px 7px;background:#e6c489;border:3px solid #554a32}
#coffee-game .picker-arm{position:absolute;top:49px;width:34px;height:10px;background:#a56e49;border:2px solid #473927;border-radius:9px}
#coffee-game .picker-arm-left{left:3px;transform:rotate(27deg)}
#coffee-game .picker-arm-right{right:3px;transform:rotate(-27deg)}
#coffee-game .picker-basket{position:absolute;z-index:2;bottom:0;left:0;width:96px;height:40px;border-radius:7px 7px 30px 30px;background:repeating-linear-gradient(0deg,#ae7548 0 7px,#d8a66e 7px 13px);border:4px solid #684b30;box-shadow:inset 0 4px rgba(255,226,169,.42)}
#coffee-game .picker-basket:before{content:'';position:absolute;top:-11px;left:12px;width:63px;height:19px;border:4px solid #684b30;border-bottom:0;border-radius:55% 55% 0 0}
#coffee-game .falling-cherry{position:absolute;top:-8%;z-index:3;width:29px;height:29px;margin-left:-14px;border-radius:48% 49% 51% 52%;font-size:0;background:radial-gradient(circle at 32% 26%,#ee9880 0 12%,#c13f31 18% 62%,#7e2c26 100%);border:2px solid #fff3d6;box-shadow:0 3px 6px rgba(0,0,0,.48)}
#coffee-game .falling-cherry:before{content:'';position:absolute;top:-8px;left:11px;width:4px;height:9px;background:#d8e5aa;border-radius:3px;transform:rotate(20deg)}
#coffee-game .falling-cherry.green{background:radial-gradient(circle at 32% 26%,#c8dd9d 0 12%,#78a452 18% 62%,#466b38 100%)}
#coffee-game .harvest-burst{position:absolute;top:67%;z-index:6;transform:translateX(-50%);padding:.3rem .48rem;border-radius:4px;font-size:.8rem;font-weight:900;letter-spacing:.03em;animation:harvest-float .85s ease-out forwards;pointer-events:none}
#coffee-game .harvest-burst-score{background:#fff4d3;color:#294d38}
#coffee-game .harvest-burst-miss{background:#9d5136;color:#fff}
#coffee-game .harvest-screen-reader{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@keyframes harvest-float{from{opacity:0;transform:translate(-50%,8px)}25%{opacity:1}to{opacity:0;transform:translate(-50%,-30px)}}
#coffee-game .harvest-controls,#coffee-game .brew-buttons{display:flex;flex-wrap:wrap;gap:.5rem;margin:.7rem 0}
#coffee-game .harvest-controls button,#coffee-game .brew-panel button,#coffee-game .brew-game-head button{border:1px solid #75553a;border-radius:7px;background:#fffdf8;color:#273f30;padding:.55rem .8rem;font:inherit;font-weight:700;cursor:pointer}
#coffee-game .harvest-controls button:hover,#coffee-game .brew-panel button:hover{background:#e8efdf}
#coffee-game .harvest-controls button:disabled,#coffee-game .brew-panel button:disabled{opacity:.45;cursor:default}
#coffee-game .mini-feedback{min-height:1.4em;font-weight:700;color:#315b40}
#coffee-game .brew-game{margin-top:1rem}
#coffee-game .brew-game-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}
#coffee-game .brew-game-head button{font-size:1.4rem;line-height:1;padding:.25rem .55rem}
#coffee-game .brew-steps{display:flex;gap:.4rem;flex-wrap:wrap;margin:.85rem 0}
#coffee-game .brew-steps span{padding:.32rem .65rem;border:1px solid #d1c3aa;border-radius:20px;color:#6a6256;font-size:.8rem}
#coffee-game .brew-steps span.active{background:#2c543b;color:#fff;border-color:#2c543b}
#coffee-game .brew-scene{position:relative;height:205px;overflow:hidden;border-radius:12px;background:linear-gradient(#ede6d5 0 75%,#b7946c 75%);border:1px solid #d1c3aa;margin:.8rem 0 1rem}
#coffee-game .brew-kettle{position:absolute;top:23px;left:12%;width:78px;height:66px;border-radius:25px 25px 32px 32px;background:#b5c1ad;border:5px solid #496650;transform:rotate(-12deg)}
#coffee-game .brew-kettle:before{content:'';position:absolute;left:66px;top:16px;width:50px;height:13px;background:#496650;clip-path:polygon(0 0,100% 60%,0 100%)}
#coffee-game .brew-kettle:after{content:'';position:absolute;left:19px;top:-27px;width:31px;height:20px;border:7px solid #496650;border-bottom:0;border-radius:16px 16px 0 0}
#coffee-game .brew-kettle span{display:block;text-align:center;padding-top:16px;font-size:.8rem;font-weight:800;color:#2e4c38}
#coffee-game .brew-stream{position:absolute;z-index:3;top:75px;left:41%;width:5px;height:85px;border-radius:5px;background:#d7a668;opacity:0;transform:rotate(-7deg);transform-origin:top}
#coffee-game .brew-stream.pouring{opacity:1;animation:brew-stream-pulse .4s ease-in-out infinite alternate}
#coffee-game .brew-cone{position:absolute;z-index:2;top:88px;left:calc(50% - 43px);width:86px;height:58px;background:#e7d8bc;border:4px solid #6d5840;clip-path:polygon(0 0,100% 0,65% 100%,35% 100%)}
#coffee-game .brew-cup{position:absolute;top:141px;left:calc(50% - 30px);width:60px;height:36px;border:4px solid #5b6654;border-radius:3px 3px 16px 16px;background:#fff7e7}
#coffee-game .brew-cup:after{content:'';position:absolute;right:-19px;top:2px;width:16px;height:18px;border:4px solid #5b6654;border-radius:50%}
#coffee-game #brew-cup-fill{position:absolute;bottom:0;left:0;right:0;background:#795039;transition:height .1s linear}
#coffee-game .brew-scale{position:absolute;bottom:5px;left:calc(50% - 62px);width:124px;text-align:center;background:#384d3f;border-radius:7px;color:#e7f4e4;padding:.3rem;font:700 .7rem system-ui,sans-serif;letter-spacing:.08em}
#coffee-game .brew-scale strong{display:block;font-size:1.2rem;letter-spacing:0}
#coffee-game .brew-panel{padding:.75rem;border:1px solid #ddceb7;border-radius:8px;background:#fffdf8}
#coffee-game .brew-panel label{display:block;font-weight:700}
#coffee-game .brew-panel label strong{float:right;color:#a34c32}
#coffee-game .brew-panel input{width:100%;margin:.7rem 0;accent-color:#9e5838}
#coffee-game .brew-panel small{display:block;margin-bottom:.65rem}
#coffee-game .brew-live-value{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:.8rem;align-items:center;min-height:3.5rem;margin:.7rem 0}
#coffee-game .brew-live-value span{font:700 2rem Georgia,serif;font-variant-numeric:tabular-nums;white-space:nowrap;color:#a34c32}
#coffee-game #brew-pour-panel .brew-buttons{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
#coffee-game .brew-source{display:block;line-height:1.5;color:#645a4e}
#coffee-game .brew-source a{color:#315b40}
@keyframes brew-stream-pulse{from{transform:rotate(-7deg) scaleX(.75)}to{transform:rotate(-7deg) scaleX(1.25)}}
@media(max-width:520px){#coffee-game .harvest-stage{height:240px}#coffee-game .harvest-hud>div{padding:.4rem}#coffee-game .harvest-hud strong{font-size:1.2rem}#coffee-game .harvest-hud .harvest-lives{font-size:1rem}#coffee-game .brew-kettle{left:5%;transform:scale(.85) rotate(-12deg)}#coffee-game .brew-stream{left:36%}}
@media(prefers-reduced-motion:reduce){#coffee-game .brew-stream.pouring,#coffee-game .harvest-burst{animation:none}#coffee-game .harvest-picker{transition:none}}
#coffee-game .roast-meter input{width:100%;accent-color:#92582e}#coffee-game .roast-meter small{display:block}
#coffee-game .ticket-options{display:flex;gap:.35rem;flex-wrap:wrap;margin-bottom:1rem}
#coffee-game .ticket-options button,#coffee-game .room-controls button,#coffee-game .extra-card button{border:1px solid #8b6e4c;background:#fffaf0;color:#3b2d20;border-radius:5px;padding:.55rem .75rem;cursor:pointer;font:inherit}
#coffee-game .ticket-options [aria-pressed="true"]{background:#254b37;color:white}
#coffee-game .room-controls{padding:1rem;border:1px solid #ccbda5;border-radius:8px;margin-bottom:1rem;background:#fffaf0}
#coffee-game .room-controls input{width:7rem;text-transform:uppercase;letter-spacing:.14em;font-weight:700}
#coffee-game .room-controls small{display:block;margin:.6rem 0}
#coffee-game #room-links{display:flex;gap:.5rem;flex-wrap:wrap}#coffee-game #room-links a{padding:.4rem .65rem;border:1px solid #62876b;border-radius:5px}
#coffee-game .game-extras{margin-top:3rem;padding:2rem;background:#f2ece1;border-radius:14px}
#coffee-game .extras-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
#coffee-game .extra-card{background:#fffdf8;padding:1.3rem;border:1px solid #d1c2ad;border-radius:9px}
#coffee-game .extra-card h4{font-family:Georgia,serif;font-size:1.4rem;margin:0 0 .6rem}#coffee-game .extra-card button{margin:.3rem .3rem .3rem 0}
#coffee-game .goal-done{color:#276445;font-weight:700}
#coffee-game .label-preview{display:flex;flex-direction:column;justify-content:space-between;gap:1.5rem;min-height:13rem;max-width:13rem;margin:1rem 0;padding:1rem;text-align:center;background:#d7b684;color:#2a221a;border:8px solid #e6d0a8;box-shadow:0 5px 15px #0002}
#coffee-game .label-preview span,#coffee-game .label-preview small{font-size:.65rem;font-weight:800;letter-spacing:.1em}#coffee-game .label-preview strong{font-family:Georgia,serif;font-size:1.15rem}
#coffee-game #clue-text{display:block;width:100%;min-height:5rem;margin:.5rem 0}
@media(max-width:900px){#coffee-game .block-palette{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:640px){#coffee-game .extras-grid{grid-template-columns:1fr}#coffee-game .block-palette{grid-template-columns:repeat(3,minmax(0,1fr))}#coffee-game .game-extras{padding:1rem}#coffee-game .world-ground span:first-child{font-size:.6rem}}
.game-guide-page{max-width:1100px;margin:auto;padding:2rem 1.5rem 5rem;color:#2a251f}.game-guide-page .guide-hero{padding:3rem 0;border-bottom:1px solid #cdbda7}.game-guide-page h1{font-family:Georgia,serif;font-size:clamp(3rem,7vw,5rem);line-height:1;margin:.5rem 0}.game-guide-page .guide-hero p{font-size:1.25rem;max-width:42rem}.guide-layout{display:grid;grid-template-columns:12rem 1fr;gap:3rem;padding-top:2rem}.guide-toc{display:flex;flex-direction:column;gap:.65rem;position:sticky;top:1rem;align-self:start}.guide-toc a{color:#315f43}.guide-content{max-width:44rem}.guide-content section{padding:0 0 2rem;margin-bottom:2rem;border-bottom:1px solid #d4c6b6;scroll-margin-top:2rem}.guide-content h2{font-family:Georgia,serif;font-size:2rem}.guide-content p,.guide-content li{line-height:1.7}.guide-content li{margin-bottom:.6rem}@media(max-width:700px){.guide-layout{grid-template-columns:1fr}.guide-toc{position:static;display:grid;grid-template-columns:repeat(2,1fr)}}
@media(min-width:901px){#coffee-game .town-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}}
@media(min-width:641px) and (max-width:900px){#coffee-game .town-metrics{grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Coffee Town Café: a story space inside the game */
.cafe-page{--cafe-green:#284d39;--cafe-ink:#29241f;--cafe-cream:#f7f0e4;--cafe-line:#c9bba7;max-width:1320px;margin:0 auto;padding:0 1.5rem 5rem;color:var(--cafe-ink)}
.cafe-page [hidden]{display:none!important}
.cafe-hero{display:flex;align-items:end;justify-content:space-between;gap:2rem;padding:4.5rem 0 3rem;border-bottom:1px solid var(--cafe-line)}
.cafe-hero>div:first-child{max-width:790px}.cafe-hero .eyebrow,.cafe-section-top .eyebrow,.cafe-invite-panel .eyebrow,.cafe-duo-panel .eyebrow,.cafe-how .eyebrow{color:#915b40;letter-spacing:.14em;font-weight:800}
.cafe-hero h1{font-family:Georgia,serif;font-size:clamp(3.4rem,7vw,6.4rem);line-height:.99;letter-spacing:-.06em;margin:.6rem 0 1.3rem;font-weight:500}
.cafe-hero p{font-size:clamp(1.1rem,2vw,1.35rem);line-height:1.55;max-width:640px}
.cafe-hero-actions{display:flex;align-items:center;gap:1.3rem;flex-wrap:wrap;margin-top:1.8rem}.cafe-back{color:var(--cafe-green);font-weight:700}
.cafe-hero-notes{display:flex;flex-direction:column;gap:.6rem;min-width:180px;align-self:center}.cafe-hero-notes span{border:1px solid var(--cafe-line);border-radius:100px;padding:.45rem .8rem;font-size:.8rem;text-align:center;white-space:nowrap;background:#faf6ed}
.cafe-episodes{padding:3.6rem 0}.cafe-section-top{display:grid;grid-template-columns:1fr 1fr;gap:.2rem 2rem;align-items:end}.cafe-section-top>.eyebrow{grid-column:1/-1}.cafe-section-top h2,.cafe-how h2{font-family:Georgia,serif;font-weight:500;font-size:clamp(2rem,4vw,3.25rem);line-height:1.1;letter-spacing:-.035em;margin:.3rem 0}.cafe-section-top p{max-width:450px;line-height:1.6;margin:0}
.episode-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:.8rem;margin-top:2rem}.episode-card{text-align:left;background:#f7f1e5;border:1px solid var(--cafe-line);border-radius:10px;min-height:155px;padding:1rem 1.1rem;display:flex;flex-direction:column;cursor:pointer;color:var(--cafe-ink);font:inherit;transition:transform .2s,box-shadow .2s,border-color .2s}.episode-card:hover{transform:translateY(-3px);box-shadow:0 9px 15px #39291d1b}.episode-card.active{background:#e8d6b7;border-color:#8d5c42;box-shadow:inset 0 0 0 2px #8d5c42}.episode-card span{font-family:Georgia,serif;font-size:1.5rem;color:#976343}.episode-card strong{font-family:Georgia,serif;font-size:1.28rem;line-height:1.15;margin:auto 0 .5rem}.episode-card small{font-size:.73rem;color:#536451;line-height:1.3}
.cafe-play{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(360px,.85fr);background:#f4eee4;border:1px solid var(--cafe-line);border-radius:16px;overflow:hidden;box-shadow:0 18px 36px #39291d16;scroll-margin-top:1rem}
.cafe-art{background:#284d39;padding:1.25rem;position:relative;display:flex;flex-direction:column;justify-content:space-between;min-height:550px}.cafe-art-heading,.cafe-seat-labels{display:flex;justify-content:space-between;gap:.7rem;color:#faf5e8;font-size:.78rem;font-weight:800;letter-spacing:.11em}.cafe-art-heading span:last-child{font-weight:500}.cafe-seat-labels{margin-top:.5rem;font-size:.66rem}
.cafe-story{padding:2rem 2rem 1.2rem;display:flex;flex-direction:column;min-height:550px}.cafe-story-top,.cafe-stage-foot{display:flex;justify-content:space-between;gap:1rem;color:#6d685d;font-size:.75rem;font-weight:800;letter-spacing:.08em}.cafe-story-top strong{color:#9c6445;white-space:nowrap}.cafe-story h2{font-family:Georgia,serif;font-size:clamp(1.9rem,3vw,2.65rem);line-height:1.08;font-weight:500;margin:1.2rem 0}.amani-dialogue{display:flex;gap:.85rem;align-items:start;background:#fffaf0;border:1px solid #d8c8b0;border-radius:12px;padding:1rem;margin-bottom:1rem}.amani-avatar{display:grid;place-items:center;flex:0 0 2.2rem;width:2.2rem;height:2.2rem;border-radius:50%;background:#315f46;color:#fff;font-family:Georgia,serif;font-size:1.2rem}.amani-dialogue strong{font-size:.69rem;letter-spacing:.09em;color:#37634b}.amani-dialogue p{line-height:1.55;margin:.35rem 0 0}.cafe-prompt{font-weight:700;line-height:1.5;margin:.4rem 0 .8rem}.cafe-options{display:grid;gap:.55rem}.cafe-options button{border:1px solid #9b866b;border-radius:8px;background:#fffdf8;color:#27211a;text-align:left;padding:.9rem 1rem;font:inherit;cursor:pointer;min-height:48px;transition:background .18s,transform .18s}.cafe-options button:hover{background:#e1ecdF;transform:translateX(3px)}.cafe-options button:before{content:'→';margin-right:.7rem;color:#8e5c40}.cafe-feedback{font-size:.92rem;min-height:1.6rem;color:#315f46}.cafe-stage-foot{margin-top:auto;border-top:1px solid var(--cafe-line);padding-top:1rem;font-weight:500}.cafe-stage-foot span:first-child{color:#a36842;letter-spacing:.22em}
.cafe-invite-context{background:#e5ecdE;border-left:3px solid #315f46;padding:.75rem .9rem;margin:0 0 1rem;line-height:1.45;font-size:.9rem}.cafe-invite-panel,.cafe-duo-panel{display:grid;grid-template-columns:auto 1fr;gap:1.5rem;margin-top:1.4rem;padding:2rem;border-radius:12px;background:#e8eadc;border:1px solid #a8b698}.cafe-stamp{display:grid;place-items:center;border:4px double #315f46;border-radius:50%;width:90px;height:90px;font-size:3rem;color:#315f46;transform:rotate(-14deg)}.cafe-invite-panel h2,.cafe-duo-panel h2{font-family:Georgia,serif;font-weight:500;font-size:2rem;margin:.2rem 0 .7rem}.cafe-invite-panel p,.cafe-duo-panel p{max-width:750px;line-height:1.6}.cafe-text-button{background:transparent;border:0;text-decoration:underline;color:#315f46;cursor:pointer;font:inherit;padding:.5rem 0}.cafe-duo-panel{display:block;background:#f5e7cc;border-color:#d0aa77}.cafe-duo-panel h2{font-size:2.4rem}.cafe-page #cafe-share-link{display:block;width:min(100%,680px);border:1px solid #a4a89a;border-radius:6px;background:#fff;padding:.65rem;font:inherit}.cafe-page #cafe-share-link[hidden]{display:none}
.cafe-how{display:grid;grid-template-columns:1fr 1fr;gap:3rem;margin-top:4rem;padding-top:2rem;border-top:1px solid var(--cafe-line)}.cafe-how p{line-height:1.7}.cafe-page button:focus-visible,.cafe-page a:focus-visible{outline:3px solid #ac7044;outline-offset:3px}
@media(max-width:980px){.cafe-play{grid-template-columns:1fr}.cafe-art{min-height:auto}.cafe-story{min-height:450px}.episode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:640px){.cafe-page{padding:0 1rem 3rem}.cafe-hero{padding:2.8rem 0 2rem;display:block}.cafe-hero-notes{margin-top:1.5rem;flex-direction:row;flex-wrap:wrap}.cafe-hero-notes span{font-size:.7rem}.cafe-section-top,.cafe-how{grid-template-columns:1fr}.episode-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.episode-card{min-height:140px;padding:.75rem}.episode-card strong{font-size:1.05rem}.cafe-art{padding:.75rem}.cafe-art-heading,.cafe-seat-labels{font-size:.59rem}.cafe-story{padding:1.3rem;min-height:480px}.cafe-invite-panel{grid-template-columns:1fr;padding:1.3rem}.cafe-stamp{width:70px;height:70px;font-size:2.2rem}}
@media(prefers-reduced-motion:reduce){.episode-card,.cafe-options button{transition:none}}
#coffee-game .cafe-in-town{display:grid;grid-template-columns:100px 1fr;align-items:center;gap:1.5rem;margin:2rem 0;padding:2rem;border-radius:14px;background:#e5e3d3;border:1px solid #adb99e}
#coffee-game .cafe-in-town-mark{display:grid;place-items:center;width:90px;height:90px;border:2px solid #315d45;border-radius:50%;font-size:3rem;background:#f6f0df}
#coffee-game .cafe-in-town h3{font-family:Georgia,serif;font-size:2rem;font-weight:500;margin:.35rem 0}
#coffee-game .cafe-in-town p{max-width:570px;line-height:1.6}
@media(max-width:640px){#coffee-game .cafe-in-town{grid-template-columns:1fr;padding:1.3rem}}
.cafe-pass-button{border:1px solid #315f46;background:transparent;color:#315f46;border-radius:5px;padding:.8rem 1rem;font:inherit;font-weight:700;cursor:pointer;margin:.5rem 0}.cafe-pass-button:hover{background:#dce7d8}
.home-evidence{display:flex;align-items:center;flex-wrap:wrap;gap:.55rem 1.3rem;padding:1.1rem 0;margin-bottom:2rem;border-top:1px solid var(--sand);border-bottom:1px solid var(--sand);font-size:.82rem}.home-evidence strong{color:var(--brown)}.home-evidence a{color:var(--green);font-weight:700;text-underline-offset:3px}

.cafe-chat{margin:2rem 0 0;padding:2.4rem;border:1px solid #c8b89f;border-radius:16px;background:#ede3d1;scroll-margin-top:1rem}
.cafe-chat-intro{max-width:850px}.cafe-chat-intro h2{font:500 clamp(2.4rem,4vw,3.6rem)/1.05 Georgia,serif;letter-spacing:-.04em;margin:.5rem 0}.cafe-chat-intro p{line-height:1.6;margin:.6rem 0}.cafe-chat-intro .small{font-size:.82rem;color:#554c43}
.cafe-chat-board{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:1rem;margin-top:1.7rem}
.cafe-chat-transcript,.cafe-chat-picker{background:#fffaf0;border:1px solid #c8b89f;border-radius:12px;min-width:0;overflow:hidden}
.cafe-chat-transcript{display:flex;flex-direction:column;min-height:540px}
.cafe-chat-header{display:flex;gap:.8rem;align-items:center;padding:1rem 1.1rem;background:#315f46;color:#fff}.cafe-chat-header .amani-avatar{background:#f8ebd5;color:#315f46}.cafe-chat-header strong,.cafe-chat-header small{display:block}.cafe-chat-header small{font-size:.72rem;opacity:.88;margin-top:.15rem}
.cafe-chat-messages{flex:1;min-height:290px;max-height:430px;overflow-y:auto;display:flex;flex-direction:column;gap:.8rem;padding:1.2rem;overscroll-behavior:contain}
.cafe-chat-bubble{max-width:84%;padding:.75rem .9rem;border-radius:12px;background:#e7ecdf;align-self:flex-start}.cafe-chat-bubble.from-player{align-self:flex-end;background:#e9d7bd}.cafe-chat-bubble strong{display:block;color:#315f46;font-size:.7rem;letter-spacing:.06em;text-transform:uppercase}.cafe-chat-bubble.from-player strong{color:#79513c}.cafe-chat-bubble p{margin:.25rem 0 0;line-height:1.45;font-size:.92rem}
.cafe-chat-reactions{border-top:1px solid #d6c8b4;padding:.8rem 1rem;display:flex;gap:.7rem;align-items:center;flex-wrap:wrap}.cafe-chat-reactions>span{font-size:.75rem;font-weight:700;color:#64594e}.cafe-chat-reactions>div{display:flex;gap:.35rem;flex-wrap:wrap}.cafe-chat-reactions button{font-size:1.2rem;line-height:1;border:1px solid #c3b29a;border-radius:50%;width:2.5rem;height:2.5rem;background:#fff;cursor:pointer}.cafe-chat-reactions button:hover{background:#e7ecdf}
.cafe-chat-picker{padding:1.1rem;display:flex;flex-direction:column}.cafe-chat-picker-head{display:flex;justify-content:space-between;gap:.5rem;align-items:baseline}.cafe-chat-picker-head strong{font:500 1.4rem Georgia,serif}.cafe-chat-picker-head small{font-size:.7rem;color:#64594e}.cafe-chat-picker label{font-size:.76rem;font-weight:700;margin:.9rem 0 .3rem}.cafe-chat-picker input{border:1px solid #9e8d77;border-radius:6px;padding:.65rem .75rem;background:#fff;font:inherit;width:100%}
.cafe-chat-topics{display:flex;gap:.4rem;overflow-x:auto;padding:.85rem 0;scrollbar-width:thin}.cafe-chat-topics button{white-space:nowrap;border:1px solid #a4947b;border-radius:100px;padding:.5rem .75rem;background:#fffdf8;color:#315f46;font:inherit;font-size:.75rem;cursor:pointer}.cafe-chat-topics button[aria-pressed="true"]{background:#315f46;color:#fff;border-color:#315f46}.cafe-chat-picker #cafe-chat-topic-note{font-size:.75rem;color:#64594e;margin:0 0 .5rem}
.cafe-chat-modes{display:grid;grid-template-columns:1fr 1fr;gap:.35rem;margin-top:.85rem;padding:.25rem;border-radius:9px;background:#e9e0d1}.cafe-chat-modes button{border:0;border-radius:7px;background:transparent;color:#315f46;font:inherit;font-size:.76rem;font-weight:700;padding:.65rem .35rem;cursor:pointer}.cafe-chat-modes button[aria-pressed="true"]{background:#315f46;color:#fff;box-shadow:0 2px 5px #223f302c}.cafe-show-more{margin-top:.6rem;padding:.65rem .8rem;border:1px solid #315f46;border-radius:6px;background:#fffaf0;color:#315f46;font:inherit;font-size:.8rem;font-weight:700;cursor:pointer}.cafe-show-more:hover{background:#e7ecdf}
.cafe-chat-phrases{display:grid;gap:.45rem;max-height:330px;overflow-y:auto;overscroll-behavior:contain;padding-right:.2rem}.cafe-chat-phrases button{width:100%;border:1px solid #d5c4ad;border-radius:7px;background:#fff;text-align:left;color:#2d2923;padding:.7rem .8rem;font:inherit;font-size:.83rem;line-height:1.3;cursor:pointer}.cafe-chat-phrases button:hover{background:#e7ecdf;border-color:#719178}.cafe-chat-phrases button small{display:block;color:#6b6257;font-size:.68rem;margin-top:.15rem}.cafe-chat-empty{font-size:.85rem;color:#64594e}.cafe-chat-learn{margin-top:.85rem;font-size:.8rem;color:#315f46;font-weight:700}
@media(max-width:800px){.cafe-chat-board{grid-template-columns:1fr}.cafe-chat-transcript{min-height:380px}.cafe-chat-messages{max-height:300px}.cafe-chat-picker{min-height:400px}}
@media(max-width:640px){.cafe-chat{padding:1.1rem}.cafe-chat-bubble{max-width:93%}.cafe-chat-picker-head{display:block}.cafe-chat-picker-head small{display:block;margin-top:.25rem}}
/* Problem page: keep the lesson readable and the audit trail quiet. */
.problem-page sup{font-size:.68em;vertical-align:super;margin-left:2px}.problem-page sup a{color:var(--rust);text-decoration:none}.problem-page sup a:hover{text-decoration:underline}.problem-page .problem-stats article{min-height:240px}.problem-page .problem-stats p{margin-bottom:0}.market-section>p:first-of-type{max-width:850px;font-size:16px;line-height:1.7}.market-scale{margin:30px 0 18px;padding:25px 30px;background:var(--green);color:#fffaf2;display:grid;grid-template-columns:1fr auto;gap:5px 22px;align-items:center}.market-scale>span{font-size:12px;font-weight:700;letter-spacing:.09em;text-transform:uppercase}.market-scale>strong{font:normal clamp(31px,4vw,52px)/1.05 Lora,Georgia,serif;letter-spacing:-.05em;grid-column:2;grid-row:1/3}.market-scale p{font-size:14px;line-height:1.6;margin:0;max-width:580px}.market-scale sup a{color:#f6d4b5}.company-income-figure,.origin-income-figure{margin:20px 0 0;padding:30px;background:#faf7ef;border:1px solid #d8cbbb}.company-income-figure figcaption,.origin-income-figure figcaption{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:23px}.company-income-figure figcaption strong,.origin-income-figure figcaption strong{font:normal 27px/1.2 Lora,Georgia,serif}.company-income-figure figcaption span,.origin-income-figure figcaption span{font-size:11px;color:var(--brown);line-height:1.5;text-align:right}.company-income-row{display:grid;grid-template-columns:210px minmax(0,1fr) 95px;gap:18px;align-items:center;margin:14px 0;font-size:13px}.company-income-row>i{display:block;width:var(--bar);height:24px;background:var(--green);max-width:100%}.company-income-row:nth-of-type(2)>i{background:#6f8d78}.company-income-row:nth-of-type(3)>i{background:#a8a374}.company-income-row:nth-of-type(4)>i{background:var(--rust)}.company-income-row b{font-size:14px;text-align:right;white-space:nowrap}.chart-explainer{font-size:11px!important;line-height:1.65;color:var(--brown);margin:22px 0 0;max-width:850px}.origin-income-key{display:flex;flex-wrap:wrap;gap:9px 22px;font-size:11px;color:var(--brown);margin-bottom:22px}.origin-income-key span{display:inline-flex;align-items:center;gap:7px}.origin-income-key i{width:13px;height:10px;display:inline-block}.origin-income-key i.coffee,.origin-income-bar.coffee{background:var(--rust)}.origin-income-key i.living,.origin-income-bar.living{background:#b7c6b4}.origin-income-rows{display:grid;gap:12px}.origin-income-row{display:grid;grid-template-columns:95px minmax(0,1fr) 130px;gap:13px;align-items:center;font-size:12px}.origin-income-row>strong{font-weight:600}.origin-income-bars{display:grid;gap:3px}.origin-income-bar{display:block;height:8px;min-width:2px}.origin-income-values{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.origin-income-values small{color:var(--brown);font-size:10px}.market-takeaway{font:normal clamp(22px,2.7vw,31px)/1.4 Lora,Georgia,serif;max-width:900px;margin:34px 0!important}.market-takeaway strong{color:var(--rust)}.problem-punchline{font:normal 23px/1.45 Lora,Georgia,serif!important;color:var(--green);border-left:2px solid var(--green);padding-left:20px;margin-top:26px}.evidence-notes{border-top:1px solid var(--sand);padding:35px 0 48px;color:var(--brown)}.evidence-notes h2{font:normal 24px Lora,Georgia,serif;margin:0 0 12px}.evidence-notes p,.evidence-notes li{font-size:11px;line-height:1.65}.evidence-notes>p{max-width:1000px}.evidence-notes ol{columns:2;column-gap:45px;padding-left:20px;margin:20px 0}.evidence-notes li{break-inside:avoid;padding:0 8px 8px 0}.evidence-notes a{color:var(--green);text-underline-offset:3px}
@media(max-width:700px){.market-scale{grid-template-columns:1fr;padding:22px}.market-scale>strong{grid-column:1;grid-row:auto;margin:6px 0}.company-income-figure,.origin-income-figure{padding:20px 14px}.company-income-figure figcaption,.origin-income-figure figcaption{display:block}.company-income-figure figcaption span,.origin-income-figure figcaption span{display:block;text-align:left;margin-top:6px}.company-income-row{grid-template-columns:115px minmax(0,1fr) 64px;gap:7px;font-size:11px}.company-income-row b{font-size:11px}.origin-income-row{grid-template-columns:67px minmax(0,1fr) 91px;gap:5px;font-size:10px}.origin-income-values{font-size:9px}.origin-income-values small{font-size:9px}.evidence-notes ol{columns:1}}
/* Café artwork: richer visual story, with the player's changing cup choices kept legible below. */
.cafe-scene-image{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover;border:5px solid #446b51;box-shadow:0 10px 25px #0b2a1c66}
.cafe-seat-labels{margin-top:.9rem;gap:.65rem;letter-spacing:.04em}
.cafe-seat-labels>span{display:flex;align-items:center;gap:.45rem;min-width:0;padding:.45rem .65rem;border:1px solid #799a7d;border-radius:5px;background:#193d2d;color:#fffaf0;font-size:.7rem}
.cafe-cup-symbol{display:inline-grid;place-items:center;flex:0 0 1.55rem;width:1.55rem;height:1.55rem;border-radius:50%;background:#f3e4c8;color:#264835;font-size:.9rem;line-height:1}
@media(max-width:640px){.cafe-scene-image{border-width:3px}.cafe-seat-labels>span{padding:.35rem .45rem;font-size:.58rem}.cafe-cup-symbol{flex-basis:1.3rem;width:1.3rem;height:1.3rem;font-size:.8rem}}
/* A short parent guide sits before the deeper coffee library. */
.knowledge-practical{border-top:1px solid var(--sand);padding:45px 0 48px;scroll-margin-top:24px}
.knowledge-practical h2{margin:10px 0 13px;max-width:800px}
.knowledge-practical>p{max-width:800px;font-size:15px;line-height:1.65}
.knowledge-practical-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:28px 0 20px}
.knowledge-practical-grid article{min-width:0;padding:25px 23px 24px;background:#fffaf2;border:1px solid #dacdbb;border-top:3px solid #748c72}
.knowledge-step{display:block;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--green)}
.knowledge-practical-grid h3{font-size:26px;line-height:1.2;margin:14px 0 13px}
.knowledge-practical-grid p{font-size:14px;line-height:1.65;margin:0}
.knowledge-practical-grid a{display:inline-block;margin-top:15px;font-size:12px;font-weight:700;color:var(--green)}
.knowledge-quick-fix{border-left:3px solid var(--rust);padding:5px 0 5px 18px;margin:22px 0 12px!important}
.knowledge-practical .knowledge-source-note{font-size:11px;line-height:1.6;color:var(--brown);margin:19px 0 0;max-width:900px}
.knowledge-source-note a{color:var(--green)}
@media(max-width:760px){.knowledge-practical-grid{grid-template-columns:1fr;gap:12px}.knowledge-practical{padding:35px 0 40px}.knowledge-practical-grid article{padding:20px}}

/* Shared site navigation: a short visible route plus two clearly named groups. */
header nav#navigation{align-items:center;gap:clamp(10px,1.45vw,22px)}
header nav#navigation>a,header nav#navigation .nav-group>summary{font-size:13px;font-weight:600;white-space:nowrap}
header nav#navigation>a:not(.nav-shop):hover,header nav#navigation .nav-group>summary:hover{color:var(--rust)}
header nav#navigation .nav-group{position:relative}
header nav#navigation .nav-group>summary{list-style:none;cursor:pointer;padding:9px 0}
header nav#navigation .nav-group>summary::-webkit-details-marker{display:none}
header nav#navigation .nav-group>summary::after{content:'⌄';display:inline-block;margin-left:6px;font-size:16px;line-height:0;vertical-align:2px}
header nav#navigation .nav-group[open]>summary::after{transform:rotate(180deg);vertical-align:-3px}
header nav#navigation .nav-group>summary.nav-section-current{color:var(--rust);border-bottom:2px solid var(--rust)}
header nav#navigation .nav-submenu{position:absolute;z-index:30;top:calc(100% + 9px);left:-18px;min-width:205px;padding:9px;background:var(--cream);border:1px solid #d7c7b4;box-shadow:0 12px 30px #30251f24;display:grid;gap:2px}
header nav#navigation .nav-submenu a{display:block;padding:10px 12px;font-size:13px;line-height:1.35;text-decoration:none;white-space:nowrap}
header nav#navigation .nav-submenu a:hover,header nav#navigation .nav-submenu a:focus-visible{background:#eee5d8;color:var(--rust)}
header nav#navigation .nav-submenu a[aria-current=page]{border:0;background:#eee5d8;color:var(--rust)}
@media(max-width:760px){
 header{flex-wrap:wrap}
 header .menu{display:inline-block!important;margin-left:auto;padding:10px 15px;background:transparent;border:1px solid var(--brown);border-radius:3px;color:var(--ink);font-size:13px;font-weight:700}
 header .menu[aria-expanded=true]{background:var(--sand)}
 header nav#navigation{display:none;width:100%;order:3;flex-direction:column;align-items:stretch;gap:0;padding:8px 0 16px;border-top:1px solid var(--sand)}
 header nav#navigation.open{display:flex}
 header nav#navigation>a,header nav#navigation .nav-group>summary{display:block;width:100%;padding:13px 8px;font-size:15px;border-bottom:1px solid var(--sand)}
 header nav#navigation>a.nav-shop{width:100%;padding:13px 8px;text-align:left}
 header nav#navigation .nav-group>summary.nav-section-current{border-bottom:2px solid var(--rust)}
 header nav#navigation .nav-submenu{position:static;min-width:0;padding:4px 0 8px 15px;border:0;box-shadow:none;background:transparent}
 header nav#navigation .nav-submenu a{padding:10px 8px;font-size:14px}
}

/* Lite site: the town game teaches its whole loop in one short row. */
.lite-game-steps{list-style:none;padding:0;margin:0 0 25px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.lite-game-steps li{padding:14px 15px;border:1px solid #d6c7b5;background:#fbf8f2;font-size:12px;line-height:1.5}
.lite-game-steps strong{display:block;color:var(--green);font-size:13px;margin-bottom:2px}
.knowledge-lite-actions{padding:0 0 55px}
@media(max-width:760px){.lite-game-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
