@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&display=swap');
:root{--ink:#383b36;--muted:#93928a;--green:#536a50;--paper:#fbf6ee}*{box-sizing:border-box}body{margin:0;background:var(--paper);color:var(--ink);font-family:'DM Sans',sans-serif;min-height:100vh;overflow-x:hidden}.ambient{position:fixed;border-radius:50%;filter:blur(85px);pointer-events:none;z-index:-1}.ambient-one{width:650px;height:650px;background:#f4d8cb66;left:-300px;top:90px}.ambient-two{width:600px;height:600px;background:#e4e9d888;right:-240px;top:360px}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #a1b390;outline-offset:6px}header{max-width:1280px;margin:auto;padding:28px 48px;display:flex;justify-content:space-between;align-items:center}.brand{text-decoration:none;color:var(--ink);font-size:24px;font-weight:700;letter-spacing:-1px;display:flex;align-items:center;gap:10px}.brand-mark{font-size:32px;color:var(--green);transform:rotate(-25deg)}.brand-dot{color:#d58f76;margin-left:-10px}.header-right{display:flex;align-items:center;gap:12px}.quiet-label{font-size:9px;letter-spacing:2px;color:var(--muted);margin-right:20px}.icon-button{height:36px;width:36px;border:1px solid #dddcd1;background:transparent;border-radius:50%;font-size:18px}.icon-button:hover{background:#eeeadd}main{max-width:940px;margin:auto;padding:20px 24px 0}.intro{text-align:center;margin-bottom:34px}.eyebrow{font-size:10px;letter-spacing:2.5px;color:var(--green);display:flex;gap:9px;align-items:center;justify-content:center;font-weight:700}.eyebrow span{height:5px;width:5px;background:#96aa82;border-radius:50%}h1{font-family:'Manrope',sans-serif;font-size:50px;letter-spacing:-2.7px;margin:15px 0 12px;font-weight:500}h1 em{font-family:Georgia,serif;color:var(--green);font-weight:400} .intro p{font-size:14px;color:#85857a;margin:0}.game-card{border:1px solid #e1dfd5;border-radius:24px;background:#ffffff70;box-shadow:0 18px 60px #5b4f3310;overflow:hidden}.game-top{padding:25px 32px;display:flex;align-items:center;gap:40px;border-bottom:1px solid #e9e6dd}.tiny-label{font-size:8px;letter-spacing:1.6px;color:var(--muted);display:block;margin-bottom:7px;font-weight:700}.level-picker{background:none;border:0;padding:0;text-align:left;font-size:19px;min-width:113px}.level-picker strong{font-weight:600}.chevron{font-size:17px;color:var(--muted);margin-left:10px}.progress{max-width:330px;flex:1;margin:auto}.progress-text{display:flex;justify-content:space-between;gap:10px;font-size:10px;color:var(--muted);margin-bottom:10px}.progress-text span:first-child{color:#6d7864}.progress-track{height:4px;border-radius:8px;background:#e9e9dd;overflow:hidden}#progress-fill{height:100%;width:0;background:#9bb18a;transition:width .5s}.moves{text-align:right;min-width:50px}.moves strong{font-size:22px;font-weight:500}.play-area{min-height:320px;position:relative;padding:48px 30px 24px;background:radial-gradient(ellipse at 50% 70%,#f4eee270,transparent 65%)}.board{display:flex;justify-content:center;align-items:flex-end;gap:38px;flex-wrap:wrap;max-width:740px;margin:0 auto;min-height:178px}.tube-wrap{position:relative;display:flex;flex-direction:column;align-items:center}.tube{height:175px;width:57px;padding:0;position:relative;border:0;background:transparent;transition:transform .25s;filter:drop-shadow(0 8px 5px #54422e15)}.tube:hover{transform:translateY(-5px)}.tube.selected{transform:translateY(-24px)}.tube.hinted{animation:hintGlow 1s infinite}.glass{position:absolute;inset:6px 2px 0;border:2px solid #b5b4a590;border-top:0;border-radius:3px 3px 24px 24px;background:linear-gradient(90deg,#fff9,transparent 30%,#fff3 70%,#fff8);overflow:hidden}.rim{position:absolute;top:3px;left:0;right:0;height:7px;z-index:3;border-radius:4px;border:2px solid #b5b4a5b0;background:#fff9}.liquid{position:absolute;bottom:3px;left:3px;right:3px;display:flex;flex-direction:column-reverse;border-radius:0 0 19px 19px;overflow:hidden}.layer{height:37px;width:100%;position:relative;background:var(--color);box-shadow:inset 4px 0 8px #ffffff1c,inset -5px 0 8px #0000000b}.layer:last-child:before{content:'';position:absolute;left:0;right:0;top:0;height:5px;background:#ffffff35;border-radius:50%}.shine{position:absolute;z-index:2;left:10px;top:15px;width:4px;bottom:24px;background:linear-gradient(#ffffffa8,#ffffff25);border-radius:5px;pointer-events:none}.tube-number{font-size:9px;color:#a5a395;margin-top:14px;letter-spacing:1px}.complete .tube-number{color:var(--green)}.complete .tube-number:after{content:' ✓';margin-left:2px}#message{text-align:center;font-size:11px;letter-spacing:.2px;color:#969586;margin:31px 0 0;min-height:17px}.game-bottom{display:flex;justify-content:center;gap:45px;border-top:1px solid #e9e6dd;padding:20px 24px}.tool{background:none;border:0;font-size:11px;display:flex;align-items:center;gap:9px;padding:5px}.tool>span{font-size:23px;line-height:15px}.tool:hover{color:var(--green)}.tool:disabled{opacity:.35;cursor:default}kbd{font:8px 'DM Sans',sans-serif;border:1px solid #e2dfd4;padding:2px 4px;border-radius:3px;color:#a4a092;margin-left:4px}.hint{color:var(--green)}.under-card{display:flex;align-items:center;justify-content:center;gap:8px;font-size:10px;color:#9a978a;margin:22px 0 34px}.breath-dot{width:5px;height:5px;border-radius:50%;background:#a9b49b}.how-row{display:flex;justify-content:space-around;gap:22px;margin:0 8px 45px}.how-row>div{display:flex;gap:13px;align-items:center}.step-number{border:1px solid #dddccf;border-radius:50%;height:29px;width:29px;display:grid;place-items:center;font-size:9px;color:#a6a28f;flex-shrink:0}.how-row p{font-size:9px;line-height:1.9;color:#9a978a;margin:0}.how-row strong{font-size:11px;font-weight:500;color:#676b5e}footer{border-top:1px solid #e7e2d5;max-width:1184px;margin:auto;padding:22px 0;display:flex;justify-content:space-between;font-size:8px;letter-spacing:1.4px;color:#a6a291}footer span:last-child{letter-spacing:.2px}.win{position:absolute;inset:0;z-index:10;backdrop-filter:blur(10px);background:#fbf7eeeb;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center}.win[hidden]{display:none}.win-spark{font-size:44px;color:#859b70}.win h2{font-family:Georgia,serif;font-weight:400;font-size:29px;margin:8px 0}.win p{font-size:12px;color:var(--muted)}.primary{background:var(--green);color:white;border:0;border-radius:30px;padding:13px 26px;font-size:12px;margin-top:15px}.primary span{margin-left:25px}dialog{border:1px solid #dedccc;border-radius:24px;padding:38px;width:min(520px,90vw);color:var(--ink);background:var(--paper);box-shadow:0 25px 90px #3333}dialog::backdrop{background:#3c423d45;backdrop-filter:blur(4px)}dialog h2{font:30px Georgia,serif;margin:5px 0 15px}dialog p{font-size:13px;line-height:1.8;color:#848477}.close{position:absolute;top:12px;right:12px;width:28px;height:28px}.level-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:9px;margin-top:25px}.level-grid button{border:1px solid #dedfd2;border-radius:12px;height:45px;background:#fff6;font-size:13px}.level-grid .active{background:var(--green);color:white}.level-grid .passed{border-color:#a6b398;color:var(--green)}.level-grid button:disabled{opacity:.35;cursor:default}.pouring{animation:pour .35s ease-in-out}.invalid{animation:shake .3s}.receiving{animation:receive .4s}.stream{position:fixed;height:4px;border-radius:6px;transform-origin:left center;z-index:20;pointer-events:none;box-shadow:0 0 4px #fff9;animation:streamIn .45s ease-in-out both}@keyframes streamIn{0%,100%{opacity:0}30%,70%{opacity:1}}@keyframes pour{50%{transform:translateY(-35px) rotate(22deg)}}@keyframes receive{50%{transform:translateY(3px)}}@keyframes shake{25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}@keyframes hintGlow{50%{filter:drop-shadow(0 0 9px #d2ae50)}}@media(max-width:700px){header{padding:22px 24px}.quiet-label{display:none}main{padding:15px 16px 0}h1{font-size:40px}.intro p{font-size:12px}.game-top{padding:22px;gap:20px}.progress{max-width:180px}.progress-text span:first-child{display:none}.progress-text{justify-content:flex-end}.game-bottom{gap:17px}kbd{display:none}.how-row{gap:17px;flex-wrap:wrap;justify-content:flex-start;margin:0 12px 30px}.how-row>div{flex:1;min-width:190px}footer{margin:0 24px}.board{gap:24px;max-width:470px}.play-area{padding:42px 18px 22px}.tube{height:155px;width:49px}.layer{height:32px}.game-card{border-radius:20px}.tool{font-size:10px}.header-right{gap:8px}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
/* Audit fixes: readable labels, distinguishable colors, and comfortable controls. */
:root{--muted:#68695f}
.quiet-label,.intro p,.chevron,.progress-text,.progress-text span:first-child,#message,.under-card,.step-number,.how-row p,footer,kbd,.tube-number,dialog p{color:#68695f}
.quiet-label,.tiny-label{font-size:10px}
.progress-text,.tube-number{font-size:12px}
#message,.under-card,.how-row p,.tool,dialog p{font-size:13px}
.how-row strong{font-size:13px;color:#535a4d}
footer{font-size:10px;gap:20px}
.icon-button{height:44px;width:44px}
.close{height:44px;width:44px;top:8px;right:8px}
.tool{min-height:44px}
button:focus-visible,a:focus-visible{outline-color:#536a50}
.glass{border-color:#777b6b}.rim{border-color:#777b6b}
.color-symbol{position:absolute;inset:0;display:grid;place-items:center;color:#354032;font-size:15px;line-height:1;font-family:Arial,sans-serif}
@media(max-width:700px){.tool{font-size:12px}.game-bottom{gap:14px;padding:10px 12px}.how-row>div{min-width:220px}.intro p{font-size:13px}}
@media(max-width:440px){.game-top{gap:12px;padding:20px 16px}.level-picker{min-width:105px}.moves{min-width:40px}.progress{min-width:0}.progress-text{font-size:11px;white-space:nowrap}.board{display:grid;grid-template-columns:repeat(3,49px);justify-content:center;gap:28px 32px}.play-area{padding-top:40px}.game-bottom{gap:8px}.tool{gap:6px;padding:5px 3px}.tool>span{font-size:20px}.level-grid{grid-template-columns:repeat(5,1fr)}dialog{padding:48px 22px 26px}footer{flex-wrap:wrap}.header-right{gap:4px}header{padding:18px 20px}}
@media(forced-colors:active){.layer{background:Canvas!important;border:1px solid CanvasText}.color-symbol{color:CanvasText}.glass,.rim{border-color:CanvasText}.tube{filter:none}}
/* Pour choreography: lift, tip over the destination, transfer, return. */
.tube{transition:transform 240ms cubic-bezier(.22,.7,.3,1)}
.tube:hover{transform:none}.tube.selected{transform:translateY(-18px)}
.pour-ghost{position:fixed;z-index:40;margin:0;pointer-events:none;transform-origin:50% 6px;transition:none;filter:drop-shadow(0 10px 8px #54422e20)}
.pour-ghost .liquid{overflow:hidden}.pour-ghost .layer{flex-shrink:0}
.pour-stream{position:fixed;width:4px;border-radius:3px;z-index:39;pointer-events:none;box-shadow:inset 1px 0 #ffffff65;opacity:0}
.filling-layer{flex-shrink:0;min-height:0}
.tube.hinted{animation:none;filter:drop-shadow(0 0 6px #b79855)}
.invalid{animation:gentleShake 220ms ease-out}
@keyframes gentleShake{25%{translate:-3px 0}75%{translate:3px 0}}
@media(prefers-reduced-motion:reduce){.tube{transition:none}.pour-stream,.pour-ghost{display:none}}
.fluid-canvas{position:absolute;left:3px;top:1px;pointer-events:none}
.pour-stream{background-image:linear-gradient(90deg,#ffffff55,transparent 50%,#0000000d);border-radius:50% 50% 2px 2px}
.pour-stream:after{content:'';position:absolute;bottom:-2px;left:-5px;width:14px;height:4px;background:inherit;border-radius:50%;opacity:.55;animation:waterImpact 180ms ease-in-out infinite alternate}
.filling-layer:last-child:before{transform:translateY(var(--ripple,0px));height:4px}
@keyframes waterImpact{to{scale:1.4 .65;opacity:.25}}
.puzzle-meta{display:flex;justify-content:space-between;gap:16px;padding:18px 32px 0;font-size:12px;color:#536a50}.puzzle-meta strong{font-weight:500}.puzzle-meta>span{color:#68695f}
.rule-note{padding:0 32px;margin:10px 0 0;font-size:12px;line-height:1.7;color:#68695f}
.destination-badge{margin-top:7px;padding:4px 8px;font-size:10px;line-height:1.4;color:#354032;border-radius:8px;background:var(--badge);white-space:nowrap}
.can-receive:after{content:'';position:absolute;inset:-6px;border:2px dashed #536a50;border-radius:8px 8px 30px 30px;pointer-events:none}
.session-tools{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 8px;font-size:11px;color:#68695f}.session-tools button{border:1px solid #cbcdbb;border-radius:20px;background:transparent;padding:9px 15px;min-height:44px;font-size:12px}
.mode-tabs{display:flex;gap:7px;margin-top:20px;flex-wrap:wrap}.mode-tabs button{border:1px solid #c4c9b9;border-radius:22px;background:transparent;padding:10px 14px;min-height:44px;font-size:12px}.mode-tabs .active{background:#536a50;color:white}
.level-grid button{font-size:12px}.level-grid .passed{font-weight:700}.under-card{margin-top:12px}.tube[disabled],.level-picker:disabled{cursor:default;opacity:.65}
@media(max-width:700px){.puzzle-meta{padding:17px 22px 0;font-size:11px;flex-wrap:wrap;gap:6px}.rule-note{padding:0 22px}.session-tools{font-size:10px}.destination-badge{font-size:9px;padding:4px 6px}.game-top{gap:18px}.tiny-label{letter-spacing:1px}}
/* Puzzle cards show resumable runs and records without relying on color. */
dialog{max-height:85vh;overflow:auto}.level-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:16px}.level-grid button{height:auto;min-height:78px;padding:10px 4px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px}.puzzle-number{font-size:15px}.puzzle-status,.puzzle-best{font-size:10px;line-height:1.4}.journey-summary{font-weight:600}.level-grid button:disabled{opacity:1;color:#707367;background:#eeece4;border-style:dashed}.level-grid .active{background:#536a50;color:#fff}.level-grid .passed:not(.active){color:#40553c}
@media(max-width:440px){dialog{padding:32px 20px 24px}.puzzle-status,.puzzle-best{font-size:9px}}
/* Purr & Pour: a quiet cat cafe, with the existing glass geometry intact. */
:root{--ink:#433b33;--muted:#716356;--green:#52664b;--paper:#fff8ec;--cafe-clay:#a95138;--cafe-line:#e2d3be;--cafe-cream:#fffdf6}
body{background:radial-gradient(ellipse at 15% 8%,#f7e6d7 0,transparent 44%),var(--paper)}
.ambient-one{background:#eecbb850}.ambient-two{background:#dfe6cd70}
.brand{letter-spacing:-.8px;color:#514034}.brand-dot{color:var(--cafe-clay)}
.brand-mark{position:relative;display:grid;place-items:center;transform:none;width:30px;height:30px;font-size:26px;color:var(--cafe-clay)}
.brand-mark:before,.brand-mark:after{content:'';position:absolute;top:-1px;width:9px;height:10px;background:var(--cafe-clay);clip-path:polygon(0 0,100% 65%,0 100%);z-index:-1}
.brand-mark:before{left:3px;rotate:12deg}.brand-mark:after{right:3px;scale:-1 1;rotate:-12deg}
.intro{margin-bottom:28px}.intro>.cat-portrait,.intro .intro-cat{width:84px;height:84px;margin:0 auto 10px;display:block}
.eyebrow{color:#8c422e}.eyebrow span{background:var(--cafe-clay)}
h1{font-size:46px;letter-spacing:-2px;margin-top:12px}h1 em{color:var(--cafe-clay)}
.intro p{max-width:570px;margin:auto;line-height:1.65;color:#716356}
.cafe-entry{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;margin:20px auto 0;padding:12px 24px;border:1px solid #91442f;border-radius:24px;background:var(--cafe-clay);color:#fffdf6;box-shadow:0 4px 0 #7c3c2420;font-weight:600;font-size:14px;text-decoration:none}
.cafe-entry:hover{background:#91442f;box-shadow:0 6px 14px #7c3c2420}.cafe-entry:active{translate:0 1px}
.cafe-orders{display:flex;flex-wrap:wrap;gap:12px;margin:0 0 20px;align-items:stretch}
.cafe-orders[hidden]{display:none}.cafe-orders>h2,.cafe-orders>.orders-heading{width:100%;margin:0;font-size:14px;font-weight:600;color:#655342;line-height:1.5}
.cat-order{display:grid;grid-template-columns:60px minmax(0,1fr);align-items:center;gap:12px;flex:1 1 240px;min-width:0;padding:15px 16px;border:1px solid var(--cafe-line);border-radius:18px;background:var(--cafe-cream);box-shadow:0 4px 14px #795a3310}
.cat-portrait{width:60px;height:60px;display:block;flex:none;overflow:visible}
.order-name{display:block;font-size:14px;font-weight:700;color:#514034;line-height:1.5;margin:0 0 3px}
.order-request{font-size:12px;color:#716356;line-height:1.65;margin:0;overflow-wrap:anywhere}
.cat-order.waiting{border:2px solid var(--cafe-clay);padding:14px 15px;background:#fff8ed;box-shadow:0 5px 18px #a9513812}
.cat-order.next{background:#faf3e7;border-style:dashed;box-shadow:none}
.cat-order.served{background:#edf2e4;border-color:#a8b89a;box-shadow:none}
.cat-order.served .order-name{color:#415638}.order-status{display:inline-block;margin-top:7px;font-size:11px;font-weight:600;line-height:1.5;color:#675342}
.cat-order.waiting .order-status{color:#91442f}.cat-order.served .order-status{color:#415638}
.order-colors,.recipe-colors{display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:6px}
.order-color,.recipe-color{width:22px;height:22px;display:inline-grid;place-items:center;border-radius:50%;font:12px Arial,sans-serif;color:#354032;border:1px solid #433b3330}
.game-card{border-color:var(--cafe-line);background:#fffdf6d9;box-shadow:0 15px 45px #795a3310}.game-top,.game-bottom{border-color:#e9ddcb}
.play-area{background:radial-gradient(ellipse at 50% 78%,#efe4d870,transparent 68%)}
.primary{background:var(--cafe-clay)}.primary:hover{background:#91442f}
.serve-drink{display:flex;align-items:center;justify-content:center;min-height:44px;min-width:68px;max-width:105px;padding:9px 11px;margin-top:9px;border:1px solid #91442f;border-radius:16px;background:var(--cafe-clay);color:#fffdf6;font-size:12px;font-weight:600;line-height:1.35}
.serve-drink:hover:not(:disabled){background:#91442f}.serve-drink:disabled{color:#75695b;background:#eee6d9;border-color:#d6c8b5;cursor:default}
.complete .serve-drink:not(:disabled){box-shadow:0 0 0 3px #a9513812}
.mode-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.mode-tabs button{white-space:normal;line-height:1.4;border-color:#cbbca6;border-radius:14px;background:#fffdf6;min-height:48px;padding:10px 8px}.mode-tabs .active{background:#52664b;border-color:#52664b;color:#fff}
button:focus-visible,a:focus-visible{outline:3px solid #52664b;outline-offset:4px}
dialog{background:var(--paper);border-color:var(--cafe-line)}dialog::backdrop{background:#45362955}
.win{background:#fff8ecef}.win-spark{color:var(--cafe-clay)}.win .cat-portrait{margin-bottom:8px}
@media(max-width:700px){h1{font-size:38px;letter-spacing:-1.6px}.intro>.cat-portrait,.intro .intro-cat{width:68px;height:68px}.cat-order{flex-basis:210px;padding:12px;gap:10px}.cat-order.waiting{padding:11px}.cafe-orders{gap:10px;margin-bottom:16px}.cafe-entry{margin-top:16px}.order-request{font-size:12px}}
@media(max-width:440px){.brand{font-size:22px}.cat-order{flex-basis:100%;grid-template-columns:52px minmax(0,1fr)}.cat-order .cat-portrait{width:52px;height:52px}.cafe-orders{gap:8px}.serve-drink{min-width:64px;padding:9px 8px;font-size:11px}.cafe-entry{width:100%;max-width:300px}.mode-tabs{gap:6px}.mode-tabs button{font-size:11px}.intro p{font-size:13px}.order-name{font-size:13px}}
@media(forced-colors:active){.cafe-entry,.serve-drink{border:1px solid ButtonText;background:ButtonFace;color:ButtonText}.cat-order.waiting{border:2px solid CanvasText}.cat-order.served,.cat-order.next{border-color:CanvasText}.order-color,.recipe-color{border-color:CanvasText}.brand-mark:before,.brand-mark:after{background:CanvasText}}
.cafe-orders{padding:20px 24px 0;margin-bottom:0}.cat-order .cat-portrait{grid-row:1 / 3}.order-name,.order-request{grid-column:2}.cat-order.waiting{border:1px solid #e2d3be;padding:15px 16px;background:#fffdf6;box-shadow:none}.cat-order.next{border:2px solid #a95138;padding:14px 15px;background:#fff3df;box-shadow:0 5px 18px #a9513812}.cat-order.served{border:1px solid #a8b89a}.intro .intro-cat .cat-portrait{width:100%;height:100%}
@media(max-width:700px){.cafe-orders{padding:18px 18px 0}.cat-order.waiting{padding:12px}.cat-order.next{padding:11px}}
/* Recipe service: ordered blends and a deliberate, once-per-puzzle paw swap. */
.recipe-entry{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:48px;margin:20px 0 0 10px;padding:12px 24px;border:1px solid #a95138;border-radius:24px;background:#fffdf6;color:#91442f;font-weight:600;font-size:14px;text-decoration:none;vertical-align:top}
.recipe-entry:hover{background:#f8e9db}.recipe-entry:active{translate:0 1px}
.recipe-stack{display:flex;flex-direction:column-reverse;width:48px;flex:none;overflow:hidden;border:1px solid #756b5b;border-radius:5px 5px 11px 11px;margin:8px 0 5px;background:#fffdf6}
.recipe-layer{display:grid;place-items:center;flex:none;height:24px;background:var(--color);color:#354032;font:13px Arial,sans-serif;border-top:1px solid #ffffff45;line-height:1}
.recipe-direction,.recipe-caption{display:block;font-size:10px;line-height:1.5;color:#716356;margin-top:5px}
.recipe-glass.tube{height:var(--tube-height);width:57px}
.recipe-glass .layer{height:var(--unit-height)}
.glass-capacity{margin-top:5px;color:#716356;font-size:10px;line-height:1.4;white-space:nowrap}
.recipe-tools{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:10px 14px;padding:14px 24px;border-top:1px solid #e9ddcb;background:#faf3e780}
.recipe-tools[hidden]{display:none}.recipe-tools p,.recipe-tools .paw-instructions{flex:1 1 240px;max-width:430px;margin:0;color:#655342;font-size:12px;line-height:1.65}
.paw-tool{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 16px;border:1px solid #b7a38b;border-radius:16px;background:#fffdf6;color:#655342;font-size:12px;font-weight:600;line-height:1.4}
.paw-tool:hover:not(:disabled){background:#f7e6d7;color:#655342;border-color:#a95138}.paw-tool.armed,.paw-tool[aria-pressed='true']{background:#a95138;color:#fffdf6;border:2px solid #7c3624;padding:9px 15px;box-shadow:0 0 0 3px #a9513820}.paw-tool.armed:hover:not(:disabled),.paw-tool[aria-pressed='true']:hover:not(:disabled){background:#873e2a;color:#fffdf6;border-color:#7c3624}.paw-tool:disabled{background:#eee6d9;color:#75695b;border-style:dashed;cursor:default}
@media(max-width:700px){.recipe-glass.tube{width:49px}.recipe-tools{padding:12px 16px;gap:10px}.recipe-tools p,.recipe-tools .paw-instructions{font-size:12px}.recipe-entry{margin-top:16px}.recipe-stack{width:44px}}
@media(max-width:440px){.recipe-entry{width:100%;max-width:300px;margin:10px auto 0}.recipe-tools{justify-content:flex-start}.recipe-tools p,.recipe-tools .paw-instructions{flex-basis:100%;max-width:none}.paw-tool{flex:1 1 auto}.glass-capacity{font-size:9px}.recipe-direction,.recipe-caption{font-size:10px}}
@media(forced-colors:active){.recipe-entry,.paw-tool,.paw-tool.armed,.paw-tool[aria-pressed='true']{background:ButtonFace;color:ButtonText;border-color:ButtonText}.paw-tool.armed,.paw-tool[aria-pressed='true']{outline:2px solid Highlight}.recipe-stack,.recipe-layer{background:Canvas!important;color:CanvasText;border-color:CanvasText}}
.paw-tool[hidden]{display:none}
#spoon-tool[hidden]{display:none}.ingredient-palette,.draft-portions,.creator-tools{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0}.ingredient-palette button,.draft-portions button,.creator-tools button{min-height:44px;padding:10px 12px;border:1px solid #766858;border-radius:12px;font-size:12px}.ingredient-palette button,.draft-portions button{background:var(--color);color:#303b30}.creator-tools button{background:#fffdf6}.special-label{display:block;font-size:13px;font-weight:600;margin-top:20px}.special-name{width:100%;margin-top:7px;min-height:44px;padding:10px 12px;border:1px solid #766858;border-radius:10px;background:#fffdf6;color:#433b33;font:inherit}.special-draft{font-size:12px;line-height:1.7;padding:12px;border:1px dashed #ad8063;border-radius:12px}.special-draft .draft-portions{margin:8px 0}.puzzle-number{overflow-wrap:anywhere}.creator-tools button:disabled,.ingredient-palette button:disabled{opacity:.55;cursor:default}#view-specials{margin-left:0;width:100%}#special-feedback{color:#8c422e}
.chapter-pages{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:15px 0}.chapter-pages button,.chapter-pages select{min-height:44px;border:1px solid #a8947b;border-radius:10px;background:#fffdf6;color:#433b33;font:inherit;padding:8px 12px}.chapter-pages label{font-size:12px}.chapter-pages button:disabled{opacity:.45;cursor:default}
.cafe-story{margin:0 auto 22px;padding:20px 24px;border:1px solid #e2d3be;border-radius:20px;background:linear-gradient(125deg,#f3eddc,#fffaf0)}.cafe-story[hidden],#pour-area[hidden],#catnap-host[hidden]{display:none}.story-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}.story-heading button,.guided-chapter button{min-height:44px;padding:9px 14px;border:1px solid #a8947b;border-radius:12px;background:#fffdf6;color:#52664b;font:inherit;font-size:12px}.story-scene{display:flex;align-items:center;gap:20px;margin:14px 0}.story-cat{display:grid;place-items:center;width:92px;min-width:92px;height:82px;border-radius:50% 50% 20% 20%;background:linear-gradient(#f7d89a 0 44%,#cfdbc1 44% 58%,#e8c7a7 58%);border:2px solid #bfa48a}.story-cat .cat-portrait{width:64px;height:64px}.story-scene strong{font:500 22px Georgia,serif}.story-scene p,.story-next{font-size:12px;line-height:1.7;color:#655342;margin:5px 0}.cafe-keepsakes{display:flex;flex-wrap:wrap;gap:7px}.cafe-keepsakes span{display:inline-flex;align-items:center;gap:4px;border:1px solid #d5c5ad;border-radius:12px;padding:7px 10px;background:#fffdf6;font-size:11px}.story-next{margin-top:12px}.guided-chapters{display:grid;gap:12px}.guided-chapter{border:1px solid #d5c5ad;border-radius:16px;padding:16px;background:#fffdf6}.guided-chapter>div:first-child{display:flex;align-items:center;gap:12px}.guided-chapter h3{font:500 20px Georgia,serif;margin:0}.guided-chapter p{font-size:12px;line-height:1.6}.guided-chapter>div:last-child{display:flex;gap:7px;flex-wrap:wrap}.guided-chapter.locked{background:#eee9df}.guided-chapter button:disabled{opacity:.5;cursor:default}@media(max-width:500px){.cafe-story{padding:15px}.story-scene{gap:12px}.story-scene strong{font-size:19px}.story-cat{width:70px;min-width:70px;height:72px}.story-cat .cat-portrait{width:54px;height:54px}}

.postcard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:14px}.postcard{padding:18px;border:1px solid #d2bdab;border-radius:16px;text-align:center;background:#fffaf0;display:grid;justify-items:center;gap:8px}.postcard .cat-portrait{width:90px;height:90px}.postcard.locked{opacity:.65}.postcard.scene-1.owned{background:#f3e4ed}.postcard.scene-2.owned{background:#e6efde}.postcard.scene-3.owned{background:#e6e4f4}.daily-choices{display:flex;flex-wrap:wrap;gap:12px;margin:24px 0}.postcard small{font-size:12px}

.postcard{padding:10px;overflow:hidden}.postcard-art{width:100%;height:auto;display:block;border-radius:12px}.postcard.owned{transition:transform .2s ease,box-shadow .2s ease}.postcard.owned:hover{transform:translateY(-3px);box-shadow:0 8px 20px #594b4214}.postcard-reward{padding:22px;background:#fff5df;border:1px solid #d6b579;border-radius:20px;margin:18px 0}.postcard-reward h3{font-size:22px;margin:8px 0 16px}.reward-reveal{max-width:1080px;margin:24px auto;padding:0 24px}.reward-reveal[hidden]{display:none}.reward-cards{display:flex;gap:16px;overflow:auto;scroll-snap-type:x proximity}.reward-cards figure{margin:0;flex:0 0 220px;scroll-snap-align:start}.reward-cards figcaption{font-size:14px;text-align:center;padding:10px 0}.reward-reveal .postcard-art{animation:postcard-arrive .45s ease-out}.next-lesson{border-top:1px solid #dacbb9;padding-top:20px;margin-top:20px;display:flex;gap:14px;align-items:center;flex-wrap:wrap}.next-lesson>div{flex:1 1 300px}.next-lesson h3{margin:8px 0;font-size:22px}.next-lesson p{margin:8px 0;font-size:14px}.next-lesson button{white-space:normal}@keyframes postcard-arrive{from{opacity:0;transform:translateY(14px) rotate(-2deg)}to{opacity:1;transform:none}}@media(prefers-reduced-motion:reduce){.reward-reveal .postcard-art{animation:none}.postcard.owned{transition:none}.postcard.owned:hover{transform:none}}

.postcard-reward button,.next-lesson button{border:1px solid #baa38c;background:#fffaf0;color:#493e34;padding:12px 18px;border-radius:12px;cursor:pointer;font:inherit}.postcard-reward button:hover,.next-lesson button:hover{background:#eee8d6}.postcard-reward button:focus-visible,.next-lesson button:focus-visible{outline:3px solid #52664b;outline-offset:3px}
