@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:ital,wght@0,500;0,600;0,700;1,500;1,600&display=swap');
:root{--ink:#513e30;--muted:#97836b;--cream:#faf5e9;--green:#617355}*{box-sizing:border-box}body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}header{height:108px;margin:0 5%;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #dfd5c2}.brand{text-decoration:none;color:var(--ink);font-size:40px;display:flex;gap:12px;align-items:center}.brand span{font:bold 26px 'Playfair Display',serif}.brand small{display:block;font:9px 'DM Sans';letter-spacing:2.6px;margin-top:7px}nav{display:flex;gap:30px}nav button,.sound{border:0;background:none;font-size:13px}nav button{padding:15px 3px}.active{border-bottom:2px solid var(--green)!important}#stars{background:#efe4c9;padding:5px 8px;border-radius:12px;margin-left:6px}.sound{border:1px solid #d7cbb5;border-radius:50px;padding:10px 16px}main{max-width:1390px;margin:44px auto 30px;display:grid;grid-template-columns:1fr 490px 1fr;gap:54px;padding:0 5%}.eyebrow{font-size:9px;letter-spacing:2px;font-weight:700;color:#9b8261}h1{font:500 57px/1.13 'Playfair Display',Georgia;margin:24px 0}h1 em{color:var(--green)}.intro>p{font-size:14px;line-height:1.9;color:#8a7965}.cat{width:150px;margin:30px 0 0 20px}.quote{font:italic 18px/1.6 'Playfair Display';text-align:center;max-width:240px}.quote small{display:block;font:10px 'DM Sans';color:var(--muted);margin:10px 0 30px}.recipe{border-top:1px solid #dfd5c2;max-width:230px;padding-top:23px;font-size:10px}.recipe>span{letter-spacing:1.6px;color:#9b8261}.recipe p{line-height:2.4}.recipe i{display:inline-block;width:10px;height:10px;border-radius:50%}.recipe b{font-weight:500;color:var(--muted);padding-left:28px}.game{background:#fffcf3;border:1px solid #e4dac5;border-radius:22px;padding:24px;box-shadow:0 12px 36px #7b5a2810}.game-top{display:flex;align-items:center;justify-content:space-between}h2{font:500 23px 'Playfair Display';margin:7px 0 18px}.icon{border:1px solid #ddd0b6;border-radius:50%;background:transparent;width:27px;height:27px}.metrics{display:flex;justify-content:space-around;background:#f3ecdc;border-radius:10px;margin-bottom:20px;padding:12px 0}.metrics span{font-size:8px;letter-spacing:1px;text-align:center;color:#9d876b}.metrics b{display:block;font-size:21px;letter-spacing:0;color:var(--ink);margin-bottom:3px}.board-wrap{padding:19px 17px 10px;border:6px solid #c99562;border-radius:16px;background:repeating-linear-gradient(2deg,#e3bc86 0px,#e3bc86 36px,#dfb680 37px,#e5be8a 39px);box-shadow:inset 0 2px 7px #80552935,0 5px 0 #af7749}.board{display:grid;grid-template-columns:repeat(4,1fr);gap:13px;touch-action:none;user-select:none}.tile{position:relative;border:0;padding:0;background:none;aspect-ratio:0.91;min-width:0;touch-action:none}.tile svg{width:100%;height:100%;overflow:visible;filter:drop-shadow(0px 4px 2px #82562e45);transition:transform .15s}.tile:hover svg,.tile.marked svg{transform:translateY(-3px) rotate(-3deg)}.tile.marked{filter:brightness(1.12)}.target{position:absolute;bottom:8%;left:43%;width:12px;height:12px;border:2px solid #fff6dd;border-radius:50%;box-shadow:0 1px 2px #55332055}.tile.done .target:after{content:'✓';position:absolute;font-size:10px;top:-3px;left:0;color:white}.obstacle{display:grid;place-items:center;height:100%;font-size:30px;opacity:.8}.board-label{text-align:center;letter-spacing:2.5px;font-size:7px;color:#946a43;margin-top:18px}.instruction{text-align:center;font-size:11px;min-height:30px;margin:19px 0 4px;color:#89735a}.pantry{display:flex;justify-content:space-between;gap:4px}.jar-btn{border:1px solid transparent;border-radius:13px;background:transparent;padding:6px 4px;font-size:8px;flex:1}.jar-btn.selected{background:#f2ebd9;border-color:#c5b58d}.jar{width:43px;height:47px;border:2px solid #8b6a51;border-radius:7px 7px 12px 12px;margin:9px auto 6px;background:var(--jam);position:relative;box-shadow:inset 5px 0 #ffffff45,inset -4px 0 #00000010}.jar:before{content:'';position:absolute;top:-8px;left:-3px;width:45px;height:10px;background:var(--jam);border:2px solid #8b6a51;border-radius:4px;filter:brightness(1.15)}.jar:after{content:attr(data-icon);position:absolute;top:13px;left:4px;background:#fff5db;width:31px;line-height:20px;border-radius:3px;font-size:13px}.controls{display:flex;justify-content:space-between;border-top:1px solid #e8dfcf;margin-top:15px;padding-top:15px}.controls button{font-size:11px;border:0;background:transparent}.bottom-note{font-size:7px;letter-spacing:1.8px;text-align:center;color:#b09c7d;margin-top:20px}.day{display:flex;gap:12px;align-items:center;font-size:30px;color:#b28f4c;margin-bottom:28px}.day span{font-size:8px;letter-spacing:1.3px}.day small{display:block;font-size:9px;letter-spacing:0;color:#97836b;margin-top:7px}.cafe-card{background:#f1ecdc;border:1px solid #e3d8c2;border-radius:13px;overflow:hidden;padding:0 20px 21px}.cafe-art{position:relative;height:165px;background:repeating-linear-gradient(90deg,#e0d8b9 0 22px,#e8e0c9 23px 45px);margin:0 -20px 24px;border-bottom:7px solid #b48e66}.window{position:absolute;left:24px;top:20px;border:7px solid #c29d72;box-shadow:0 0 0 3px #a1815e;width:90px;height:105px;background:linear-gradient(#bbd6cc,#f2e6b9);text-align:center;font-size:24px;color:#e5af56;line-height:43px}.window:after{content:'';position:absolute;left:36px;top:0;height:100%;width:5px;background:#c29d72}.table{position:absolute;bottom:0;right:23px;width:115px;height:38px;background:#a7764d;border-radius:50% 50% 0 0;box-shadow:0 -5px #d7b58b}.table span{position:absolute;bottom:25px;left:40px;font-size:33px}.plant{position:absolute;bottom:15px;left:12px;font-size:40px}h3{font:500 26px 'Playfair Display';margin:10px 0}.cafe-card p{font-size:12px;line-height:1.8;color:#8f7d66}.cafe-card button{background:var(--green);color:#fff9eb;border:0;border-radius:6px;padding:12px;font-size:10px;width:100%;margin-top:7px}.notes{padding-top:30px}.notes>span{font-size:9px;letter-spacing:1.4px;color:#a18968}.notes>div{display:flex;gap:15px;align-items:center;border-bottom:1px solid #e9dfcc}.notes b{font:italic 21px 'Playfair Display';color:#b39c76}.notes p{font-size:12px}.notes small{display:block;font-size:9px;margin-top:6px;color:#a08e74}.handwritten{font:italic 23px/1.4 'Playfair Display';transform:rotate(-6deg);text-align:center;color:#9a9d7c;margin-top:28px}footer{border-top:1px solid #dfd5c2;margin:35px 5% 0;padding:22px 0;font-size:8px;letter-spacing:1.5px;color:#a38e71;display:flex;justify-content:space-between}footer span{font:italic 13px 'Playfair Display';letter-spacing:0}dialog{border:1px solid #d6c7ab;border-radius:22px;background:#fff9e9;color:var(--ink);padding:35px;max-width:420px;width:90%;box-shadow:0 20px 100px #513e3050}dialog::backdrop{background:#49392c66;backdrop-filter:blur(4px)}dialog h2{font-size:33px}dialog p{font-size:14px;line-height:1.7}dialog button:not(.close){padding:12px 17px;border:0;border-radius:8px;background:var(--green);color:white;margin:5px}.close{position:absolute;right:13px;top:8px;border:0;background:none;font-size:26px}.shop{display:flex;flex-direction:column}.celebrate{font-size:60px;text-align:center}@media(min-width:1450px){main{margin-top:65px}}@media(max-width:1150px){main{grid-template-columns:1fr 460px;gap:35px}aside{display:none}}@media(max-width:760px){header{height:80px;margin:0 5%}.brand span{font-size:21px}.brand{font-size:30px}.brand small{font-size:7px}nav{gap:12px}nav button{font-size:11px}.sound{position:fixed;bottom:12px;right:12px;z-index:3;background:#fff9ec;font-size:10px}main{display:block;margin:20px auto;max-width:490px;padding:0 12px}.intro{display:none}.game{padding:18px}footer{font-size:6px}footer span{font-size:10px}.board{gap:10px}h2{font-size:21px}}
/* Game-room improvements */
[hidden]{display:none!important}button:disabled{opacity:.4;cursor:default}button:focus-visible{outline:3px solid #658caa;outline-offset:3px}.audio-controls{display:flex;gap:8px}.sound{min-height:42px}.game{padding-top:19px}.game-top h2{margin-bottom:12px}.metrics{padding:9px 0;margin-bottom:10px}.play-options{display:flex;align-items:center;gap:8px;margin-bottom:10px}.play-options button{font-size:10px;background:#f4eedf;border:1px solid #dfd3bd;border-radius:30px;padding:8px 10px;min-height:36px}#timer{margin-left:auto;font-variant-numeric:tabular-nums;font-size:18px;color:#617355}.urgent{color:#b84c44!important}.scoreboard{display:flex;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#9a8465}.scoreboard b{font-size:15px;letter-spacing:0;color:#654f38;padding-right:4px}#comboBanner{text-align:center;font-size:11px;font-weight:600;color:#9b6038;height:32px;padding:9px 0;white-space:nowrap}.board{touch-action:none;-webkit-user-select:none}.tile{touch-action:none}.tile.marked svg{transform:translateY(-3px) scale(1.06);filter:drop-shadow(0 0 5px #fff1ac)}.tile.fresh svg{animation:pop .3s ease-out}.tile:focus-visible{outline-offset:1px;border-radius:12px}.rating{font-size:36px;letter-spacing:8px;color:#d5a138;text-align:center}.rating span{color:#bfaf8c}.result-score{font-size:32px!important;margin:10px 0;font-weight:700}.result-score small{display:block;font-size:11px;letter-spacing:1px;color:#7c8b62}#roundState{width:100%;border:0;background:#ad5e4d;color:white;padding:12px;border-radius:9px;margin-top:12px}.recipe-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.recipe-grid button{margin:0!important}.recipe-grid small{display:block;color:#ffe0a3;min-height:15px}dialog{max-height:88dvh;overflow:auto}dialog .close{min-width:40px;min-height:40px}.board-wrap{padding-top:12px}.board-label{margin-top:10px}.instruction{min-height:31px;margin-top:12px}.bottom-note{font-size:8px;letter-spacing:.6px}.controls button{min-height:36px}.controls{margin-top:8px;padding-top:8px}.brand{white-space:nowrap}.brand small{white-space:nowrap}@keyframes pop{50%{transform:scale(1.1) rotate(2deg)}}
@media(min-width:761px) and (max-height:950px){main{margin-top:24px;margin-bottom:20px}.board{gap:8px}.tile{aspect-ratio:1.3}header{height:82px}.intro .cat{margin-top:14px}.game{padding:18px}footer{margin-top:20px}}
@media(max-width:760px){header{height:auto;min-height:100px;flex-wrap:wrap;gap:5px 12px;padding:10px 0 8px}.brand{font-size:25px;gap:7px}.brand span{font-size:20px;white-space:nowrap}.brand small{font-size:6px;letter-spacing:1.6px}nav{gap:10px}nav button{font-size:10px;padding:9px 0;min-height:36px}#stars{padding:3px 5px;margin-left:3px}.audio-controls{width:100%;justify-content:flex-end;gap:6px}.sound{position:static;min-height:30px;padding:5px 10px;font-size:10px}.game{padding:12px;border-radius:16px}main{margin-top:10px;padding:0 10px}.game-top h2{font-size:19px;margin:5px 0 10px}.eyebrow{font-size:8px}.metrics{padding:7px 0;margin-bottom:7px}.metrics b{font-size:20px}.play-options{margin-bottom:5px}.play-options button{min-height:34px;padding:6px 10px}.board-wrap{padding:10px 10px 7px;border-width:5px}.board{gap:6px}.tile{aspect-ratio:1.06}.board-label{font-size:6px;letter-spacing:1.8px;margin-top:6px}.scoreboard b{font-size:14px}#comboBanner{height:29px;font-size:10px}.instruction{font-size:10px;min-height:27px;margin:9px 0 0}.pantry{gap:2px}.jar-btn{font-size:8px;padding:4px 1px;min-height:70px}.jar{height:34px;width:34px;margin:8px auto 4px;border-radius:5px 5px 8px 8px}.jar:before{width:36px;top:-7px;height:9px}.jar:after{width:24px;left:3px;top:8px;line-height:17px;font-size:11px}.controls{margin-top:6px;padding-top:4px}.controls button{font-size:10px;min-height:36px}.bottom-note{margin-top:5px;font-size:8px}footer{margin-top:15px;padding:14px 0;line-height:1.6}footer span{display:none}.icon{min-width:32px;min-height:32px}.day{display:none}}
@media(max-width:360px){.brand span{font-size:17px}.brand small{letter-spacing:1px}nav{gap:7px}.game-top h2{font-size:17px}.play-options button{font-size:9px;padding:5px 8px}.tile{aspect-ratio:1.1}.controls button{font-size:9px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
@media(min-width:761px) and (max-height:950px){.tile{aspect-ratio:1.7}.game{padding:16px}.jar{height:38px}.jar:after{top:9px}.instruction{margin-top:9px;min-height:25px}.bottom-note{margin-top:7px}}
/* Campaign, tutorial, and optional rewarded-demo experiences */
nav{gap:18px}.play-options{flex-wrap:wrap}.play-options button{padding:7px 8px}.tile.next-slot:after{content:'';position:absolute;inset:3px;border:2px dashed #7b5b3c;border-radius:9px;pointer-events:none}.tile.next-slot:before{content:'NEXT';position:absolute;top:0;right:0;font-size:7px;background:#fff1cb;padding:2px 4px;border-radius:4px;z-index:1}.jar-btn:disabled{opacity:.28;filter:grayscale(.7)}.trail{display:grid;gap:18px}.chapter{border-top:1px solid #dfd1b5;padding-top:6px}.chapter h3{font-size:22px;margin:9px 0 0}.chapter>p{font-size:11px;color:#8f795c;margin:5px 0 10px}.map-nodes{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.map-node{display:grid!important;grid-template-columns:32px 1fr;text-align:left;gap:4px;margin:0!important;padding:10px!important;min-height:73px}.map-node b{grid-row:span 2;align-self:center;font-size:22px}.map-node span{font-size:11px}.map-node small{color:#ffe0a3;font-size:12px;letter-spacing:2px}.map-node.current{box-shadow:0 0 0 3px #d9b76a}.map-node.locked{background:#d7ccb6!important;color:#85735b!important;opacity:.7}.fine-print{font-size:11px!important;color:#8f795c}.decor-shop{display:grid;grid-template-columns:1fr 1fr;gap:8px}.decor-shop button{display:flex;flex-direction:column;align-items:center;gap:6px;margin:0!important;min-height:118px;padding:12px 7px!important}.decor-shop button>span{font-size:29px}.decor-shop b{font-size:11px}.decor-shop small{font-size:10px;color:#fff0c7}.decor-shop button:disabled{background:#b4a78d!important}.cafe-mini{background:#e9e2cd;border-radius:12px;padding:15px;text-align:center;font-size:35px}.cafe-art[data-cloth='gingham'] .table{background:repeating-conic-gradient(#b86464 0 25%,#f3ddc1 0 50%) 0/18px 18px}.cafe-art[data-cloth='mintcloth'] .table{background:#8eaa91}.cafe-art[data-view='twilight'] .window{background:linear-gradient(#484a76,#c28c91);color:#fff2bb}.cafe-art[data-view='garden'] .window{background:linear-gradient(#b8d7bf,#70986c)}.cafe-art[data-lights='fairylights']:after{content:'✦  ✧  ✦  ✧  ✦';position:absolute;top:0;left:5%;right:5%;color:#ffde76;text-shadow:0 0 7px #ffe8a5;font-size:27px;text-align:center}.reward-offer{background:#f1e7cd;border:1px solid #dbc694;border-radius:12px;padding:14px;margin-top:20px}.reward-offer>b{font-family:'Playfair Display';font-size:20px}.reward-offer p{margin:7px 0;font-size:12px}.reward-offer small{display:block;font-size:10px;color:#8b7252;line-height:1.6}.reward-offer button{background:#a87643!important}.ad-art{font-size:47px;text-align:center;background:#eee3c9;border-radius:16px;padding:25px 0;animation:ad-breathe 2s ease-in-out infinite}.ad-progress{height:8px;border-radius:8px;background:#e5d9bc;overflow:hidden}.ad-progress span{display:block;height:100%;width:0;background:#7e946b;transition:width .1s linear}.mix-menu p{background:#f0e6cf;padding:12px;border-radius:9px}.mix-menu i{display:inline-block;width:12px;height:12px;border-radius:50%}.lesson-board{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;padding:17px 12px;background:#dfb883;border:4px solid #c99562;border-radius:15px;touch-action:none;user-select:none}.lesson-board button{padding:0!important;margin:0!important;background:#f5d99b!important;border:4px solid #b77c45!important;border-radius:17px 17px 8px 8px!important;position:relative;aspect-ratio:.85;touch-action:none;min-width:0}.lesson-jam{position:absolute;inset:7px 5px 12px;border-radius:12px 12px 6px 6px;transition:background .2s}.lesson-board button i{position:absolute;width:13px;height:13px;border:2px solid #fff9e9;border-radius:50%;bottom:-8px;left:calc(50% - 6px)}.lesson-board .lesson-marked{outline:3px solid #fff4b3;transform:translateY(-3px)}.lesson-dots{display:flex;gap:7px;margin:18px 0}.lesson-dots i{height:5px;flex:1;background:#e6d9bc;border-radius:5px}.lesson-dots .passed{background:#8b9c71}.lesson-jars{display:flex;gap:8px;margin:18px 0 8px}.lesson-jars button{flex:1;margin:0!important;font-size:12px}.lesson-glow{box-shadow:0 0 0 4px #e4bf6d;animation:lesson-pulse 1s infinite}.swipe-cue{text-align:center;letter-spacing:2px;font-size:20px;color:#a77945;padding-top:12px;animation:swipe-cue 1.8s infinite}.quiet-button{background:transparent!important;color:#857254!important;text-decoration:underline;font-size:12px}#lessonPrompt{min-height:48px}#modal:has(.trail),#modal:has(.decor-shop){max-width:510px}#modal:has(.lesson-board){max-width:420px}#modal h2{padding-right:14px}
@keyframes swipe-cue{0%{transform:translateX(-15px);opacity:.4}70%{transform:translateX(15px);opacity:1}100%{opacity:.4}}@keyframes lesson-pulse{50%{box-shadow:0 0 0 7px #e4bf6d66}}@keyframes ad-breathe{50%{transform:scale(.97)}}
@media(max-width:760px){header{gap:5px}.brand{flex:1}nav{gap:11px;order:3;width:100%;justify-content:center}nav button{font-size:11px;min-height:32px}.audio-controls{width:auto;gap:4px}.sound{font-size:9px;padding:5px 7px}.play-options{gap:4px}.play-options button{font-size:9px;padding:6px 7px}.play-options #timer{font-size:15px;margin-left:0}.game-top h2{font-size:18px}.tile.next-slot:before{font-size:6px}.map-node b{font-size:18px}.map-node span{font-size:10px}dialog{padding:28px 20px}dialog h2{font-size:27px}.lesson-jars button{font-size:11px;padding:12px 7px!important}}
@media(prefers-reduced-motion:reduce){.swipe-cue,.lesson-glow,.ad-art{animation:none}}
.cafe-preview{margin:15px 0!important;border-radius:12px;height:180px}.cafe-preview .window{left:35px}.cafe-preview .table{right:35px;width:150px}.cafe-preview .table span{left:60px}
