:root{--cream:#FCF9EF;--paper:#FFFDF8;--text:#34523E;--muted:#6C806D;--leaf:#428466;--leaf-dark:#2C6D52;--peach:#F3CB9C;--pink:#F6D9D8;--line:#E2E9D9;--butter:#FFF0C9;--shadow:0 14px 40px #496D4814;--softshadow:0 5px 14px #36533B10;--radius:27px}
*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:ui-rounded,'Avenir Next',Avenir,'Trebuchet MS',system-ui,sans-serif;color:var(--text);background:radial-gradient(circle at 96% 8%,#FFEFDF 0,transparent 29%),radial-gradient(circle at 5% 18%,#E6F0DC 0,transparent 30%),#F8F8EF;line-height:1.55;min-height:100vh}button,input{font:inherit}button{cursor:pointer}button:focus-visible,input:focus-visible{outline:3px solid #DE955F;outline-offset:4px}button:disabled{cursor:not-allowed;opacity:.44}h1,h2,h3,p{margin-top:0}h1,h2,h3{line-height:1.19}h1,h2{letter-spacing:-.035em}h3{letter-spacing:-.02em}p{color:var(--muted)}.page-shell{max-width:1240px;padding:18px 28px 26px;margin:0 auto;position:relative;z-index:1}.floating-foliage{position:fixed;color:#9EC6A5;opacity:.25;font-size:54px;pointer-events:none}.f1{top:40%;left:1%}.f2{right:1%;top:67%;color:#E6BA7A}.f3{top:82%;left:5%;color:#EAADB0}.skip-link{position:absolute;left:-9999px;top:10px;background:white;padding:10px;z-index:10}.skip-link:focus{left:10px}
.topbar{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:6px 0 24px}.brand{display:flex;gap:12px;align-items:center}.brand-frog{width:69px;height:69px;background:#E7F0DD;border-radius:21px;padding:4px;box-shadow:inset 0 -3px #D1E6CA;flex:0 0 auto}.brand-frog svg{width:100%;height:100%}.brand-name{font-size:23px;line-height:1.1;font-weight:900;color:#2C704F;letter-spacing:-.04em}.brand-name span{display:block;font-size:19px;color:#3D5942}.brand-tagline{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#839884;font-weight:800;margin-top:7px}.top-actions{display:flex;gap:9px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;min-height:47px;gap:7px;padding:12px 20px;border-radius:16px;border:2px solid transparent;font-weight:850;transition:transform .15s,box-shadow .15s,background .15s;line-height:1.2;text-align:center}.button:not(:disabled):active{transform:translateY(2px)}.button:not(:disabled):hover{box-shadow:0 5px 0 #3F75591C}.button.small{font-size:13px;min-height:39px;padding:10px 14px;border-radius:13px}.button.ghost{background:#FFFDFABF;border-color:#E9E9DE;color:#51725A}.button.light{background:#EDF3E8;border-color:#E2EBDC;color:#476A4F}.button.primary{background:#377E5D;color:white;border-color:#377E5D;box-shadow:0 5px 0 #275A42}.button.primary:hover{background:#2E704F}.button.outline{background:white;border-color:#AECAB7;color:#357151}.button.full{width:100%}.text-button{border:0;background:transparent;color:#388061;font-size:14px;font-weight:900;padding:8px 7px;text-decoration:underline;text-decoration-color:#BFDBCE;text-underline-offset:5px}
.welcome{display:flex;align-items:center;justify-content:space-between;position:relative;overflow:hidden;min-height:260px;border-radius:33px;background:linear-gradient(105deg,#F4F0D9 0%,#F8F1DE 60%,#E4F0D9 100%);border:2px solid #F4E8CB;padding:38px 40px;margin-bottom:27px;box-shadow:var(--softshadow)}.welcome-copy{max-width:685px;position:relative;z-index:1}.eyebrow,.card-eyebrow{font-size:11px;font-weight:950;letter-spacing:.14em;color:#6A9675}.welcome h1{font-family:Georgia,'Iowan Old Style',serif;font-size:clamp(34px,4vw,53px);line-height:1.12;margin:8px 0 12px;color:#29563E}.welcome h1 em{font-weight:500;color:#CD856A}.welcome p{font-size:16px;max-width:595px;margin-bottom:18px;color:#5C755C}.welcome-badges{display:flex;gap:10px;flex-wrap:wrap}.welcome-badges span{font-size:12px;font-weight:800;color:#59775F;background:#FFFFFFAD;padding:8px 11px;border-radius:20px;white-space:nowrap}.welcome-illustration{width:250px;min-width:230px;height:225px;position:relative;margin-right:0}.lily-dish{position:absolute;width:180px;height:110px;border-radius:0 0 46% 46%;border:10px solid #A2C9AD;bottom:18px;left:35px;background:linear-gradient(#DFF4E2,#ABD7BA);box-shadow:inset 0 -13px #91C2A4,0 13px 0 #B2C8A277;transform:rotate(-4deg)}.lily-dish:before{content:'';position:absolute;left:-11px;right:-11px;top:-22px;height:36px;border:9px solid #A0C9AC;border-radius:50%;background:#E0F1DD}.lily-drop{width:54px;height:60px;position:absolute;bottom:35px;border-radius:48% 52% 52% 48%;display:grid;place-items:center;color:white;font-size:27px;text-shadow:0 2px 1px #0002;box-shadow:inset 0 -5px #0002,0 5px 5px #0001}.d1{left:17px;background:#E889A0;transform:rotate(-23deg)}.d2{left:65px;background:#89B4DF;transform:rotate(10deg);bottom:53px}.d3{left:108px;background:#E8B75A;transform:rotate(24deg)}.illustration-leaf{position:absolute;font-size:53px}.l1{left:6px;bottom:42px;transform:rotate(-30deg)}.l2{right:0;bottom:43px}.sun-squiggle{position:absolute;right:8px;top:-14px;color:#EFC779;font-size:62px}.illustration-flower{position:absolute;bottom:4px;left:5px;font-size:34px;color:#ECA9A6}.illustration-flower.second{left:auto;right:4px;bottom:12px;color:#EEC16B;font-size:25px}
.section-label{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-weight:900;margin-bottom:13px;padding:0 4px;font-size:16px}.section-label .muted{font-size:12px;font-weight:650;color:#8A9689}.tracks{display:grid;grid-template-columns:repeat(3,1fr);gap:13px;margin-bottom:27px}.track{background:var(--paper);border:2px solid #E3E9DF;border-radius:20px;padding:16px 18px;text-align:left;color:#55735D;box-shadow:var(--softshadow);display:flex;align-items:center;gap:12px;transition:.15s}.track:hover{transform:translateY(-2px)}.track[aria-pressed=true]{background:#E6F3E3;border-color:#5B9875;box-shadow:inset 0 0 0 1px #5B9875,0 6px 0 #C4DDC7}.track-emoji{font-size:29px;background:#F5F5E9;display:grid;place-items:center;width:49px;height:49px;flex:0 0 49px;border-radius:15px}.track strong{display:block;font-size:16px;color:#385E43;line-height:1.4}.track small{display:block;font-size:12px;color:#889A88;font-weight:650}.track-status{margin-left:auto;font-size:11px;font-weight:850;background:#E7EFE5;border-radius:30px;padding:5px 7px;white-space:nowrap}
.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 323px;align-items:start;gap:22px}.puzzle-panel{background:var(--paper);border:2px solid #E7E9DE;border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.puzzle-banner{padding:25px 30px 19px;background:linear-gradient(120deg,#FFFDF9,#F4F8EB);border-bottom:2px dashed #E0E8D8}.level-label{display:flex;gap:9px;align-items:center;flex-wrap:wrap}.chapter-pill,.game-pill{font-size:10px;letter-spacing:.1em;font-weight:950;background:#DCEBDA;color:#477752;padding:6px 10px;border-radius:30px}.game-pill{background:#FBEBD8;color:#A27144;letter-spacing:0;font-size:12px}.puzzle-banner h2{font-family:Georgia,'Iowan Old Style',serif;font-size:clamp(28px,3.2vw,38px);color:#315941;margin:10px 0 7px}.objective{font-size:15px;margin:0;color:#738873}.level-counter{margin-top:20px;display:flex;align-items:center;gap:14px}.level-counter-label{font-size:11px;font-weight:950;letter-spacing:.1em;white-space:nowrap;color:#849D8B}.level-counter-label strong{font-size:18px;color:#327C5B}.level-counter-label span{font-size:12px;letter-spacing:0}.progress-rail{height:9px;border-radius:10px;background:#E0EADF;flex:1;overflow:hidden}.progress-fill,#asideFill{height:100%;background:linear-gradient(90deg,#7FCBA0,#4F9F79);border-radius:10px;transition:width .25s;width:0}
.puzzle-playground{min-height:445px;padding:21px 20px 10px;background:radial-gradient(ellipse at 50% 100%,#F4F8E8 0,transparent 65%),#FFFEFA}.board-topline{display:flex;justify-content:space-between;color:#7B8D79;font-size:13px;font-weight:750;margin:0 8px 13px}.board-tip{background:#FFF4DF;border:1px solid #F5E6C9;color:#876A45;text-align:center;padding:10px;border-radius:15px;font-size:13px;font-weight:800;min-height:43px}.cup-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 6px;justify-items:center;align-items:end;min-height:300px;padding:20px 4px 3px}.cup-cell{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;width:100%;max-width:143px;min-height:220px}.cup-label{min-height:45px;display:flex;justify-content:center;align-items:center;text-align:center;font-size:12px;font-weight:850;color:#607B64;padding:1px 3px;flex-direction:column;line-height:1.3;gap:4px}.cup-label .target-sum{background:#FEF3C9;color:#81613A;font-weight:950;border:1px solid #EAD7A4;padding:3px 8px;border-radius:20px;font-size:13px}.cup-label .target-now{color:#78937F;font-size:11px}.cup-label .target-met{color:#327C5B}.cup-label .helper-label{color:#8FA18D;font-size:12px}.mini-pattern{display:flex;align-items:center;justify-content:center;gap:3px;border-radius:15px;border:1px solid #D9E7D7;padding:4px 6px;background:#EEF6EB}.pattern-dot{display:inline-block;border-radius:50%;width:15px;height:15px;flex:0 0 15px;background:var(--drop);border:1px solid #FFFFFF99;box-shadow:inset 0 -2px #0002}.pattern-dot:nth-child(2){transform:translateY(-3px)}.cup{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;gap:5px;width:100%;max-width:130px;height:175px;border:0;background:transparent;transition:transform .18s;touch-action:manipulation;padding:3px 8px 7px}.cup:before{content:'';position:absolute;bottom:4px;left:13%;right:13%;height:24px;background:#A2C5B244;filter:blur(7px);border-radius:50%}.cup-glass{display:flex;flex-direction:column-reverse;align-items:center;justify-content:flex-start;gap:5px;width:100%;height:154px;padding:9px 8px 13px;border:5px solid #B2CFB7;border-top:8px solid #8FBAA4;border-bottom:8px solid #86B29C;background:linear-gradient(115deg,#F4FBF5B6,#DEECE2B3 48%,#F8FCF6E0 67%);border-radius:13px 13px 31px 31px;box-shadow:inset 5px 0 0 #FFFFFFA0,3px 7px 0 #AFCDBE30;position:relative;z-index:1}.cup-glass:before{content:'';position:absolute;top:-12px;height:12px;left:-7px;right:-7px;border:3px solid #A3C7B0;border-radius:50%;background:#F4FBF7;z-index:3}.cup.selected{transform:translateY(-8px)}.cup.selected .cup-glass{border-color:#E2B569;box-shadow:0 0 0 5px #F5DEAE,inset 5px 0 0 #FFFFFFA0,0 9px 0 #F1D5AB55}.cup.hint-move .cup-glass{outline:4px dashed #E5A65B;outline-offset:3px;animation:hintpop 1s ease-in-out infinite}.cup:focus-visible{outline:3px solid #E4A061;outline-offset:3px;border-radius:16px}.cup-name{height:24px;font-size:12px;line-height:1.6;color:#7C9380;font-weight:850}.drop{--drop:#78AB89;display:flex;align-items:center;justify-content:center;flex-shrink:0;width:min(95%,68px);height:28px;border-radius:48% 52% 45% 55% / 42% 42% 58% 58%;background:radial-gradient(ellipse at 30% 17%,#FFFFFF72,transparent 37%),var(--drop);box-shadow:inset 0 -4px 0 #00000018,0 3px 3px #37543E17;color:white;font-size:16px;font-weight:1000;text-shadow:0 1px 2px #0005;position:relative}.drop:before{content:'';position:absolute;top:3px;left:11px;width:13px;height:4px;transform:rotate(-18deg);border-radius:10px;background:#FFFFFF7D}.drop.numbered{font-size:16px}.drop .star-mark{position:absolute;right:1px;top:-6px;font-size:12px;color:#FFD85D;text-shadow:0 1px 2px #80612B}.drop .glyph{line-height:1}.drop-board-large .cup-glass{height:181px}.drop-board-large .cup{height:200px}.drop-board-large .drop{height:35px;width:min(95%,77px)}.board-legend{color:#9AA998;font-size:12px;text-align:center;margin:10px 0 8px}.play-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;padding:6px 20px 20px}.play-actions .button{flex:1;min-width:130px}.puzzle-foot{border-top:1px solid #EDF0E9;padding:11px 22px;display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap}
.sidebar{display:flex;flex-direction:column;gap:16px}.side-card{background:var(--paper);border:2px solid #E7E9DE;border-radius:22px;padding:22px;box-shadow:var(--softshadow)}.side-card h3{font-family:Georgia,'Iowan Old Style',serif;font-size:23px;margin:0 0 15px;color:#375E44}.side-card p{font-size:13px;line-height:1.65;margin:0}.pep-talk{background:#EAF2DD;border-color:#DAE9D1;position:relative}.pep-talk h3{margin:12px 0;font-size:24px}.pep-talk p{font-size:14px;color:#6B876B}.little-flowers{color:#8EBE8B;text-align:right;margin-top:12px;font-size:20px;letter-spacing:12px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}.stat{background:#F3F7ED;border-radius:16px;padding:12px;text-align:center}.stat-icon{display:block;font-size:23px}.stat strong{display:block;font-size:26px;color:#407F5A;line-height:1.4}.stat>span:last-child{font-size:11px;color:#819B81;font-weight:800}.garden-step{display:flex;justify-content:space-between;font-size:12px;margin:17px 1px 8px;color:#738E78}.garden-step strong{color:#3E825D}.small-meter{background:#E7EFE1;border-radius:15px;height:8px;overflow:hidden}.mode-list{display:grid;gap:15px}.mode-list>div{display:flex;gap:10px;align-items:flex-start}.mode-list .mode-emoji{font-size:28px;background:#F3F5EA;min-width:42px;height:42px;border-radius:12px;display:grid;place-items:center}.mode-list strong{font-size:13px;display:block;color:#3D674B}.mode-list small{display:block;font-size:11px;color:#91A091;line-height:1.4;margin-top:2px}.save-card{background:#FAF4E8;border-color:#F0E5D4}.save-header{display:flex;justify-content:space-between;align-items:center;font-size:13px;font-weight:900;gap:8px}.save-header span:last-child{font-size:11px;color:#498261}.save-card p{margin:10px 0 14px}.save-card .button{border-color:#E1CFAF}
footer{padding:24px 6px;display:flex;justify-content:space-between;gap:15px;flex-wrap:wrap;font-size:12px;color:#92A391;font-weight:750}
#toast{position:fixed;z-index:200;left:50%;bottom:25px;transform:translate(-50%,30px);opacity:0;pointer-events:none;max-width:min(90vw,520px);min-width:210px;padding:13px 20px;text-align:center;color:#fff;background:#3B7555;border-radius:16px;font-weight:850;font-size:14px;box-shadow:0 11px 25px #1E523A4D;transition:transform .2s,opacity .2s}#toast.visible{opacity:1;transform:translate(-50%,0)}#petalBurst{position:fixed;inset:0;overflow:hidden;z-index:170;pointer-events:none}.petal{position:absolute;top:-40px;font-size:24px;animation:fall 2.2s ease-in forwards;opacity:.85}@keyframes fall{to{transform:translateY(100vh) rotate(280deg);opacity:0}}@keyframes hintpop{50%{outline-color:#F5D796;outline-offset:6px}}
.popup{border:2px solid #E2EAD9;border-radius:27px;max-width:590px;width:min(92vw,590px);max-height:min(87vh,800px);box-shadow:0 24px 80px #284C3E45;background:#FFFEFA;padding:0;color:var(--text)}.popup::backdrop{background:#2D4936A1;backdrop-filter:blur(3px)}.dialog-head{padding:23px 25px 15px;display:flex;justify-content:space-between;align-items:start;gap:12px;border-bottom:1px solid #E9EEE4}.dialog-head h2{font-family:Georgia,'Iowan Old Style',serif;font-size:31px;margin:3px 0}.icon-close{width:40px;height:40px;border:0;border-radius:50%;background:#EDF3E8;color:#61846A;font-size:18px;font-weight:bold}.dialog-body{padding:22px 25px;overflow-y:auto;max-height:58vh}.dialog-body p{font-size:14px;line-height:1.7}.help-row{display:flex;align-items:flex-start;gap:14px;background:#F5F8EF;padding:14px;border-radius:16px;margin:10px 0}.help-row>span{font-size:31px}.help-row strong{font-size:15px}.help-row p{margin:3px 0 0;font-size:13px}.help-ending{background:#FFF4DF;padding:13px;border-radius:16px}.dialog-bottom{padding:0 25px 24px;display:flex;justify-content:flex-end}.toggle-row{display:flex;justify-content:space-between;align-items:center;gap:20px;padding:17px 0;border-bottom:1px solid #E9EEE4;cursor:pointer}.toggle-row:last-child{border:0}.toggle-row strong{display:block}.toggle-row small{display:block;font-size:12px;color:#8FA18D}.toggle-row input{width:25px;height:25px;accent-color:#488D68;cursor:pointer}.subdued{color:#8A9B89;font-size:13px}.page-chooser{display:flex;align-items:center;justify-content:space-between;gap:7px;margin-bottom:16px}.page-chooser strong{font-size:13px;color:#5C8366}.level-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;padding:3px 2px 7px}.level-tile{border:2px solid #E5ECDE;border-radius:15px;min-height:55px;background:#F7F9F1;color:#487456;font-weight:900;display:flex;flex-direction:column;justify-content:center;gap:1px;align-items:center}.level-tile small{font-size:11px;color:#DFA84C}.level-tile.current{background:#D9ECD8;border-color:#6CAB86;box-shadow:0 3px 0 #A9D2AF}.level-tile.completed{background:#FFF5D9;border-color:#E7C88A}.level-tile.locked{background:#F3F4EE;color:#BAC6B7}.level-tile.locked small{color:#A9B6A7}.win-dialog{text-align:center;padding:31px 30px}.win-dialog .card-eyebrow{display:block}.win-dialog h2{font-family:Georgia,'Iowan Old Style',serif;font-size:31px;margin:11px auto}.win-dialog p{font-size:15px}.win-hero{font-size:53px;margin-bottom:11px}.earned-stars{font-size:36px;letter-spacing:5px;margin:13px 0}.win-actions{display:flex;flex-direction:column;gap:10px;margin-top:16px}.divider-or{text-align:center;margin:18px 0;color:#A2B1A0;font-weight:900;font-size:12px}.import-label{display:block;padding:13px 18px;border:2px dashed #9BBFAA;border-radius:16px;color:#3B8662;text-align:center;font-weight:900;cursor:pointer;background:#F1F7ED}.dialog-body input[type=file]{width:100%;padding:10px 0;font-size:12px}.important-note{font-size:12px!important;margin-top:11px;color:#947D66}
body.large-pieces .cup-board{grid-template-columns:repeat(3,minmax(0,1fr))}body.high-contrast{--muted:#445A48;--line:#718F73;--leaf:#18653E}body.high-contrast .cup-glass{border-color:#467B5A;background:#F4FCF3}body.high-contrast .drop{box-shadow:inset 0 -4px 0 #0003,0 0 0 2px #284C3A}body.high-contrast .cup-name{color:#31503B}body.high-contrast .track,body.high-contrast .puzzle-panel,body.high-contrast .side-card{border-color:#8AA38C}
@media(min-width:1000px){.cup-board{grid-template-columns:repeat(4,minmax(0,1fr))}}@media(max-width:1080px){.content-grid{grid-template-columns:minmax(0,1fr) 270px}.welcome-illustration{width:190px;min-width:190px;transform:scale(.82);transform-origin:center}.welcome{padding:30px}.cup-board{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.track{padding:14px 10px}.track-status{display:none}}
@media(max-width:770px){.page-shell{padding:10px 14px}.topbar{padding:7px 0 16px}.brand-frog{width:55px;height:55px}.brand-name{font-size:19px}.brand-name span{font-size:15px}.brand-tagline{font-size:10px}.top-actions{gap:5px}.top-actions .button{font-size:12px;padding:8px 10px}.welcome{padding:23px 24px;min-height:205px}.welcome h1{font-size:35px}.welcome-illustration{display:none}.welcome-badges{gap:5px}.welcome-badges span{font-size:11px}.tracks{gap:8px}.track{padding:11px;flex-wrap:wrap;justify-content:center;text-align:center;gap:5px}.track-emoji{width:35px;height:35px;flex-basis:35px;font-size:22px}.track strong{font-size:13px}.track small{font-size:11px}.content-grid{grid-template-columns:1fr}.sidebar{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.save-card,.detail-card{align-self:stretch}}
@media(max-width:480px){.topbar{flex-wrap:wrap}.top-actions{margin-left:65px}.welcome h1{font-size:31px}.welcome p{font-size:14px}.section-label{display:block}.section-label .muted{display:block;margin-top:3px}.track-emoji{display:none}.track small{font-size:10px}.puzzle-banner{padding:20px 18px}.puzzle-playground{padding:16px 9px 6px}.cup-board{gap:2px;min-height:300px;padding:16px 0}.cup-cell{min-height:213px}.cup{height:169px;padding:3px 3px 7px}.cup-glass{height:147px;padding:8px 5px 12px;border-width:4px;border-top-width:7px}.cup-label{font-size:11px}.drop{height:27px;width:min(92%,70px)}.play-actions{padding:5px 9px 16px;gap:7px}.play-actions .button{font-size:12px;min-width:80px;padding:10px 6px}.puzzle-foot{padding:9px}.sidebar{grid-template-columns:1fr}.side-card{padding:17px}.puzzle-playground{min-height:405px}.board-tip{font-size:12px}.page-chooser .button{font-size:11px;padding:6px}.page-chooser strong{font-size:11px}.popup{max-height:90vh}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
body.calm-motion *,body.calm-motion *:before,body.calm-motion *:after{animation:none!important;transition:none!important}

@media(max-width:480px){.cup-board.few-cups{grid-template-columns:repeat(2,minmax(0,1fr));max-width:300px;margin:auto}}
