@font-face { font-family: Nunito; src: url('./fonts/nunito.ttf') format('truetype'); font-style: normal; font-weight: 200 1000; font-display: swap; }
:root {
  color-scheme: light;
  --ink: #244f42;
  --muted: #788b7e;
  --paper: #f4f3ec;
  --lavender: #e9e5f3;
  --water: #69bce9;
  --green: #437b53;
  font-family: Nunito, 'Avenir Next', 'Segoe UI', sans-serif;
  font-synthesis: none;
  font-weight: 600;
}
* { box-sizing: border-box; }
html { min-height: 100%; background: var(--lavender); }
body { margin: 0; color: var(--ink); background: radial-gradient(ellipse at 10% 10%, #f9f4e577, transparent 40%), radial-gradient(ellipse at 100% 70%, #d5dee666, transparent 50%), var(--lavender); min-height: 100vh; min-height: 100svh; }
button, a { -webkit-tap-highlight-color: transparent; }
button { font: inherit; cursor: pointer; color: inherit; touch-action: manipulation; }
button:disabled { cursor: default; opacity: .5; }
button:focus-visible, a:focus-visible { outline: 3px solid #3874bd; outline-offset: 5px; }
button svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex-shrink: 0; }
button { border: 0; }
.svg-defs { position: absolute; width: 0; height: 0; }
.app { max-width: 1040px; margin: auto; padding: 24px 38px 18px; }
.topbar { display: flex; justify-content: space-between; align-items: center; margin-bottom: 28px; }
.brand { display: inline-flex; align-items: center; gap: 11px; font-size: 25px; font-weight: 900; text-decoration: none; color: inherit; letter-spacing: -.8px; }
.brand svg { width: 33px; height: 33px; stroke: #3b7953; fill: #7aba79; stroke-width: 2; stroke-linejoin: round; }
.icon-button { display: grid; place-items: center; padding: 11px; border-radius: 50%; background: #ffffff68; box-shadow: 0 1px 1px #82729415; width: 44px; height: 44px; }
.icon-button:hover { background: #fff; }
.sound-wave { display: none; }
[aria-pressed='true'] .sound-wave { display: block; }
[aria-pressed='true'] .sound-off { display: none; }
.intro { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin: 0 4px 27px; }
h1 { font-size: clamp(28px, 3.9vw, 41px); font-weight: 900; letter-spacing: -1.5px; line-height: 1.15; margin: 0 0 9px; }
.intro p { font-size: 16px; color: #697c70; margin: 0; line-height: 1.5; max-width: 490px; }
.progress { display: flex; align-items: center; gap: 12px; padding: 13px 21px; background: #f8f7fd9c; border: 1px solid #ffffffb0; border-radius: 24px 24px 24px 9px; flex-shrink: 0; min-width: 184px; }
.progress svg { width: 27px; height: 33px; fill: #76bce6; stroke: #468eb6; stroke-width: 1.2; }
.progress svg path + path { fill: none; stroke: #d5f2ff; stroke-width: 2; stroke-linecap: round; }
.progress strong { font-size: 27px; font-weight: 900; line-height: 1.1; letter-spacing: -.9px; }
.total { color: #8ba096; font-size: 21px; font-weight: 700; }
.progress-label { display: block; font-size: 11px; color: #7d8d83; }
.greenhouse { position: relative; isolation: isolate; padding: 38px 76px 0; border: 8px solid #f8f8f3; border-bottom-width: 10px; border-radius: 46px 46px 22px 22px; background: linear-gradient(#d5e9e5 0, #deebe6 44%, #eeeadb 44%); box-shadow: 0 4px 0 #b8c2b56e, 0 26px 50px -29px #536b6570, inset 0 0 0 1px #c6d4c655; overflow: hidden; }
.window-scene { position: absolute; inset: 0 0 41%; z-index: -1; overflow: hidden; background: linear-gradient(160deg, #cee5e2, #e7f2df); border-bottom: 8px solid #f5f6e8; box-shadow: 0 4px 0 #bacbc54d; }
.sun { position: absolute; width: 72px; height: 72px; border-radius: 50%; background: #f6da88; right: 8%; top: 30px; box-shadow: 0 0 0 11px #f5dd9c26, 0 0 45px #f5e8a522; }
.cloud { position: absolute; width: 90px; height: 18px; border-radius: 80px; background: #f9fff780; }
.cloud:before, .cloud:after { content: ''; position: absolute; background: inherit; border-radius: 50%; }
.cloud:before { width: 43px; height: 37px; left: 14px; bottom: 2px; }
.cloud:after { width: 27px; height: 23px; left: 49px; bottom: 1px; }
.cloud-a { left: 15%; top: 60px; }
.cloud-b { right: 26%; top: 35px; transform: scale(.6); opacity: .7; }
.distant-hill { position: absolute; width: 70%; height: 110%; bottom: -80%; background: #a4c69d; border-radius: 50%; }
.hill-a { left: -15%; transform: rotate(-11deg); }
.hill-b { right: -14%; bottom: -80%; background: #b7d1a5; }
.window-bar { position: absolute; top: 0; bottom: 0; width: 9px; background: #f8f9eb8c; box-shadow: 2px 0 #99bbaa1f; }
.bar-a { left: 27%; transform: skew(-8deg); }
.bar-b { right: 24%; transform: skew(8deg); }
.hanging-sign { position: relative; z-index: 1; display: flex; align-items: center; justify-content: center; gap: 9px; font-size: 12px; width: max-content; margin: -23px auto 20px; background: #fbf9e9; padding: 7px 15px; border-radius: 6px; color: #7d8f76; box-shadow: 1px 2px 1px #7c8e7422; transform: rotate(-2deg); }
.hanging-sign svg { width: 18px; height: 18px; stroke: #c4a251; fill: none; stroke-width: 1.3; }
.garden-stage { position: relative; max-width: 650px; margin: 0 auto; padding-bottom: 35px; }
.bed-tray { position: relative; padding: 13px; border-radius: 23px; background: #c2c9b7; border: 2px solid #dbe0ce; box-shadow: 0 10px 0 #a9b3a1, 0 13px 0 #899881, 0 18px 24px #69785835; }
.board { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 6px; padding: 0; }
.tile { position: relative; aspect-ratio: 1.08; background: #ebe5d5; border-radius: 11px; padding: 0; box-shadow: inset 0 0 0 1px #fff9, 0 3px 0 #a6ad94; overflow: visible; transition: background .4s, box-shadow .3s; }
.tile:hover { background: #f5edda; box-shadow: inset 0 0 0 2px #fff, 0 3px 0 #a6ad94; }
.tile:active { transform: translateY(2px); box-shadow: inset 0 0 0 1px #fff9, 0 1px 0 #a6ad94; }
.tile:disabled { opacity: 1; cursor: default; }
.tile.is-wet { background: #e0e9d6; }
.tile.is-wet:hover { background: #eaf0df; }
.tile:focus-visible { z-index: 3; outline-offset: 2px; }
.tile-art { display: block; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.pipe { transform-origin: 50px 45px; transition: transform .27s cubic-bezier(.22,.8,.25,1); }
.pipe-shadow { stroke: #727660; stroke-width: 23; opacity: .17; transform: translateY(3px); }
.pipe-base { stroke: #bba991; stroke-width: 21; }
.pipe-rim { stroke: #f7edce; stroke-width: 15; }
.pipe-core { stroke: #b39a77; stroke-width: 10; }
.pipe-water { stroke: #63b1df; stroke-width: 10; opacity: 0; transition: opacity .25s; }
.pipe-sparkle { stroke: #cbf4ff; stroke-width: 2.5; stroke-dasharray: 5 18; opacity: 0; }
.pipe path { fill: none; stroke-linecap: round; stroke-linejoin: round; }
.is-wet .pipe-water, .is-wet .pipe-sparkle { opacity: 1; }
.is-wet .pipe-sparkle { animation: flow 1.9s linear infinite; }
.plant { transform-origin: 73px 70px; transition: transform .65s cubic-bezier(.18,.8,.2,1.25), opacity .6s; transform: scale(.67); opacity: .8; }
.is-wet .plant { transform: scale(1); opacity: 1; }
.plant-leaves { transform-origin: 73px 67px; }
.is-new-wet .plant-leaves { animation: grow .7s ease-out; }
.soil-dots { opacity: .45; }
.cell-index { position: absolute; bottom: 8px; left: 9px; color: #a2a28b; font-size: 10px; line-height: 1; font-weight: 800; pointer-events: none; }
.is-wet .cell-index { color: #78927a; }
.watered-mark { position: absolute; left: 9px; top: 7px; color: #5b9bb3; opacity: 0; transition: opacity .3s; }
.watered-mark svg { width: 10px; height: 14px; fill: currentColor; stroke: none; }
.is-wet .watered-mark { opacity: .8; }
.tile.is-hinted { animation: hint-glow 1s ease-out 2; z-index: 2; }
.water-source { position: absolute; width: 59px; left: -61px; top: 4px; z-index: 2; }
.water-source > svg { width: 59px; height: 95px; overflow: visible; }
.tank-shadow { fill: #8baca6; opacity: .3; transform: translateY(8px); }
.tank-body { fill: #add5d4; stroke: #78aaa9; stroke-width: 2; }
.tank-top { fill: #cbe9e0; stroke: #78aaa9; stroke-width: 2; }
.tank-water { fill: #74bed7; }
.tank-line { fill: none; stroke: #e3f3df; stroke-width: 3; stroke-linecap: round; }
.tank-handle { fill: none; stroke: #477d81; stroke-width: 4; stroke-linecap: round; }
.source-pipe { position: absolute; width: 30px; height: 12px; background: #71b8db; border: 3px solid #bda98b; border-radius: 5px; left: 44px; top: 58px; z-index: -1; }
.bench-edge { height: 19px; width: calc(100% + 100px); position: absolute; left: -50px; bottom: 0; border-radius: 4px 4px 9px 9px; background: #d5c5a4; box-shadow: 0 5px 0 #c0ac87, 0 10px 0 #af9e7d55; border-top: 3px solid #e5d8bd; z-index: -1; }
.soil-bag { position: absolute; width: 69px; left: -62px; bottom: 16px; transform: rotate(-9deg); pointer-events: none; }
.soil-bag svg, .watering-can svg { display: block; width: 100%; }
.watering-can { position: absolute; width: 85px; right: -77px; bottom: 18px; transform: rotate(7deg); pointer-events: none; }
.first-tip { position: absolute; top: 24%; left: -22px; width: 150px; padding: 8px 10px; border-radius: 10px; background: #fffff5; box-shadow: 0 5px 17px #6e856c20; color: #58775b; font-size: 11px; z-index: 5; transform: rotate(-5deg); pointer-events: none; transition: opacity .2s; }
.first-tip svg { width: 30px; height: 24px; position: absolute; top: -23px; left: 18px; transform: rotate(155deg); fill: none; stroke: #5c8e65; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.has-played .first-tip { opacity: 0; }
.greenhouse-footer { display: flex; justify-content: space-between; gap: 20px; margin: 24px -44px 0; padding: 13px 0 12px; color: #94a086; font-size: 11px; }
.weather { display: inline-flex; align-items: center; gap: 5px; }
.weather svg { width: 15px; height: 15px; fill: #e3c26c; stroke: #cbb05f; stroke-width: 1.3; }
.controls { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 24px 5px 7px; }
.controls p { font-size: 13px; color: #819185; line-height: 1.5; margin: 0; max-width: 460px; }
.control-buttons { display: flex; gap: 12px; align-items: center; flex-shrink: 0; }
.text-button { background: transparent; padding: 12px 9px; color: #788f80; font-size: 13px; border-radius: 12px; }
.text-button:hover { color: #275b43; background: #ffffff50; }
.hint-button { display: inline-flex; align-items: center; gap: 8px; padding: 12px 17px; border-radius: 15px; background: #f9faf2; box-shadow: 0 3px 0 #cad3c1; font-size: 14px; font-weight: 800; }
.hint-button:hover { background: #fff; }
.hint-button:active { transform: translateY(2px); box-shadow: 0 1px 0 #cad3c1; }
.page-footer { display: flex; justify-content: space-between; align-items: center; font-size: 11px; color: #9c9ba8; margin-top: 18px; padding: 0 5px; }
.page-footer .text-button { font-size: 11px; color: #908e9c; }
.win { margin-top: 24px; padding: 21px 24px; background: #f7f7e9; border-radius: 22px; box-shadow: 0 3px 0 #cbd6bc; display: flex; align-items: center; justify-content: space-between; gap: 16px; animation: reveal .5s both; }
.win-copy { display: flex; align-items: center; gap: 15px; }
.win-flower { color: #d7ad50; font-size: 43px; line-height: 1; }
h2 { font-size: 23px; line-height: 1.25; margin: 0 0 4px; font-weight: 900; letter-spacing: -.6px; }
.win p { font-size: 12px; color: #7a8b72; margin: 0; max-width: 330px; }
.win-buttons { display: flex; align-items: center; gap: 9px; flex-shrink: 0; }
.primary-button { background: #386c4e; color: #fffdf1; box-shadow: 0 3px 0 #244c36; padding: 13px 19px; border-radius: 14px; font-weight: 800; font-size: 14px; display: inline-flex; align-items: center; gap: 13px; }
.primary-button:hover { background: #447d5c; }
.primary-button:active { transform: translateY(2px); box-shadow: 0 1px 0 #244c36; }
.tractor { position: absolute; z-index: 8; width: 260px; bottom: -18px; left: -400px; pointer-events: none; opacity: 0; transform-origin: 50% 100%; }
.tractor svg { width: 100%; overflow: visible; }
.is-complete .tractor { opacity: 1; left: calc(100% - 210px); transform: scale(.58); }
.celebrating .tractor { animation: tractor-arrives 4s cubic-bezier(.25,.65,.3,1) both; }
.celebrating .tractor-wheel { animation: wheel-bounce .16s ease-in-out 18 alternate; }
.is-complete .bed-tray { transition: transform 1s; transform: scale(.98); }
.bonus-garden { position: absolute; width: 55px; right: 30px; top: 14px; transform: rotate(7deg); animation: reveal .6s both; pointer-events: none; }
.bonus-garden svg { width: 100%; }
dialog { border: 0; border-radius: 28px; background: #f7f8ef; color: var(--ink); max-width: 420px; width: calc(100% - 36px); padding: 29px 30px 33px; box-shadow: 0 30px 100px #2c394a55; }
dialog::backdrop { background: #2e394d60; backdrop-filter: blur(4px); }
dialog p { font-size: 15px; line-height: 1.65; color: #738375; }
dialog .primary-button { margin-top: 9px; }
.close-dialog { position: absolute; right: 11px; top: 11px; font-size: 28px; line-height: 1; background: transparent; }
.help-illustration { width: 116px; height: 78px; margin: 0 0 14px; }
.noscript { background: #fff; padding: 20px; border-radius: 15px; }
.birthday-card { width: calc(100% - 34px); max-width: 680px; max-height: calc(100svh - 32px); padding: 39px 35px 30px; overflow: visible; text-align: center; border: 8px solid #fffde9; border-radius: 33px; background: #fff0a9; box-shadow: 0 13px 0 #c4a649, 0 35px 100px #24372d66; }
.birthday-card::backdrop { background: #283d4c8c; backdrop-filter: blur(7px); }
.birthday-card[open] { animation: birthday-pop .65s cubic-bezier(.18,.85,.3,1.2) both; }
.birthday-card .close-dialog { right: 9px; top: 8px; color: #8f814e; }
.birthday-party { margin-bottom: 14px; font-size: 40px; line-height: 1.2; color: #ce9171; letter-spacing: 12px; padding-left: 12px; }
.birthday-card h2 { font-size: clamp(30px, 6vw, 61px); font-weight: 1000; line-height: 1.06; letter-spacing: -.04em; color: #2c6550; text-shadow: 0 3px #fff9db; }
.birthday-name { display: block; position: relative; margin: 19px -6px 0; padding: 12px 5px 17px; border-radius: 15px; background: #cfb4eb; color: #593676; font-size: clamp(24px, 8.8vw, 68px); line-height: 1; letter-spacing: -.045em; white-space: nowrap; transform: rotate(-3deg); box-shadow: 0 6px 0 #ad8dcc; text-shadow: 0 3px #ecddfa; }
.birthday-actions { display: flex; justify-content: center; align-items: center; gap: 15px; margin-top: 32px; }
.birthday-replay { background: #315f4a; color: #fffbe8; padding: 13px 23px; border-radius: 14px; box-shadow: 0 3px 0 #204333; font-weight: 900; font-size: 15px; }
.birthday-replay:hover { background: #3e795b; }
.birthday-replay:active { transform: translateY(2px); box-shadow: 0 1px 0 #204333; }
.birthday-back { background: transparent; color: #8d8050; padding: 13px 17px; border-radius: 14px; font-size: 14px; }
.birthday-back:hover { background: #fff8cf; }
.birthday-confetti { position: absolute; inset: 0; pointer-events: none; }
.birthday-confetti i { position: absolute; width: 12px; height: 21px; border-radius: 3px; background: #83b8de; transform: rotate(22deg); }
.birthday-card[open] .birthday-confetti i { animation: birthday-confetti .9s ease-out both; }
.birthday-confetti i:nth-child(1) { left: 6%; top: 18%; transform: rotate(-28deg); }
.birthday-confetti i:nth-child(2) { right: 9%; top: 9%; background: #e49683; transform: rotate(32deg); }
.birthday-confetti i:nth-child(3) { left: 24%; top: -5%; background: #a7c780; transform: rotate(-55deg); }
.birthday-confetti i:nth-child(4) { right: -2%; top: 45%; background: #af8dcd; transform: rotate(24deg); }
.birthday-confetti i:nth-child(5) { left: -3%; top: 56%; background: #e5a478; transform: rotate(-34deg); }
.birthday-confetti i:nth-child(6) { left: 8%; bottom: 12%; width: 10px; height: 10px; border-radius: 50%; background: #9cbf80; }
.birthday-confetti i:nth-child(7) { right: 4%; bottom: 16%; background: #7fbaca; transform: rotate(70deg); }
.birthday-confetti i:nth-child(8) { right: 25%; top: -4%; background: #a88bcd; transform: rotate(-20deg); }
.birthday-confetti i:nth-child(9) { left: 48%; bottom: -4%; background: #e4a27c; transform: rotate(-60deg); }
.birthday-confetti i:nth-child(10) { left: 2%; top: 35%; width: 9px; height: 9px; border-radius: 50%; background: #a38ac6; }
.birthday-confetti i:nth-child(11) { right: 4%; top: 29%; width: 10px; height: 10px; border-radius: 50%; background: #86b88e; }
.birthday-confetti i:nth-child(12) { left: 6%; top: 3%; background: #dd9caa; transform: rotate(70deg); }
.birthday-card p { margin: 0; }
@keyframes birthday-pop { from { opacity: 0; scale: .65; rotate: -7deg; } 65% { opacity: 1; scale: 1.025; rotate: 2deg; } to { opacity: 1; scale: 1; rotate: 0deg; } }
@keyframes birthday-confetti { from { opacity: 0; translate: 0 -25px; } to { opacity: 1; translate: 0 0; } }
[hidden] { display: none !important; }
@keyframes flow { to { stroke-dashoffset: -46; } }
@keyframes grow { 0% { transform: scale(.75); } 65% { transform: scale(1.08); } 100% { transform: scale(1); } }
@keyframes reveal { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }
@keyframes hint-glow { 0%,100% { outline: 3px solid #e5bf62aa; outline-offset: 1px; } 50% { outline: 5px solid #f1d77c; outline-offset: 3px; } }
@keyframes tractor-arrives { 0% { left: -400px; transform: scale(1); opacity: 0; } 8% { opacity: 1; } 57% { left: 35%; transform: scale(1); } 68% { left: 35%; transform: scale(1); } 100% { left: calc(100% - 210px); transform: scale(.58); opacity: 1; } }
@keyframes wheel-bounce { from { transform: translateY(-1px); } to { transform: translateY(1px); } }
@media (min-width: 1100px) and (min-height: 850px) { .app { padding-top: 40px; } .topbar { margin-bottom: 36px; } .intro { margin-bottom: 30px; } }
@media (max-width: 760px) {
  .app { padding: 19px 23px 15px; }
  .topbar { margin-bottom: 25px; }
  .intro { gap: 15px; margin: 0 0 23px; }
  h1 { font-size: 31px; letter-spacing: -1px; }
  .intro p { max-width: 340px; font-size: 14px; }
  .progress { min-width: 135px; padding: 11px 14px; gap: 9px; border-radius: 19px 19px 19px 6px; }
  .progress svg { width: 23px; height: 29px; }
  .progress strong { font-size: 25px; }
  .progress-label { font-size: 10px; }
  .greenhouse { padding: 34px 49px 0; border-radius: 34px 34px 19px 19px; border-width: 6px; }
  .water-source { width: 45px; left: -45px; top: -1px; }
  .water-source > svg { width: 45px; height: 76px; }
  .source-pipe { left: 33px; top: 45px; width: 26px; height: 11px; }
  .bed-tray { padding: 9px; border-radius: 18px; }
  .board { gap: 5px; }
  .soil-bag { width: 46px; left: -43px; bottom: 18px; }
  .watering-can { width: 59px; right: -51px; bottom: 20px; }
  .greenhouse-footer { margin: 17px -27px 0; font-size: 10px; }
  .first-tip { top: 25%; left: -14px; }
  .controls { padding-top: 20px; }
  .controls p { font-size: 12px; }
  .win { align-items: flex-start; flex-direction: column; }
  .win-buttons { align-self: flex-end; }
  .tractor { width: 220px; }
}
@media (max-width: 520px) {
  .app { padding: 17px 15px 13px; }
  .brand { font-size: 23px; gap: 7px; }
  .brand svg { width: 28px; height: 28px; }
  .topbar { margin-bottom: 22px; }
  .icon-button { width: 40px; height: 40px; padding: 10px; }
  .intro { align-items: flex-start; gap: 10px; margin-bottom: 20px; }
  h1 { font-size: 28px; max-width: 225px; margin-bottom: 9px; line-height: 1.13; }
  .intro p { font-size: 12px; max-width: 220px; }
  .progress { min-width: 100px; gap: 7px; padding: 10px 10px 9px; margin-top: 2px; }
  .progress svg { width: 18px; height: 24px; }
  .progress strong { font-size: 23px; }
  .total { font-size: 17px; }
  .progress-label { font-size: 8px; }
  .greenhouse { padding: 52px 14px 0; border-radius: 30px 30px 16px 16px; border-width: 5px; background: linear-gradient(#d5e9e5 0, #deebe6 32%, #eeeadb 32%); }
  .hanging-sign { font-size: 9px; padding: 5px 10px; margin-top: -34px; margin-bottom: 18px; }
  .hanging-sign svg { width: 14px; height: 14px; }
  .garden-stage { padding-top: 33px; padding-bottom: 27px; }
  .bed-tray { padding: 8px; border-radius: 16px; box-shadow: 0 7px 0 #a9b3a1, 0 10px 0 #899881, 0 13px 18px #69785835; }
  .tile { border-radius: 8px; }
  .board { gap: 4px; }
  .water-source { top: -21px; left: 3px; width: 36px; transform: rotate(0); }
  .water-source > svg { width: 36px; height: 65px; }
  .source-pipe { left: 26px; top: 40px; width: 31px; height: 30px; border-radius: 0 10px 0 0; border-left: 0; border-bottom: 0; background: transparent; border-top: 8px solid #bda98b; border-right: 9px solid #bda98b; transform: translateX(-3px); }
  .source-pipe:after { content: ''; position: absolute; top: -5px; right: -6px; width: 24px; height: 27px; border-top: 3px solid #6cb8de; border-right: 3px solid #6cb8de; border-radius: 0 7px 0 0; }
  .soil-bag { display: none; }
  .watering-can { width: 43px; right: -5px; bottom: 4px; }
  .bench-edge { left: -10px; width: calc(100% + 20px); height: 13px; }
  .greenhouse-footer { margin: 8px 0 0; padding: 12px 0 10px; font-size: 8px; gap: 10px; }
  .weather { font-size: 0; }
  .weather svg { width: 16px; height: 16px; }
  .sun { width: 49px; height: 49px; top: 32px; right: 11%; }
  .cloud-a { left: 30%; top: 63px; transform: scale(.65); }
  .cloud-b { display: none; }
  .first-tip { width: 139px; font-size: 10px; top: 4px; left: 58px; padding: 6px 8px; transform: rotate(-2deg); }
  .first-tip svg { width: 25px; height: 20px; top: 18px; left: -17px; transform: rotate(20deg); }
  .cell-index { font-size: 8px; bottom: 6px; left: 6px; }
  .watered-mark { left: 6px; top: 4px; }
  .watered-mark svg { width: 8px; height: 11px; }
  .controls { flex-direction: column; gap: 12px; padding: 19px 0 0; }
  .controls p { text-align: center; max-width: 320px; min-height: 18px; font-size: 11px; }
  .control-buttons { gap: 19px; }
  .hint-button { padding: 11px 17px; font-size: 13px; }
  .page-footer { margin-top: 20px; padding: 0; align-items: flex-start; gap: 8px; }
  .page-footer > span { max-width: 205px; font-size: 9px; padding-top: 12px; }
  .page-footer .text-button { font-size: 10px; white-space: nowrap; }
  .tractor { width: 190px; bottom: -6px; }
  .is-complete .tractor { left: calc(100% - 155px); transform: scale(.48); }
  .celebrating .tractor { animation-name: tractor-mobile; }
  .win { margin-top: 20px; padding: 18px 16px; gap: 16px; }
  .win-copy { gap: 10px; }
  .win-flower { font-size: 32px; }
  .win h2 { font-size: 21px; }
  .win p { font-size: 11px; }
  .win-buttons { gap: 5px; align-self: stretch; justify-content: space-between; }
  .win-buttons .text-button { font-size: 11px; padding: 11px 3px; }
  .primary-button { padding: 12px 15px; font-size: 12px; }
  .bonus-garden { width: 40px; right: 54px; top: -1px; }
  dialog { padding: 26px; }
  .birthday-card { padding: 35px 18px 26px; border-width: 6px; border-radius: 26px; }
  .birthday-card h2 { font-size: clamp(26px, 7.6vw, 36px); }
  .birthday-name { padding: 13px 2px 15px; margin-top: 16px; }
  .birthday-party { font-size: 32px; margin-bottom: 15px; }
  .birthday-actions { gap: 7px; margin-top: 27px; }
  .birthday-replay { font-size: 13px; padding: 12px 15px; }
  .birthday-back { font-size: 12px; padding: 12px; }
}
@keyframes tractor-mobile { 0% { left: -250px; transform: scale(.9); opacity: 0; } 8% { opacity: 1; } 55% { left: 12%; transform: scale(.9); } 67% { left: 12%; transform: scale(.9); } 100% { left: calc(100% - 155px); transform: scale(.48); opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  *, *:before, *:after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
